amazonka-sesv2 (empty) → 2.0
raw patch · 380 files changed
+38754/−0 lines, 380 filesdep +amazonka-coredep +amazonka-sesv2dep +amazonka-test
Dependencies added: amazonka-core, amazonka-sesv2, amazonka-test, base, bytestring, case-insensitive, tasty, tasty-hunit, text, time, unordered-containers
Files
- LICENSE +367/−0
- README.md +44/−0
- amazonka-sesv2.cabal +279/−0
- fixture/BatchGetMetricData.yaml +10/−0
- fixture/BatchGetMetricDataResponse.proto +0/−0
- fixture/CreateConfigurationSet.yaml +10/−0
- fixture/CreateConfigurationSetEventDestination.yaml +10/−0
- fixture/CreateConfigurationSetEventDestinationResponse.proto +0/−0
- fixture/CreateConfigurationSetResponse.proto +0/−0
- fixture/CreateContact.yaml +10/−0
- fixture/CreateContactList.yaml +10/−0
- fixture/CreateContactListResponse.proto +0/−0
- fixture/CreateContactResponse.proto +0/−0
- fixture/CreateCustomVerificationEmailTemplate.yaml +10/−0
- fixture/CreateCustomVerificationEmailTemplateResponse.proto +0/−0
- fixture/CreateDedicatedIpPool.yaml +10/−0
- fixture/CreateDedicatedIpPoolResponse.proto +0/−0
- fixture/CreateDeliverabilityTestReport.yaml +10/−0
- fixture/CreateDeliverabilityTestReportResponse.proto +0/−0
- fixture/CreateEmailIdentity.yaml +10/−0
- fixture/CreateEmailIdentityPolicy.yaml +10/−0
- fixture/CreateEmailIdentityPolicyResponse.proto +0/−0
- fixture/CreateEmailIdentityResponse.proto +0/−0
- fixture/CreateEmailTemplate.yaml +10/−0
- fixture/CreateEmailTemplateResponse.proto +0/−0
- fixture/CreateImportJob.yaml +10/−0
- fixture/CreateImportJobResponse.proto +0/−0
- fixture/DeleteConfigurationSet.yaml +10/−0
- fixture/DeleteConfigurationSetEventDestination.yaml +10/−0
- fixture/DeleteConfigurationSetEventDestinationResponse.proto +0/−0
- fixture/DeleteConfigurationSetResponse.proto +0/−0
- fixture/DeleteContact.yaml +10/−0
- fixture/DeleteContactList.yaml +10/−0
- fixture/DeleteContactListResponse.proto +0/−0
- fixture/DeleteContactResponse.proto +0/−0
- fixture/DeleteCustomVerificationEmailTemplate.yaml +10/−0
- fixture/DeleteCustomVerificationEmailTemplateResponse.proto +0/−0
- fixture/DeleteDedicatedIpPool.yaml +10/−0
- fixture/DeleteDedicatedIpPoolResponse.proto +0/−0
- fixture/DeleteEmailIdentity.yaml +10/−0
- fixture/DeleteEmailIdentityPolicy.yaml +10/−0
- fixture/DeleteEmailIdentityPolicyResponse.proto +0/−0
- fixture/DeleteEmailIdentityResponse.proto +0/−0
- fixture/DeleteEmailTemplate.yaml +10/−0
- fixture/DeleteEmailTemplateResponse.proto +0/−0
- fixture/DeleteSuppressedDestination.yaml +10/−0
- fixture/DeleteSuppressedDestinationResponse.proto +0/−0
- fixture/GetAccount.yaml +10/−0
- fixture/GetAccountResponse.proto +0/−0
- fixture/GetBlacklistReports.yaml +10/−0
- fixture/GetBlacklistReportsResponse.proto +0/−0
- fixture/GetConfigurationSet.yaml +10/−0
- fixture/GetConfigurationSetEventDestinations.yaml +10/−0
- fixture/GetConfigurationSetEventDestinationsResponse.proto +0/−0
- fixture/GetConfigurationSetResponse.proto +0/−0
- fixture/GetContact.yaml +10/−0
- fixture/GetContactList.yaml +10/−0
- fixture/GetContactListResponse.proto +0/−0
- fixture/GetContactResponse.proto +0/−0
- fixture/GetCustomVerificationEmailTemplate.yaml +10/−0
- fixture/GetCustomVerificationEmailTemplateResponse.proto +0/−0
- fixture/GetDedicatedIp.yaml +10/−0
- fixture/GetDedicatedIpPool.yaml +10/−0
- fixture/GetDedicatedIpPoolResponse.proto +0/−0
- fixture/GetDedicatedIpResponse.proto +0/−0
- fixture/GetDedicatedIps.yaml +10/−0
- fixture/GetDedicatedIpsResponse.proto +0/−0
- fixture/GetDeliverabilityDashboardOptions.yaml +10/−0
- fixture/GetDeliverabilityDashboardOptionsResponse.proto +0/−0
- fixture/GetDeliverabilityTestReport.yaml +10/−0
- fixture/GetDeliverabilityTestReportResponse.proto +0/−0
- fixture/GetDomainDeliverabilityCampaign.yaml +10/−0
- fixture/GetDomainDeliverabilityCampaignResponse.proto +0/−0
- fixture/GetDomainStatisticsReport.yaml +10/−0
- fixture/GetDomainStatisticsReportResponse.proto +0/−0
- fixture/GetEmailIdentity.yaml +10/−0
- fixture/GetEmailIdentityPolicies.yaml +10/−0
- fixture/GetEmailIdentityPoliciesResponse.proto +0/−0
- fixture/GetEmailIdentityResponse.proto +0/−0
- fixture/GetEmailTemplate.yaml +10/−0
- fixture/GetEmailTemplateResponse.proto +0/−0
- fixture/GetImportJob.yaml +10/−0
- fixture/GetImportJobResponse.proto +0/−0
- fixture/GetSuppressedDestination.yaml +10/−0
- fixture/GetSuppressedDestinationResponse.proto +0/−0
- fixture/ListConfigurationSets.yaml +10/−0
- fixture/ListConfigurationSetsResponse.proto +0/−0
- fixture/ListContactLists.yaml +10/−0
- fixture/ListContactListsResponse.proto +0/−0
- fixture/ListContacts.yaml +10/−0
- fixture/ListContactsResponse.proto +0/−0
- fixture/ListCustomVerificationEmailTemplates.yaml +10/−0
- fixture/ListCustomVerificationEmailTemplatesResponse.proto +0/−0
- fixture/ListDedicatedIpPools.yaml +10/−0
- fixture/ListDedicatedIpPoolsResponse.proto +0/−0
- fixture/ListDeliverabilityTestReports.yaml +10/−0
- fixture/ListDeliverabilityTestReportsResponse.proto +0/−0
- fixture/ListDomainDeliverabilityCampaigns.yaml +10/−0
- fixture/ListDomainDeliverabilityCampaignsResponse.proto +0/−0
- fixture/ListEmailIdentities.yaml +10/−0
- fixture/ListEmailIdentitiesResponse.proto +0/−0
- fixture/ListEmailTemplates.yaml +10/−0
- fixture/ListEmailTemplatesResponse.proto +0/−0
- fixture/ListImportJobs.yaml +10/−0
- fixture/ListImportJobsResponse.proto +0/−0
- fixture/ListRecommendations.yaml +10/−0
- fixture/ListRecommendationsResponse.proto +0/−0
- fixture/ListSuppressedDestinations.yaml +10/−0
- fixture/ListSuppressedDestinationsResponse.proto +0/−0
- fixture/ListTagsForResource.yaml +10/−0
- fixture/ListTagsForResourceResponse.proto +0/−0
- fixture/PutAccountDedicatedIpWarmupAttributes.yaml +10/−0
- fixture/PutAccountDedicatedIpWarmupAttributesResponse.proto +0/−0
- fixture/PutAccountDetails.yaml +10/−0
- fixture/PutAccountDetailsResponse.proto +0/−0
- fixture/PutAccountSendingAttributes.yaml +10/−0
- fixture/PutAccountSendingAttributesResponse.proto +0/−0
- fixture/PutAccountSuppressionAttributes.yaml +10/−0
- fixture/PutAccountSuppressionAttributesResponse.proto +0/−0
- fixture/PutAccountVdmAttributes.yaml +10/−0
- fixture/PutAccountVdmAttributesResponse.proto +0/−0
- fixture/PutConfigurationSetDeliveryOptions.yaml +10/−0
- fixture/PutConfigurationSetDeliveryOptionsResponse.proto +0/−0
- fixture/PutConfigurationSetReputationOptions.yaml +10/−0
- fixture/PutConfigurationSetReputationOptionsResponse.proto +0/−0
- fixture/PutConfigurationSetSendingOptions.yaml +10/−0
- fixture/PutConfigurationSetSendingOptionsResponse.proto +0/−0
- fixture/PutConfigurationSetSuppressionOptions.yaml +10/−0
- fixture/PutConfigurationSetSuppressionOptionsResponse.proto +0/−0
- fixture/PutConfigurationSetTrackingOptions.yaml +10/−0
- fixture/PutConfigurationSetTrackingOptionsResponse.proto +0/−0
- fixture/PutConfigurationSetVdmOptions.yaml +10/−0
- fixture/PutConfigurationSetVdmOptionsResponse.proto +0/−0
- fixture/PutDedicatedIpInPool.yaml +10/−0
- fixture/PutDedicatedIpInPoolResponse.proto +0/−0
- fixture/PutDedicatedIpWarmupAttributes.yaml +10/−0
- fixture/PutDedicatedIpWarmupAttributesResponse.proto +0/−0
- fixture/PutDeliverabilityDashboardOption.yaml +10/−0
- fixture/PutDeliverabilityDashboardOptionResponse.proto +0/−0
- fixture/PutEmailIdentityConfigurationSetAttributes.yaml +10/−0
- fixture/PutEmailIdentityConfigurationSetAttributesResponse.proto +0/−0
- fixture/PutEmailIdentityDkimAttributes.yaml +10/−0
- fixture/PutEmailIdentityDkimAttributesResponse.proto +0/−0
- fixture/PutEmailIdentityDkimSigningAttributes.yaml +10/−0
- fixture/PutEmailIdentityDkimSigningAttributesResponse.proto +0/−0
- fixture/PutEmailIdentityFeedbackAttributes.yaml +10/−0
- fixture/PutEmailIdentityFeedbackAttributesResponse.proto +0/−0
- fixture/PutEmailIdentityMailFromAttributes.yaml +10/−0
- fixture/PutEmailIdentityMailFromAttributesResponse.proto +0/−0
- fixture/PutSuppressedDestination.yaml +10/−0
- fixture/PutSuppressedDestinationResponse.proto +0/−0
- fixture/SendBulkEmail.yaml +10/−0
- fixture/SendBulkEmailResponse.proto +0/−0
- fixture/SendCustomVerificationEmail.yaml +10/−0
- fixture/SendCustomVerificationEmailResponse.proto +0/−0
- fixture/SendEmail.yaml +10/−0
- fixture/SendEmailResponse.proto +0/−0
- fixture/TagResource.yaml +10/−0
- fixture/TagResourceResponse.proto +0/−0
- fixture/TestRenderEmailTemplate.yaml +10/−0
- fixture/TestRenderEmailTemplateResponse.proto +0/−0
- fixture/UntagResource.yaml +10/−0
- fixture/UntagResourceResponse.proto +0/−0
- fixture/UpdateConfigurationSetEventDestination.yaml +10/−0
- fixture/UpdateConfigurationSetEventDestinationResponse.proto +0/−0
- fixture/UpdateContact.yaml +10/−0
- fixture/UpdateContactList.yaml +10/−0
- fixture/UpdateContactListResponse.proto +0/−0
- fixture/UpdateContactResponse.proto +0/−0
- fixture/UpdateCustomVerificationEmailTemplate.yaml +10/−0
- fixture/UpdateCustomVerificationEmailTemplateResponse.proto +0/−0
- fixture/UpdateEmailIdentityPolicy.yaml +10/−0
- fixture/UpdateEmailIdentityPolicyResponse.proto +0/−0
- fixture/UpdateEmailTemplate.yaml +10/−0
- fixture/UpdateEmailTemplateResponse.proto +0/−0
- gen/Amazonka/SESV2.hs +1117/−0
- gen/Amazonka/SESV2/BatchGetMetricData.hs +190/−0
- gen/Amazonka/SESV2/CreateConfigurationSet.hs +293/−0
- gen/Amazonka/SESV2/CreateConfigurationSetEventDestination.hs +245/−0
- gen/Amazonka/SESV2/CreateContact.hs +219/−0
- gen/Amazonka/SESV2/CreateContactList.hs +200/−0
- gen/Amazonka/SESV2/CreateCustomVerificationEmailTemplate.hs +311/−0
- gen/Amazonka/SESV2/CreateDedicatedIpPool.hs +196/−0
- gen/Amazonka/SESV2/CreateDeliverabilityTestReport.hs +300/−0
- gen/Amazonka/SESV2/CreateEmailIdentity.hs +321/−0
- gen/Amazonka/SESV2/CreateEmailIdentityPolicy.hs +238/−0
- gen/Amazonka/SESV2/CreateEmailTemplate.hs +190/−0
- gen/Amazonka/SESV2/CreateImportJob.hs +194/−0
- gen/Amazonka/SESV2/DeleteConfigurationSet.hs +167/−0
- gen/Amazonka/SESV2/DeleteConfigurationSetEventDestination.hs +214/−0
- gen/Amazonka/SESV2/DeleteContact.hs +166/−0
- gen/Amazonka/SESV2/DeleteContactList.hs +153/−0
- gen/Amazonka/SESV2/DeleteCustomVerificationEmailTemplate.hs +195/−0
- gen/Amazonka/SESV2/DeleteDedicatedIpPool.hs +152/−0
- gen/Amazonka/SESV2/DeleteEmailIdentity.hs +160/−0
- gen/Amazonka/SESV2/DeleteEmailIdentityPolicy.hs +205/−0
- gen/Amazonka/SESV2/DeleteEmailTemplate.hs +157/−0
- gen/Amazonka/SESV2/DeleteSuppressedDestination.hs +165/−0
- gen/Amazonka/SESV2/GetAccount.hs +320/−0
- gen/Amazonka/SESV2/GetBlacklistReports.hs +183/−0
- gen/Amazonka/SESV2/GetConfigurationSet.hs +282/−0
- gen/Amazonka/SESV2/GetConfigurationSetEventDestinations.hs +210/−0
- gen/Amazonka/SESV2/GetContact.hs +275/−0
- gen/Amazonka/SESV2/GetContactList.hs +228/−0
- gen/Amazonka/SESV2/GetCustomVerificationEmailTemplate.hs +274/−0
- gen/Amazonka/SESV2/GetDedicatedIp.hs +170/−0
- gen/Amazonka/SESV2/GetDedicatedIpPool.hs +163/−0
- gen/Amazonka/SESV2/GetDedicatedIps.hs +230/−0
- gen/Amazonka/SESV2/GetDeliverabilityDashboardOptions.hs +282/−0
- gen/Amazonka/SESV2/GetDeliverabilityTestReport.hs +246/−0
- gen/Amazonka/SESV2/GetDomainDeliverabilityCampaign.hs +202/−0
- gen/Amazonka/SESV2/GetDomainStatisticsReport.hs +246/−0
- gen/Amazonka/SESV2/GetEmailIdentity.hs +354/−0
- gen/Amazonka/SESV2/GetEmailIdentityPolicies.hs +186/−0
- gen/Amazonka/SESV2/GetEmailTemplate.hs +189/−0
- gen/Amazonka/SESV2/GetImportJob.hs +262/−0
- gen/Amazonka/SESV2/GetSuppressedDestination.hs +179/−0
- gen/Amazonka/SESV2/Lens.hs +1139/−0
- gen/Amazonka/SESV2/ListConfigurationSets.hs +227/−0
- gen/Amazonka/SESV2/ListContactLists.hs +214/−0
- gen/Amazonka/SESV2/ListContacts.hs +248/−0
- gen/Amazonka/SESV2/ListCustomVerificationEmailTemplates.hs +265/−0
- gen/Amazonka/SESV2/ListDedicatedIpPools.hs +216/−0
- gen/Amazonka/SESV2/ListDeliverabilityTestReports.hs +248/−0
- gen/Amazonka/SESV2/ListDomainDeliverabilityCampaigns.hs +314/−0
- gen/Amazonka/SESV2/ListEmailIdentities.hs +233/−0
- gen/Amazonka/SESV2/ListEmailTemplates.hs +227/−0
- gen/Amazonka/SESV2/ListImportJobs.hs +239/−0
- gen/Amazonka/SESV2/ListRecommendations.hs +254/−0
- gen/Amazonka/SESV2/ListSuppressedDestinations.hs +273/−0
- gen/Amazonka/SESV2/ListTagsForResource.hs +173/−0
- gen/Amazonka/SESV2/PutAccountDedicatedIpWarmupAttributes.hs +202/−0
- gen/Amazonka/SESV2/PutAccountDetails.hs +282/−0
- gen/Amazonka/SESV2/PutAccountSendingAttributes.hs +179/−0
- gen/Amazonka/SESV2/PutAccountSuppressionAttributes.hs +210/−0
- gen/Amazonka/SESV2/PutAccountVdmAttributes.hs +165/−0
- gen/Amazonka/SESV2/PutConfigurationSetDeliveryOptions.hs +240/−0
- gen/Amazonka/SESV2/PutConfigurationSetReputationOptions.hs +219/−0
- gen/Amazonka/SESV2/PutConfigurationSetSendingOptions.hs +218/−0
- gen/Amazonka/SESV2/PutConfigurationSetSuppressionOptions.hs +247/−0
- gen/Amazonka/SESV2/PutConfigurationSetTrackingOptions.hs +212/−0
- gen/Amazonka/SESV2/PutConfigurationSetVdmOptions.hs +193/−0
- gen/Amazonka/SESV2/PutDedicatedIpInPool.hs +194/−0
- gen/Amazonka/SESV2/PutDedicatedIpWarmupAttributes.hs +205/−0
- gen/Amazonka/SESV2/PutDeliverabilityDashboardOption.hs +228/−0
- gen/Amazonka/SESV2/PutEmailIdentityConfigurationSetAttributes.hs +213/−0
- gen/Amazonka/SESV2/PutEmailIdentityDkimAttributes.hs +212/−0
- gen/Amazonka/SESV2/PutEmailIdentityDkimSigningAttributes.hs +431/−0
- gen/Amazonka/SESV2/PutEmailIdentityFeedbackAttributes.hs +251/−0
- gen/Amazonka/SESV2/PutEmailIdentityMailFromAttributes.hs +272/−0
- gen/Amazonka/SESV2/PutSuppressedDestination.hs +189/−0
- gen/Amazonka/SESV2/SendBulkEmail.hs +395/−0
- gen/Amazonka/SESV2/SendCustomVerificationEmail.hs +228/−0
- gen/Amazonka/SESV2/SendEmail.hs +445/−0
- gen/Amazonka/SESV2/TagResource.hs +185/−0
- gen/Amazonka/SESV2/TestRenderEmailTemplate.hs +217/−0
- gen/Amazonka/SESV2/Types.hs +956/−0
- gen/Amazonka/SESV2/Types/AccountDetails.hs +166/−0
- gen/Amazonka/SESV2/Types/BatchGetMetricDataQuery.hs +285/−0
- gen/Amazonka/SESV2/Types/BehaviorOnMxFailure.hs +80/−0
- gen/Amazonka/SESV2/Types/BlacklistEntry.hs +101/−0
- gen/Amazonka/SESV2/Types/Body.hs +95/−0
- gen/Amazonka/SESV2/Types/BulkEmailContent.hs +68/−0
- gen/Amazonka/SESV2/Types/BulkEmailEntry.hs +140/−0
- gen/Amazonka/SESV2/Types/BulkEmailEntryResult.hs +257/−0
- gen/Amazonka/SESV2/Types/BulkEmailStatus.hs +131/−0
- gen/Amazonka/SESV2/Types/CloudWatchDestination.hs +93/−0
- gen/Amazonka/SESV2/Types/CloudWatchDimensionConfiguration.hs +192/−0
- gen/Amazonka/SESV2/Types/Contact.hs +130/−0
- gen/Amazonka/SESV2/Types/ContactLanguage.hs +71/−0
- gen/Amazonka/SESV2/Types/ContactList.hs +85/−0
- gen/Amazonka/SESV2/Types/ContactListDestination.hs +123/−0
- gen/Amazonka/SESV2/Types/ContactListImportAction.hs +71/−0
- gen/Amazonka/SESV2/Types/Content.hs +94/−0
- gen/Amazonka/SESV2/Types/CustomVerificationEmailTemplateMetadata.hs +139/−0
- gen/Amazonka/SESV2/Types/DailyVolume.hs +108/−0
- gen/Amazonka/SESV2/Types/DashboardAttributes.hs +101/−0
- gen/Amazonka/SESV2/Types/DashboardOptions.hs +104/−0
- gen/Amazonka/SESV2/Types/DataFormat.hs +72/−0
- gen/Amazonka/SESV2/Types/DedicatedIp.hs +150/−0
- gen/Amazonka/SESV2/Types/DedicatedIpPool.hs +107/−0
- gen/Amazonka/SESV2/Types/DeliverabilityDashboardAccountStatus.hs +79/−0
- gen/Amazonka/SESV2/Types/DeliverabilityTestReport.hs +156/−0
- gen/Amazonka/SESV2/Types/DeliverabilityTestStatus.hs +77/−0
- gen/Amazonka/SESV2/Types/DeliveryOptions.hs +110/−0
- gen/Amazonka/SESV2/Types/Destination.hs +113/−0
- gen/Amazonka/SESV2/Types/DimensionValueSource.hs +82/−0
- gen/Amazonka/SESV2/Types/DkimAttributes.hs +288/−0
- gen/Amazonka/SESV2/Types/DkimSigningAttributes.hs +119/−0
- gen/Amazonka/SESV2/Types/DkimSigningAttributesOrigin.hs +71/−0
- gen/Amazonka/SESV2/Types/DkimSigningKeyLength.hs +71/−0
- gen/Amazonka/SESV2/Types/DkimStatus.hs +104/−0
- gen/Amazonka/SESV2/Types/DomainDeliverabilityCampaign.hs +280/−0
- gen/Amazonka/SESV2/Types/DomainDeliverabilityTrackingOption.hs +138/−0
- gen/Amazonka/SESV2/Types/DomainIspPlacement.hs +140/−0
- gen/Amazonka/SESV2/Types/EmailContent.hs +169/−0
- gen/Amazonka/SESV2/Types/EmailTemplateContent.hs +110/−0
- gen/Amazonka/SESV2/Types/EmailTemplateMetadata.hs +85/−0
- gen/Amazonka/SESV2/Types/EventDestination.hs +212/−0
- gen/Amazonka/SESV2/Types/EventDestinationDefinition.hs +196/−0
- gen/Amazonka/SESV2/Types/EventType.hs +113/−0
- gen/Amazonka/SESV2/Types/FailureInfo.hs +87/−0
- gen/Amazonka/SESV2/Types/FeatureStatus.hs +71/−0
- gen/Amazonka/SESV2/Types/GuardianAttributes.hs +105/−0
- gen/Amazonka/SESV2/Types/GuardianOptions.hs +105/−0
- gen/Amazonka/SESV2/Types/IdentityInfo.hs +170/−0
- gen/Amazonka/SESV2/Types/IdentityType.hs +76/−0
- gen/Amazonka/SESV2/Types/ImportDataSource.hs +98/−0
- gen/Amazonka/SESV2/Types/ImportDestination.hs +105/−0
- gen/Amazonka/SESV2/Types/ImportDestinationType.hs +73/−0
- gen/Amazonka/SESV2/Types/ImportJobSummary.hs +135/−0
- gen/Amazonka/SESV2/Types/InboxPlacementTrackingOption.hs +103/−0
- gen/Amazonka/SESV2/Types/IspPlacement.hs +89/−0
- gen/Amazonka/SESV2/Types/JobStatus.hs +82/−0
- gen/Amazonka/SESV2/Types/KinesisFirehoseDestination.hs +109/−0
- gen/Amazonka/SESV2/Types/ListContactsFilter.hs +87/−0
- gen/Amazonka/SESV2/Types/ListManagementOptions.hs +87/−0
- gen/Amazonka/SESV2/Types/ListRecommendationsFilterKey.hs +95/−0
- gen/Amazonka/SESV2/Types/MailFromAttributes.hs +174/−0
- gen/Amazonka/SESV2/Types/MailFromDomainStatus.hs +95/−0
- gen/Amazonka/SESV2/Types/MailType.hs +71/−0
- gen/Amazonka/SESV2/Types/Message.hs +98/−0
- gen/Amazonka/SESV2/Types/MessageTag.hs +120/−0
- gen/Amazonka/SESV2/Types/Metric.hs +108/−0
- gen/Amazonka/SESV2/Types/MetricDataError.hs +116/−0
- gen/Amazonka/SESV2/Types/MetricDataResult.hs +96/−0
- gen/Amazonka/SESV2/Types/MetricDimensionName.hs +85/−0
- gen/Amazonka/SESV2/Types/MetricNamespace.hs +66/−0
- gen/Amazonka/SESV2/Types/OverallVolume.hs +112/−0
- gen/Amazonka/SESV2/Types/PinpointDestination.hs +89/−0
- gen/Amazonka/SESV2/Types/PlacementStatistics.hs +136/−0
- gen/Amazonka/SESV2/Types/QueryErrorCode.hs +71/−0
- gen/Amazonka/SESV2/Types/RawMessage.hs +136/−0
- gen/Amazonka/SESV2/Types/Recommendation.hs +156/−0
- gen/Amazonka/SESV2/Types/RecommendationImpact.hs +71/−0
- gen/Amazonka/SESV2/Types/RecommendationStatus.hs +71/−0
- gen/Amazonka/SESV2/Types/RecommendationType.hs +76/−0
- gen/Amazonka/SESV2/Types/ReplacementEmailContent.hs +75/−0
- gen/Amazonka/SESV2/Types/ReplacementTemplate.hs +80/−0
- gen/Amazonka/SESV2/Types/ReputationOptions.hs +113/−0
- gen/Amazonka/SESV2/Types/ReviewDetails.hs +123/−0
- gen/Amazonka/SESV2/Types/ReviewStatus.hs +81/−0
- gen/Amazonka/SESV2/Types/ScalingMode.hs +71/−0
- gen/Amazonka/SESV2/Types/SendQuota.hs +116/−0
- gen/Amazonka/SESV2/Types/SendingOptions.hs +81/−0
- gen/Amazonka/SESV2/Types/SnsDestination.hs +83/−0
- gen/Amazonka/SESV2/Types/SubscriptionStatus.hs +71/−0
- gen/Amazonka/SESV2/Types/SuppressedDestination.hs +133/−0
- gen/Amazonka/SESV2/Types/SuppressedDestinationAttributes.hs +103/−0
- gen/Amazonka/SESV2/Types/SuppressedDestinationSummary.hs +117/−0
- gen/Amazonka/SESV2/Types/SuppressionAttributes.hs +107/−0
- gen/Amazonka/SESV2/Types/SuppressionListDestination.hs +106/−0
- gen/Amazonka/SESV2/Types/SuppressionListImportAction.hs +77/−0
- gen/Amazonka/SESV2/Types/SuppressionListReason.hs +81/−0
- gen/Amazonka/SESV2/Types/SuppressionOptions.hs +116/−0
- gen/Amazonka/SESV2/Types/Tag.hs +137/−0
- gen/Amazonka/SESV2/Types/Template.hs +114/−0
- gen/Amazonka/SESV2/Types/TlsPolicy.hs +76/−0
- gen/Amazonka/SESV2/Types/Topic.hs +137/−0
- gen/Amazonka/SESV2/Types/TopicFilter.hs +90/−0
- gen/Amazonka/SESV2/Types/TopicPreference.hs +102/−0
- gen/Amazonka/SESV2/Types/TrackingOptions.hs +93/−0
- gen/Amazonka/SESV2/Types/VdmAttributes.hs +135/−0
- gen/Amazonka/SESV2/Types/VdmOptions.hs +104/−0
- gen/Amazonka/SESV2/Types/VerificationStatus.hs +86/−0
- gen/Amazonka/SESV2/Types/VolumeStatistics.hs +118/−0
- gen/Amazonka/SESV2/Types/WarmupStatus.hs +72/−0
- gen/Amazonka/SESV2/UntagResource.hs +186/−0
- gen/Amazonka/SESV2/UpdateConfigurationSetEventDestination.hs +244/−0
- gen/Amazonka/SESV2/UpdateContact.hs +220/−0
- gen/Amazonka/SESV2/UpdateContactList.hs +190/−0
- gen/Amazonka/SESV2/UpdateCustomVerificationEmailTemplate.hs +316/−0
- gen/Amazonka/SESV2/UpdateEmailIdentityPolicy.hs +239/−0
- gen/Amazonka/SESV2/UpdateEmailTemplate.hs +191/−0
- gen/Amazonka/SESV2/Waiters.hs +24/−0
- src/.gitkeep +0/−0
- test/Main.hs +23/−0
- test/Test/Amazonka/Gen/SESV2.hs +1758/−0
- test/Test/Amazonka/SESV2.hs +20/−0
- test/Test/Amazonka/SESV2/Internal.hs +8/−0
+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+ means each individual or legal entity that creates, contributes to+ the creation of, or owns Covered Software.++1.2. "Contributor Version"+ means the combination of the Contributions of others (if any) used+ by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+ means Covered Software of a particular Contributor.++1.4. "Covered Software"+ means Source Code Form to which the initial Contributor has attached+ the notice in Exhibit A, the Executable Form of such Source Code+ Form, and Modifications of such Source Code Form, in each case+ including portions thereof.++1.5. "Incompatible With Secondary Licenses"+ means++ (a) that the initial Contributor has attached the notice described+ in Exhibit B to the Covered Software; or++ (b) that the Covered Software was made available under the terms of+ version 1.1 or earlier of the License, but not also under the+ terms of a Secondary License.++1.6. "Executable Form"+ means any form of the work other than Source Code Form.++1.7. "Larger Work"+ means a work that combines Covered Software with other material, in+ a separate file or files, that is not Covered Software.++1.8. "License"+ means this document.++1.9. "Licensable"+ means having the right to grant, to the maximum extent possible,+ whether at the time of the initial grant or subsequently, any and+ all of the rights conveyed by this License.++1.10. "Modifications"+ means any of the following:++ (a) any file in Source Code Form that results from an addition to,+ deletion from, or modification of the contents of Covered+ Software; or++ (b) any new file in Source Code Form that contains any Covered+ Software.++1.11. "Patent Claims" of a Contributor+ means any patent claim(s), including without limitation, method,+ process, and apparatus claims, in any patent Licensable by such+ Contributor that would be infringed, but for the grant of the+ License, by the making, using, selling, offering for sale, having+ made, import, or transfer of either its Contributions or its+ Contributor Version.++1.12. "Secondary License"+ means either the GNU General Public License, Version 2.0, the GNU+ Lesser General Public License, Version 2.1, the GNU Affero General+ Public License, Version 3.0, or any later versions of those+ licenses.++1.13. "Source Code Form"+ means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+ means an individual or a legal entity exercising rights under this+ License. For legal entities, "You" includes any entity that+ controls, is controlled by, or is under common control with You. For+ purposes of this definition, "control" means (a) the power, direct+ or indirect, to cause the direction or management of such entity,+ whether by contract or otherwise, or (b) ownership of more than+ fifty percent (50%) of the outstanding shares or beneficial+ ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+ Licensable by such Contributor to use, reproduce, make available,+ modify, display, perform, distribute, and otherwise exploit its+ Contributions, either on an unmodified basis, with Modifications, or+ as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+ for sale, have made, import, and otherwise transfer either its+ Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+ or++(b) for infringements caused by: (i) Your and any other third party's+ modifications of Covered Software, or (ii) the combination of its+ Contributions with other software (except as part of its Contributor+ Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+ its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+ Form, as described in Section 3.1, and You must inform recipients of+ the Executable Form how they can obtain a copy of such Source Code+ Form by reasonable means in a timely manner, at a charge no more+ than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+ License, or sublicense it under different terms, provided that the+ license for the Executable Form does not attempt to limit or alter+ the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+* *+* 6. Disclaimer of Warranty *+* ------------------------- *+* *+* Covered Software is provided under this License on an "as is" *+* basis, without warranty of any kind, either expressed, implied, or *+* statutory, including, without limitation, warranties that the *+* Covered Software is free of defects, merchantable, fit for a *+* particular purpose or non-infringing. The entire risk as to the *+* quality and performance of the Covered Software is with You. *+* Should any Covered Software prove defective in any respect, You *+* (not any Contributor) assume the cost of any necessary servicing, *+* repair, or correction. This disclaimer of warranty constitutes an *+* essential part of this License. No use of any Covered Software is *+* authorized under this License except under this disclaimer. *+* *+************************************************************************++************************************************************************+* *+* 7. Limitation of Liability *+* -------------------------- *+* *+* Under no circumstances and under no legal theory, whether tort *+* (including negligence), contract, or otherwise, shall any *+* Contributor, or anyone who distributes Covered Software as *+* permitted above, be liable to You for any direct, indirect, *+* special, incidental, or consequential damages of any character *+* including, without limitation, damages for lost profits, loss of *+* goodwill, work stoppage, computer failure or malfunction, or any *+* and all other commercial damages or losses, even if such party *+* shall have been informed of the possibility of such damages. This *+* limitation of liability shall not apply to liability for death or *+* personal injury resulting from such party's negligence to the *+* extent applicable law prohibits such limitation. Some *+* jurisdictions do not allow the exclusion or limitation of *+* incidental or consequential damages, so this exclusion and *+* limitation may not apply to You. *+* *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++ This Source Code Form is subject to the terms of the Mozilla Public+ License, v. 2.0. If a copy of the MPL was not distributed with this+ file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,44 @@+# Amazon Simple Email Service SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2019-09-27@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-sesv2)+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.SESV2](http://hackage.haskell.org/package/amazonka-sesv2/docs/Amazonka-SESV2.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-sesv2` 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-sesv2.cabal view
@@ -0,0 +1,279 @@+cabal-version: 2.2+name: amazonka-sesv2+version: 2.0+synopsis: Amazon Simple Email Service SDK.+homepage: https://github.com/brendanhay/amazonka+bug-reports: https://github.com/brendanhay/amazonka/issues+license: MPL-2.0+license-file: LICENSE+author: Brendan Hay+maintainer:+ Brendan Hay <brendan.g.hay+amazonka@gmail.com>, Jack Kelly <jack@jackkelly.name>++copyright: Copyright (c) 2013-2023 Brendan Hay+category: AWS+build-type: Simple+extra-source-files:+ fixture/*.proto+ fixture/*.yaml+ README.md+ src/.gitkeep++description:+ Derived from API version @2019-09-27@ 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.SESV2.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.SESV2" 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-sesv2++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.SESV2+ Amazonka.SESV2.BatchGetMetricData+ Amazonka.SESV2.CreateConfigurationSet+ Amazonka.SESV2.CreateConfigurationSetEventDestination+ Amazonka.SESV2.CreateContact+ Amazonka.SESV2.CreateContactList+ Amazonka.SESV2.CreateCustomVerificationEmailTemplate+ Amazonka.SESV2.CreateDedicatedIpPool+ Amazonka.SESV2.CreateDeliverabilityTestReport+ Amazonka.SESV2.CreateEmailIdentity+ Amazonka.SESV2.CreateEmailIdentityPolicy+ Amazonka.SESV2.CreateEmailTemplate+ Amazonka.SESV2.CreateImportJob+ Amazonka.SESV2.DeleteConfigurationSet+ Amazonka.SESV2.DeleteConfigurationSetEventDestination+ Amazonka.SESV2.DeleteContact+ Amazonka.SESV2.DeleteContactList+ Amazonka.SESV2.DeleteCustomVerificationEmailTemplate+ Amazonka.SESV2.DeleteDedicatedIpPool+ Amazonka.SESV2.DeleteEmailIdentity+ Amazonka.SESV2.DeleteEmailIdentityPolicy+ Amazonka.SESV2.DeleteEmailTemplate+ Amazonka.SESV2.DeleteSuppressedDestination+ Amazonka.SESV2.GetAccount+ Amazonka.SESV2.GetBlacklistReports+ Amazonka.SESV2.GetConfigurationSet+ Amazonka.SESV2.GetConfigurationSetEventDestinations+ Amazonka.SESV2.GetContact+ Amazonka.SESV2.GetContactList+ Amazonka.SESV2.GetCustomVerificationEmailTemplate+ Amazonka.SESV2.GetDedicatedIp+ Amazonka.SESV2.GetDedicatedIpPool+ Amazonka.SESV2.GetDedicatedIps+ Amazonka.SESV2.GetDeliverabilityDashboardOptions+ Amazonka.SESV2.GetDeliverabilityTestReport+ Amazonka.SESV2.GetDomainDeliverabilityCampaign+ Amazonka.SESV2.GetDomainStatisticsReport+ Amazonka.SESV2.GetEmailIdentity+ Amazonka.SESV2.GetEmailIdentityPolicies+ Amazonka.SESV2.GetEmailTemplate+ Amazonka.SESV2.GetImportJob+ Amazonka.SESV2.GetSuppressedDestination+ Amazonka.SESV2.Lens+ Amazonka.SESV2.ListConfigurationSets+ Amazonka.SESV2.ListContactLists+ Amazonka.SESV2.ListContacts+ Amazonka.SESV2.ListCustomVerificationEmailTemplates+ Amazonka.SESV2.ListDedicatedIpPools+ Amazonka.SESV2.ListDeliverabilityTestReports+ Amazonka.SESV2.ListDomainDeliverabilityCampaigns+ Amazonka.SESV2.ListEmailIdentities+ Amazonka.SESV2.ListEmailTemplates+ Amazonka.SESV2.ListImportJobs+ Amazonka.SESV2.ListRecommendations+ Amazonka.SESV2.ListSuppressedDestinations+ Amazonka.SESV2.ListTagsForResource+ Amazonka.SESV2.PutAccountDedicatedIpWarmupAttributes+ Amazonka.SESV2.PutAccountDetails+ Amazonka.SESV2.PutAccountSendingAttributes+ Amazonka.SESV2.PutAccountSuppressionAttributes+ Amazonka.SESV2.PutAccountVdmAttributes+ Amazonka.SESV2.PutConfigurationSetDeliveryOptions+ Amazonka.SESV2.PutConfigurationSetReputationOptions+ Amazonka.SESV2.PutConfigurationSetSendingOptions+ Amazonka.SESV2.PutConfigurationSetSuppressionOptions+ Amazonka.SESV2.PutConfigurationSetTrackingOptions+ Amazonka.SESV2.PutConfigurationSetVdmOptions+ Amazonka.SESV2.PutDedicatedIpInPool+ Amazonka.SESV2.PutDedicatedIpWarmupAttributes+ Amazonka.SESV2.PutDeliverabilityDashboardOption+ Amazonka.SESV2.PutEmailIdentityConfigurationSetAttributes+ Amazonka.SESV2.PutEmailIdentityDkimAttributes+ Amazonka.SESV2.PutEmailIdentityDkimSigningAttributes+ Amazonka.SESV2.PutEmailIdentityFeedbackAttributes+ Amazonka.SESV2.PutEmailIdentityMailFromAttributes+ Amazonka.SESV2.PutSuppressedDestination+ Amazonka.SESV2.SendBulkEmail+ Amazonka.SESV2.SendCustomVerificationEmail+ Amazonka.SESV2.SendEmail+ Amazonka.SESV2.TagResource+ Amazonka.SESV2.TestRenderEmailTemplate+ Amazonka.SESV2.Types+ Amazonka.SESV2.Types.AccountDetails+ Amazonka.SESV2.Types.BatchGetMetricDataQuery+ Amazonka.SESV2.Types.BehaviorOnMxFailure+ Amazonka.SESV2.Types.BlacklistEntry+ Amazonka.SESV2.Types.Body+ Amazonka.SESV2.Types.BulkEmailContent+ Amazonka.SESV2.Types.BulkEmailEntry+ Amazonka.SESV2.Types.BulkEmailEntryResult+ Amazonka.SESV2.Types.BulkEmailStatus+ Amazonka.SESV2.Types.CloudWatchDestination+ Amazonka.SESV2.Types.CloudWatchDimensionConfiguration+ Amazonka.SESV2.Types.Contact+ Amazonka.SESV2.Types.ContactLanguage+ Amazonka.SESV2.Types.ContactList+ Amazonka.SESV2.Types.ContactListDestination+ Amazonka.SESV2.Types.ContactListImportAction+ Amazonka.SESV2.Types.Content+ Amazonka.SESV2.Types.CustomVerificationEmailTemplateMetadata+ Amazonka.SESV2.Types.DailyVolume+ Amazonka.SESV2.Types.DashboardAttributes+ Amazonka.SESV2.Types.DashboardOptions+ Amazonka.SESV2.Types.DataFormat+ Amazonka.SESV2.Types.DedicatedIp+ Amazonka.SESV2.Types.DedicatedIpPool+ Amazonka.SESV2.Types.DeliverabilityDashboardAccountStatus+ Amazonka.SESV2.Types.DeliverabilityTestReport+ Amazonka.SESV2.Types.DeliverabilityTestStatus+ Amazonka.SESV2.Types.DeliveryOptions+ Amazonka.SESV2.Types.Destination+ Amazonka.SESV2.Types.DimensionValueSource+ Amazonka.SESV2.Types.DkimAttributes+ Amazonka.SESV2.Types.DkimSigningAttributes+ Amazonka.SESV2.Types.DkimSigningAttributesOrigin+ Amazonka.SESV2.Types.DkimSigningKeyLength+ Amazonka.SESV2.Types.DkimStatus+ Amazonka.SESV2.Types.DomainDeliverabilityCampaign+ Amazonka.SESV2.Types.DomainDeliverabilityTrackingOption+ Amazonka.SESV2.Types.DomainIspPlacement+ Amazonka.SESV2.Types.EmailContent+ Amazonka.SESV2.Types.EmailTemplateContent+ Amazonka.SESV2.Types.EmailTemplateMetadata+ Amazonka.SESV2.Types.EventDestination+ Amazonka.SESV2.Types.EventDestinationDefinition+ Amazonka.SESV2.Types.EventType+ Amazonka.SESV2.Types.FailureInfo+ Amazonka.SESV2.Types.FeatureStatus+ Amazonka.SESV2.Types.GuardianAttributes+ Amazonka.SESV2.Types.GuardianOptions+ Amazonka.SESV2.Types.IdentityInfo+ Amazonka.SESV2.Types.IdentityType+ Amazonka.SESV2.Types.ImportDataSource+ Amazonka.SESV2.Types.ImportDestination+ Amazonka.SESV2.Types.ImportDestinationType+ Amazonka.SESV2.Types.ImportJobSummary+ Amazonka.SESV2.Types.InboxPlacementTrackingOption+ Amazonka.SESV2.Types.IspPlacement+ Amazonka.SESV2.Types.JobStatus+ Amazonka.SESV2.Types.KinesisFirehoseDestination+ Amazonka.SESV2.Types.ListContactsFilter+ Amazonka.SESV2.Types.ListManagementOptions+ Amazonka.SESV2.Types.ListRecommendationsFilterKey+ Amazonka.SESV2.Types.MailFromAttributes+ Amazonka.SESV2.Types.MailFromDomainStatus+ Amazonka.SESV2.Types.MailType+ Amazonka.SESV2.Types.Message+ Amazonka.SESV2.Types.MessageTag+ Amazonka.SESV2.Types.Metric+ Amazonka.SESV2.Types.MetricDataError+ Amazonka.SESV2.Types.MetricDataResult+ Amazonka.SESV2.Types.MetricDimensionName+ Amazonka.SESV2.Types.MetricNamespace+ Amazonka.SESV2.Types.OverallVolume+ Amazonka.SESV2.Types.PinpointDestination+ Amazonka.SESV2.Types.PlacementStatistics+ Amazonka.SESV2.Types.QueryErrorCode+ Amazonka.SESV2.Types.RawMessage+ Amazonka.SESV2.Types.Recommendation+ Amazonka.SESV2.Types.RecommendationImpact+ Amazonka.SESV2.Types.RecommendationStatus+ Amazonka.SESV2.Types.RecommendationType+ Amazonka.SESV2.Types.ReplacementEmailContent+ Amazonka.SESV2.Types.ReplacementTemplate+ Amazonka.SESV2.Types.ReputationOptions+ Amazonka.SESV2.Types.ReviewDetails+ Amazonka.SESV2.Types.ReviewStatus+ Amazonka.SESV2.Types.ScalingMode+ Amazonka.SESV2.Types.SendingOptions+ Amazonka.SESV2.Types.SendQuota+ Amazonka.SESV2.Types.SnsDestination+ Amazonka.SESV2.Types.SubscriptionStatus+ Amazonka.SESV2.Types.SuppressedDestination+ Amazonka.SESV2.Types.SuppressedDestinationAttributes+ Amazonka.SESV2.Types.SuppressedDestinationSummary+ Amazonka.SESV2.Types.SuppressionAttributes+ Amazonka.SESV2.Types.SuppressionListDestination+ Amazonka.SESV2.Types.SuppressionListImportAction+ Amazonka.SESV2.Types.SuppressionListReason+ Amazonka.SESV2.Types.SuppressionOptions+ Amazonka.SESV2.Types.Tag+ Amazonka.SESV2.Types.Template+ Amazonka.SESV2.Types.TlsPolicy+ Amazonka.SESV2.Types.Topic+ Amazonka.SESV2.Types.TopicFilter+ Amazonka.SESV2.Types.TopicPreference+ Amazonka.SESV2.Types.TrackingOptions+ Amazonka.SESV2.Types.VdmAttributes+ Amazonka.SESV2.Types.VdmOptions+ Amazonka.SESV2.Types.VerificationStatus+ Amazonka.SESV2.Types.VolumeStatistics+ Amazonka.SESV2.Types.WarmupStatus+ Amazonka.SESV2.UntagResource+ Amazonka.SESV2.UpdateConfigurationSetEventDestination+ Amazonka.SESV2.UpdateContact+ Amazonka.SESV2.UpdateContactList+ Amazonka.SESV2.UpdateCustomVerificationEmailTemplate+ Amazonka.SESV2.UpdateEmailIdentityPolicy+ Amazonka.SESV2.UpdateEmailTemplate+ Amazonka.SESV2.Waiters++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , base >=4.12 && <5++test-suite amazonka-sesv2-test+ type: exitcode-stdio-1.0+ default-language: Haskell2010+ hs-source-dirs: test+ main-is: Main.hs+ ghc-options: -Wall -threaded++ -- This section is encoded by the template and any modules added by+ -- hand outside these namespaces will not correctly be added to the+ -- distribution package.+ other-modules:+ Test.Amazonka.Gen.SESV2+ Test.Amazonka.SESV2+ Test.Amazonka.SESV2.Internal++ build-depends:+ , amazonka-core >=2.0 && <2.1+ , amazonka-sesv2+ , amazonka-test >=2.0 && <2.1+ , base+ , bytestring+ , case-insensitive+ , tasty+ , tasty-hunit+ , text+ , time+ , unordered-containers
+ fixture/BatchGetMetricData.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/BatchGetMetricDataResponse.proto view
+ fixture/CreateConfigurationSet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/CreateConfigurationSetEventDestination.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/CreateConfigurationSetEventDestinationResponse.proto view
+ fixture/CreateConfigurationSetResponse.proto view
+ fixture/CreateContact.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/CreateContactList.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/CreateContactListResponse.proto view
+ fixture/CreateContactResponse.proto view
+ fixture/CreateCustomVerificationEmailTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/CreateCustomVerificationEmailTemplateResponse.proto view
+ fixture/CreateDedicatedIpPool.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/CreateDedicatedIpPoolResponse.proto view
+ fixture/CreateDeliverabilityTestReport.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/CreateDeliverabilityTestReportResponse.proto view
+ fixture/CreateEmailIdentity.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/CreateEmailIdentityPolicy.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/CreateEmailIdentityPolicyResponse.proto view
+ fixture/CreateEmailIdentityResponse.proto view
+ fixture/CreateEmailTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/CreateEmailTemplateResponse.proto view
+ fixture/CreateImportJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/CreateImportJobResponse.proto view
+ fixture/DeleteConfigurationSet.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/DeleteConfigurationSetEventDestination.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/DeleteConfigurationSetEventDestinationResponse.proto view
+ fixture/DeleteConfigurationSetResponse.proto view
+ fixture/DeleteContact.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/DeleteContactList.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/DeleteContactListResponse.proto view
+ fixture/DeleteContactResponse.proto view
+ fixture/DeleteCustomVerificationEmailTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/DeleteCustomVerificationEmailTemplateResponse.proto view
+ fixture/DeleteDedicatedIpPool.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/DeleteDedicatedIpPoolResponse.proto view
+ fixture/DeleteEmailIdentity.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/DeleteEmailIdentityPolicy.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/DeleteEmailIdentityPolicyResponse.proto view
+ fixture/DeleteEmailIdentityResponse.proto view
+ fixture/DeleteEmailTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/DeleteEmailTemplateResponse.proto view
+ fixture/DeleteSuppressedDestination.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/DeleteSuppressedDestinationResponse.proto view
+ fixture/GetAccount.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/GetAccountResponse.proto view
+ fixture/GetBlacklistReports.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/GetBlacklistReportsResponse.proto view
+ fixture/GetConfigurationSet.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/GetConfigurationSetEventDestinations.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/GetConfigurationSetEventDestinationsResponse.proto view
+ fixture/GetConfigurationSetResponse.proto view
+ fixture/GetContact.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/GetContactList.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/GetContactListResponse.proto view
+ fixture/GetContactResponse.proto view
+ fixture/GetCustomVerificationEmailTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/GetCustomVerificationEmailTemplateResponse.proto view
+ fixture/GetDedicatedIp.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/GetDedicatedIpPool.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/GetDedicatedIpPoolResponse.proto view
+ fixture/GetDedicatedIpResponse.proto view
+ fixture/GetDedicatedIps.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/GetDedicatedIpsResponse.proto view
+ fixture/GetDeliverabilityDashboardOptions.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/GetDeliverabilityDashboardOptionsResponse.proto view
+ fixture/GetDeliverabilityTestReport.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/GetDeliverabilityTestReportResponse.proto view
+ fixture/GetDomainDeliverabilityCampaign.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/GetDomainDeliverabilityCampaignResponse.proto view
+ fixture/GetDomainStatisticsReport.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/GetDomainStatisticsReportResponse.proto view
+ fixture/GetEmailIdentity.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/GetEmailIdentityPolicies.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/GetEmailIdentityPoliciesResponse.proto view
+ fixture/GetEmailIdentityResponse.proto view
+ fixture/GetEmailTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/GetEmailTemplateResponse.proto view
+ fixture/GetImportJob.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/GetImportJobResponse.proto view
+ fixture/GetSuppressedDestination.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/GetSuppressedDestinationResponse.proto view
+ fixture/ListConfigurationSets.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/ListConfigurationSetsResponse.proto view
+ fixture/ListContactLists.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/ListContactListsResponse.proto view
+ fixture/ListContacts.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.us-east-1.amazonaws.com+ Content-Type: application/x-www-form-urlencoded; charset=utf-8+ X-Amz-Content-SHA256: abcdef+ X-Amz-Date: 20091028T223200Z+body:+ ''
+ fixture/ListContactsResponse.proto view
+ fixture/ListCustomVerificationEmailTemplates.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/ListCustomVerificationEmailTemplatesResponse.proto view
+ fixture/ListDedicatedIpPools.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/ListDedicatedIpPoolsResponse.proto view
+ fixture/ListDeliverabilityTestReports.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/ListDeliverabilityTestReportsResponse.proto view
+ fixture/ListDomainDeliverabilityCampaigns.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/ListDomainDeliverabilityCampaignsResponse.proto view
+ fixture/ListEmailIdentities.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/ListEmailIdentitiesResponse.proto view
+ fixture/ListEmailTemplates.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/ListEmailTemplatesResponse.proto view
+ fixture/ListImportJobs.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/ListImportJobsResponse.proto view
+ fixture/ListRecommendations.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/ListRecommendationsResponse.proto view
+ fixture/ListSuppressedDestinations.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/ListSuppressedDestinationsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/PutAccountDedicatedIpWarmupAttributes.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/PutAccountDedicatedIpWarmupAttributesResponse.proto view
+ fixture/PutAccountDetails.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/PutAccountDetailsResponse.proto view
+ fixture/PutAccountSendingAttributes.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/PutAccountSendingAttributesResponse.proto view
+ fixture/PutAccountSuppressionAttributes.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/PutAccountSuppressionAttributesResponse.proto view
+ fixture/PutAccountVdmAttributes.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/PutAccountVdmAttributesResponse.proto view
+ fixture/PutConfigurationSetDeliveryOptions.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/PutConfigurationSetDeliveryOptionsResponse.proto view
+ fixture/PutConfigurationSetReputationOptions.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/PutConfigurationSetReputationOptionsResponse.proto view
+ fixture/PutConfigurationSetSendingOptions.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/PutConfigurationSetSendingOptionsResponse.proto view
+ fixture/PutConfigurationSetSuppressionOptions.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/PutConfigurationSetSuppressionOptionsResponse.proto view
+ fixture/PutConfigurationSetTrackingOptions.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/PutConfigurationSetTrackingOptionsResponse.proto view
+ fixture/PutConfigurationSetVdmOptions.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/PutConfigurationSetVdmOptionsResponse.proto view
+ fixture/PutDedicatedIpInPool.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/PutDedicatedIpInPoolResponse.proto view
+ fixture/PutDedicatedIpWarmupAttributes.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/PutDedicatedIpWarmupAttributesResponse.proto view
+ fixture/PutDeliverabilityDashboardOption.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/PutDeliverabilityDashboardOptionResponse.proto view
+ fixture/PutEmailIdentityConfigurationSetAttributes.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/PutEmailIdentityConfigurationSetAttributesResponse.proto view
+ fixture/PutEmailIdentityDkimAttributes.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/PutEmailIdentityDkimAttributesResponse.proto view
+ fixture/PutEmailIdentityDkimSigningAttributes.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/PutEmailIdentityDkimSigningAttributesResponse.proto view
+ fixture/PutEmailIdentityFeedbackAttributes.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/PutEmailIdentityFeedbackAttributesResponse.proto view
+ fixture/PutEmailIdentityMailFromAttributes.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/PutEmailIdentityMailFromAttributesResponse.proto view
+ fixture/PutSuppressedDestination.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/PutSuppressedDestinationResponse.proto view
+ fixture/SendBulkEmail.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/SendBulkEmailResponse.proto view
+ fixture/SendCustomVerificationEmail.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/SendCustomVerificationEmailResponse.proto view
+ fixture/SendEmail.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/SendEmailResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/TestRenderEmailTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/TestRenderEmailTemplateResponse.proto view
+ fixture/UntagResource.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/UpdateConfigurationSetEventDestination.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/UpdateConfigurationSetEventDestinationResponse.proto view
+ fixture/UpdateContact.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/UpdateContactList.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/UpdateContactListResponse.proto view
+ fixture/UpdateContactResponse.proto view
+ fixture/UpdateCustomVerificationEmailTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/UpdateCustomVerificationEmailTemplateResponse.proto view
+ fixture/UpdateEmailIdentityPolicy.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/UpdateEmailIdentityPolicyResponse.proto view
+ fixture/UpdateEmailTemplate.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+ Authorization: AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/email/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+ Host: email.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/UpdateEmailTemplateResponse.proto view
+ gen/Amazonka/SESV2.hs view
@@ -0,0 +1,1117 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Amazonka.SESV2+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Derived from API version @2019-09-27@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Amazon SES API v2+--+-- <http://aws.amazon.com/ses Amazon SES> is an Amazon Web Services service+-- that you can use to send email messages to your customers.+--+-- If you\'re new to Amazon SES API v2, you might find it helpful to review+-- the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/ Amazon Simple Email Service Developer Guide>.+-- The /Amazon SES Developer Guide/ provides information and code samples+-- that demonstrate how to use Amazon SES API v2 features programmatically.+module Amazonka.SESV2+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ -- $errors++ -- ** AccountSuspendedException+ _AccountSuspendedException,++ -- ** AlreadyExistsException+ _AlreadyExistsException,++ -- ** BadRequestException+ _BadRequestException,++ -- ** ConcurrentModificationException+ _ConcurrentModificationException,++ -- ** ConflictException+ _ConflictException,++ -- ** InternalServiceErrorException+ _InternalServiceErrorException,++ -- ** InvalidNextTokenException+ _InvalidNextTokenException,++ -- ** LimitExceededException+ _LimitExceededException,++ -- ** MailFromDomainNotVerifiedException+ _MailFromDomainNotVerifiedException,++ -- ** MessageRejected+ _MessageRejected,++ -- ** NotFoundException+ _NotFoundException,++ -- ** SendingPausedException+ _SendingPausedException,++ -- ** TooManyRequestsException+ _TooManyRequestsException,++ -- * Waiters+ -- $waiters++ -- * Operations+ -- $operations++ -- ** BatchGetMetricData+ BatchGetMetricData (BatchGetMetricData'),+ newBatchGetMetricData,+ BatchGetMetricDataResponse (BatchGetMetricDataResponse'),+ newBatchGetMetricDataResponse,++ -- ** CreateConfigurationSet+ CreateConfigurationSet (CreateConfigurationSet'),+ newCreateConfigurationSet,+ CreateConfigurationSetResponse (CreateConfigurationSetResponse'),+ newCreateConfigurationSetResponse,++ -- ** CreateConfigurationSetEventDestination+ CreateConfigurationSetEventDestination (CreateConfigurationSetEventDestination'),+ newCreateConfigurationSetEventDestination,+ CreateConfigurationSetEventDestinationResponse (CreateConfigurationSetEventDestinationResponse'),+ newCreateConfigurationSetEventDestinationResponse,++ -- ** CreateContact+ CreateContact (CreateContact'),+ newCreateContact,+ CreateContactResponse (CreateContactResponse'),+ newCreateContactResponse,++ -- ** CreateContactList+ CreateContactList (CreateContactList'),+ newCreateContactList,+ CreateContactListResponse (CreateContactListResponse'),+ newCreateContactListResponse,++ -- ** CreateCustomVerificationEmailTemplate+ CreateCustomVerificationEmailTemplate (CreateCustomVerificationEmailTemplate'),+ newCreateCustomVerificationEmailTemplate,+ CreateCustomVerificationEmailTemplateResponse (CreateCustomVerificationEmailTemplateResponse'),+ newCreateCustomVerificationEmailTemplateResponse,++ -- ** CreateDedicatedIpPool+ CreateDedicatedIpPool (CreateDedicatedIpPool'),+ newCreateDedicatedIpPool,+ CreateDedicatedIpPoolResponse (CreateDedicatedIpPoolResponse'),+ newCreateDedicatedIpPoolResponse,++ -- ** CreateDeliverabilityTestReport+ CreateDeliverabilityTestReport (CreateDeliverabilityTestReport'),+ newCreateDeliverabilityTestReport,+ CreateDeliverabilityTestReportResponse (CreateDeliverabilityTestReportResponse'),+ newCreateDeliverabilityTestReportResponse,++ -- ** CreateEmailIdentity+ CreateEmailIdentity (CreateEmailIdentity'),+ newCreateEmailIdentity,+ CreateEmailIdentityResponse (CreateEmailIdentityResponse'),+ newCreateEmailIdentityResponse,++ -- ** CreateEmailIdentityPolicy+ CreateEmailIdentityPolicy (CreateEmailIdentityPolicy'),+ newCreateEmailIdentityPolicy,+ CreateEmailIdentityPolicyResponse (CreateEmailIdentityPolicyResponse'),+ newCreateEmailIdentityPolicyResponse,++ -- ** CreateEmailTemplate+ CreateEmailTemplate (CreateEmailTemplate'),+ newCreateEmailTemplate,+ CreateEmailTemplateResponse (CreateEmailTemplateResponse'),+ newCreateEmailTemplateResponse,++ -- ** CreateImportJob+ CreateImportJob (CreateImportJob'),+ newCreateImportJob,+ CreateImportJobResponse (CreateImportJobResponse'),+ newCreateImportJobResponse,++ -- ** DeleteConfigurationSet+ DeleteConfigurationSet (DeleteConfigurationSet'),+ newDeleteConfigurationSet,+ DeleteConfigurationSetResponse (DeleteConfigurationSetResponse'),+ newDeleteConfigurationSetResponse,++ -- ** DeleteConfigurationSetEventDestination+ DeleteConfigurationSetEventDestination (DeleteConfigurationSetEventDestination'),+ newDeleteConfigurationSetEventDestination,+ DeleteConfigurationSetEventDestinationResponse (DeleteConfigurationSetEventDestinationResponse'),+ newDeleteConfigurationSetEventDestinationResponse,++ -- ** DeleteContact+ DeleteContact (DeleteContact'),+ newDeleteContact,+ DeleteContactResponse (DeleteContactResponse'),+ newDeleteContactResponse,++ -- ** DeleteContactList+ DeleteContactList (DeleteContactList'),+ newDeleteContactList,+ DeleteContactListResponse (DeleteContactListResponse'),+ newDeleteContactListResponse,++ -- ** DeleteCustomVerificationEmailTemplate+ DeleteCustomVerificationEmailTemplate (DeleteCustomVerificationEmailTemplate'),+ newDeleteCustomVerificationEmailTemplate,+ DeleteCustomVerificationEmailTemplateResponse (DeleteCustomVerificationEmailTemplateResponse'),+ newDeleteCustomVerificationEmailTemplateResponse,++ -- ** DeleteDedicatedIpPool+ DeleteDedicatedIpPool (DeleteDedicatedIpPool'),+ newDeleteDedicatedIpPool,+ DeleteDedicatedIpPoolResponse (DeleteDedicatedIpPoolResponse'),+ newDeleteDedicatedIpPoolResponse,++ -- ** DeleteEmailIdentity+ DeleteEmailIdentity (DeleteEmailIdentity'),+ newDeleteEmailIdentity,+ DeleteEmailIdentityResponse (DeleteEmailIdentityResponse'),+ newDeleteEmailIdentityResponse,++ -- ** DeleteEmailIdentityPolicy+ DeleteEmailIdentityPolicy (DeleteEmailIdentityPolicy'),+ newDeleteEmailIdentityPolicy,+ DeleteEmailIdentityPolicyResponse (DeleteEmailIdentityPolicyResponse'),+ newDeleteEmailIdentityPolicyResponse,++ -- ** DeleteEmailTemplate+ DeleteEmailTemplate (DeleteEmailTemplate'),+ newDeleteEmailTemplate,+ DeleteEmailTemplateResponse (DeleteEmailTemplateResponse'),+ newDeleteEmailTemplateResponse,++ -- ** DeleteSuppressedDestination+ DeleteSuppressedDestination (DeleteSuppressedDestination'),+ newDeleteSuppressedDestination,+ DeleteSuppressedDestinationResponse (DeleteSuppressedDestinationResponse'),+ newDeleteSuppressedDestinationResponse,++ -- ** GetAccount+ GetAccount (GetAccount'),+ newGetAccount,+ GetAccountResponse (GetAccountResponse'),+ newGetAccountResponse,++ -- ** GetBlacklistReports+ GetBlacklistReports (GetBlacklistReports'),+ newGetBlacklistReports,+ GetBlacklistReportsResponse (GetBlacklistReportsResponse'),+ newGetBlacklistReportsResponse,++ -- ** GetConfigurationSet+ GetConfigurationSet (GetConfigurationSet'),+ newGetConfigurationSet,+ GetConfigurationSetResponse (GetConfigurationSetResponse'),+ newGetConfigurationSetResponse,++ -- ** GetConfigurationSetEventDestinations+ GetConfigurationSetEventDestinations (GetConfigurationSetEventDestinations'),+ newGetConfigurationSetEventDestinations,+ GetConfigurationSetEventDestinationsResponse (GetConfigurationSetEventDestinationsResponse'),+ newGetConfigurationSetEventDestinationsResponse,++ -- ** GetContact+ GetContact (GetContact'),+ newGetContact,+ GetContactResponse (GetContactResponse'),+ newGetContactResponse,++ -- ** GetContactList+ GetContactList (GetContactList'),+ newGetContactList,+ GetContactListResponse (GetContactListResponse'),+ newGetContactListResponse,++ -- ** GetCustomVerificationEmailTemplate+ GetCustomVerificationEmailTemplate (GetCustomVerificationEmailTemplate'),+ newGetCustomVerificationEmailTemplate,+ GetCustomVerificationEmailTemplateResponse (GetCustomVerificationEmailTemplateResponse'),+ newGetCustomVerificationEmailTemplateResponse,++ -- ** GetDedicatedIp+ GetDedicatedIp (GetDedicatedIp'),+ newGetDedicatedIp,+ GetDedicatedIpResponse (GetDedicatedIpResponse'),+ newGetDedicatedIpResponse,++ -- ** GetDedicatedIpPool+ GetDedicatedIpPool (GetDedicatedIpPool'),+ newGetDedicatedIpPool,+ GetDedicatedIpPoolResponse (GetDedicatedIpPoolResponse'),+ newGetDedicatedIpPoolResponse,++ -- ** GetDedicatedIps+ GetDedicatedIps (GetDedicatedIps'),+ newGetDedicatedIps,+ GetDedicatedIpsResponse (GetDedicatedIpsResponse'),+ newGetDedicatedIpsResponse,++ -- ** GetDeliverabilityDashboardOptions+ GetDeliverabilityDashboardOptions (GetDeliverabilityDashboardOptions'),+ newGetDeliverabilityDashboardOptions,+ GetDeliverabilityDashboardOptionsResponse (GetDeliverabilityDashboardOptionsResponse'),+ newGetDeliverabilityDashboardOptionsResponse,++ -- ** GetDeliverabilityTestReport+ GetDeliverabilityTestReport (GetDeliverabilityTestReport'),+ newGetDeliverabilityTestReport,+ GetDeliverabilityTestReportResponse (GetDeliverabilityTestReportResponse'),+ newGetDeliverabilityTestReportResponse,++ -- ** GetDomainDeliverabilityCampaign+ GetDomainDeliverabilityCampaign (GetDomainDeliverabilityCampaign'),+ newGetDomainDeliverabilityCampaign,+ GetDomainDeliverabilityCampaignResponse (GetDomainDeliverabilityCampaignResponse'),+ newGetDomainDeliverabilityCampaignResponse,++ -- ** GetDomainStatisticsReport+ GetDomainStatisticsReport (GetDomainStatisticsReport'),+ newGetDomainStatisticsReport,+ GetDomainStatisticsReportResponse (GetDomainStatisticsReportResponse'),+ newGetDomainStatisticsReportResponse,++ -- ** GetEmailIdentity+ GetEmailIdentity (GetEmailIdentity'),+ newGetEmailIdentity,+ GetEmailIdentityResponse (GetEmailIdentityResponse'),+ newGetEmailIdentityResponse,++ -- ** GetEmailIdentityPolicies+ GetEmailIdentityPolicies (GetEmailIdentityPolicies'),+ newGetEmailIdentityPolicies,+ GetEmailIdentityPoliciesResponse (GetEmailIdentityPoliciesResponse'),+ newGetEmailIdentityPoliciesResponse,++ -- ** GetEmailTemplate+ GetEmailTemplate (GetEmailTemplate'),+ newGetEmailTemplate,+ GetEmailTemplateResponse (GetEmailTemplateResponse'),+ newGetEmailTemplateResponse,++ -- ** GetImportJob+ GetImportJob (GetImportJob'),+ newGetImportJob,+ GetImportJobResponse (GetImportJobResponse'),+ newGetImportJobResponse,++ -- ** GetSuppressedDestination+ GetSuppressedDestination (GetSuppressedDestination'),+ newGetSuppressedDestination,+ GetSuppressedDestinationResponse (GetSuppressedDestinationResponse'),+ newGetSuppressedDestinationResponse,++ -- ** ListConfigurationSets+ ListConfigurationSets (ListConfigurationSets'),+ newListConfigurationSets,+ ListConfigurationSetsResponse (ListConfigurationSetsResponse'),+ newListConfigurationSetsResponse,++ -- ** ListContactLists+ ListContactLists (ListContactLists'),+ newListContactLists,+ ListContactListsResponse (ListContactListsResponse'),+ newListContactListsResponse,++ -- ** ListContacts+ ListContacts (ListContacts'),+ newListContacts,+ ListContactsResponse (ListContactsResponse'),+ newListContactsResponse,++ -- ** ListCustomVerificationEmailTemplates+ ListCustomVerificationEmailTemplates (ListCustomVerificationEmailTemplates'),+ newListCustomVerificationEmailTemplates,+ ListCustomVerificationEmailTemplatesResponse (ListCustomVerificationEmailTemplatesResponse'),+ newListCustomVerificationEmailTemplatesResponse,++ -- ** ListDedicatedIpPools+ ListDedicatedIpPools (ListDedicatedIpPools'),+ newListDedicatedIpPools,+ ListDedicatedIpPoolsResponse (ListDedicatedIpPoolsResponse'),+ newListDedicatedIpPoolsResponse,++ -- ** ListDeliverabilityTestReports+ ListDeliverabilityTestReports (ListDeliverabilityTestReports'),+ newListDeliverabilityTestReports,+ ListDeliverabilityTestReportsResponse (ListDeliverabilityTestReportsResponse'),+ newListDeliverabilityTestReportsResponse,++ -- ** ListDomainDeliverabilityCampaigns+ ListDomainDeliverabilityCampaigns (ListDomainDeliverabilityCampaigns'),+ newListDomainDeliverabilityCampaigns,+ ListDomainDeliverabilityCampaignsResponse (ListDomainDeliverabilityCampaignsResponse'),+ newListDomainDeliverabilityCampaignsResponse,++ -- ** ListEmailIdentities+ ListEmailIdentities (ListEmailIdentities'),+ newListEmailIdentities,+ ListEmailIdentitiesResponse (ListEmailIdentitiesResponse'),+ newListEmailIdentitiesResponse,++ -- ** ListEmailTemplates+ ListEmailTemplates (ListEmailTemplates'),+ newListEmailTemplates,+ ListEmailTemplatesResponse (ListEmailTemplatesResponse'),+ newListEmailTemplatesResponse,++ -- ** ListImportJobs+ ListImportJobs (ListImportJobs'),+ newListImportJobs,+ ListImportJobsResponse (ListImportJobsResponse'),+ newListImportJobsResponse,++ -- ** ListRecommendations+ ListRecommendations (ListRecommendations'),+ newListRecommendations,+ ListRecommendationsResponse (ListRecommendationsResponse'),+ newListRecommendationsResponse,++ -- ** ListSuppressedDestinations+ ListSuppressedDestinations (ListSuppressedDestinations'),+ newListSuppressedDestinations,+ ListSuppressedDestinationsResponse (ListSuppressedDestinationsResponse'),+ newListSuppressedDestinationsResponse,++ -- ** ListTagsForResource+ ListTagsForResource (ListTagsForResource'),+ newListTagsForResource,+ ListTagsForResourceResponse (ListTagsForResourceResponse'),+ newListTagsForResourceResponse,++ -- ** PutAccountDedicatedIpWarmupAttributes+ PutAccountDedicatedIpWarmupAttributes (PutAccountDedicatedIpWarmupAttributes'),+ newPutAccountDedicatedIpWarmupAttributes,+ PutAccountDedicatedIpWarmupAttributesResponse (PutAccountDedicatedIpWarmupAttributesResponse'),+ newPutAccountDedicatedIpWarmupAttributesResponse,++ -- ** PutAccountDetails+ PutAccountDetails (PutAccountDetails'),+ newPutAccountDetails,+ PutAccountDetailsResponse (PutAccountDetailsResponse'),+ newPutAccountDetailsResponse,++ -- ** PutAccountSendingAttributes+ PutAccountSendingAttributes (PutAccountSendingAttributes'),+ newPutAccountSendingAttributes,+ PutAccountSendingAttributesResponse (PutAccountSendingAttributesResponse'),+ newPutAccountSendingAttributesResponse,++ -- ** PutAccountSuppressionAttributes+ PutAccountSuppressionAttributes (PutAccountSuppressionAttributes'),+ newPutAccountSuppressionAttributes,+ PutAccountSuppressionAttributesResponse (PutAccountSuppressionAttributesResponse'),+ newPutAccountSuppressionAttributesResponse,++ -- ** PutAccountVdmAttributes+ PutAccountVdmAttributes (PutAccountVdmAttributes'),+ newPutAccountVdmAttributes,+ PutAccountVdmAttributesResponse (PutAccountVdmAttributesResponse'),+ newPutAccountVdmAttributesResponse,++ -- ** PutConfigurationSetDeliveryOptions+ PutConfigurationSetDeliveryOptions (PutConfigurationSetDeliveryOptions'),+ newPutConfigurationSetDeliveryOptions,+ PutConfigurationSetDeliveryOptionsResponse (PutConfigurationSetDeliveryOptionsResponse'),+ newPutConfigurationSetDeliveryOptionsResponse,++ -- ** PutConfigurationSetReputationOptions+ PutConfigurationSetReputationOptions (PutConfigurationSetReputationOptions'),+ newPutConfigurationSetReputationOptions,+ PutConfigurationSetReputationOptionsResponse (PutConfigurationSetReputationOptionsResponse'),+ newPutConfigurationSetReputationOptionsResponse,++ -- ** PutConfigurationSetSendingOptions+ PutConfigurationSetSendingOptions (PutConfigurationSetSendingOptions'),+ newPutConfigurationSetSendingOptions,+ PutConfigurationSetSendingOptionsResponse (PutConfigurationSetSendingOptionsResponse'),+ newPutConfigurationSetSendingOptionsResponse,++ -- ** PutConfigurationSetSuppressionOptions+ PutConfigurationSetSuppressionOptions (PutConfigurationSetSuppressionOptions'),+ newPutConfigurationSetSuppressionOptions,+ PutConfigurationSetSuppressionOptionsResponse (PutConfigurationSetSuppressionOptionsResponse'),+ newPutConfigurationSetSuppressionOptionsResponse,++ -- ** PutConfigurationSetTrackingOptions+ PutConfigurationSetTrackingOptions (PutConfigurationSetTrackingOptions'),+ newPutConfigurationSetTrackingOptions,+ PutConfigurationSetTrackingOptionsResponse (PutConfigurationSetTrackingOptionsResponse'),+ newPutConfigurationSetTrackingOptionsResponse,++ -- ** PutConfigurationSetVdmOptions+ PutConfigurationSetVdmOptions (PutConfigurationSetVdmOptions'),+ newPutConfigurationSetVdmOptions,+ PutConfigurationSetVdmOptionsResponse (PutConfigurationSetVdmOptionsResponse'),+ newPutConfigurationSetVdmOptionsResponse,++ -- ** PutDedicatedIpInPool+ PutDedicatedIpInPool (PutDedicatedIpInPool'),+ newPutDedicatedIpInPool,+ PutDedicatedIpInPoolResponse (PutDedicatedIpInPoolResponse'),+ newPutDedicatedIpInPoolResponse,++ -- ** PutDedicatedIpWarmupAttributes+ PutDedicatedIpWarmupAttributes (PutDedicatedIpWarmupAttributes'),+ newPutDedicatedIpWarmupAttributes,+ PutDedicatedIpWarmupAttributesResponse (PutDedicatedIpWarmupAttributesResponse'),+ newPutDedicatedIpWarmupAttributesResponse,++ -- ** PutDeliverabilityDashboardOption+ PutDeliverabilityDashboardOption (PutDeliverabilityDashboardOption'),+ newPutDeliverabilityDashboardOption,+ PutDeliverabilityDashboardOptionResponse (PutDeliverabilityDashboardOptionResponse'),+ newPutDeliverabilityDashboardOptionResponse,++ -- ** PutEmailIdentityConfigurationSetAttributes+ PutEmailIdentityConfigurationSetAttributes (PutEmailIdentityConfigurationSetAttributes'),+ newPutEmailIdentityConfigurationSetAttributes,+ PutEmailIdentityConfigurationSetAttributesResponse (PutEmailIdentityConfigurationSetAttributesResponse'),+ newPutEmailIdentityConfigurationSetAttributesResponse,++ -- ** PutEmailIdentityDkimAttributes+ PutEmailIdentityDkimAttributes (PutEmailIdentityDkimAttributes'),+ newPutEmailIdentityDkimAttributes,+ PutEmailIdentityDkimAttributesResponse (PutEmailIdentityDkimAttributesResponse'),+ newPutEmailIdentityDkimAttributesResponse,++ -- ** PutEmailIdentityDkimSigningAttributes+ PutEmailIdentityDkimSigningAttributes (PutEmailIdentityDkimSigningAttributes'),+ newPutEmailIdentityDkimSigningAttributes,+ PutEmailIdentityDkimSigningAttributesResponse (PutEmailIdentityDkimSigningAttributesResponse'),+ newPutEmailIdentityDkimSigningAttributesResponse,++ -- ** PutEmailIdentityFeedbackAttributes+ PutEmailIdentityFeedbackAttributes (PutEmailIdentityFeedbackAttributes'),+ newPutEmailIdentityFeedbackAttributes,+ PutEmailIdentityFeedbackAttributesResponse (PutEmailIdentityFeedbackAttributesResponse'),+ newPutEmailIdentityFeedbackAttributesResponse,++ -- ** PutEmailIdentityMailFromAttributes+ PutEmailIdentityMailFromAttributes (PutEmailIdentityMailFromAttributes'),+ newPutEmailIdentityMailFromAttributes,+ PutEmailIdentityMailFromAttributesResponse (PutEmailIdentityMailFromAttributesResponse'),+ newPutEmailIdentityMailFromAttributesResponse,++ -- ** PutSuppressedDestination+ PutSuppressedDestination (PutSuppressedDestination'),+ newPutSuppressedDestination,+ PutSuppressedDestinationResponse (PutSuppressedDestinationResponse'),+ newPutSuppressedDestinationResponse,++ -- ** SendBulkEmail+ SendBulkEmail (SendBulkEmail'),+ newSendBulkEmail,+ SendBulkEmailResponse (SendBulkEmailResponse'),+ newSendBulkEmailResponse,++ -- ** SendCustomVerificationEmail+ SendCustomVerificationEmail (SendCustomVerificationEmail'),+ newSendCustomVerificationEmail,+ SendCustomVerificationEmailResponse (SendCustomVerificationEmailResponse'),+ newSendCustomVerificationEmailResponse,++ -- ** SendEmail+ SendEmail (SendEmail'),+ newSendEmail,+ SendEmailResponse (SendEmailResponse'),+ newSendEmailResponse,++ -- ** TagResource+ TagResource (TagResource'),+ newTagResource,+ TagResourceResponse (TagResourceResponse'),+ newTagResourceResponse,++ -- ** TestRenderEmailTemplate+ TestRenderEmailTemplate (TestRenderEmailTemplate'),+ newTestRenderEmailTemplate,+ TestRenderEmailTemplateResponse (TestRenderEmailTemplateResponse'),+ newTestRenderEmailTemplateResponse,++ -- ** UntagResource+ UntagResource (UntagResource'),+ newUntagResource,+ UntagResourceResponse (UntagResourceResponse'),+ newUntagResourceResponse,++ -- ** UpdateConfigurationSetEventDestination+ UpdateConfigurationSetEventDestination (UpdateConfigurationSetEventDestination'),+ newUpdateConfigurationSetEventDestination,+ UpdateConfigurationSetEventDestinationResponse (UpdateConfigurationSetEventDestinationResponse'),+ newUpdateConfigurationSetEventDestinationResponse,++ -- ** UpdateContact+ UpdateContact (UpdateContact'),+ newUpdateContact,+ UpdateContactResponse (UpdateContactResponse'),+ newUpdateContactResponse,++ -- ** UpdateContactList+ UpdateContactList (UpdateContactList'),+ newUpdateContactList,+ UpdateContactListResponse (UpdateContactListResponse'),+ newUpdateContactListResponse,++ -- ** UpdateCustomVerificationEmailTemplate+ UpdateCustomVerificationEmailTemplate (UpdateCustomVerificationEmailTemplate'),+ newUpdateCustomVerificationEmailTemplate,+ UpdateCustomVerificationEmailTemplateResponse (UpdateCustomVerificationEmailTemplateResponse'),+ newUpdateCustomVerificationEmailTemplateResponse,++ -- ** UpdateEmailIdentityPolicy+ UpdateEmailIdentityPolicy (UpdateEmailIdentityPolicy'),+ newUpdateEmailIdentityPolicy,+ UpdateEmailIdentityPolicyResponse (UpdateEmailIdentityPolicyResponse'),+ newUpdateEmailIdentityPolicyResponse,++ -- ** UpdateEmailTemplate+ UpdateEmailTemplate (UpdateEmailTemplate'),+ newUpdateEmailTemplate,+ UpdateEmailTemplateResponse (UpdateEmailTemplateResponse'),+ newUpdateEmailTemplateResponse,++ -- * Types++ -- ** BehaviorOnMxFailure+ BehaviorOnMxFailure (..),++ -- ** BulkEmailStatus+ BulkEmailStatus (..),++ -- ** ContactLanguage+ ContactLanguage (..),++ -- ** ContactListImportAction+ ContactListImportAction (..),++ -- ** DataFormat+ DataFormat (..),++ -- ** DeliverabilityDashboardAccountStatus+ DeliverabilityDashboardAccountStatus (..),++ -- ** DeliverabilityTestStatus+ DeliverabilityTestStatus (..),++ -- ** DimensionValueSource+ DimensionValueSource (..),++ -- ** DkimSigningAttributesOrigin+ DkimSigningAttributesOrigin (..),++ -- ** DkimSigningKeyLength+ DkimSigningKeyLength (..),++ -- ** DkimStatus+ DkimStatus (..),++ -- ** EventType+ EventType (..),++ -- ** FeatureStatus+ FeatureStatus (..),++ -- ** IdentityType+ IdentityType (..),++ -- ** ImportDestinationType+ ImportDestinationType (..),++ -- ** JobStatus+ JobStatus (..),++ -- ** ListRecommendationsFilterKey+ ListRecommendationsFilterKey (..),++ -- ** MailFromDomainStatus+ MailFromDomainStatus (..),++ -- ** MailType+ MailType (..),++ -- ** Metric+ Metric (..),++ -- ** MetricDimensionName+ MetricDimensionName (..),++ -- ** MetricNamespace+ MetricNamespace (..),++ -- ** QueryErrorCode+ QueryErrorCode (..),++ -- ** RecommendationImpact+ RecommendationImpact (..),++ -- ** RecommendationStatus+ RecommendationStatus (..),++ -- ** RecommendationType+ RecommendationType (..),++ -- ** ReviewStatus+ ReviewStatus (..),++ -- ** ScalingMode+ ScalingMode (..),++ -- ** SubscriptionStatus+ SubscriptionStatus (..),++ -- ** SuppressionListImportAction+ SuppressionListImportAction (..),++ -- ** SuppressionListReason+ SuppressionListReason (..),++ -- ** TlsPolicy+ TlsPolicy (..),++ -- ** VerificationStatus+ VerificationStatus (..),++ -- ** WarmupStatus+ WarmupStatus (..),++ -- ** AccountDetails+ AccountDetails (AccountDetails'),+ newAccountDetails,++ -- ** BatchGetMetricDataQuery+ BatchGetMetricDataQuery (BatchGetMetricDataQuery'),+ newBatchGetMetricDataQuery,++ -- ** BlacklistEntry+ BlacklistEntry (BlacklistEntry'),+ newBlacklistEntry,++ -- ** Body+ Body (Body'),+ newBody,++ -- ** BulkEmailContent+ BulkEmailContent (BulkEmailContent'),+ newBulkEmailContent,++ -- ** BulkEmailEntry+ BulkEmailEntry (BulkEmailEntry'),+ newBulkEmailEntry,++ -- ** BulkEmailEntryResult+ BulkEmailEntryResult (BulkEmailEntryResult'),+ newBulkEmailEntryResult,++ -- ** CloudWatchDestination+ CloudWatchDestination (CloudWatchDestination'),+ newCloudWatchDestination,++ -- ** CloudWatchDimensionConfiguration+ CloudWatchDimensionConfiguration (CloudWatchDimensionConfiguration'),+ newCloudWatchDimensionConfiguration,++ -- ** Contact+ Contact (Contact'),+ newContact,++ -- ** ContactList+ ContactList (ContactList'),+ newContactList,++ -- ** ContactListDestination+ ContactListDestination (ContactListDestination'),+ newContactListDestination,++ -- ** Content+ Content (Content'),+ newContent,++ -- ** CustomVerificationEmailTemplateMetadata+ CustomVerificationEmailTemplateMetadata (CustomVerificationEmailTemplateMetadata'),+ newCustomVerificationEmailTemplateMetadata,++ -- ** DailyVolume+ DailyVolume (DailyVolume'),+ newDailyVolume,++ -- ** DashboardAttributes+ DashboardAttributes (DashboardAttributes'),+ newDashboardAttributes,++ -- ** DashboardOptions+ DashboardOptions (DashboardOptions'),+ newDashboardOptions,++ -- ** DedicatedIp+ DedicatedIp (DedicatedIp'),+ newDedicatedIp,++ -- ** DedicatedIpPool+ DedicatedIpPool (DedicatedIpPool'),+ newDedicatedIpPool,++ -- ** DeliverabilityTestReport+ DeliverabilityTestReport (DeliverabilityTestReport'),+ newDeliverabilityTestReport,++ -- ** DeliveryOptions+ DeliveryOptions (DeliveryOptions'),+ newDeliveryOptions,++ -- ** Destination+ Destination (Destination'),+ newDestination,++ -- ** DkimAttributes+ DkimAttributes (DkimAttributes'),+ newDkimAttributes,++ -- ** DkimSigningAttributes+ DkimSigningAttributes (DkimSigningAttributes'),+ newDkimSigningAttributes,++ -- ** DomainDeliverabilityCampaign+ DomainDeliverabilityCampaign (DomainDeliverabilityCampaign'),+ newDomainDeliverabilityCampaign,++ -- ** DomainDeliverabilityTrackingOption+ DomainDeliverabilityTrackingOption (DomainDeliverabilityTrackingOption'),+ newDomainDeliverabilityTrackingOption,++ -- ** DomainIspPlacement+ DomainIspPlacement (DomainIspPlacement'),+ newDomainIspPlacement,++ -- ** EmailContent+ EmailContent (EmailContent'),+ newEmailContent,++ -- ** EmailTemplateContent+ EmailTemplateContent (EmailTemplateContent'),+ newEmailTemplateContent,++ -- ** EmailTemplateMetadata+ EmailTemplateMetadata (EmailTemplateMetadata'),+ newEmailTemplateMetadata,++ -- ** EventDestination+ EventDestination (EventDestination'),+ newEventDestination,++ -- ** EventDestinationDefinition+ EventDestinationDefinition (EventDestinationDefinition'),+ newEventDestinationDefinition,++ -- ** FailureInfo+ FailureInfo (FailureInfo'),+ newFailureInfo,++ -- ** GuardianAttributes+ GuardianAttributes (GuardianAttributes'),+ newGuardianAttributes,++ -- ** GuardianOptions+ GuardianOptions (GuardianOptions'),+ newGuardianOptions,++ -- ** IdentityInfo+ IdentityInfo (IdentityInfo'),+ newIdentityInfo,++ -- ** ImportDataSource+ ImportDataSource (ImportDataSource'),+ newImportDataSource,++ -- ** ImportDestination+ ImportDestination (ImportDestination'),+ newImportDestination,++ -- ** ImportJobSummary+ ImportJobSummary (ImportJobSummary'),+ newImportJobSummary,++ -- ** InboxPlacementTrackingOption+ InboxPlacementTrackingOption (InboxPlacementTrackingOption'),+ newInboxPlacementTrackingOption,++ -- ** IspPlacement+ IspPlacement (IspPlacement'),+ newIspPlacement,++ -- ** KinesisFirehoseDestination+ KinesisFirehoseDestination (KinesisFirehoseDestination'),+ newKinesisFirehoseDestination,++ -- ** ListContactsFilter+ ListContactsFilter (ListContactsFilter'),+ newListContactsFilter,++ -- ** ListManagementOptions+ ListManagementOptions (ListManagementOptions'),+ newListManagementOptions,++ -- ** MailFromAttributes+ MailFromAttributes (MailFromAttributes'),+ newMailFromAttributes,++ -- ** Message+ Message (Message'),+ newMessage,++ -- ** MessageTag+ MessageTag (MessageTag'),+ newMessageTag,++ -- ** MetricDataError+ MetricDataError (MetricDataError'),+ newMetricDataError,++ -- ** MetricDataResult+ MetricDataResult (MetricDataResult'),+ newMetricDataResult,++ -- ** OverallVolume+ OverallVolume (OverallVolume'),+ newOverallVolume,++ -- ** PinpointDestination+ PinpointDestination (PinpointDestination'),+ newPinpointDestination,++ -- ** PlacementStatistics+ PlacementStatistics (PlacementStatistics'),+ newPlacementStatistics,++ -- ** RawMessage+ RawMessage (RawMessage'),+ newRawMessage,++ -- ** Recommendation+ Recommendation (Recommendation'),+ newRecommendation,++ -- ** ReplacementEmailContent+ ReplacementEmailContent (ReplacementEmailContent'),+ newReplacementEmailContent,++ -- ** ReplacementTemplate+ ReplacementTemplate (ReplacementTemplate'),+ newReplacementTemplate,++ -- ** ReputationOptions+ ReputationOptions (ReputationOptions'),+ newReputationOptions,++ -- ** ReviewDetails+ ReviewDetails (ReviewDetails'),+ newReviewDetails,++ -- ** SendQuota+ SendQuota (SendQuota'),+ newSendQuota,++ -- ** SendingOptions+ SendingOptions (SendingOptions'),+ newSendingOptions,++ -- ** SnsDestination+ SnsDestination (SnsDestination'),+ newSnsDestination,++ -- ** SuppressedDestination+ SuppressedDestination (SuppressedDestination'),+ newSuppressedDestination,++ -- ** SuppressedDestinationAttributes+ SuppressedDestinationAttributes (SuppressedDestinationAttributes'),+ newSuppressedDestinationAttributes,++ -- ** SuppressedDestinationSummary+ SuppressedDestinationSummary (SuppressedDestinationSummary'),+ newSuppressedDestinationSummary,++ -- ** SuppressionAttributes+ SuppressionAttributes (SuppressionAttributes'),+ newSuppressionAttributes,++ -- ** SuppressionListDestination+ SuppressionListDestination (SuppressionListDestination'),+ newSuppressionListDestination,++ -- ** SuppressionOptions+ SuppressionOptions (SuppressionOptions'),+ newSuppressionOptions,++ -- ** Tag+ Tag (Tag'),+ newTag,++ -- ** Template+ Template (Template'),+ newTemplate,++ -- ** Topic+ Topic (Topic'),+ newTopic,++ -- ** TopicFilter+ TopicFilter (TopicFilter'),+ newTopicFilter,++ -- ** TopicPreference+ TopicPreference (TopicPreference'),+ newTopicPreference,++ -- ** TrackingOptions+ TrackingOptions (TrackingOptions'),+ newTrackingOptions,++ -- ** VdmAttributes+ VdmAttributes (VdmAttributes'),+ newVdmAttributes,++ -- ** VdmOptions+ VdmOptions (VdmOptions'),+ newVdmOptions,++ -- ** VolumeStatistics+ VolumeStatistics (VolumeStatistics'),+ newVolumeStatistics,+ )+where++import Amazonka.SESV2.BatchGetMetricData+import Amazonka.SESV2.CreateConfigurationSet+import Amazonka.SESV2.CreateConfigurationSetEventDestination+import Amazonka.SESV2.CreateContact+import Amazonka.SESV2.CreateContactList+import Amazonka.SESV2.CreateCustomVerificationEmailTemplate+import Amazonka.SESV2.CreateDedicatedIpPool+import Amazonka.SESV2.CreateDeliverabilityTestReport+import Amazonka.SESV2.CreateEmailIdentity+import Amazonka.SESV2.CreateEmailIdentityPolicy+import Amazonka.SESV2.CreateEmailTemplate+import Amazonka.SESV2.CreateImportJob+import Amazonka.SESV2.DeleteConfigurationSet+import Amazonka.SESV2.DeleteConfigurationSetEventDestination+import Amazonka.SESV2.DeleteContact+import Amazonka.SESV2.DeleteContactList+import Amazonka.SESV2.DeleteCustomVerificationEmailTemplate+import Amazonka.SESV2.DeleteDedicatedIpPool+import Amazonka.SESV2.DeleteEmailIdentity+import Amazonka.SESV2.DeleteEmailIdentityPolicy+import Amazonka.SESV2.DeleteEmailTemplate+import Amazonka.SESV2.DeleteSuppressedDestination+import Amazonka.SESV2.GetAccount+import Amazonka.SESV2.GetBlacklistReports+import Amazonka.SESV2.GetConfigurationSet+import Amazonka.SESV2.GetConfigurationSetEventDestinations+import Amazonka.SESV2.GetContact+import Amazonka.SESV2.GetContactList+import Amazonka.SESV2.GetCustomVerificationEmailTemplate+import Amazonka.SESV2.GetDedicatedIp+import Amazonka.SESV2.GetDedicatedIpPool+import Amazonka.SESV2.GetDedicatedIps+import Amazonka.SESV2.GetDeliverabilityDashboardOptions+import Amazonka.SESV2.GetDeliverabilityTestReport+import Amazonka.SESV2.GetDomainDeliverabilityCampaign+import Amazonka.SESV2.GetDomainStatisticsReport+import Amazonka.SESV2.GetEmailIdentity+import Amazonka.SESV2.GetEmailIdentityPolicies+import Amazonka.SESV2.GetEmailTemplate+import Amazonka.SESV2.GetImportJob+import Amazonka.SESV2.GetSuppressedDestination+import Amazonka.SESV2.Lens+import Amazonka.SESV2.ListConfigurationSets+import Amazonka.SESV2.ListContactLists+import Amazonka.SESV2.ListContacts+import Amazonka.SESV2.ListCustomVerificationEmailTemplates+import Amazonka.SESV2.ListDedicatedIpPools+import Amazonka.SESV2.ListDeliverabilityTestReports+import Amazonka.SESV2.ListDomainDeliverabilityCampaigns+import Amazonka.SESV2.ListEmailIdentities+import Amazonka.SESV2.ListEmailTemplates+import Amazonka.SESV2.ListImportJobs+import Amazonka.SESV2.ListRecommendations+import Amazonka.SESV2.ListSuppressedDestinations+import Amazonka.SESV2.ListTagsForResource+import Amazonka.SESV2.PutAccountDedicatedIpWarmupAttributes+import Amazonka.SESV2.PutAccountDetails+import Amazonka.SESV2.PutAccountSendingAttributes+import Amazonka.SESV2.PutAccountSuppressionAttributes+import Amazonka.SESV2.PutAccountVdmAttributes+import Amazonka.SESV2.PutConfigurationSetDeliveryOptions+import Amazonka.SESV2.PutConfigurationSetReputationOptions+import Amazonka.SESV2.PutConfigurationSetSendingOptions+import Amazonka.SESV2.PutConfigurationSetSuppressionOptions+import Amazonka.SESV2.PutConfigurationSetTrackingOptions+import Amazonka.SESV2.PutConfigurationSetVdmOptions+import Amazonka.SESV2.PutDedicatedIpInPool+import Amazonka.SESV2.PutDedicatedIpWarmupAttributes+import Amazonka.SESV2.PutDeliverabilityDashboardOption+import Amazonka.SESV2.PutEmailIdentityConfigurationSetAttributes+import Amazonka.SESV2.PutEmailIdentityDkimAttributes+import Amazonka.SESV2.PutEmailIdentityDkimSigningAttributes+import Amazonka.SESV2.PutEmailIdentityFeedbackAttributes+import Amazonka.SESV2.PutEmailIdentityMailFromAttributes+import Amazonka.SESV2.PutSuppressedDestination+import Amazonka.SESV2.SendBulkEmail+import Amazonka.SESV2.SendCustomVerificationEmail+import Amazonka.SESV2.SendEmail+import Amazonka.SESV2.TagResource+import Amazonka.SESV2.TestRenderEmailTemplate+import Amazonka.SESV2.Types+import Amazonka.SESV2.UntagResource+import Amazonka.SESV2.UpdateConfigurationSetEventDestination+import Amazonka.SESV2.UpdateContact+import Amazonka.SESV2.UpdateContactList+import Amazonka.SESV2.UpdateCustomVerificationEmailTemplate+import Amazonka.SESV2.UpdateEmailIdentityPolicy+import Amazonka.SESV2.UpdateEmailTemplate+import Amazonka.SESV2.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 'SESV2'.++-- $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/SESV2/BatchGetMetricData.hs view
@@ -0,0 +1,190 @@+{-# 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.SESV2.BatchGetMetricData+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves batches of metric data collected based on your sending+-- activity.+--+-- You can execute this operation no more than 16 times per second, and+-- with at most 160 queries from the batches per second (cumulative).+module Amazonka.SESV2.BatchGetMetricData+ ( -- * Creating a Request+ BatchGetMetricData (..),+ newBatchGetMetricData,++ -- * Request Lenses+ batchGetMetricData_queries,++ -- * Destructuring the Response+ BatchGetMetricDataResponse (..),+ newBatchGetMetricDataResponse,++ -- * Response Lenses+ batchGetMetricDataResponse_errors,+ batchGetMetricDataResponse_results,+ batchGetMetricDataResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | Represents a request to retrieve a batch of metric data.+--+-- /See:/ 'newBatchGetMetricData' smart constructor.+data BatchGetMetricData = BatchGetMetricData'+ { -- | A list of queries for metrics to be retrieved.+ queries :: Prelude.NonEmpty BatchGetMetricDataQuery+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchGetMetricData' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'queries', 'batchGetMetricData_queries' - A list of queries for metrics to be retrieved.+newBatchGetMetricData ::+ -- | 'queries'+ Prelude.NonEmpty BatchGetMetricDataQuery ->+ BatchGetMetricData+newBatchGetMetricData pQueries_ =+ BatchGetMetricData'+ { queries =+ Lens.coerced Lens.# pQueries_+ }++-- | A list of queries for metrics to be retrieved.+batchGetMetricData_queries :: Lens.Lens' BatchGetMetricData (Prelude.NonEmpty BatchGetMetricDataQuery)+batchGetMetricData_queries = Lens.lens (\BatchGetMetricData' {queries} -> queries) (\s@BatchGetMetricData' {} a -> s {queries = a} :: BatchGetMetricData) Prelude.. Lens.coerced++instance Core.AWSRequest BatchGetMetricData where+ type+ AWSResponse BatchGetMetricData =+ BatchGetMetricDataResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ BatchGetMetricDataResponse'+ Prelude.<$> (x Data..?> "Errors" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "Results" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable BatchGetMetricData where+ hashWithSalt _salt BatchGetMetricData' {..} =+ _salt `Prelude.hashWithSalt` queries++instance Prelude.NFData BatchGetMetricData where+ rnf BatchGetMetricData' {..} = Prelude.rnf queries++instance Data.ToHeaders BatchGetMetricData where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON BatchGetMetricData where+ toJSON BatchGetMetricData' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("Queries" Data..= queries)]+ )++instance Data.ToPath BatchGetMetricData where+ toPath = Prelude.const "/v2/email/metrics/batch"++instance Data.ToQuery BatchGetMetricData where+ toQuery = Prelude.const Prelude.mempty++-- | Represents the result of processing your metric data batch request+--+-- /See:/ 'newBatchGetMetricDataResponse' smart constructor.+data BatchGetMetricDataResponse = BatchGetMetricDataResponse'+ { -- | A list of @MetricDataError@ encountered while processing your metric+ -- data batch request.+ errors :: Prelude.Maybe [MetricDataError],+ -- | A list of successfully retrieved @MetricDataResult@.+ results :: Prelude.Maybe [MetricDataResult],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchGetMetricDataResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'errors', 'batchGetMetricDataResponse_errors' - A list of @MetricDataError@ encountered while processing your metric+-- data batch request.+--+-- 'results', 'batchGetMetricDataResponse_results' - A list of successfully retrieved @MetricDataResult@.+--+-- 'httpStatus', 'batchGetMetricDataResponse_httpStatus' - The response's http status code.+newBatchGetMetricDataResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ BatchGetMetricDataResponse+newBatchGetMetricDataResponse pHttpStatus_ =+ BatchGetMetricDataResponse'+ { errors =+ Prelude.Nothing,+ results = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list of @MetricDataError@ encountered while processing your metric+-- data batch request.+batchGetMetricDataResponse_errors :: Lens.Lens' BatchGetMetricDataResponse (Prelude.Maybe [MetricDataError])+batchGetMetricDataResponse_errors = Lens.lens (\BatchGetMetricDataResponse' {errors} -> errors) (\s@BatchGetMetricDataResponse' {} a -> s {errors = a} :: BatchGetMetricDataResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list of successfully retrieved @MetricDataResult@.+batchGetMetricDataResponse_results :: Lens.Lens' BatchGetMetricDataResponse (Prelude.Maybe [MetricDataResult])+batchGetMetricDataResponse_results = Lens.lens (\BatchGetMetricDataResponse' {results} -> results) (\s@BatchGetMetricDataResponse' {} a -> s {results = a} :: BatchGetMetricDataResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchGetMetricDataResponse_httpStatus :: Lens.Lens' BatchGetMetricDataResponse Prelude.Int+batchGetMetricDataResponse_httpStatus = Lens.lens (\BatchGetMetricDataResponse' {httpStatus} -> httpStatus) (\s@BatchGetMetricDataResponse' {} a -> s {httpStatus = a} :: BatchGetMetricDataResponse)++instance Prelude.NFData BatchGetMetricDataResponse where+ rnf BatchGetMetricDataResponse' {..} =+ Prelude.rnf errors+ `Prelude.seq` Prelude.rnf results+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/CreateConfigurationSet.hs view
@@ -0,0 +1,293 @@+{-# 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.SESV2.CreateConfigurationSet+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Create a configuration set. /Configuration sets/ are groups of rules+-- that you can apply to the emails that you send. You apply a+-- configuration set to an email by specifying the name of the+-- configuration set when you call the Amazon SES API v2. When you apply a+-- configuration set to an email, all of the rules in that configuration+-- set are applied to the email.+module Amazonka.SESV2.CreateConfigurationSet+ ( -- * Creating a Request+ CreateConfigurationSet (..),+ newCreateConfigurationSet,++ -- * Request Lenses+ createConfigurationSet_deliveryOptions,+ createConfigurationSet_reputationOptions,+ createConfigurationSet_sendingOptions,+ createConfigurationSet_suppressionOptions,+ createConfigurationSet_tags,+ createConfigurationSet_trackingOptions,+ createConfigurationSet_vdmOptions,+ createConfigurationSet_configurationSetName,++ -- * Destructuring the Response+ CreateConfigurationSetResponse (..),+ newCreateConfigurationSetResponse,++ -- * Response Lenses+ createConfigurationSetResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to create a configuration set.+--+-- /See:/ 'newCreateConfigurationSet' smart constructor.+data CreateConfigurationSet = CreateConfigurationSet'+ { -- | An object that defines the dedicated IP pool that is used to send emails+ -- that you send using the configuration set.+ deliveryOptions :: Prelude.Maybe DeliveryOptions,+ -- | An object that defines whether or not Amazon SES collects reputation+ -- metrics for the emails that you send that use the configuration set.+ reputationOptions :: Prelude.Maybe ReputationOptions,+ -- | An object that defines whether or not Amazon SES can send email that you+ -- send using the configuration set.+ sendingOptions :: Prelude.Maybe SendingOptions,+ suppressionOptions :: Prelude.Maybe SuppressionOptions,+ -- | An array of objects that define the tags (keys and values) to associate+ -- with the configuration set.+ tags :: Prelude.Maybe [Tag],+ -- | An object that defines the open and click tracking options for emails+ -- that you send using the configuration set.+ trackingOptions :: Prelude.Maybe TrackingOptions,+ -- | An object that defines the VDM options for emails that you send using+ -- the configuration set.+ vdmOptions :: Prelude.Maybe VdmOptions,+ -- | The name of the configuration set. The name can contain up to 64+ -- alphanumeric characters, including letters, numbers, hyphens (-) and+ -- underscores (_) only.+ configurationSetName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateConfigurationSet' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'deliveryOptions', 'createConfigurationSet_deliveryOptions' - An object that defines the dedicated IP pool that is used to send emails+-- that you send using the configuration set.+--+-- 'reputationOptions', 'createConfigurationSet_reputationOptions' - An object that defines whether or not Amazon SES collects reputation+-- metrics for the emails that you send that use the configuration set.+--+-- 'sendingOptions', 'createConfigurationSet_sendingOptions' - An object that defines whether or not Amazon SES can send email that you+-- send using the configuration set.+--+-- 'suppressionOptions', 'createConfigurationSet_suppressionOptions' - Undocumented member.+--+-- 'tags', 'createConfigurationSet_tags' - An array of objects that define the tags (keys and values) to associate+-- with the configuration set.+--+-- 'trackingOptions', 'createConfigurationSet_trackingOptions' - An object that defines the open and click tracking options for emails+-- that you send using the configuration set.+--+-- 'vdmOptions', 'createConfigurationSet_vdmOptions' - An object that defines the VDM options for emails that you send using+-- the configuration set.+--+-- 'configurationSetName', 'createConfigurationSet_configurationSetName' - The name of the configuration set. The name can contain up to 64+-- alphanumeric characters, including letters, numbers, hyphens (-) and+-- underscores (_) only.+newCreateConfigurationSet ::+ -- | 'configurationSetName'+ Prelude.Text ->+ CreateConfigurationSet+newCreateConfigurationSet pConfigurationSetName_ =+ CreateConfigurationSet'+ { deliveryOptions =+ Prelude.Nothing,+ reputationOptions = Prelude.Nothing,+ sendingOptions = Prelude.Nothing,+ suppressionOptions = Prelude.Nothing,+ tags = Prelude.Nothing,+ trackingOptions = Prelude.Nothing,+ vdmOptions = Prelude.Nothing,+ configurationSetName = pConfigurationSetName_+ }++-- | An object that defines the dedicated IP pool that is used to send emails+-- that you send using the configuration set.+createConfigurationSet_deliveryOptions :: Lens.Lens' CreateConfigurationSet (Prelude.Maybe DeliveryOptions)+createConfigurationSet_deliveryOptions = Lens.lens (\CreateConfigurationSet' {deliveryOptions} -> deliveryOptions) (\s@CreateConfigurationSet' {} a -> s {deliveryOptions = a} :: CreateConfigurationSet)++-- | An object that defines whether or not Amazon SES collects reputation+-- metrics for the emails that you send that use the configuration set.+createConfigurationSet_reputationOptions :: Lens.Lens' CreateConfigurationSet (Prelude.Maybe ReputationOptions)+createConfigurationSet_reputationOptions = Lens.lens (\CreateConfigurationSet' {reputationOptions} -> reputationOptions) (\s@CreateConfigurationSet' {} a -> s {reputationOptions = a} :: CreateConfigurationSet)++-- | An object that defines whether or not Amazon SES can send email that you+-- send using the configuration set.+createConfigurationSet_sendingOptions :: Lens.Lens' CreateConfigurationSet (Prelude.Maybe SendingOptions)+createConfigurationSet_sendingOptions = Lens.lens (\CreateConfigurationSet' {sendingOptions} -> sendingOptions) (\s@CreateConfigurationSet' {} a -> s {sendingOptions = a} :: CreateConfigurationSet)++-- | Undocumented member.+createConfigurationSet_suppressionOptions :: Lens.Lens' CreateConfigurationSet (Prelude.Maybe SuppressionOptions)+createConfigurationSet_suppressionOptions = Lens.lens (\CreateConfigurationSet' {suppressionOptions} -> suppressionOptions) (\s@CreateConfigurationSet' {} a -> s {suppressionOptions = a} :: CreateConfigurationSet)++-- | An array of objects that define the tags (keys and values) to associate+-- with the configuration set.+createConfigurationSet_tags :: Lens.Lens' CreateConfigurationSet (Prelude.Maybe [Tag])+createConfigurationSet_tags = Lens.lens (\CreateConfigurationSet' {tags} -> tags) (\s@CreateConfigurationSet' {} a -> s {tags = a} :: CreateConfigurationSet) Prelude.. Lens.mapping Lens.coerced++-- | An object that defines the open and click tracking options for emails+-- that you send using the configuration set.+createConfigurationSet_trackingOptions :: Lens.Lens' CreateConfigurationSet (Prelude.Maybe TrackingOptions)+createConfigurationSet_trackingOptions = Lens.lens (\CreateConfigurationSet' {trackingOptions} -> trackingOptions) (\s@CreateConfigurationSet' {} a -> s {trackingOptions = a} :: CreateConfigurationSet)++-- | An object that defines the VDM options for emails that you send using+-- the configuration set.+createConfigurationSet_vdmOptions :: Lens.Lens' CreateConfigurationSet (Prelude.Maybe VdmOptions)+createConfigurationSet_vdmOptions = Lens.lens (\CreateConfigurationSet' {vdmOptions} -> vdmOptions) (\s@CreateConfigurationSet' {} a -> s {vdmOptions = a} :: CreateConfigurationSet)++-- | The name of the configuration set. The name can contain up to 64+-- alphanumeric characters, including letters, numbers, hyphens (-) and+-- underscores (_) only.+createConfigurationSet_configurationSetName :: Lens.Lens' CreateConfigurationSet Prelude.Text+createConfigurationSet_configurationSetName = Lens.lens (\CreateConfigurationSet' {configurationSetName} -> configurationSetName) (\s@CreateConfigurationSet' {} a -> s {configurationSetName = a} :: CreateConfigurationSet)++instance Core.AWSRequest CreateConfigurationSet where+ type+ AWSResponse CreateConfigurationSet =+ CreateConfigurationSetResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ CreateConfigurationSetResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateConfigurationSet where+ hashWithSalt _salt CreateConfigurationSet' {..} =+ _salt+ `Prelude.hashWithSalt` deliveryOptions+ `Prelude.hashWithSalt` reputationOptions+ `Prelude.hashWithSalt` sendingOptions+ `Prelude.hashWithSalt` suppressionOptions+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` trackingOptions+ `Prelude.hashWithSalt` vdmOptions+ `Prelude.hashWithSalt` configurationSetName++instance Prelude.NFData CreateConfigurationSet where+ rnf CreateConfigurationSet' {..} =+ Prelude.rnf deliveryOptions+ `Prelude.seq` Prelude.rnf reputationOptions+ `Prelude.seq` Prelude.rnf sendingOptions+ `Prelude.seq` Prelude.rnf suppressionOptions+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf trackingOptions+ `Prelude.seq` Prelude.rnf vdmOptions+ `Prelude.seq` Prelude.rnf configurationSetName++instance Data.ToHeaders CreateConfigurationSet where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateConfigurationSet where+ toJSON CreateConfigurationSet' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("DeliveryOptions" Data..=)+ Prelude.<$> deliveryOptions,+ ("ReputationOptions" Data..=)+ Prelude.<$> reputationOptions,+ ("SendingOptions" Data..=)+ Prelude.<$> sendingOptions,+ ("SuppressionOptions" Data..=)+ Prelude.<$> suppressionOptions,+ ("Tags" Data..=) Prelude.<$> tags,+ ("TrackingOptions" Data..=)+ Prelude.<$> trackingOptions,+ ("VdmOptions" Data..=) Prelude.<$> vdmOptions,+ Prelude.Just+ ( "ConfigurationSetName"+ Data..= configurationSetName+ )+ ]+ )++instance Data.ToPath CreateConfigurationSet where+ toPath = Prelude.const "/v2/email/configuration-sets"++instance Data.ToQuery CreateConfigurationSet where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newCreateConfigurationSetResponse' smart constructor.+data CreateConfigurationSetResponse = CreateConfigurationSetResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateConfigurationSetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createConfigurationSetResponse_httpStatus' - The response's http status code.+newCreateConfigurationSetResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateConfigurationSetResponse+newCreateConfigurationSetResponse pHttpStatus_ =+ CreateConfigurationSetResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+createConfigurationSetResponse_httpStatus :: Lens.Lens' CreateConfigurationSetResponse Prelude.Int+createConfigurationSetResponse_httpStatus = Lens.lens (\CreateConfigurationSetResponse' {httpStatus} -> httpStatus) (\s@CreateConfigurationSetResponse' {} a -> s {httpStatus = a} :: CreateConfigurationSetResponse)++instance+ Prelude.NFData+ CreateConfigurationSetResponse+ where+ rnf CreateConfigurationSetResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/CreateConfigurationSetEventDestination.hs view
@@ -0,0 +1,245 @@+{-# 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.SESV2.CreateConfigurationSetEventDestination+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Create an event destination. /Events/ include message sends, deliveries,+-- opens, clicks, bounces, and complaints. /Event destinations/ are places+-- that you can send information about these events to. For example, you+-- can send event data to Amazon SNS to receive notifications when you+-- receive bounces or complaints, or you can use Amazon Kinesis Data+-- Firehose to stream data to Amazon S3 for long-term storage.+--+-- A single configuration set can include more than one event destination.+module Amazonka.SESV2.CreateConfigurationSetEventDestination+ ( -- * Creating a Request+ CreateConfigurationSetEventDestination (..),+ newCreateConfigurationSetEventDestination,++ -- * Request Lenses+ createConfigurationSetEventDestination_configurationSetName,+ createConfigurationSetEventDestination_eventDestinationName,+ createConfigurationSetEventDestination_eventDestination,++ -- * Destructuring the Response+ CreateConfigurationSetEventDestinationResponse (..),+ newCreateConfigurationSetEventDestinationResponse,++ -- * Response Lenses+ createConfigurationSetEventDestinationResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to add an event destination to a configuration set.+--+-- /See:/ 'newCreateConfigurationSetEventDestination' smart constructor.+data CreateConfigurationSetEventDestination = CreateConfigurationSetEventDestination'+ { -- | The name of the configuration set .+ configurationSetName :: Prelude.Text,+ -- | A name that identifies the event destination within the configuration+ -- set.+ eventDestinationName :: Prelude.Text,+ -- | An object that defines the event destination.+ eventDestination :: EventDestinationDefinition+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateConfigurationSetEventDestination' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configurationSetName', 'createConfigurationSetEventDestination_configurationSetName' - The name of the configuration set .+--+-- 'eventDestinationName', 'createConfigurationSetEventDestination_eventDestinationName' - A name that identifies the event destination within the configuration+-- set.+--+-- 'eventDestination', 'createConfigurationSetEventDestination_eventDestination' - An object that defines the event destination.+newCreateConfigurationSetEventDestination ::+ -- | 'configurationSetName'+ Prelude.Text ->+ -- | 'eventDestinationName'+ Prelude.Text ->+ -- | 'eventDestination'+ EventDestinationDefinition ->+ CreateConfigurationSetEventDestination+newCreateConfigurationSetEventDestination+ pConfigurationSetName_+ pEventDestinationName_+ pEventDestination_ =+ CreateConfigurationSetEventDestination'+ { configurationSetName =+ pConfigurationSetName_,+ eventDestinationName =+ pEventDestinationName_,+ eventDestination =+ pEventDestination_+ }++-- | The name of the configuration set .+createConfigurationSetEventDestination_configurationSetName :: Lens.Lens' CreateConfigurationSetEventDestination Prelude.Text+createConfigurationSetEventDestination_configurationSetName = Lens.lens (\CreateConfigurationSetEventDestination' {configurationSetName} -> configurationSetName) (\s@CreateConfigurationSetEventDestination' {} a -> s {configurationSetName = a} :: CreateConfigurationSetEventDestination)++-- | A name that identifies the event destination within the configuration+-- set.+createConfigurationSetEventDestination_eventDestinationName :: Lens.Lens' CreateConfigurationSetEventDestination Prelude.Text+createConfigurationSetEventDestination_eventDestinationName = Lens.lens (\CreateConfigurationSetEventDestination' {eventDestinationName} -> eventDestinationName) (\s@CreateConfigurationSetEventDestination' {} a -> s {eventDestinationName = a} :: CreateConfigurationSetEventDestination)++-- | An object that defines the event destination.+createConfigurationSetEventDestination_eventDestination :: Lens.Lens' CreateConfigurationSetEventDestination EventDestinationDefinition+createConfigurationSetEventDestination_eventDestination = Lens.lens (\CreateConfigurationSetEventDestination' {eventDestination} -> eventDestination) (\s@CreateConfigurationSetEventDestination' {} a -> s {eventDestination = a} :: CreateConfigurationSetEventDestination)++instance+ Core.AWSRequest+ CreateConfigurationSetEventDestination+ where+ type+ AWSResponse+ CreateConfigurationSetEventDestination =+ CreateConfigurationSetEventDestinationResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ CreateConfigurationSetEventDestinationResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ CreateConfigurationSetEventDestination+ where+ hashWithSalt+ _salt+ CreateConfigurationSetEventDestination' {..} =+ _salt+ `Prelude.hashWithSalt` configurationSetName+ `Prelude.hashWithSalt` eventDestinationName+ `Prelude.hashWithSalt` eventDestination++instance+ Prelude.NFData+ CreateConfigurationSetEventDestination+ where+ rnf CreateConfigurationSetEventDestination' {..} =+ Prelude.rnf configurationSetName+ `Prelude.seq` Prelude.rnf eventDestinationName+ `Prelude.seq` Prelude.rnf eventDestination++instance+ Data.ToHeaders+ CreateConfigurationSetEventDestination+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToJSON+ CreateConfigurationSetEventDestination+ where+ toJSON CreateConfigurationSetEventDestination' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ( "EventDestinationName"+ Data..= eventDestinationName+ ),+ Prelude.Just+ ("EventDestination" Data..= eventDestination)+ ]+ )++instance+ Data.ToPath+ CreateConfigurationSetEventDestination+ where+ toPath CreateConfigurationSetEventDestination' {..} =+ Prelude.mconcat+ [ "/v2/email/configuration-sets/",+ Data.toBS configurationSetName,+ "/event-destinations"+ ]++instance+ Data.ToQuery+ CreateConfigurationSetEventDestination+ where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newCreateConfigurationSetEventDestinationResponse' smart constructor.+data CreateConfigurationSetEventDestinationResponse = CreateConfigurationSetEventDestinationResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateConfigurationSetEventDestinationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createConfigurationSetEventDestinationResponse_httpStatus' - The response's http status code.+newCreateConfigurationSetEventDestinationResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateConfigurationSetEventDestinationResponse+newCreateConfigurationSetEventDestinationResponse+ pHttpStatus_ =+ CreateConfigurationSetEventDestinationResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+createConfigurationSetEventDestinationResponse_httpStatus :: Lens.Lens' CreateConfigurationSetEventDestinationResponse Prelude.Int+createConfigurationSetEventDestinationResponse_httpStatus = Lens.lens (\CreateConfigurationSetEventDestinationResponse' {httpStatus} -> httpStatus) (\s@CreateConfigurationSetEventDestinationResponse' {} a -> s {httpStatus = a} :: CreateConfigurationSetEventDestinationResponse)++instance+ Prelude.NFData+ CreateConfigurationSetEventDestinationResponse+ where+ rnf+ CreateConfigurationSetEventDestinationResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/CreateContact.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.SESV2.CreateContact+-- 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 contact, which is an end-user who is receiving the email, and+-- adds them to a contact list.+module Amazonka.SESV2.CreateContact+ ( -- * Creating a Request+ CreateContact (..),+ newCreateContact,++ -- * Request Lenses+ createContact_attributesData,+ createContact_topicPreferences,+ createContact_unsubscribeAll,+ createContact_contactListName,+ createContact_emailAddress,++ -- * Destructuring the Response+ CreateContactResponse (..),+ newCreateContactResponse,++ -- * Response Lenses+ createContactResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | /See:/ 'newCreateContact' smart constructor.+data CreateContact = CreateContact'+ { -- | The attribute data attached to a contact.+ attributesData :: Prelude.Maybe Prelude.Text,+ -- | The contact\'s preferences for being opted-in to or opted-out of topics.+ topicPreferences :: Prelude.Maybe [TopicPreference],+ -- | A boolean value status noting if the contact is unsubscribed from all+ -- contact list topics.+ unsubscribeAll :: Prelude.Maybe Prelude.Bool,+ -- | The name of the contact list to which the contact should be added.+ contactListName :: Prelude.Text,+ -- | The contact\'s email address.+ emailAddress :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateContact' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attributesData', 'createContact_attributesData' - The attribute data attached to a contact.+--+-- 'topicPreferences', 'createContact_topicPreferences' - The contact\'s preferences for being opted-in to or opted-out of topics.+--+-- 'unsubscribeAll', 'createContact_unsubscribeAll' - A boolean value status noting if the contact is unsubscribed from all+-- contact list topics.+--+-- 'contactListName', 'createContact_contactListName' - The name of the contact list to which the contact should be added.+--+-- 'emailAddress', 'createContact_emailAddress' - The contact\'s email address.+newCreateContact ::+ -- | 'contactListName'+ Prelude.Text ->+ -- | 'emailAddress'+ Prelude.Text ->+ CreateContact+newCreateContact pContactListName_ pEmailAddress_ =+ CreateContact'+ { attributesData = Prelude.Nothing,+ topicPreferences = Prelude.Nothing,+ unsubscribeAll = Prelude.Nothing,+ contactListName = pContactListName_,+ emailAddress = pEmailAddress_+ }++-- | The attribute data attached to a contact.+createContact_attributesData :: Lens.Lens' CreateContact (Prelude.Maybe Prelude.Text)+createContact_attributesData = Lens.lens (\CreateContact' {attributesData} -> attributesData) (\s@CreateContact' {} a -> s {attributesData = a} :: CreateContact)++-- | The contact\'s preferences for being opted-in to or opted-out of topics.+createContact_topicPreferences :: Lens.Lens' CreateContact (Prelude.Maybe [TopicPreference])+createContact_topicPreferences = Lens.lens (\CreateContact' {topicPreferences} -> topicPreferences) (\s@CreateContact' {} a -> s {topicPreferences = a} :: CreateContact) Prelude.. Lens.mapping Lens.coerced++-- | A boolean value status noting if the contact is unsubscribed from all+-- contact list topics.+createContact_unsubscribeAll :: Lens.Lens' CreateContact (Prelude.Maybe Prelude.Bool)+createContact_unsubscribeAll = Lens.lens (\CreateContact' {unsubscribeAll} -> unsubscribeAll) (\s@CreateContact' {} a -> s {unsubscribeAll = a} :: CreateContact)++-- | The name of the contact list to which the contact should be added.+createContact_contactListName :: Lens.Lens' CreateContact Prelude.Text+createContact_contactListName = Lens.lens (\CreateContact' {contactListName} -> contactListName) (\s@CreateContact' {} a -> s {contactListName = a} :: CreateContact)++-- | The contact\'s email address.+createContact_emailAddress :: Lens.Lens' CreateContact Prelude.Text+createContact_emailAddress = Lens.lens (\CreateContact' {emailAddress} -> emailAddress) (\s@CreateContact' {} a -> s {emailAddress = a} :: CreateContact)++instance Core.AWSRequest CreateContact where+ type+ AWSResponse CreateContact =+ CreateContactResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ CreateContactResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateContact where+ hashWithSalt _salt CreateContact' {..} =+ _salt+ `Prelude.hashWithSalt` attributesData+ `Prelude.hashWithSalt` topicPreferences+ `Prelude.hashWithSalt` unsubscribeAll+ `Prelude.hashWithSalt` contactListName+ `Prelude.hashWithSalt` emailAddress++instance Prelude.NFData CreateContact where+ rnf CreateContact' {..} =+ Prelude.rnf attributesData+ `Prelude.seq` Prelude.rnf topicPreferences+ `Prelude.seq` Prelude.rnf unsubscribeAll+ `Prelude.seq` Prelude.rnf contactListName+ `Prelude.seq` Prelude.rnf emailAddress++instance Data.ToHeaders CreateContact where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateContact where+ toJSON CreateContact' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AttributesData" Data..=)+ Prelude.<$> attributesData,+ ("TopicPreferences" Data..=)+ Prelude.<$> topicPreferences,+ ("UnsubscribeAll" Data..=)+ Prelude.<$> unsubscribeAll,+ Prelude.Just ("EmailAddress" Data..= emailAddress)+ ]+ )++instance Data.ToPath CreateContact where+ toPath CreateContact' {..} =+ Prelude.mconcat+ [ "/v2/email/contact-lists/",+ Data.toBS contactListName,+ "/contacts"+ ]++instance Data.ToQuery CreateContact where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateContactResponse' smart constructor.+data CreateContactResponse = CreateContactResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateContactResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createContactResponse_httpStatus' - The response's http status code.+newCreateContactResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateContactResponse+newCreateContactResponse pHttpStatus_ =+ CreateContactResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+createContactResponse_httpStatus :: Lens.Lens' CreateContactResponse Prelude.Int+createContactResponse_httpStatus = Lens.lens (\CreateContactResponse' {httpStatus} -> httpStatus) (\s@CreateContactResponse' {} a -> s {httpStatus = a} :: CreateContactResponse)++instance Prelude.NFData CreateContactResponse where+ rnf CreateContactResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/CreateContactList.hs view
@@ -0,0 +1,200 @@+{-# 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.SESV2.CreateContactList+-- 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 contact list.+module Amazonka.SESV2.CreateContactList+ ( -- * Creating a Request+ CreateContactList (..),+ newCreateContactList,++ -- * Request Lenses+ createContactList_description,+ createContactList_tags,+ createContactList_topics,+ createContactList_contactListName,++ -- * Destructuring the Response+ CreateContactListResponse (..),+ newCreateContactListResponse,++ -- * Response Lenses+ createContactListResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | /See:/ 'newCreateContactList' smart constructor.+data CreateContactList = CreateContactList'+ { -- | A description of what the contact list is about.+ description :: Prelude.Maybe Prelude.Text,+ -- | The tags associated with a contact list.+ tags :: Prelude.Maybe [Tag],+ -- | An interest group, theme, or label within a list. A contact list can+ -- have multiple topics.+ topics :: Prelude.Maybe [Topic],+ -- | The name of the contact list.+ contactListName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateContactList' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createContactList_description' - A description of what the contact list is about.+--+-- 'tags', 'createContactList_tags' - The tags associated with a contact list.+--+-- 'topics', 'createContactList_topics' - An interest group, theme, or label within a list. A contact list can+-- have multiple topics.+--+-- 'contactListName', 'createContactList_contactListName' - The name of the contact list.+newCreateContactList ::+ -- | 'contactListName'+ Prelude.Text ->+ CreateContactList+newCreateContactList pContactListName_ =+ CreateContactList'+ { description = Prelude.Nothing,+ tags = Prelude.Nothing,+ topics = Prelude.Nothing,+ contactListName = pContactListName_+ }++-- | A description of what the contact list is about.+createContactList_description :: Lens.Lens' CreateContactList (Prelude.Maybe Prelude.Text)+createContactList_description = Lens.lens (\CreateContactList' {description} -> description) (\s@CreateContactList' {} a -> s {description = a} :: CreateContactList)++-- | The tags associated with a contact list.+createContactList_tags :: Lens.Lens' CreateContactList (Prelude.Maybe [Tag])+createContactList_tags = Lens.lens (\CreateContactList' {tags} -> tags) (\s@CreateContactList' {} a -> s {tags = a} :: CreateContactList) Prelude.. Lens.mapping Lens.coerced++-- | An interest group, theme, or label within a list. A contact list can+-- have multiple topics.+createContactList_topics :: Lens.Lens' CreateContactList (Prelude.Maybe [Topic])+createContactList_topics = Lens.lens (\CreateContactList' {topics} -> topics) (\s@CreateContactList' {} a -> s {topics = a} :: CreateContactList) Prelude.. Lens.mapping Lens.coerced++-- | The name of the contact list.+createContactList_contactListName :: Lens.Lens' CreateContactList Prelude.Text+createContactList_contactListName = Lens.lens (\CreateContactList' {contactListName} -> contactListName) (\s@CreateContactList' {} a -> s {contactListName = a} :: CreateContactList)++instance Core.AWSRequest CreateContactList where+ type+ AWSResponse CreateContactList =+ CreateContactListResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ CreateContactListResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateContactList where+ hashWithSalt _salt CreateContactList' {..} =+ _salt+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` topics+ `Prelude.hashWithSalt` contactListName++instance Prelude.NFData CreateContactList where+ rnf CreateContactList' {..} =+ Prelude.rnf description+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf topics+ `Prelude.seq` Prelude.rnf contactListName++instance Data.ToHeaders CreateContactList where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateContactList where+ toJSON CreateContactList' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Description" Data..=) Prelude.<$> description,+ ("Tags" Data..=) Prelude.<$> tags,+ ("Topics" Data..=) Prelude.<$> topics,+ Prelude.Just+ ("ContactListName" Data..= contactListName)+ ]+ )++instance Data.ToPath CreateContactList where+ toPath = Prelude.const "/v2/email/contact-lists"++instance Data.ToQuery CreateContactList where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateContactListResponse' smart constructor.+data CreateContactListResponse = CreateContactListResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateContactListResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createContactListResponse_httpStatus' - The response's http status code.+newCreateContactListResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateContactListResponse+newCreateContactListResponse pHttpStatus_ =+ CreateContactListResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+createContactListResponse_httpStatus :: Lens.Lens' CreateContactListResponse Prelude.Int+createContactListResponse_httpStatus = Lens.lens (\CreateContactListResponse' {httpStatus} -> httpStatus) (\s@CreateContactListResponse' {} a -> s {httpStatus = a} :: CreateContactListResponse)++instance Prelude.NFData CreateContactListResponse where+ rnf CreateContactListResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/CreateCustomVerificationEmailTemplate.hs view
@@ -0,0 +1,311 @@+{-# 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.SESV2.CreateCustomVerificationEmailTemplate+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new custom verification email template.+--+-- For more information about custom verification email templates, see+-- <https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#send-email-verify-address-custom Using custom verification email templates>+-- in the /Amazon SES Developer Guide/.+--+-- You can execute this operation no more than once per second.+module Amazonka.SESV2.CreateCustomVerificationEmailTemplate+ ( -- * Creating a Request+ CreateCustomVerificationEmailTemplate (..),+ newCreateCustomVerificationEmailTemplate,++ -- * Request Lenses+ createCustomVerificationEmailTemplate_templateName,+ createCustomVerificationEmailTemplate_fromEmailAddress,+ createCustomVerificationEmailTemplate_templateSubject,+ createCustomVerificationEmailTemplate_templateContent,+ createCustomVerificationEmailTemplate_successRedirectionURL,+ createCustomVerificationEmailTemplate_failureRedirectionURL,++ -- * Destructuring the Response+ CreateCustomVerificationEmailTemplateResponse (..),+ newCreateCustomVerificationEmailTemplateResponse,++ -- * Response Lenses+ createCustomVerificationEmailTemplateResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | Represents a request to create a custom verification email template.+--+-- /See:/ 'newCreateCustomVerificationEmailTemplate' smart constructor.+data CreateCustomVerificationEmailTemplate = CreateCustomVerificationEmailTemplate'+ { -- | The name of the custom verification email template.+ templateName :: Prelude.Text,+ -- | The email address that the custom verification email is sent from.+ fromEmailAddress :: Prelude.Text,+ -- | The subject line of the custom verification email.+ templateSubject :: Prelude.Text,+ -- | The content of the custom verification email. The total size of the+ -- email must be less than 10 MB. The message body may contain HTML, with+ -- some limitations. For more information, see+ -- <https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#send-email-verify-address-custom-faq Custom verification email frequently asked questions>+ -- in the /Amazon SES Developer Guide/.+ templateContent :: Prelude.Text,+ -- | The URL that the recipient of the verification email is sent to if his+ -- or her address is successfully verified.+ successRedirectionURL :: Prelude.Text,+ -- | The URL that the recipient of the verification email is sent to if his+ -- or her address is not successfully verified.+ failureRedirectionURL :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateCustomVerificationEmailTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'templateName', 'createCustomVerificationEmailTemplate_templateName' - The name of the custom verification email template.+--+-- 'fromEmailAddress', 'createCustomVerificationEmailTemplate_fromEmailAddress' - The email address that the custom verification email is sent from.+--+-- 'templateSubject', 'createCustomVerificationEmailTemplate_templateSubject' - The subject line of the custom verification email.+--+-- 'templateContent', 'createCustomVerificationEmailTemplate_templateContent' - The content of the custom verification email. The total size of the+-- email must be less than 10 MB. The message body may contain HTML, with+-- some limitations. For more information, see+-- <https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#send-email-verify-address-custom-faq Custom verification email frequently asked questions>+-- in the /Amazon SES Developer Guide/.+--+-- 'successRedirectionURL', 'createCustomVerificationEmailTemplate_successRedirectionURL' - The URL that the recipient of the verification email is sent to if his+-- or her address is successfully verified.+--+-- 'failureRedirectionURL', 'createCustomVerificationEmailTemplate_failureRedirectionURL' - The URL that the recipient of the verification email is sent to if his+-- or her address is not successfully verified.+newCreateCustomVerificationEmailTemplate ::+ -- | 'templateName'+ Prelude.Text ->+ -- | 'fromEmailAddress'+ Prelude.Text ->+ -- | 'templateSubject'+ Prelude.Text ->+ -- | 'templateContent'+ Prelude.Text ->+ -- | 'successRedirectionURL'+ Prelude.Text ->+ -- | 'failureRedirectionURL'+ Prelude.Text ->+ CreateCustomVerificationEmailTemplate+newCreateCustomVerificationEmailTemplate+ pTemplateName_+ pFromEmailAddress_+ pTemplateSubject_+ pTemplateContent_+ pSuccessRedirectionURL_+ pFailureRedirectionURL_ =+ CreateCustomVerificationEmailTemplate'+ { templateName =+ pTemplateName_,+ fromEmailAddress =+ pFromEmailAddress_,+ templateSubject = pTemplateSubject_,+ templateContent = pTemplateContent_,+ successRedirectionURL =+ pSuccessRedirectionURL_,+ failureRedirectionURL =+ pFailureRedirectionURL_+ }++-- | The name of the custom verification email template.+createCustomVerificationEmailTemplate_templateName :: Lens.Lens' CreateCustomVerificationEmailTemplate Prelude.Text+createCustomVerificationEmailTemplate_templateName = Lens.lens (\CreateCustomVerificationEmailTemplate' {templateName} -> templateName) (\s@CreateCustomVerificationEmailTemplate' {} a -> s {templateName = a} :: CreateCustomVerificationEmailTemplate)++-- | The email address that the custom verification email is sent from.+createCustomVerificationEmailTemplate_fromEmailAddress :: Lens.Lens' CreateCustomVerificationEmailTemplate Prelude.Text+createCustomVerificationEmailTemplate_fromEmailAddress = Lens.lens (\CreateCustomVerificationEmailTemplate' {fromEmailAddress} -> fromEmailAddress) (\s@CreateCustomVerificationEmailTemplate' {} a -> s {fromEmailAddress = a} :: CreateCustomVerificationEmailTemplate)++-- | The subject line of the custom verification email.+createCustomVerificationEmailTemplate_templateSubject :: Lens.Lens' CreateCustomVerificationEmailTemplate Prelude.Text+createCustomVerificationEmailTemplate_templateSubject = Lens.lens (\CreateCustomVerificationEmailTemplate' {templateSubject} -> templateSubject) (\s@CreateCustomVerificationEmailTemplate' {} a -> s {templateSubject = a} :: CreateCustomVerificationEmailTemplate)++-- | The content of the custom verification email. The total size of the+-- email must be less than 10 MB. The message body may contain HTML, with+-- some limitations. For more information, see+-- <https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#send-email-verify-address-custom-faq Custom verification email frequently asked questions>+-- in the /Amazon SES Developer Guide/.+createCustomVerificationEmailTemplate_templateContent :: Lens.Lens' CreateCustomVerificationEmailTemplate Prelude.Text+createCustomVerificationEmailTemplate_templateContent = Lens.lens (\CreateCustomVerificationEmailTemplate' {templateContent} -> templateContent) (\s@CreateCustomVerificationEmailTemplate' {} a -> s {templateContent = a} :: CreateCustomVerificationEmailTemplate)++-- | The URL that the recipient of the verification email is sent to if his+-- or her address is successfully verified.+createCustomVerificationEmailTemplate_successRedirectionURL :: Lens.Lens' CreateCustomVerificationEmailTemplate Prelude.Text+createCustomVerificationEmailTemplate_successRedirectionURL = Lens.lens (\CreateCustomVerificationEmailTemplate' {successRedirectionURL} -> successRedirectionURL) (\s@CreateCustomVerificationEmailTemplate' {} a -> s {successRedirectionURL = a} :: CreateCustomVerificationEmailTemplate)++-- | The URL that the recipient of the verification email is sent to if his+-- or her address is not successfully verified.+createCustomVerificationEmailTemplate_failureRedirectionURL :: Lens.Lens' CreateCustomVerificationEmailTemplate Prelude.Text+createCustomVerificationEmailTemplate_failureRedirectionURL = Lens.lens (\CreateCustomVerificationEmailTemplate' {failureRedirectionURL} -> failureRedirectionURL) (\s@CreateCustomVerificationEmailTemplate' {} a -> s {failureRedirectionURL = a} :: CreateCustomVerificationEmailTemplate)++instance+ Core.AWSRequest+ CreateCustomVerificationEmailTemplate+ where+ type+ AWSResponse+ CreateCustomVerificationEmailTemplate =+ CreateCustomVerificationEmailTemplateResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ CreateCustomVerificationEmailTemplateResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ CreateCustomVerificationEmailTemplate+ where+ hashWithSalt+ _salt+ CreateCustomVerificationEmailTemplate' {..} =+ _salt+ `Prelude.hashWithSalt` templateName+ `Prelude.hashWithSalt` fromEmailAddress+ `Prelude.hashWithSalt` templateSubject+ `Prelude.hashWithSalt` templateContent+ `Prelude.hashWithSalt` successRedirectionURL+ `Prelude.hashWithSalt` failureRedirectionURL++instance+ Prelude.NFData+ CreateCustomVerificationEmailTemplate+ where+ rnf CreateCustomVerificationEmailTemplate' {..} =+ Prelude.rnf templateName+ `Prelude.seq` Prelude.rnf fromEmailAddress+ `Prelude.seq` Prelude.rnf templateSubject+ `Prelude.seq` Prelude.rnf templateContent+ `Prelude.seq` Prelude.rnf successRedirectionURL+ `Prelude.seq` Prelude.rnf failureRedirectionURL++instance+ Data.ToHeaders+ CreateCustomVerificationEmailTemplate+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToJSON+ CreateCustomVerificationEmailTemplate+ where+ toJSON CreateCustomVerificationEmailTemplate' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("TemplateName" Data..= templateName),+ Prelude.Just+ ("FromEmailAddress" Data..= fromEmailAddress),+ Prelude.Just+ ("TemplateSubject" Data..= templateSubject),+ Prelude.Just+ ("TemplateContent" Data..= templateContent),+ Prelude.Just+ ( "SuccessRedirectionURL"+ Data..= successRedirectionURL+ ),+ Prelude.Just+ ( "FailureRedirectionURL"+ Data..= failureRedirectionURL+ )+ ]+ )++instance+ Data.ToPath+ CreateCustomVerificationEmailTemplate+ where+ toPath =+ Prelude.const+ "/v2/email/custom-verification-email-templates"++instance+ Data.ToQuery+ CreateCustomVerificationEmailTemplate+ where+ toQuery = Prelude.const Prelude.mempty++-- | If the action is successful, the service sends back an HTTP 200 response+-- with an empty HTTP body.+--+-- /See:/ 'newCreateCustomVerificationEmailTemplateResponse' smart constructor.+data CreateCustomVerificationEmailTemplateResponse = CreateCustomVerificationEmailTemplateResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateCustomVerificationEmailTemplateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createCustomVerificationEmailTemplateResponse_httpStatus' - The response's http status code.+newCreateCustomVerificationEmailTemplateResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateCustomVerificationEmailTemplateResponse+newCreateCustomVerificationEmailTemplateResponse+ pHttpStatus_ =+ CreateCustomVerificationEmailTemplateResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+createCustomVerificationEmailTemplateResponse_httpStatus :: Lens.Lens' CreateCustomVerificationEmailTemplateResponse Prelude.Int+createCustomVerificationEmailTemplateResponse_httpStatus = Lens.lens (\CreateCustomVerificationEmailTemplateResponse' {httpStatus} -> httpStatus) (\s@CreateCustomVerificationEmailTemplateResponse' {} a -> s {httpStatus = a} :: CreateCustomVerificationEmailTemplateResponse)++instance+ Prelude.NFData+ CreateCustomVerificationEmailTemplateResponse+ where+ rnf+ CreateCustomVerificationEmailTemplateResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/CreateDedicatedIpPool.hs view
@@ -0,0 +1,196 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.CreateDedicatedIpPool+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Create a new pool of dedicated IP addresses. A pool can include one or+-- more dedicated IP addresses that are associated with your Amazon Web+-- Services account. You can associate a pool with a configuration set.+-- When you send an email that uses that configuration set, the message is+-- sent from one of the addresses in the associated pool.+module Amazonka.SESV2.CreateDedicatedIpPool+ ( -- * Creating a Request+ CreateDedicatedIpPool (..),+ newCreateDedicatedIpPool,++ -- * Request Lenses+ createDedicatedIpPool_scalingMode,+ createDedicatedIpPool_tags,+ createDedicatedIpPool_poolName,++ -- * Destructuring the Response+ CreateDedicatedIpPoolResponse (..),+ newCreateDedicatedIpPoolResponse,++ -- * Response Lenses+ createDedicatedIpPoolResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to create a new dedicated IP pool.+--+-- /See:/ 'newCreateDedicatedIpPool' smart constructor.+data CreateDedicatedIpPool = CreateDedicatedIpPool'+ { -- | The type of scaling mode.+ scalingMode :: Prelude.Maybe ScalingMode,+ -- | An object that defines the tags (keys and values) that you want to+ -- associate with the pool.+ tags :: Prelude.Maybe [Tag],+ -- | The name of the dedicated IP pool.+ poolName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDedicatedIpPool' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'scalingMode', 'createDedicatedIpPool_scalingMode' - The type of scaling mode.+--+-- 'tags', 'createDedicatedIpPool_tags' - An object that defines the tags (keys and values) that you want to+-- associate with the pool.+--+-- 'poolName', 'createDedicatedIpPool_poolName' - The name of the dedicated IP pool.+newCreateDedicatedIpPool ::+ -- | 'poolName'+ Prelude.Text ->+ CreateDedicatedIpPool+newCreateDedicatedIpPool pPoolName_ =+ CreateDedicatedIpPool'+ { scalingMode =+ Prelude.Nothing,+ tags = Prelude.Nothing,+ poolName = pPoolName_+ }++-- | The type of scaling mode.+createDedicatedIpPool_scalingMode :: Lens.Lens' CreateDedicatedIpPool (Prelude.Maybe ScalingMode)+createDedicatedIpPool_scalingMode = Lens.lens (\CreateDedicatedIpPool' {scalingMode} -> scalingMode) (\s@CreateDedicatedIpPool' {} a -> s {scalingMode = a} :: CreateDedicatedIpPool)++-- | An object that defines the tags (keys and values) that you want to+-- associate with the pool.+createDedicatedIpPool_tags :: Lens.Lens' CreateDedicatedIpPool (Prelude.Maybe [Tag])+createDedicatedIpPool_tags = Lens.lens (\CreateDedicatedIpPool' {tags} -> tags) (\s@CreateDedicatedIpPool' {} a -> s {tags = a} :: CreateDedicatedIpPool) Prelude.. Lens.mapping Lens.coerced++-- | The name of the dedicated IP pool.+createDedicatedIpPool_poolName :: Lens.Lens' CreateDedicatedIpPool Prelude.Text+createDedicatedIpPool_poolName = Lens.lens (\CreateDedicatedIpPool' {poolName} -> poolName) (\s@CreateDedicatedIpPool' {} a -> s {poolName = a} :: CreateDedicatedIpPool)++instance Core.AWSRequest CreateDedicatedIpPool where+ type+ AWSResponse CreateDedicatedIpPool =+ CreateDedicatedIpPoolResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ CreateDedicatedIpPoolResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateDedicatedIpPool where+ hashWithSalt _salt CreateDedicatedIpPool' {..} =+ _salt+ `Prelude.hashWithSalt` scalingMode+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` poolName++instance Prelude.NFData CreateDedicatedIpPool where+ rnf CreateDedicatedIpPool' {..} =+ Prelude.rnf scalingMode+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf poolName++instance Data.ToHeaders CreateDedicatedIpPool where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateDedicatedIpPool where+ toJSON CreateDedicatedIpPool' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ScalingMode" Data..=) Prelude.<$> scalingMode,+ ("Tags" Data..=) Prelude.<$> tags,+ Prelude.Just ("PoolName" Data..= poolName)+ ]+ )++instance Data.ToPath CreateDedicatedIpPool where+ toPath = Prelude.const "/v2/email/dedicated-ip-pools"++instance Data.ToQuery CreateDedicatedIpPool where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newCreateDedicatedIpPoolResponse' smart constructor.+data CreateDedicatedIpPoolResponse = CreateDedicatedIpPoolResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDedicatedIpPoolResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createDedicatedIpPoolResponse_httpStatus' - The response's http status code.+newCreateDedicatedIpPoolResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateDedicatedIpPoolResponse+newCreateDedicatedIpPoolResponse pHttpStatus_ =+ CreateDedicatedIpPoolResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+createDedicatedIpPoolResponse_httpStatus :: Lens.Lens' CreateDedicatedIpPoolResponse Prelude.Int+createDedicatedIpPoolResponse_httpStatus = Lens.lens (\CreateDedicatedIpPoolResponse' {httpStatus} -> httpStatus) (\s@CreateDedicatedIpPoolResponse' {} a -> s {httpStatus = a} :: CreateDedicatedIpPoolResponse)++instance Prelude.NFData CreateDedicatedIpPoolResponse where+ rnf CreateDedicatedIpPoolResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/CreateDeliverabilityTestReport.hs view
@@ -0,0 +1,300 @@+{-# 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.SESV2.CreateDeliverabilityTestReport+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Create a new predictive inbox placement test. Predictive inbox placement+-- tests can help you predict how your messages will be handled by various+-- email providers around the world. When you perform a predictive inbox+-- placement test, you provide a sample message that contains the content+-- that you plan to send to your customers. Amazon SES then sends that+-- message to special email addresses spread across several major email+-- providers. After about 24 hours, the test is complete, and you can use+-- the @GetDeliverabilityTestReport@ operation to view the results of the+-- test.+module Amazonka.SESV2.CreateDeliverabilityTestReport+ ( -- * Creating a Request+ CreateDeliverabilityTestReport (..),+ newCreateDeliverabilityTestReport,++ -- * Request Lenses+ createDeliverabilityTestReport_reportName,+ createDeliverabilityTestReport_tags,+ createDeliverabilityTestReport_fromEmailAddress,+ createDeliverabilityTestReport_content,++ -- * Destructuring the Response+ CreateDeliverabilityTestReportResponse (..),+ newCreateDeliverabilityTestReportResponse,++ -- * Response Lenses+ createDeliverabilityTestReportResponse_httpStatus,+ createDeliverabilityTestReportResponse_reportId,+ createDeliverabilityTestReportResponse_deliverabilityTestStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to perform a predictive inbox placement test. Predictive inbox+-- placement tests can help you predict how your messages will be handled+-- by various email providers around the world. When you perform a+-- predictive inbox placement test, you provide a sample message that+-- contains the content that you plan to send to your customers. We send+-- that message to special email addresses spread across several major+-- email providers around the world. The test takes about 24 hours to+-- complete. When the test is complete, you can use the+-- @GetDeliverabilityTestReport@ operation to view the results of the test.+--+-- /See:/ 'newCreateDeliverabilityTestReport' smart constructor.+data CreateDeliverabilityTestReport = CreateDeliverabilityTestReport'+ { -- | A unique name that helps you to identify the predictive inbox placement+ -- test when you retrieve the results.+ reportName :: Prelude.Maybe Prelude.Text,+ -- | An array of objects that define the tags (keys and values) that you want+ -- to associate with the predictive inbox placement test.+ tags :: Prelude.Maybe [Tag],+ -- | The email address that the predictive inbox placement test email was+ -- sent from.+ fromEmailAddress :: Prelude.Text,+ -- | The HTML body of the message that you sent when you performed the+ -- predictive inbox placement test.+ content :: EmailContent+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDeliverabilityTestReport' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'reportName', 'createDeliverabilityTestReport_reportName' - A unique name that helps you to identify the predictive inbox placement+-- test when you retrieve the results.+--+-- 'tags', 'createDeliverabilityTestReport_tags' - An array of objects that define the tags (keys and values) that you want+-- to associate with the predictive inbox placement test.+--+-- 'fromEmailAddress', 'createDeliverabilityTestReport_fromEmailAddress' - The email address that the predictive inbox placement test email was+-- sent from.+--+-- 'content', 'createDeliverabilityTestReport_content' - The HTML body of the message that you sent when you performed the+-- predictive inbox placement test.+newCreateDeliverabilityTestReport ::+ -- | 'fromEmailAddress'+ Prelude.Text ->+ -- | 'content'+ EmailContent ->+ CreateDeliverabilityTestReport+newCreateDeliverabilityTestReport+ pFromEmailAddress_+ pContent_ =+ CreateDeliverabilityTestReport'+ { reportName =+ Prelude.Nothing,+ tags = Prelude.Nothing,+ fromEmailAddress = pFromEmailAddress_,+ content = pContent_+ }++-- | A unique name that helps you to identify the predictive inbox placement+-- test when you retrieve the results.+createDeliverabilityTestReport_reportName :: Lens.Lens' CreateDeliverabilityTestReport (Prelude.Maybe Prelude.Text)+createDeliverabilityTestReport_reportName = Lens.lens (\CreateDeliverabilityTestReport' {reportName} -> reportName) (\s@CreateDeliverabilityTestReport' {} a -> s {reportName = a} :: CreateDeliverabilityTestReport)++-- | An array of objects that define the tags (keys and values) that you want+-- to associate with the predictive inbox placement test.+createDeliverabilityTestReport_tags :: Lens.Lens' CreateDeliverabilityTestReport (Prelude.Maybe [Tag])+createDeliverabilityTestReport_tags = Lens.lens (\CreateDeliverabilityTestReport' {tags} -> tags) (\s@CreateDeliverabilityTestReport' {} a -> s {tags = a} :: CreateDeliverabilityTestReport) Prelude.. Lens.mapping Lens.coerced++-- | The email address that the predictive inbox placement test email was+-- sent from.+createDeliverabilityTestReport_fromEmailAddress :: Lens.Lens' CreateDeliverabilityTestReport Prelude.Text+createDeliverabilityTestReport_fromEmailAddress = Lens.lens (\CreateDeliverabilityTestReport' {fromEmailAddress} -> fromEmailAddress) (\s@CreateDeliverabilityTestReport' {} a -> s {fromEmailAddress = a} :: CreateDeliverabilityTestReport)++-- | The HTML body of the message that you sent when you performed the+-- predictive inbox placement test.+createDeliverabilityTestReport_content :: Lens.Lens' CreateDeliverabilityTestReport EmailContent+createDeliverabilityTestReport_content = Lens.lens (\CreateDeliverabilityTestReport' {content} -> content) (\s@CreateDeliverabilityTestReport' {} a -> s {content = a} :: CreateDeliverabilityTestReport)++instance+ Core.AWSRequest+ CreateDeliverabilityTestReport+ where+ type+ AWSResponse CreateDeliverabilityTestReport =+ CreateDeliverabilityTestReportResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateDeliverabilityTestReportResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "ReportId")+ Prelude.<*> (x Data..:> "DeliverabilityTestStatus")+ )++instance+ Prelude.Hashable+ CreateDeliverabilityTestReport+ where+ hashWithSalt+ _salt+ CreateDeliverabilityTestReport' {..} =+ _salt+ `Prelude.hashWithSalt` reportName+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` fromEmailAddress+ `Prelude.hashWithSalt` content++instance+ Prelude.NFData+ CreateDeliverabilityTestReport+ where+ rnf CreateDeliverabilityTestReport' {..} =+ Prelude.rnf reportName+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf fromEmailAddress+ `Prelude.seq` Prelude.rnf content++instance+ Data.ToHeaders+ CreateDeliverabilityTestReport+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateDeliverabilityTestReport where+ toJSON CreateDeliverabilityTestReport' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ReportName" Data..=) Prelude.<$> reportName,+ ("Tags" Data..=) Prelude.<$> tags,+ Prelude.Just+ ("FromEmailAddress" Data..= fromEmailAddress),+ Prelude.Just ("Content" Data..= content)+ ]+ )++instance Data.ToPath CreateDeliverabilityTestReport where+ toPath =+ Prelude.const+ "/v2/email/deliverability-dashboard/test"++instance Data.ToQuery CreateDeliverabilityTestReport where+ toQuery = Prelude.const Prelude.mempty++-- | Information about the predictive inbox placement test that you created.+--+-- /See:/ 'newCreateDeliverabilityTestReportResponse' smart constructor.+data CreateDeliverabilityTestReportResponse = CreateDeliverabilityTestReportResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | A unique string that identifies the predictive inbox placement test.+ reportId :: Prelude.Text,+ -- | The status of the predictive inbox placement test. If the status is+ -- @IN_PROGRESS@, then the predictive inbox placement test is currently+ -- running. Predictive inbox placement tests are usually complete within 24+ -- hours of creating the test. If the status is @COMPLETE@, then the test+ -- is finished, and you can use the @GetDeliverabilityTestReport@ to view+ -- the results of the test.+ deliverabilityTestStatus :: DeliverabilityTestStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDeliverabilityTestReportResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createDeliverabilityTestReportResponse_httpStatus' - The response's http status code.+--+-- 'reportId', 'createDeliverabilityTestReportResponse_reportId' - A unique string that identifies the predictive inbox placement test.+--+-- 'deliverabilityTestStatus', 'createDeliverabilityTestReportResponse_deliverabilityTestStatus' - The status of the predictive inbox placement test. If the status is+-- @IN_PROGRESS@, then the predictive inbox placement test is currently+-- running. Predictive inbox placement tests are usually complete within 24+-- hours of creating the test. If the status is @COMPLETE@, then the test+-- is finished, and you can use the @GetDeliverabilityTestReport@ to view+-- the results of the test.+newCreateDeliverabilityTestReportResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'reportId'+ Prelude.Text ->+ -- | 'deliverabilityTestStatus'+ DeliverabilityTestStatus ->+ CreateDeliverabilityTestReportResponse+newCreateDeliverabilityTestReportResponse+ pHttpStatus_+ pReportId_+ pDeliverabilityTestStatus_ =+ CreateDeliverabilityTestReportResponse'+ { httpStatus =+ pHttpStatus_,+ reportId = pReportId_,+ deliverabilityTestStatus =+ pDeliverabilityTestStatus_+ }++-- | The response's http status code.+createDeliverabilityTestReportResponse_httpStatus :: Lens.Lens' CreateDeliverabilityTestReportResponse Prelude.Int+createDeliverabilityTestReportResponse_httpStatus = Lens.lens (\CreateDeliverabilityTestReportResponse' {httpStatus} -> httpStatus) (\s@CreateDeliverabilityTestReportResponse' {} a -> s {httpStatus = a} :: CreateDeliverabilityTestReportResponse)++-- | A unique string that identifies the predictive inbox placement test.+createDeliverabilityTestReportResponse_reportId :: Lens.Lens' CreateDeliverabilityTestReportResponse Prelude.Text+createDeliverabilityTestReportResponse_reportId = Lens.lens (\CreateDeliverabilityTestReportResponse' {reportId} -> reportId) (\s@CreateDeliverabilityTestReportResponse' {} a -> s {reportId = a} :: CreateDeliverabilityTestReportResponse)++-- | The status of the predictive inbox placement test. If the status is+-- @IN_PROGRESS@, then the predictive inbox placement test is currently+-- running. Predictive inbox placement tests are usually complete within 24+-- hours of creating the test. If the status is @COMPLETE@, then the test+-- is finished, and you can use the @GetDeliverabilityTestReport@ to view+-- the results of the test.+createDeliverabilityTestReportResponse_deliverabilityTestStatus :: Lens.Lens' CreateDeliverabilityTestReportResponse DeliverabilityTestStatus+createDeliverabilityTestReportResponse_deliverabilityTestStatus = Lens.lens (\CreateDeliverabilityTestReportResponse' {deliverabilityTestStatus} -> deliverabilityTestStatus) (\s@CreateDeliverabilityTestReportResponse' {} a -> s {deliverabilityTestStatus = a} :: CreateDeliverabilityTestReportResponse)++instance+ Prelude.NFData+ CreateDeliverabilityTestReportResponse+ where+ rnf CreateDeliverabilityTestReportResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf reportId+ `Prelude.seq` Prelude.rnf deliverabilityTestStatus
+ gen/Amazonka/SESV2/CreateEmailIdentity.hs view
@@ -0,0 +1,321 @@+{-# 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.SESV2.CreateEmailIdentity+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Starts the process of verifying an email identity. An /identity/ is an+-- email address or domain that you use when you send email. Before you can+-- use an identity to send email, you first have to verify it. By verifying+-- an identity, you demonstrate that you\'re the owner of the identity, and+-- that you\'ve given Amazon SES API v2 permission to send email from the+-- identity.+--+-- When you verify an email address, Amazon SES sends an email to the+-- address. Your email address is verified as soon as you follow the link+-- in the verification email.+--+-- When you verify a domain without specifying the @DkimSigningAttributes@+-- object, this operation provides a set of DKIM tokens. You can convert+-- these tokens into CNAME records, which you then add to the DNS+-- configuration for your domain. Your domain is verified when Amazon SES+-- detects these records in the DNS configuration for your domain. This+-- verification method is known as+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>.+--+-- Alternatively, you can perform the verification process by providing+-- your own public-private key pair. This verification method is known as+-- Bring Your Own DKIM (BYODKIM). To use BYODKIM, your call to the+-- @CreateEmailIdentity@ operation has to include the+-- @DkimSigningAttributes@ object. When you specify this object, you+-- provide a selector (a component of the DNS record name that identifies+-- the public key to use for DKIM authentication) and a private key.+--+-- When you verify a domain, this operation provides a set of DKIM tokens,+-- which you can convert into CNAME tokens. You add these CNAME tokens to+-- the DNS configuration for your domain. Your domain is verified when+-- Amazon SES detects these records in the DNS configuration for your+-- domain. For some DNS providers, it can take 72 hours or more to complete+-- the domain verification process.+--+-- Additionally, you can associate an existing configuration set with the+-- email identity that you\'re verifying.+module Amazonka.SESV2.CreateEmailIdentity+ ( -- * Creating a Request+ CreateEmailIdentity (..),+ newCreateEmailIdentity,++ -- * Request Lenses+ createEmailIdentity_configurationSetName,+ createEmailIdentity_dkimSigningAttributes,+ createEmailIdentity_tags,+ createEmailIdentity_emailIdentity,++ -- * Destructuring the Response+ CreateEmailIdentityResponse (..),+ newCreateEmailIdentityResponse,++ -- * Response Lenses+ createEmailIdentityResponse_dkimAttributes,+ createEmailIdentityResponse_identityType,+ createEmailIdentityResponse_verifiedForSendingStatus,+ createEmailIdentityResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to begin the verification process for an email identity (an+-- email address or domain).+--+-- /See:/ 'newCreateEmailIdentity' smart constructor.+data CreateEmailIdentity = CreateEmailIdentity'+ { -- | The configuration set to use by default when sending from this identity.+ -- Note that any configuration set defined in the email sending request+ -- takes precedence.+ configurationSetName :: Prelude.Maybe Prelude.Text,+ -- | If your request includes this object, Amazon SES configures the identity+ -- to use Bring Your Own DKIM (BYODKIM) for DKIM authentication purposes,+ -- or, configures the key length to be used for+ -- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>.+ --+ -- You can only specify this object if the email identity is a domain, as+ -- opposed to an address.+ dkimSigningAttributes :: Prelude.Maybe DkimSigningAttributes,+ -- | An array of objects that define the tags (keys and values) to associate+ -- with the email identity.+ tags :: Prelude.Maybe [Tag],+ -- | The email address or domain to verify.+ emailIdentity :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateEmailIdentity' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configurationSetName', 'createEmailIdentity_configurationSetName' - The configuration set to use by default when sending from this identity.+-- Note that any configuration set defined in the email sending request+-- takes precedence.+--+-- 'dkimSigningAttributes', 'createEmailIdentity_dkimSigningAttributes' - If your request includes this object, Amazon SES configures the identity+-- to use Bring Your Own DKIM (BYODKIM) for DKIM authentication purposes,+-- or, configures the key length to be used for+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>.+--+-- You can only specify this object if the email identity is a domain, as+-- opposed to an address.+--+-- 'tags', 'createEmailIdentity_tags' - An array of objects that define the tags (keys and values) to associate+-- with the email identity.+--+-- 'emailIdentity', 'createEmailIdentity_emailIdentity' - The email address or domain to verify.+newCreateEmailIdentity ::+ -- | 'emailIdentity'+ Prelude.Text ->+ CreateEmailIdentity+newCreateEmailIdentity pEmailIdentity_ =+ CreateEmailIdentity'+ { configurationSetName =+ Prelude.Nothing,+ dkimSigningAttributes = Prelude.Nothing,+ tags = Prelude.Nothing,+ emailIdentity = pEmailIdentity_+ }++-- | The configuration set to use by default when sending from this identity.+-- Note that any configuration set defined in the email sending request+-- takes precedence.+createEmailIdentity_configurationSetName :: Lens.Lens' CreateEmailIdentity (Prelude.Maybe Prelude.Text)+createEmailIdentity_configurationSetName = Lens.lens (\CreateEmailIdentity' {configurationSetName} -> configurationSetName) (\s@CreateEmailIdentity' {} a -> s {configurationSetName = a} :: CreateEmailIdentity)++-- | If your request includes this object, Amazon SES configures the identity+-- to use Bring Your Own DKIM (BYODKIM) for DKIM authentication purposes,+-- or, configures the key length to be used for+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>.+--+-- You can only specify this object if the email identity is a domain, as+-- opposed to an address.+createEmailIdentity_dkimSigningAttributes :: Lens.Lens' CreateEmailIdentity (Prelude.Maybe DkimSigningAttributes)+createEmailIdentity_dkimSigningAttributes = Lens.lens (\CreateEmailIdentity' {dkimSigningAttributes} -> dkimSigningAttributes) (\s@CreateEmailIdentity' {} a -> s {dkimSigningAttributes = a} :: CreateEmailIdentity)++-- | An array of objects that define the tags (keys and values) to associate+-- with the email identity.+createEmailIdentity_tags :: Lens.Lens' CreateEmailIdentity (Prelude.Maybe [Tag])+createEmailIdentity_tags = Lens.lens (\CreateEmailIdentity' {tags} -> tags) (\s@CreateEmailIdentity' {} a -> s {tags = a} :: CreateEmailIdentity) Prelude.. Lens.mapping Lens.coerced++-- | The email address or domain to verify.+createEmailIdentity_emailIdentity :: Lens.Lens' CreateEmailIdentity Prelude.Text+createEmailIdentity_emailIdentity = Lens.lens (\CreateEmailIdentity' {emailIdentity} -> emailIdentity) (\s@CreateEmailIdentity' {} a -> s {emailIdentity = a} :: CreateEmailIdentity)++instance Core.AWSRequest CreateEmailIdentity where+ type+ AWSResponse CreateEmailIdentity =+ CreateEmailIdentityResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateEmailIdentityResponse'+ Prelude.<$> (x Data..?> "DkimAttributes")+ Prelude.<*> (x Data..?> "IdentityType")+ Prelude.<*> (x Data..?> "VerifiedForSendingStatus")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateEmailIdentity where+ hashWithSalt _salt CreateEmailIdentity' {..} =+ _salt+ `Prelude.hashWithSalt` configurationSetName+ `Prelude.hashWithSalt` dkimSigningAttributes+ `Prelude.hashWithSalt` tags+ `Prelude.hashWithSalt` emailIdentity++instance Prelude.NFData CreateEmailIdentity where+ rnf CreateEmailIdentity' {..} =+ Prelude.rnf configurationSetName+ `Prelude.seq` Prelude.rnf dkimSigningAttributes+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf emailIdentity++instance Data.ToHeaders CreateEmailIdentity where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateEmailIdentity where+ toJSON CreateEmailIdentity' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ConfigurationSetName" Data..=)+ Prelude.<$> configurationSetName,+ ("DkimSigningAttributes" Data..=)+ Prelude.<$> dkimSigningAttributes,+ ("Tags" Data..=) Prelude.<$> tags,+ Prelude.Just+ ("EmailIdentity" Data..= emailIdentity)+ ]+ )++instance Data.ToPath CreateEmailIdentity where+ toPath = Prelude.const "/v2/email/identities"++instance Data.ToQuery CreateEmailIdentity where+ toQuery = Prelude.const Prelude.mempty++-- | If the email identity is a domain, this object contains information+-- about the DKIM verification status for the domain.+--+-- If the email identity is an email address, this object is empty.+--+-- /See:/ 'newCreateEmailIdentityResponse' smart constructor.+data CreateEmailIdentityResponse = CreateEmailIdentityResponse'+ { -- | An object that contains information about the DKIM attributes for the+ -- identity.+ dkimAttributes :: Prelude.Maybe DkimAttributes,+ -- | The email identity type. Note: the @MANAGED_DOMAIN@ identity type is not+ -- supported.+ identityType :: Prelude.Maybe IdentityType,+ -- | Specifies whether or not the identity is verified. You can only send+ -- email from verified email addresses or domains. For more information+ -- about verifying identities, see the+ -- <https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-manage-verify.html Amazon Pinpoint User Guide>.+ verifiedForSendingStatus :: Prelude.Maybe Prelude.Bool,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateEmailIdentityResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dkimAttributes', 'createEmailIdentityResponse_dkimAttributes' - An object that contains information about the DKIM attributes for the+-- identity.+--+-- 'identityType', 'createEmailIdentityResponse_identityType' - The email identity type. Note: the @MANAGED_DOMAIN@ identity type is not+-- supported.+--+-- 'verifiedForSendingStatus', 'createEmailIdentityResponse_verifiedForSendingStatus' - Specifies whether or not the identity is verified. You can only send+-- email from verified email addresses or domains. For more information+-- about verifying identities, see the+-- <https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-manage-verify.html Amazon Pinpoint User Guide>.+--+-- 'httpStatus', 'createEmailIdentityResponse_httpStatus' - The response's http status code.+newCreateEmailIdentityResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateEmailIdentityResponse+newCreateEmailIdentityResponse pHttpStatus_ =+ CreateEmailIdentityResponse'+ { dkimAttributes =+ Prelude.Nothing,+ identityType = Prelude.Nothing,+ verifiedForSendingStatus = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | An object that contains information about the DKIM attributes for the+-- identity.+createEmailIdentityResponse_dkimAttributes :: Lens.Lens' CreateEmailIdentityResponse (Prelude.Maybe DkimAttributes)+createEmailIdentityResponse_dkimAttributes = Lens.lens (\CreateEmailIdentityResponse' {dkimAttributes} -> dkimAttributes) (\s@CreateEmailIdentityResponse' {} a -> s {dkimAttributes = a} :: CreateEmailIdentityResponse)++-- | The email identity type. Note: the @MANAGED_DOMAIN@ identity type is not+-- supported.+createEmailIdentityResponse_identityType :: Lens.Lens' CreateEmailIdentityResponse (Prelude.Maybe IdentityType)+createEmailIdentityResponse_identityType = Lens.lens (\CreateEmailIdentityResponse' {identityType} -> identityType) (\s@CreateEmailIdentityResponse' {} a -> s {identityType = a} :: CreateEmailIdentityResponse)++-- | Specifies whether or not the identity is verified. You can only send+-- email from verified email addresses or domains. For more information+-- about verifying identities, see the+-- <https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-manage-verify.html Amazon Pinpoint User Guide>.+createEmailIdentityResponse_verifiedForSendingStatus :: Lens.Lens' CreateEmailIdentityResponse (Prelude.Maybe Prelude.Bool)+createEmailIdentityResponse_verifiedForSendingStatus = Lens.lens (\CreateEmailIdentityResponse' {verifiedForSendingStatus} -> verifiedForSendingStatus) (\s@CreateEmailIdentityResponse' {} a -> s {verifiedForSendingStatus = a} :: CreateEmailIdentityResponse)++-- | The response's http status code.+createEmailIdentityResponse_httpStatus :: Lens.Lens' CreateEmailIdentityResponse Prelude.Int+createEmailIdentityResponse_httpStatus = Lens.lens (\CreateEmailIdentityResponse' {httpStatus} -> httpStatus) (\s@CreateEmailIdentityResponse' {} a -> s {httpStatus = a} :: CreateEmailIdentityResponse)++instance Prelude.NFData CreateEmailIdentityResponse where+ rnf CreateEmailIdentityResponse' {..} =+ Prelude.rnf dkimAttributes+ `Prelude.seq` Prelude.rnf identityType+ `Prelude.seq` Prelude.rnf verifiedForSendingStatus+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/CreateEmailIdentityPolicy.hs view
@@ -0,0 +1,238 @@+{-# 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.SESV2.CreateEmailIdentityPolicy+-- 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 the specified sending authorization policy for the given+-- identity (an email address or a domain).+--+-- This API is for the identity owner only. If you have not verified the+-- identity, this API will return an error.+--+-- Sending authorization is a feature that enables an identity owner to+-- authorize other senders to use its identities. For information about+-- using sending authorization, see the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html Amazon SES Developer Guide>.+--+-- You can execute this operation no more than once per second.+module Amazonka.SESV2.CreateEmailIdentityPolicy+ ( -- * Creating a Request+ CreateEmailIdentityPolicy (..),+ newCreateEmailIdentityPolicy,++ -- * Request Lenses+ createEmailIdentityPolicy_emailIdentity,+ createEmailIdentityPolicy_policyName,+ createEmailIdentityPolicy_policy,++ -- * Destructuring the Response+ CreateEmailIdentityPolicyResponse (..),+ newCreateEmailIdentityPolicyResponse,++ -- * Response Lenses+ createEmailIdentityPolicyResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | Represents a request to create a sending authorization policy for an+-- identity. Sending authorization is an Amazon SES feature that enables+-- you to authorize other senders to use your identities. For information,+-- see the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-identity-owner-tasks-management.html Amazon SES Developer Guide>.+--+-- /See:/ 'newCreateEmailIdentityPolicy' smart constructor.+data CreateEmailIdentityPolicy = CreateEmailIdentityPolicy'+ { -- | The email identity.+ emailIdentity :: Prelude.Text,+ -- | The name of the policy.+ --+ -- The policy name cannot exceed 64 characters and can only include+ -- alphanumeric characters, dashes, and underscores.+ policyName :: Prelude.Text,+ -- | The text of the policy in JSON format. The policy cannot exceed 4 KB.+ --+ -- For information about the syntax of sending authorization policies, see+ -- the+ -- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-policies.html Amazon SES Developer Guide>.+ policy :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateEmailIdentityPolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'emailIdentity', 'createEmailIdentityPolicy_emailIdentity' - The email identity.+--+-- 'policyName', 'createEmailIdentityPolicy_policyName' - The name of the policy.+--+-- The policy name cannot exceed 64 characters and can only include+-- alphanumeric characters, dashes, and underscores.+--+-- 'policy', 'createEmailIdentityPolicy_policy' - The text of the policy in JSON format. The policy cannot exceed 4 KB.+--+-- For information about the syntax of sending authorization policies, see+-- the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-policies.html Amazon SES Developer Guide>.+newCreateEmailIdentityPolicy ::+ -- | 'emailIdentity'+ Prelude.Text ->+ -- | 'policyName'+ Prelude.Text ->+ -- | 'policy'+ Prelude.Text ->+ CreateEmailIdentityPolicy+newCreateEmailIdentityPolicy+ pEmailIdentity_+ pPolicyName_+ pPolicy_ =+ CreateEmailIdentityPolicy'+ { emailIdentity =+ pEmailIdentity_,+ policyName = pPolicyName_,+ policy = pPolicy_+ }++-- | The email identity.+createEmailIdentityPolicy_emailIdentity :: Lens.Lens' CreateEmailIdentityPolicy Prelude.Text+createEmailIdentityPolicy_emailIdentity = Lens.lens (\CreateEmailIdentityPolicy' {emailIdentity} -> emailIdentity) (\s@CreateEmailIdentityPolicy' {} a -> s {emailIdentity = a} :: CreateEmailIdentityPolicy)++-- | The name of the policy.+--+-- The policy name cannot exceed 64 characters and can only include+-- alphanumeric characters, dashes, and underscores.+createEmailIdentityPolicy_policyName :: Lens.Lens' CreateEmailIdentityPolicy Prelude.Text+createEmailIdentityPolicy_policyName = Lens.lens (\CreateEmailIdentityPolicy' {policyName} -> policyName) (\s@CreateEmailIdentityPolicy' {} a -> s {policyName = a} :: CreateEmailIdentityPolicy)++-- | The text of the policy in JSON format. The policy cannot exceed 4 KB.+--+-- For information about the syntax of sending authorization policies, see+-- the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-policies.html Amazon SES Developer Guide>.+createEmailIdentityPolicy_policy :: Lens.Lens' CreateEmailIdentityPolicy Prelude.Text+createEmailIdentityPolicy_policy = Lens.lens (\CreateEmailIdentityPolicy' {policy} -> policy) (\s@CreateEmailIdentityPolicy' {} a -> s {policy = a} :: CreateEmailIdentityPolicy)++instance Core.AWSRequest CreateEmailIdentityPolicy where+ type+ AWSResponse CreateEmailIdentityPolicy =+ CreateEmailIdentityPolicyResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ CreateEmailIdentityPolicyResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateEmailIdentityPolicy where+ hashWithSalt _salt CreateEmailIdentityPolicy' {..} =+ _salt+ `Prelude.hashWithSalt` emailIdentity+ `Prelude.hashWithSalt` policyName+ `Prelude.hashWithSalt` policy++instance Prelude.NFData CreateEmailIdentityPolicy where+ rnf CreateEmailIdentityPolicy' {..} =+ Prelude.rnf emailIdentity+ `Prelude.seq` Prelude.rnf policyName+ `Prelude.seq` Prelude.rnf policy++instance Data.ToHeaders CreateEmailIdentityPolicy where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateEmailIdentityPolicy where+ toJSON CreateEmailIdentityPolicy' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("Policy" Data..= policy)]+ )++instance Data.ToPath CreateEmailIdentityPolicy where+ toPath CreateEmailIdentityPolicy' {..} =+ Prelude.mconcat+ [ "/v2/email/identities/",+ Data.toBS emailIdentity,+ "/policies/",+ Data.toBS policyName+ ]++instance Data.ToQuery CreateEmailIdentityPolicy where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newCreateEmailIdentityPolicyResponse' smart constructor.+data CreateEmailIdentityPolicyResponse = CreateEmailIdentityPolicyResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateEmailIdentityPolicyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createEmailIdentityPolicyResponse_httpStatus' - The response's http status code.+newCreateEmailIdentityPolicyResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateEmailIdentityPolicyResponse+newCreateEmailIdentityPolicyResponse pHttpStatus_ =+ CreateEmailIdentityPolicyResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+createEmailIdentityPolicyResponse_httpStatus :: Lens.Lens' CreateEmailIdentityPolicyResponse Prelude.Int+createEmailIdentityPolicyResponse_httpStatus = Lens.lens (\CreateEmailIdentityPolicyResponse' {httpStatus} -> httpStatus) (\s@CreateEmailIdentityPolicyResponse' {} a -> s {httpStatus = a} :: CreateEmailIdentityPolicyResponse)++instance+ Prelude.NFData+ CreateEmailIdentityPolicyResponse+ where+ rnf CreateEmailIdentityPolicyResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/CreateEmailTemplate.hs view
@@ -0,0 +1,190 @@+{-# 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.SESV2.CreateEmailTemplate+-- 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 email template. Email templates enable you to send+-- personalized email to one or more destinations in a single API+-- operation. For more information, see the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-personalized-email-api.html Amazon SES Developer Guide>.+--+-- You can execute this operation no more than once per second.+module Amazonka.SESV2.CreateEmailTemplate+ ( -- * Creating a Request+ CreateEmailTemplate (..),+ newCreateEmailTemplate,++ -- * Request Lenses+ createEmailTemplate_templateName,+ createEmailTemplate_templateContent,++ -- * Destructuring the Response+ CreateEmailTemplateResponse (..),+ newCreateEmailTemplateResponse,++ -- * Response Lenses+ createEmailTemplateResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | Represents a request to create an email template. For more information,+-- see the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-personalized-email-api.html Amazon SES Developer Guide>.+--+-- /See:/ 'newCreateEmailTemplate' smart constructor.+data CreateEmailTemplate = CreateEmailTemplate'+ { -- | The name of the template.+ templateName :: Prelude.Text,+ -- | The content of the email template, composed of a subject line, an HTML+ -- part, and a text-only part.+ templateContent :: EmailTemplateContent+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateEmailTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'templateName', 'createEmailTemplate_templateName' - The name of the template.+--+-- 'templateContent', 'createEmailTemplate_templateContent' - The content of the email template, composed of a subject line, an HTML+-- part, and a text-only part.+newCreateEmailTemplate ::+ -- | 'templateName'+ Prelude.Text ->+ -- | 'templateContent'+ EmailTemplateContent ->+ CreateEmailTemplate+newCreateEmailTemplate+ pTemplateName_+ pTemplateContent_ =+ CreateEmailTemplate'+ { templateName = pTemplateName_,+ templateContent = pTemplateContent_+ }++-- | The name of the template.+createEmailTemplate_templateName :: Lens.Lens' CreateEmailTemplate Prelude.Text+createEmailTemplate_templateName = Lens.lens (\CreateEmailTemplate' {templateName} -> templateName) (\s@CreateEmailTemplate' {} a -> s {templateName = a} :: CreateEmailTemplate)++-- | The content of the email template, composed of a subject line, an HTML+-- part, and a text-only part.+createEmailTemplate_templateContent :: Lens.Lens' CreateEmailTemplate EmailTemplateContent+createEmailTemplate_templateContent = Lens.lens (\CreateEmailTemplate' {templateContent} -> templateContent) (\s@CreateEmailTemplate' {} a -> s {templateContent = a} :: CreateEmailTemplate)++instance Core.AWSRequest CreateEmailTemplate where+ type+ AWSResponse CreateEmailTemplate =+ CreateEmailTemplateResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ CreateEmailTemplateResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateEmailTemplate where+ hashWithSalt _salt CreateEmailTemplate' {..} =+ _salt+ `Prelude.hashWithSalt` templateName+ `Prelude.hashWithSalt` templateContent++instance Prelude.NFData CreateEmailTemplate where+ rnf CreateEmailTemplate' {..} =+ Prelude.rnf templateName+ `Prelude.seq` Prelude.rnf templateContent++instance Data.ToHeaders CreateEmailTemplate where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateEmailTemplate where+ toJSON CreateEmailTemplate' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("TemplateName" Data..= templateName),+ Prelude.Just+ ("TemplateContent" Data..= templateContent)+ ]+ )++instance Data.ToPath CreateEmailTemplate where+ toPath = Prelude.const "/v2/email/templates"++instance Data.ToQuery CreateEmailTemplate where+ toQuery = Prelude.const Prelude.mempty++-- | If the action is successful, the service sends back an HTTP 200 response+-- with an empty HTTP body.+--+-- /See:/ 'newCreateEmailTemplateResponse' smart constructor.+data CreateEmailTemplateResponse = CreateEmailTemplateResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateEmailTemplateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createEmailTemplateResponse_httpStatus' - The response's http status code.+newCreateEmailTemplateResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateEmailTemplateResponse+newCreateEmailTemplateResponse pHttpStatus_ =+ CreateEmailTemplateResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+createEmailTemplateResponse_httpStatus :: Lens.Lens' CreateEmailTemplateResponse Prelude.Int+createEmailTemplateResponse_httpStatus = Lens.lens (\CreateEmailTemplateResponse' {httpStatus} -> httpStatus) (\s@CreateEmailTemplateResponse' {} a -> s {httpStatus = a} :: CreateEmailTemplateResponse)++instance Prelude.NFData CreateEmailTemplateResponse where+ rnf CreateEmailTemplateResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/CreateImportJob.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.SESV2.CreateImportJob+-- 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 import job for a data destination.+module Amazonka.SESV2.CreateImportJob+ ( -- * Creating a Request+ CreateImportJob (..),+ newCreateImportJob,++ -- * Request Lenses+ createImportJob_importDestination,+ createImportJob_importDataSource,++ -- * Destructuring the Response+ CreateImportJobResponse (..),+ newCreateImportJobResponse,++ -- * Response Lenses+ createImportJobResponse_jobId,+ createImportJobResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | Represents a request to create an import job from a data source for a+-- data destination.+--+-- /See:/ 'newCreateImportJob' smart constructor.+data CreateImportJob = CreateImportJob'+ { -- | The destination for the import job.+ importDestination :: ImportDestination,+ -- | The data source for the import job.+ importDataSource :: ImportDataSource+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateImportJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'importDestination', 'createImportJob_importDestination' - The destination for the import job.+--+-- 'importDataSource', 'createImportJob_importDataSource' - The data source for the import job.+newCreateImportJob ::+ -- | 'importDestination'+ ImportDestination ->+ -- | 'importDataSource'+ ImportDataSource ->+ CreateImportJob+newCreateImportJob+ pImportDestination_+ pImportDataSource_ =+ CreateImportJob'+ { importDestination =+ pImportDestination_,+ importDataSource = pImportDataSource_+ }++-- | The destination for the import job.+createImportJob_importDestination :: Lens.Lens' CreateImportJob ImportDestination+createImportJob_importDestination = Lens.lens (\CreateImportJob' {importDestination} -> importDestination) (\s@CreateImportJob' {} a -> s {importDestination = a} :: CreateImportJob)++-- | The data source for the import job.+createImportJob_importDataSource :: Lens.Lens' CreateImportJob ImportDataSource+createImportJob_importDataSource = Lens.lens (\CreateImportJob' {importDataSource} -> importDataSource) (\s@CreateImportJob' {} a -> s {importDataSource = a} :: CreateImportJob)++instance Core.AWSRequest CreateImportJob where+ type+ AWSResponse CreateImportJob =+ CreateImportJobResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ CreateImportJobResponse'+ Prelude.<$> (x Data..?> "JobId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable CreateImportJob where+ hashWithSalt _salt CreateImportJob' {..} =+ _salt+ `Prelude.hashWithSalt` importDestination+ `Prelude.hashWithSalt` importDataSource++instance Prelude.NFData CreateImportJob where+ rnf CreateImportJob' {..} =+ Prelude.rnf importDestination+ `Prelude.seq` Prelude.rnf importDataSource++instance Data.ToHeaders CreateImportJob where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON CreateImportJob where+ toJSON CreateImportJob' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("ImportDestination" Data..= importDestination),+ Prelude.Just+ ("ImportDataSource" Data..= importDataSource)+ ]+ )++instance Data.ToPath CreateImportJob where+ toPath = Prelude.const "/v2/email/import-jobs"++instance Data.ToQuery CreateImportJob where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newCreateImportJobResponse' smart constructor.+data CreateImportJobResponse = CreateImportJobResponse'+ { -- | A string that represents the import job ID.+ jobId :: 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 'CreateImportJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jobId', 'createImportJobResponse_jobId' - A string that represents the import job ID.+--+-- 'httpStatus', 'createImportJobResponse_httpStatus' - The response's http status code.+newCreateImportJobResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ CreateImportJobResponse+newCreateImportJobResponse pHttpStatus_ =+ CreateImportJobResponse'+ { jobId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A string that represents the import job ID.+createImportJobResponse_jobId :: Lens.Lens' CreateImportJobResponse (Prelude.Maybe Prelude.Text)+createImportJobResponse_jobId = Lens.lens (\CreateImportJobResponse' {jobId} -> jobId) (\s@CreateImportJobResponse' {} a -> s {jobId = a} :: CreateImportJobResponse)++-- | The response's http status code.+createImportJobResponse_httpStatus :: Lens.Lens' CreateImportJobResponse Prelude.Int+createImportJobResponse_httpStatus = Lens.lens (\CreateImportJobResponse' {httpStatus} -> httpStatus) (\s@CreateImportJobResponse' {} a -> s {httpStatus = a} :: CreateImportJobResponse)++instance Prelude.NFData CreateImportJobResponse where+ rnf CreateImportJobResponse' {..} =+ Prelude.rnf jobId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/DeleteConfigurationSet.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.SESV2.DeleteConfigurationSet+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Delete an existing configuration set.+--+-- /Configuration sets/ are groups of rules that you can apply to the+-- emails you send. You apply a configuration set to an email by including+-- a reference to the configuration set in the headers of the email. When+-- you apply a configuration set to an email, all of the rules in that+-- configuration set are applied to the email.+module Amazonka.SESV2.DeleteConfigurationSet+ ( -- * Creating a Request+ DeleteConfigurationSet (..),+ newDeleteConfigurationSet,++ -- * Request Lenses+ deleteConfigurationSet_configurationSetName,++ -- * Destructuring the Response+ DeleteConfigurationSetResponse (..),+ newDeleteConfigurationSetResponse,++ -- * Response Lenses+ deleteConfigurationSetResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to delete a configuration set.+--+-- /See:/ 'newDeleteConfigurationSet' smart constructor.+data DeleteConfigurationSet = DeleteConfigurationSet'+ { -- | The name of the configuration set.+ configurationSetName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteConfigurationSet' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configurationSetName', 'deleteConfigurationSet_configurationSetName' - The name of the configuration set.+newDeleteConfigurationSet ::+ -- | 'configurationSetName'+ Prelude.Text ->+ DeleteConfigurationSet+newDeleteConfigurationSet pConfigurationSetName_ =+ DeleteConfigurationSet'+ { configurationSetName =+ pConfigurationSetName_+ }++-- | The name of the configuration set.+deleteConfigurationSet_configurationSetName :: Lens.Lens' DeleteConfigurationSet Prelude.Text+deleteConfigurationSet_configurationSetName = Lens.lens (\DeleteConfigurationSet' {configurationSetName} -> configurationSetName) (\s@DeleteConfigurationSet' {} a -> s {configurationSetName = a} :: DeleteConfigurationSet)++instance Core.AWSRequest DeleteConfigurationSet where+ type+ AWSResponse DeleteConfigurationSet =+ DeleteConfigurationSetResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ DeleteConfigurationSetResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteConfigurationSet where+ hashWithSalt _salt DeleteConfigurationSet' {..} =+ _salt `Prelude.hashWithSalt` configurationSetName++instance Prelude.NFData DeleteConfigurationSet where+ rnf DeleteConfigurationSet' {..} =+ Prelude.rnf configurationSetName++instance Data.ToHeaders DeleteConfigurationSet where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteConfigurationSet where+ toPath DeleteConfigurationSet' {..} =+ Prelude.mconcat+ [ "/v2/email/configuration-sets/",+ Data.toBS configurationSetName+ ]++instance Data.ToQuery DeleteConfigurationSet where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newDeleteConfigurationSetResponse' smart constructor.+data DeleteConfigurationSetResponse = DeleteConfigurationSetResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteConfigurationSetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteConfigurationSetResponse_httpStatus' - The response's http status code.+newDeleteConfigurationSetResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteConfigurationSetResponse+newDeleteConfigurationSetResponse pHttpStatus_ =+ DeleteConfigurationSetResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+deleteConfigurationSetResponse_httpStatus :: Lens.Lens' DeleteConfigurationSetResponse Prelude.Int+deleteConfigurationSetResponse_httpStatus = Lens.lens (\DeleteConfigurationSetResponse' {httpStatus} -> httpStatus) (\s@DeleteConfigurationSetResponse' {} a -> s {httpStatus = a} :: DeleteConfigurationSetResponse)++instance+ Prelude.NFData+ DeleteConfigurationSetResponse+ where+ rnf DeleteConfigurationSetResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/DeleteConfigurationSetEventDestination.hs view
@@ -0,0 +1,214 @@+{-# 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.SESV2.DeleteConfigurationSetEventDestination+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Delete an event destination.+--+-- /Events/ include message sends, deliveries, opens, clicks, bounces, and+-- complaints. /Event destinations/ are places that you can send+-- information about these events to. For example, you can send event data+-- to Amazon SNS to receive notifications when you receive bounces or+-- complaints, or you can use Amazon Kinesis Data Firehose to stream data+-- to Amazon S3 for long-term storage.+module Amazonka.SESV2.DeleteConfigurationSetEventDestination+ ( -- * Creating a Request+ DeleteConfigurationSetEventDestination (..),+ newDeleteConfigurationSetEventDestination,++ -- * Request Lenses+ deleteConfigurationSetEventDestination_configurationSetName,+ deleteConfigurationSetEventDestination_eventDestinationName,++ -- * Destructuring the Response+ DeleteConfigurationSetEventDestinationResponse (..),+ newDeleteConfigurationSetEventDestinationResponse,++ -- * Response Lenses+ deleteConfigurationSetEventDestinationResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to delete an event destination from a configuration set.+--+-- /See:/ 'newDeleteConfigurationSetEventDestination' smart constructor.+data DeleteConfigurationSetEventDestination = DeleteConfigurationSetEventDestination'+ { -- | The name of the configuration set that contains the event destination to+ -- delete.+ configurationSetName :: Prelude.Text,+ -- | The name of the event destination to delete.+ eventDestinationName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteConfigurationSetEventDestination' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configurationSetName', 'deleteConfigurationSetEventDestination_configurationSetName' - The name of the configuration set that contains the event destination to+-- delete.+--+-- 'eventDestinationName', 'deleteConfigurationSetEventDestination_eventDestinationName' - The name of the event destination to delete.+newDeleteConfigurationSetEventDestination ::+ -- | 'configurationSetName'+ Prelude.Text ->+ -- | 'eventDestinationName'+ Prelude.Text ->+ DeleteConfigurationSetEventDestination+newDeleteConfigurationSetEventDestination+ pConfigurationSetName_+ pEventDestinationName_ =+ DeleteConfigurationSetEventDestination'+ { configurationSetName =+ pConfigurationSetName_,+ eventDestinationName =+ pEventDestinationName_+ }++-- | The name of the configuration set that contains the event destination to+-- delete.+deleteConfigurationSetEventDestination_configurationSetName :: Lens.Lens' DeleteConfigurationSetEventDestination Prelude.Text+deleteConfigurationSetEventDestination_configurationSetName = Lens.lens (\DeleteConfigurationSetEventDestination' {configurationSetName} -> configurationSetName) (\s@DeleteConfigurationSetEventDestination' {} a -> s {configurationSetName = a} :: DeleteConfigurationSetEventDestination)++-- | The name of the event destination to delete.+deleteConfigurationSetEventDestination_eventDestinationName :: Lens.Lens' DeleteConfigurationSetEventDestination Prelude.Text+deleteConfigurationSetEventDestination_eventDestinationName = Lens.lens (\DeleteConfigurationSetEventDestination' {eventDestinationName} -> eventDestinationName) (\s@DeleteConfigurationSetEventDestination' {} a -> s {eventDestinationName = a} :: DeleteConfigurationSetEventDestination)++instance+ Core.AWSRequest+ DeleteConfigurationSetEventDestination+ where+ type+ AWSResponse+ DeleteConfigurationSetEventDestination =+ DeleteConfigurationSetEventDestinationResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ DeleteConfigurationSetEventDestinationResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ DeleteConfigurationSetEventDestination+ where+ hashWithSalt+ _salt+ DeleteConfigurationSetEventDestination' {..} =+ _salt+ `Prelude.hashWithSalt` configurationSetName+ `Prelude.hashWithSalt` eventDestinationName++instance+ Prelude.NFData+ DeleteConfigurationSetEventDestination+ where+ rnf DeleteConfigurationSetEventDestination' {..} =+ Prelude.rnf configurationSetName+ `Prelude.seq` Prelude.rnf eventDestinationName++instance+ Data.ToHeaders+ DeleteConfigurationSetEventDestination+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToPath+ DeleteConfigurationSetEventDestination+ where+ toPath DeleteConfigurationSetEventDestination' {..} =+ Prelude.mconcat+ [ "/v2/email/configuration-sets/",+ Data.toBS configurationSetName,+ "/event-destinations/",+ Data.toBS eventDestinationName+ ]++instance+ Data.ToQuery+ DeleteConfigurationSetEventDestination+ where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newDeleteConfigurationSetEventDestinationResponse' smart constructor.+data DeleteConfigurationSetEventDestinationResponse = DeleteConfigurationSetEventDestinationResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteConfigurationSetEventDestinationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteConfigurationSetEventDestinationResponse_httpStatus' - The response's http status code.+newDeleteConfigurationSetEventDestinationResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteConfigurationSetEventDestinationResponse+newDeleteConfigurationSetEventDestinationResponse+ pHttpStatus_ =+ DeleteConfigurationSetEventDestinationResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+deleteConfigurationSetEventDestinationResponse_httpStatus :: Lens.Lens' DeleteConfigurationSetEventDestinationResponse Prelude.Int+deleteConfigurationSetEventDestinationResponse_httpStatus = Lens.lens (\DeleteConfigurationSetEventDestinationResponse' {httpStatus} -> httpStatus) (\s@DeleteConfigurationSetEventDestinationResponse' {} a -> s {httpStatus = a} :: DeleteConfigurationSetEventDestinationResponse)++instance+ Prelude.NFData+ DeleteConfigurationSetEventDestinationResponse+ where+ rnf+ DeleteConfigurationSetEventDestinationResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/DeleteContact.hs view
@@ -0,0 +1,166 @@+{-# 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.SESV2.DeleteContact+-- 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 contact from a contact list.+module Amazonka.SESV2.DeleteContact+ ( -- * Creating a Request+ DeleteContact (..),+ newDeleteContact,++ -- * Request Lenses+ deleteContact_contactListName,+ deleteContact_emailAddress,++ -- * Destructuring the Response+ DeleteContactResponse (..),+ newDeleteContactResponse,++ -- * Response Lenses+ deleteContactResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | /See:/ 'newDeleteContact' smart constructor.+data DeleteContact = DeleteContact'+ { -- | The name of the contact list from which the contact should be removed.+ contactListName :: Prelude.Text,+ -- | The contact\'s email address.+ emailAddress :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteContact' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contactListName', 'deleteContact_contactListName' - The name of the contact list from which the contact should be removed.+--+-- 'emailAddress', 'deleteContact_emailAddress' - The contact\'s email address.+newDeleteContact ::+ -- | 'contactListName'+ Prelude.Text ->+ -- | 'emailAddress'+ Prelude.Text ->+ DeleteContact+newDeleteContact pContactListName_ pEmailAddress_ =+ DeleteContact'+ { contactListName = pContactListName_,+ emailAddress = pEmailAddress_+ }++-- | The name of the contact list from which the contact should be removed.+deleteContact_contactListName :: Lens.Lens' DeleteContact Prelude.Text+deleteContact_contactListName = Lens.lens (\DeleteContact' {contactListName} -> contactListName) (\s@DeleteContact' {} a -> s {contactListName = a} :: DeleteContact)++-- | The contact\'s email address.+deleteContact_emailAddress :: Lens.Lens' DeleteContact Prelude.Text+deleteContact_emailAddress = Lens.lens (\DeleteContact' {emailAddress} -> emailAddress) (\s@DeleteContact' {} a -> s {emailAddress = a} :: DeleteContact)++instance Core.AWSRequest DeleteContact where+ type+ AWSResponse DeleteContact =+ DeleteContactResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ DeleteContactResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteContact where+ hashWithSalt _salt DeleteContact' {..} =+ _salt+ `Prelude.hashWithSalt` contactListName+ `Prelude.hashWithSalt` emailAddress++instance Prelude.NFData DeleteContact where+ rnf DeleteContact' {..} =+ Prelude.rnf contactListName+ `Prelude.seq` Prelude.rnf emailAddress++instance Data.ToHeaders DeleteContact where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteContact where+ toPath DeleteContact' {..} =+ Prelude.mconcat+ [ "/v2/email/contact-lists/",+ Data.toBS contactListName,+ "/contacts/",+ Data.toBS emailAddress+ ]++instance Data.ToQuery DeleteContact where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteContactResponse' smart constructor.+data DeleteContactResponse = DeleteContactResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteContactResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteContactResponse_httpStatus' - The response's http status code.+newDeleteContactResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteContactResponse+newDeleteContactResponse pHttpStatus_ =+ DeleteContactResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+deleteContactResponse_httpStatus :: Lens.Lens' DeleteContactResponse Prelude.Int+deleteContactResponse_httpStatus = Lens.lens (\DeleteContactResponse' {httpStatus} -> httpStatus) (\s@DeleteContactResponse' {} a -> s {httpStatus = a} :: DeleteContactResponse)++instance Prelude.NFData DeleteContactResponse where+ rnf DeleteContactResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/DeleteContactList.hs view
@@ -0,0 +1,153 @@+{-# 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.SESV2.DeleteContactList+-- 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 contact list and all of the contacts on that list.+module Amazonka.SESV2.DeleteContactList+ ( -- * Creating a Request+ DeleteContactList (..),+ newDeleteContactList,++ -- * Request Lenses+ deleteContactList_contactListName,++ -- * Destructuring the Response+ DeleteContactListResponse (..),+ newDeleteContactListResponse,++ -- * Response Lenses+ deleteContactListResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | /See:/ 'newDeleteContactList' smart constructor.+data DeleteContactList = DeleteContactList'+ { -- | The name of the contact list.+ contactListName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteContactList' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contactListName', 'deleteContactList_contactListName' - The name of the contact list.+newDeleteContactList ::+ -- | 'contactListName'+ Prelude.Text ->+ DeleteContactList+newDeleteContactList pContactListName_ =+ DeleteContactList'+ { contactListName =+ pContactListName_+ }++-- | The name of the contact list.+deleteContactList_contactListName :: Lens.Lens' DeleteContactList Prelude.Text+deleteContactList_contactListName = Lens.lens (\DeleteContactList' {contactListName} -> contactListName) (\s@DeleteContactList' {} a -> s {contactListName = a} :: DeleteContactList)++instance Core.AWSRequest DeleteContactList where+ type+ AWSResponse DeleteContactList =+ DeleteContactListResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ DeleteContactListResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteContactList where+ hashWithSalt _salt DeleteContactList' {..} =+ _salt `Prelude.hashWithSalt` contactListName++instance Prelude.NFData DeleteContactList where+ rnf DeleteContactList' {..} =+ Prelude.rnf contactListName++instance Data.ToHeaders DeleteContactList where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteContactList where+ toPath DeleteContactList' {..} =+ Prelude.mconcat+ [ "/v2/email/contact-lists/",+ Data.toBS contactListName+ ]++instance Data.ToQuery DeleteContactList where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteContactListResponse' smart constructor.+data DeleteContactListResponse = DeleteContactListResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteContactListResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteContactListResponse_httpStatus' - The response's http status code.+newDeleteContactListResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteContactListResponse+newDeleteContactListResponse pHttpStatus_ =+ DeleteContactListResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+deleteContactListResponse_httpStatus :: Lens.Lens' DeleteContactListResponse Prelude.Int+deleteContactListResponse_httpStatus = Lens.lens (\DeleteContactListResponse' {httpStatus} -> httpStatus) (\s@DeleteContactListResponse' {} a -> s {httpStatus = a} :: DeleteContactListResponse)++instance Prelude.NFData DeleteContactListResponse where+ rnf DeleteContactListResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/DeleteCustomVerificationEmailTemplate.hs view
@@ -0,0 +1,195 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.DeleteCustomVerificationEmailTemplate+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an existing custom verification email template.+--+-- For more information about custom verification email templates, see+-- <https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#send-email-verify-address-custom Using custom verification email templates>+-- in the /Amazon SES Developer Guide/.+--+-- You can execute this operation no more than once per second.+module Amazonka.SESV2.DeleteCustomVerificationEmailTemplate+ ( -- * Creating a Request+ DeleteCustomVerificationEmailTemplate (..),+ newDeleteCustomVerificationEmailTemplate,++ -- * Request Lenses+ deleteCustomVerificationEmailTemplate_templateName,++ -- * Destructuring the Response+ DeleteCustomVerificationEmailTemplateResponse (..),+ newDeleteCustomVerificationEmailTemplateResponse,++ -- * Response Lenses+ deleteCustomVerificationEmailTemplateResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | Represents a request to delete an existing custom verification email+-- template.+--+-- /See:/ 'newDeleteCustomVerificationEmailTemplate' smart constructor.+data DeleteCustomVerificationEmailTemplate = DeleteCustomVerificationEmailTemplate'+ { -- | The name of the custom verification email template that you want to+ -- delete.+ templateName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCustomVerificationEmailTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'templateName', 'deleteCustomVerificationEmailTemplate_templateName' - The name of the custom verification email template that you want to+-- delete.+newDeleteCustomVerificationEmailTemplate ::+ -- | 'templateName'+ Prelude.Text ->+ DeleteCustomVerificationEmailTemplate+newDeleteCustomVerificationEmailTemplate+ pTemplateName_ =+ DeleteCustomVerificationEmailTemplate'+ { templateName =+ pTemplateName_+ }++-- | The name of the custom verification email template that you want to+-- delete.+deleteCustomVerificationEmailTemplate_templateName :: Lens.Lens' DeleteCustomVerificationEmailTemplate Prelude.Text+deleteCustomVerificationEmailTemplate_templateName = Lens.lens (\DeleteCustomVerificationEmailTemplate' {templateName} -> templateName) (\s@DeleteCustomVerificationEmailTemplate' {} a -> s {templateName = a} :: DeleteCustomVerificationEmailTemplate)++instance+ Core.AWSRequest+ DeleteCustomVerificationEmailTemplate+ where+ type+ AWSResponse+ DeleteCustomVerificationEmailTemplate =+ DeleteCustomVerificationEmailTemplateResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ DeleteCustomVerificationEmailTemplateResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ DeleteCustomVerificationEmailTemplate+ where+ hashWithSalt+ _salt+ DeleteCustomVerificationEmailTemplate' {..} =+ _salt `Prelude.hashWithSalt` templateName++instance+ Prelude.NFData+ DeleteCustomVerificationEmailTemplate+ where+ rnf DeleteCustomVerificationEmailTemplate' {..} =+ Prelude.rnf templateName++instance+ Data.ToHeaders+ DeleteCustomVerificationEmailTemplate+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToPath+ DeleteCustomVerificationEmailTemplate+ where+ toPath DeleteCustomVerificationEmailTemplate' {..} =+ Prelude.mconcat+ [ "/v2/email/custom-verification-email-templates/",+ Data.toBS templateName+ ]++instance+ Data.ToQuery+ DeleteCustomVerificationEmailTemplate+ where+ toQuery = Prelude.const Prelude.mempty++-- | If the action is successful, the service sends back an HTTP 200 response+-- with an empty HTTP body.+--+-- /See:/ 'newDeleteCustomVerificationEmailTemplateResponse' smart constructor.+data DeleteCustomVerificationEmailTemplateResponse = DeleteCustomVerificationEmailTemplateResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCustomVerificationEmailTemplateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteCustomVerificationEmailTemplateResponse_httpStatus' - The response's http status code.+newDeleteCustomVerificationEmailTemplateResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteCustomVerificationEmailTemplateResponse+newDeleteCustomVerificationEmailTemplateResponse+ pHttpStatus_ =+ DeleteCustomVerificationEmailTemplateResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+deleteCustomVerificationEmailTemplateResponse_httpStatus :: Lens.Lens' DeleteCustomVerificationEmailTemplateResponse Prelude.Int+deleteCustomVerificationEmailTemplateResponse_httpStatus = Lens.lens (\DeleteCustomVerificationEmailTemplateResponse' {httpStatus} -> httpStatus) (\s@DeleteCustomVerificationEmailTemplateResponse' {} a -> s {httpStatus = a} :: DeleteCustomVerificationEmailTemplateResponse)++instance+ Prelude.NFData+ DeleteCustomVerificationEmailTemplateResponse+ where+ rnf+ DeleteCustomVerificationEmailTemplateResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/DeleteDedicatedIpPool.hs view
@@ -0,0 +1,152 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.DeleteDedicatedIpPool+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Delete a dedicated IP pool.+module Amazonka.SESV2.DeleteDedicatedIpPool+ ( -- * Creating a Request+ DeleteDedicatedIpPool (..),+ newDeleteDedicatedIpPool,++ -- * Request Lenses+ deleteDedicatedIpPool_poolName,++ -- * Destructuring the Response+ DeleteDedicatedIpPoolResponse (..),+ newDeleteDedicatedIpPoolResponse,++ -- * Response Lenses+ deleteDedicatedIpPoolResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to delete a dedicated IP pool.+--+-- /See:/ 'newDeleteDedicatedIpPool' smart constructor.+data DeleteDedicatedIpPool = DeleteDedicatedIpPool'+ { -- | The name of the dedicated IP pool that you want to delete.+ poolName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDedicatedIpPool' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'poolName', 'deleteDedicatedIpPool_poolName' - The name of the dedicated IP pool that you want to delete.+newDeleteDedicatedIpPool ::+ -- | 'poolName'+ Prelude.Text ->+ DeleteDedicatedIpPool+newDeleteDedicatedIpPool pPoolName_ =+ DeleteDedicatedIpPool' {poolName = pPoolName_}++-- | The name of the dedicated IP pool that you want to delete.+deleteDedicatedIpPool_poolName :: Lens.Lens' DeleteDedicatedIpPool Prelude.Text+deleteDedicatedIpPool_poolName = Lens.lens (\DeleteDedicatedIpPool' {poolName} -> poolName) (\s@DeleteDedicatedIpPool' {} a -> s {poolName = a} :: DeleteDedicatedIpPool)++instance Core.AWSRequest DeleteDedicatedIpPool where+ type+ AWSResponse DeleteDedicatedIpPool =+ DeleteDedicatedIpPoolResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ DeleteDedicatedIpPoolResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteDedicatedIpPool where+ hashWithSalt _salt DeleteDedicatedIpPool' {..} =+ _salt `Prelude.hashWithSalt` poolName++instance Prelude.NFData DeleteDedicatedIpPool where+ rnf DeleteDedicatedIpPool' {..} = Prelude.rnf poolName++instance Data.ToHeaders DeleteDedicatedIpPool where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteDedicatedIpPool where+ toPath DeleteDedicatedIpPool' {..} =+ Prelude.mconcat+ ["/v2/email/dedicated-ip-pools/", Data.toBS poolName]++instance Data.ToQuery DeleteDedicatedIpPool where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newDeleteDedicatedIpPoolResponse' smart constructor.+data DeleteDedicatedIpPoolResponse = DeleteDedicatedIpPoolResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDedicatedIpPoolResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteDedicatedIpPoolResponse_httpStatus' - The response's http status code.+newDeleteDedicatedIpPoolResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteDedicatedIpPoolResponse+newDeleteDedicatedIpPoolResponse pHttpStatus_ =+ DeleteDedicatedIpPoolResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+deleteDedicatedIpPoolResponse_httpStatus :: Lens.Lens' DeleteDedicatedIpPoolResponse Prelude.Int+deleteDedicatedIpPoolResponse_httpStatus = Lens.lens (\DeleteDedicatedIpPoolResponse' {httpStatus} -> httpStatus) (\s@DeleteDedicatedIpPoolResponse' {} a -> s {httpStatus = a} :: DeleteDedicatedIpPoolResponse)++instance Prelude.NFData DeleteDedicatedIpPoolResponse where+ rnf DeleteDedicatedIpPoolResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/DeleteEmailIdentity.hs view
@@ -0,0 +1,160 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.DeleteEmailIdentity+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an email identity. An identity can be either an email address or+-- a domain name.+module Amazonka.SESV2.DeleteEmailIdentity+ ( -- * Creating a Request+ DeleteEmailIdentity (..),+ newDeleteEmailIdentity,++ -- * Request Lenses+ deleteEmailIdentity_emailIdentity,++ -- * Destructuring the Response+ DeleteEmailIdentityResponse (..),+ newDeleteEmailIdentityResponse,++ -- * Response Lenses+ deleteEmailIdentityResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to delete an existing email identity. When you delete an+-- identity, you lose the ability to send email from that identity. You can+-- restore your ability to send email by completing the verification+-- process for the identity again.+--+-- /See:/ 'newDeleteEmailIdentity' smart constructor.+data DeleteEmailIdentity = DeleteEmailIdentity'+ { -- | The identity (that is, the email address or domain) to delete.+ emailIdentity :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteEmailIdentity' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'emailIdentity', 'deleteEmailIdentity_emailIdentity' - The identity (that is, the email address or domain) to delete.+newDeleteEmailIdentity ::+ -- | 'emailIdentity'+ Prelude.Text ->+ DeleteEmailIdentity+newDeleteEmailIdentity pEmailIdentity_ =+ DeleteEmailIdentity'+ { emailIdentity =+ pEmailIdentity_+ }++-- | The identity (that is, the email address or domain) to delete.+deleteEmailIdentity_emailIdentity :: Lens.Lens' DeleteEmailIdentity Prelude.Text+deleteEmailIdentity_emailIdentity = Lens.lens (\DeleteEmailIdentity' {emailIdentity} -> emailIdentity) (\s@DeleteEmailIdentity' {} a -> s {emailIdentity = a} :: DeleteEmailIdentity)++instance Core.AWSRequest DeleteEmailIdentity where+ type+ AWSResponse DeleteEmailIdentity =+ DeleteEmailIdentityResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ DeleteEmailIdentityResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteEmailIdentity where+ hashWithSalt _salt DeleteEmailIdentity' {..} =+ _salt `Prelude.hashWithSalt` emailIdentity++instance Prelude.NFData DeleteEmailIdentity where+ rnf DeleteEmailIdentity' {..} =+ Prelude.rnf emailIdentity++instance Data.ToHeaders DeleteEmailIdentity where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteEmailIdentity where+ toPath DeleteEmailIdentity' {..} =+ Prelude.mconcat+ ["/v2/email/identities/", Data.toBS emailIdentity]++instance Data.ToQuery DeleteEmailIdentity where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newDeleteEmailIdentityResponse' smart constructor.+data DeleteEmailIdentityResponse = DeleteEmailIdentityResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteEmailIdentityResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteEmailIdentityResponse_httpStatus' - The response's http status code.+newDeleteEmailIdentityResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteEmailIdentityResponse+newDeleteEmailIdentityResponse pHttpStatus_ =+ DeleteEmailIdentityResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+deleteEmailIdentityResponse_httpStatus :: Lens.Lens' DeleteEmailIdentityResponse Prelude.Int+deleteEmailIdentityResponse_httpStatus = Lens.lens (\DeleteEmailIdentityResponse' {httpStatus} -> httpStatus) (\s@DeleteEmailIdentityResponse' {} a -> s {httpStatus = a} :: DeleteEmailIdentityResponse)++instance Prelude.NFData DeleteEmailIdentityResponse where+ rnf DeleteEmailIdentityResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/DeleteEmailIdentityPolicy.hs view
@@ -0,0 +1,205 @@+{-# 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.SESV2.DeleteEmailIdentityPolicy+-- 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 sending authorization policy for the given+-- identity (an email address or a domain). This API returns successfully+-- even if a policy with the specified name does not exist.+--+-- This API is for the identity owner only. If you have not verified the+-- identity, this API will return an error.+--+-- Sending authorization is a feature that enables an identity owner to+-- authorize other senders to use its identities. For information about+-- using sending authorization, see the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html Amazon SES Developer Guide>.+--+-- You can execute this operation no more than once per second.+module Amazonka.SESV2.DeleteEmailIdentityPolicy+ ( -- * Creating a Request+ DeleteEmailIdentityPolicy (..),+ newDeleteEmailIdentityPolicy,++ -- * Request Lenses+ deleteEmailIdentityPolicy_emailIdentity,+ deleteEmailIdentityPolicy_policyName,++ -- * Destructuring the Response+ DeleteEmailIdentityPolicyResponse (..),+ newDeleteEmailIdentityPolicyResponse,++ -- * Response Lenses+ deleteEmailIdentityPolicyResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | Represents a request to delete a sending authorization policy for an+-- identity. Sending authorization is an Amazon SES feature that enables+-- you to authorize other senders to use your identities. For information,+-- see the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-identity-owner-tasks-management.html Amazon SES Developer Guide>.+--+-- /See:/ 'newDeleteEmailIdentityPolicy' smart constructor.+data DeleteEmailIdentityPolicy = DeleteEmailIdentityPolicy'+ { -- | The email identity.+ emailIdentity :: Prelude.Text,+ -- | The name of the policy.+ --+ -- The policy name cannot exceed 64 characters and can only include+ -- alphanumeric characters, dashes, and underscores.+ policyName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteEmailIdentityPolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'emailIdentity', 'deleteEmailIdentityPolicy_emailIdentity' - The email identity.+--+-- 'policyName', 'deleteEmailIdentityPolicy_policyName' - The name of the policy.+--+-- The policy name cannot exceed 64 characters and can only include+-- alphanumeric characters, dashes, and underscores.+newDeleteEmailIdentityPolicy ::+ -- | 'emailIdentity'+ Prelude.Text ->+ -- | 'policyName'+ Prelude.Text ->+ DeleteEmailIdentityPolicy+newDeleteEmailIdentityPolicy+ pEmailIdentity_+ pPolicyName_ =+ DeleteEmailIdentityPolicy'+ { emailIdentity =+ pEmailIdentity_,+ policyName = pPolicyName_+ }++-- | The email identity.+deleteEmailIdentityPolicy_emailIdentity :: Lens.Lens' DeleteEmailIdentityPolicy Prelude.Text+deleteEmailIdentityPolicy_emailIdentity = Lens.lens (\DeleteEmailIdentityPolicy' {emailIdentity} -> emailIdentity) (\s@DeleteEmailIdentityPolicy' {} a -> s {emailIdentity = a} :: DeleteEmailIdentityPolicy)++-- | The name of the policy.+--+-- The policy name cannot exceed 64 characters and can only include+-- alphanumeric characters, dashes, and underscores.+deleteEmailIdentityPolicy_policyName :: Lens.Lens' DeleteEmailIdentityPolicy Prelude.Text+deleteEmailIdentityPolicy_policyName = Lens.lens (\DeleteEmailIdentityPolicy' {policyName} -> policyName) (\s@DeleteEmailIdentityPolicy' {} a -> s {policyName = a} :: DeleteEmailIdentityPolicy)++instance Core.AWSRequest DeleteEmailIdentityPolicy where+ type+ AWSResponse DeleteEmailIdentityPolicy =+ DeleteEmailIdentityPolicyResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ DeleteEmailIdentityPolicyResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteEmailIdentityPolicy where+ hashWithSalt _salt DeleteEmailIdentityPolicy' {..} =+ _salt+ `Prelude.hashWithSalt` emailIdentity+ `Prelude.hashWithSalt` policyName++instance Prelude.NFData DeleteEmailIdentityPolicy where+ rnf DeleteEmailIdentityPolicy' {..} =+ Prelude.rnf emailIdentity+ `Prelude.seq` Prelude.rnf policyName++instance Data.ToHeaders DeleteEmailIdentityPolicy where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteEmailIdentityPolicy where+ toPath DeleteEmailIdentityPolicy' {..} =+ Prelude.mconcat+ [ "/v2/email/identities/",+ Data.toBS emailIdentity,+ "/policies/",+ Data.toBS policyName+ ]++instance Data.ToQuery DeleteEmailIdentityPolicy where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newDeleteEmailIdentityPolicyResponse' smart constructor.+data DeleteEmailIdentityPolicyResponse = DeleteEmailIdentityPolicyResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteEmailIdentityPolicyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteEmailIdentityPolicyResponse_httpStatus' - The response's http status code.+newDeleteEmailIdentityPolicyResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteEmailIdentityPolicyResponse+newDeleteEmailIdentityPolicyResponse pHttpStatus_ =+ DeleteEmailIdentityPolicyResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+deleteEmailIdentityPolicyResponse_httpStatus :: Lens.Lens' DeleteEmailIdentityPolicyResponse Prelude.Int+deleteEmailIdentityPolicyResponse_httpStatus = Lens.lens (\DeleteEmailIdentityPolicyResponse' {httpStatus} -> httpStatus) (\s@DeleteEmailIdentityPolicyResponse' {} a -> s {httpStatus = a} :: DeleteEmailIdentityPolicyResponse)++instance+ Prelude.NFData+ DeleteEmailIdentityPolicyResponse+ where+ rnf DeleteEmailIdentityPolicyResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/DeleteEmailTemplate.hs view
@@ -0,0 +1,157 @@+{-# 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.SESV2.DeleteEmailTemplate+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an email template.+--+-- You can execute this operation no more than once per second.+module Amazonka.SESV2.DeleteEmailTemplate+ ( -- * Creating a Request+ DeleteEmailTemplate (..),+ newDeleteEmailTemplate,++ -- * Request Lenses+ deleteEmailTemplate_templateName,++ -- * Destructuring the Response+ DeleteEmailTemplateResponse (..),+ newDeleteEmailTemplateResponse,++ -- * Response Lenses+ deleteEmailTemplateResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | Represents a request to delete an email template. For more information,+-- see the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-personalized-email-api.html Amazon SES Developer Guide>.+--+-- /See:/ 'newDeleteEmailTemplate' smart constructor.+data DeleteEmailTemplate = DeleteEmailTemplate'+ { -- | The name of the template to be deleted.+ templateName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteEmailTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'templateName', 'deleteEmailTemplate_templateName' - The name of the template to be deleted.+newDeleteEmailTemplate ::+ -- | 'templateName'+ Prelude.Text ->+ DeleteEmailTemplate+newDeleteEmailTemplate pTemplateName_ =+ DeleteEmailTemplate' {templateName = pTemplateName_}++-- | The name of the template to be deleted.+deleteEmailTemplate_templateName :: Lens.Lens' DeleteEmailTemplate Prelude.Text+deleteEmailTemplate_templateName = Lens.lens (\DeleteEmailTemplate' {templateName} -> templateName) (\s@DeleteEmailTemplate' {} a -> s {templateName = a} :: DeleteEmailTemplate)++instance Core.AWSRequest DeleteEmailTemplate where+ type+ AWSResponse DeleteEmailTemplate =+ DeleteEmailTemplateResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ DeleteEmailTemplateResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteEmailTemplate where+ hashWithSalt _salt DeleteEmailTemplate' {..} =+ _salt `Prelude.hashWithSalt` templateName++instance Prelude.NFData DeleteEmailTemplate where+ rnf DeleteEmailTemplate' {..} =+ Prelude.rnf templateName++instance Data.ToHeaders DeleteEmailTemplate where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteEmailTemplate where+ toPath DeleteEmailTemplate' {..} =+ Prelude.mconcat+ ["/v2/email/templates/", Data.toBS templateName]++instance Data.ToQuery DeleteEmailTemplate where+ toQuery = Prelude.const Prelude.mempty++-- | If the action is successful, the service sends back an HTTP 200 response+-- with an empty HTTP body.+--+-- /See:/ 'newDeleteEmailTemplateResponse' smart constructor.+data DeleteEmailTemplateResponse = DeleteEmailTemplateResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteEmailTemplateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteEmailTemplateResponse_httpStatus' - The response's http status code.+newDeleteEmailTemplateResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteEmailTemplateResponse+newDeleteEmailTemplateResponse pHttpStatus_ =+ DeleteEmailTemplateResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+deleteEmailTemplateResponse_httpStatus :: Lens.Lens' DeleteEmailTemplateResponse Prelude.Int+deleteEmailTemplateResponse_httpStatus = Lens.lens (\DeleteEmailTemplateResponse' {httpStatus} -> httpStatus) (\s@DeleteEmailTemplateResponse' {} a -> s {httpStatus = a} :: DeleteEmailTemplateResponse)++instance Prelude.NFData DeleteEmailTemplateResponse where+ rnf DeleteEmailTemplateResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/DeleteSuppressedDestination.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.SESV2.DeleteSuppressedDestination+-- 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 email address from the suppression list for your account.+module Amazonka.SESV2.DeleteSuppressedDestination+ ( -- * Creating a Request+ DeleteSuppressedDestination (..),+ newDeleteSuppressedDestination,++ -- * Request Lenses+ deleteSuppressedDestination_emailAddress,++ -- * Destructuring the Response+ DeleteSuppressedDestinationResponse (..),+ newDeleteSuppressedDestinationResponse,++ -- * Response Lenses+ deleteSuppressedDestinationResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to remove an email address from the suppression list for your+-- account.+--+-- /See:/ 'newDeleteSuppressedDestination' smart constructor.+data DeleteSuppressedDestination = DeleteSuppressedDestination'+ { -- | The suppressed email destination to remove from the account suppression+ -- list.+ emailAddress :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSuppressedDestination' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'emailAddress', 'deleteSuppressedDestination_emailAddress' - The suppressed email destination to remove from the account suppression+-- list.+newDeleteSuppressedDestination ::+ -- | 'emailAddress'+ Prelude.Text ->+ DeleteSuppressedDestination+newDeleteSuppressedDestination pEmailAddress_ =+ DeleteSuppressedDestination'+ { emailAddress =+ pEmailAddress_+ }++-- | The suppressed email destination to remove from the account suppression+-- list.+deleteSuppressedDestination_emailAddress :: Lens.Lens' DeleteSuppressedDestination Prelude.Text+deleteSuppressedDestination_emailAddress = Lens.lens (\DeleteSuppressedDestination' {emailAddress} -> emailAddress) (\s@DeleteSuppressedDestination' {} a -> s {emailAddress = a} :: DeleteSuppressedDestination)++instance Core.AWSRequest DeleteSuppressedDestination where+ type+ AWSResponse DeleteSuppressedDestination =+ DeleteSuppressedDestinationResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ DeleteSuppressedDestinationResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DeleteSuppressedDestination where+ hashWithSalt _salt DeleteSuppressedDestination' {..} =+ _salt `Prelude.hashWithSalt` emailAddress++instance Prelude.NFData DeleteSuppressedDestination where+ rnf DeleteSuppressedDestination' {..} =+ Prelude.rnf emailAddress++instance Data.ToHeaders DeleteSuppressedDestination where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath DeleteSuppressedDestination where+ toPath DeleteSuppressedDestination' {..} =+ Prelude.mconcat+ [ "/v2/email/suppression/addresses/",+ Data.toBS emailAddress+ ]++instance Data.ToQuery DeleteSuppressedDestination where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newDeleteSuppressedDestinationResponse' smart constructor.+data DeleteSuppressedDestinationResponse = DeleteSuppressedDestinationResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSuppressedDestinationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteSuppressedDestinationResponse_httpStatus' - The response's http status code.+newDeleteSuppressedDestinationResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DeleteSuppressedDestinationResponse+newDeleteSuppressedDestinationResponse pHttpStatus_ =+ DeleteSuppressedDestinationResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+deleteSuppressedDestinationResponse_httpStatus :: Lens.Lens' DeleteSuppressedDestinationResponse Prelude.Int+deleteSuppressedDestinationResponse_httpStatus = Lens.lens (\DeleteSuppressedDestinationResponse' {httpStatus} -> httpStatus) (\s@DeleteSuppressedDestinationResponse' {} a -> s {httpStatus = a} :: DeleteSuppressedDestinationResponse)++instance+ Prelude.NFData+ DeleteSuppressedDestinationResponse+ where+ rnf DeleteSuppressedDestinationResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/GetAccount.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.SESV2.GetAccount+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Obtain information about the email-sending status and capabilities of+-- your Amazon SES account in the current Amazon Web Services Region.+module Amazonka.SESV2.GetAccount+ ( -- * Creating a Request+ GetAccount (..),+ newGetAccount,++ -- * Destructuring the Response+ GetAccountResponse (..),+ newGetAccountResponse,++ -- * Response Lenses+ getAccountResponse_dedicatedIpAutoWarmupEnabled,+ getAccountResponse_details,+ getAccountResponse_enforcementStatus,+ getAccountResponse_productionAccessEnabled,+ getAccountResponse_sendQuota,+ getAccountResponse_sendingEnabled,+ getAccountResponse_suppressionAttributes,+ getAccountResponse_vdmAttributes,+ getAccountResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to obtain information about the email-sending capabilities of+-- your Amazon SES account.+--+-- /See:/ 'newGetAccount' smart constructor.+data GetAccount = GetAccount'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAccount' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newGetAccount ::+ GetAccount+newGetAccount = GetAccount'++instance Core.AWSRequest GetAccount where+ type AWSResponse GetAccount = GetAccountResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetAccountResponse'+ Prelude.<$> (x Data..?> "DedicatedIpAutoWarmupEnabled")+ Prelude.<*> (x Data..?> "Details")+ Prelude.<*> (x Data..?> "EnforcementStatus")+ Prelude.<*> (x Data..?> "ProductionAccessEnabled")+ Prelude.<*> (x Data..?> "SendQuota")+ Prelude.<*> (x Data..?> "SendingEnabled")+ Prelude.<*> (x Data..?> "SuppressionAttributes")+ Prelude.<*> (x Data..?> "VdmAttributes")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetAccount where+ hashWithSalt _salt _ =+ _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData GetAccount where+ rnf _ = ()++instance Data.ToHeaders GetAccount where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetAccount where+ toPath = Prelude.const "/v2/email/account"++instance Data.ToQuery GetAccount where+ toQuery = Prelude.const Prelude.mempty++-- | A list of details about the email-sending capabilities of your Amazon+-- SES account in the current Amazon Web Services Region.+--+-- /See:/ 'newGetAccountResponse' smart constructor.+data GetAccountResponse = GetAccountResponse'+ { -- | Indicates whether or not the automatic warm-up feature is enabled for+ -- dedicated IP addresses that are associated with your account.+ dedicatedIpAutoWarmupEnabled :: Prelude.Maybe Prelude.Bool,+ -- | An object that defines your account details.+ details :: Prelude.Maybe AccountDetails,+ -- | The reputation status of your Amazon SES account. The status can be one+ -- of the following:+ --+ -- - @HEALTHY@ – There are no reputation-related issues that currently+ -- impact your account.+ --+ -- - @PROBATION@ – We\'ve identified potential issues with your Amazon+ -- SES account. We\'re placing your account under review while you work+ -- on correcting these issues.+ --+ -- - @SHUTDOWN@ – Your account\'s ability to send email is currently+ -- paused because of an issue with the email sent from your account.+ -- When you correct the issue, you can contact us and request that your+ -- account\'s ability to send email is resumed.+ enforcementStatus :: Prelude.Maybe Prelude.Text,+ -- | Indicates whether or not your account has production access in the+ -- current Amazon Web Services Region.+ --+ -- If the value is @false@, then your account is in the /sandbox/. When+ -- your account is in the sandbox, you can only send email to verified+ -- identities. Additionally, the maximum number of emails you can send in a+ -- 24-hour period (your sending quota) is 200, and the maximum number of+ -- emails you can send per second (your maximum sending rate) is 1.+ --+ -- If the value is @true@, then your account has production access. When+ -- your account has production access, you can send email to any address.+ -- The sending quota and maximum sending rate for your account vary based+ -- on your specific use case.+ productionAccessEnabled :: Prelude.Maybe Prelude.Bool,+ -- | An object that contains information about the per-day and per-second+ -- sending limits for your Amazon SES account in the current Amazon Web+ -- Services Region.+ sendQuota :: Prelude.Maybe SendQuota,+ -- | Indicates whether or not email sending is enabled for your Amazon SES+ -- account in the current Amazon Web Services Region.+ sendingEnabled :: Prelude.Maybe Prelude.Bool,+ -- | An object that contains information about the email address suppression+ -- preferences for your account in the current Amazon Web Services Region.+ suppressionAttributes :: Prelude.Maybe SuppressionAttributes,+ -- | The VDM attributes that apply to your Amazon SES account.+ vdmAttributes :: Prelude.Maybe VdmAttributes,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAccountResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dedicatedIpAutoWarmupEnabled', 'getAccountResponse_dedicatedIpAutoWarmupEnabled' - Indicates whether or not the automatic warm-up feature is enabled for+-- dedicated IP addresses that are associated with your account.+--+-- 'details', 'getAccountResponse_details' - An object that defines your account details.+--+-- 'enforcementStatus', 'getAccountResponse_enforcementStatus' - The reputation status of your Amazon SES account. The status can be one+-- of the following:+--+-- - @HEALTHY@ – There are no reputation-related issues that currently+-- impact your account.+--+-- - @PROBATION@ – We\'ve identified potential issues with your Amazon+-- SES account. We\'re placing your account under review while you work+-- on correcting these issues.+--+-- - @SHUTDOWN@ – Your account\'s ability to send email is currently+-- paused because of an issue with the email sent from your account.+-- When you correct the issue, you can contact us and request that your+-- account\'s ability to send email is resumed.+--+-- 'productionAccessEnabled', 'getAccountResponse_productionAccessEnabled' - Indicates whether or not your account has production access in the+-- current Amazon Web Services Region.+--+-- If the value is @false@, then your account is in the /sandbox/. When+-- your account is in the sandbox, you can only send email to verified+-- identities. Additionally, the maximum number of emails you can send in a+-- 24-hour period (your sending quota) is 200, and the maximum number of+-- emails you can send per second (your maximum sending rate) is 1.+--+-- If the value is @true@, then your account has production access. When+-- your account has production access, you can send email to any address.+-- The sending quota and maximum sending rate for your account vary based+-- on your specific use case.+--+-- 'sendQuota', 'getAccountResponse_sendQuota' - An object that contains information about the per-day and per-second+-- sending limits for your Amazon SES account in the current Amazon Web+-- Services Region.+--+-- 'sendingEnabled', 'getAccountResponse_sendingEnabled' - Indicates whether or not email sending is enabled for your Amazon SES+-- account in the current Amazon Web Services Region.+--+-- 'suppressionAttributes', 'getAccountResponse_suppressionAttributes' - An object that contains information about the email address suppression+-- preferences for your account in the current Amazon Web Services Region.+--+-- 'vdmAttributes', 'getAccountResponse_vdmAttributes' - The VDM attributes that apply to your Amazon SES account.+--+-- 'httpStatus', 'getAccountResponse_httpStatus' - The response's http status code.+newGetAccountResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetAccountResponse+newGetAccountResponse pHttpStatus_ =+ GetAccountResponse'+ { dedicatedIpAutoWarmupEnabled =+ Prelude.Nothing,+ details = Prelude.Nothing,+ enforcementStatus = Prelude.Nothing,+ productionAccessEnabled = Prelude.Nothing,+ sendQuota = Prelude.Nothing,+ sendingEnabled = Prelude.Nothing,+ suppressionAttributes = Prelude.Nothing,+ vdmAttributes = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | Indicates whether or not the automatic warm-up feature is enabled for+-- dedicated IP addresses that are associated with your account.+getAccountResponse_dedicatedIpAutoWarmupEnabled :: Lens.Lens' GetAccountResponse (Prelude.Maybe Prelude.Bool)+getAccountResponse_dedicatedIpAutoWarmupEnabled = Lens.lens (\GetAccountResponse' {dedicatedIpAutoWarmupEnabled} -> dedicatedIpAutoWarmupEnabled) (\s@GetAccountResponse' {} a -> s {dedicatedIpAutoWarmupEnabled = a} :: GetAccountResponse)++-- | An object that defines your account details.+getAccountResponse_details :: Lens.Lens' GetAccountResponse (Prelude.Maybe AccountDetails)+getAccountResponse_details = Lens.lens (\GetAccountResponse' {details} -> details) (\s@GetAccountResponse' {} a -> s {details = a} :: GetAccountResponse)++-- | The reputation status of your Amazon SES account. The status can be one+-- of the following:+--+-- - @HEALTHY@ – There are no reputation-related issues that currently+-- impact your account.+--+-- - @PROBATION@ – We\'ve identified potential issues with your Amazon+-- SES account. We\'re placing your account under review while you work+-- on correcting these issues.+--+-- - @SHUTDOWN@ – Your account\'s ability to send email is currently+-- paused because of an issue with the email sent from your account.+-- When you correct the issue, you can contact us and request that your+-- account\'s ability to send email is resumed.+getAccountResponse_enforcementStatus :: Lens.Lens' GetAccountResponse (Prelude.Maybe Prelude.Text)+getAccountResponse_enforcementStatus = Lens.lens (\GetAccountResponse' {enforcementStatus} -> enforcementStatus) (\s@GetAccountResponse' {} a -> s {enforcementStatus = a} :: GetAccountResponse)++-- | Indicates whether or not your account has production access in the+-- current Amazon Web Services Region.+--+-- If the value is @false@, then your account is in the /sandbox/. When+-- your account is in the sandbox, you can only send email to verified+-- identities. Additionally, the maximum number of emails you can send in a+-- 24-hour period (your sending quota) is 200, and the maximum number of+-- emails you can send per second (your maximum sending rate) is 1.+--+-- If the value is @true@, then your account has production access. When+-- your account has production access, you can send email to any address.+-- The sending quota and maximum sending rate for your account vary based+-- on your specific use case.+getAccountResponse_productionAccessEnabled :: Lens.Lens' GetAccountResponse (Prelude.Maybe Prelude.Bool)+getAccountResponse_productionAccessEnabled = Lens.lens (\GetAccountResponse' {productionAccessEnabled} -> productionAccessEnabled) (\s@GetAccountResponse' {} a -> s {productionAccessEnabled = a} :: GetAccountResponse)++-- | An object that contains information about the per-day and per-second+-- sending limits for your Amazon SES account in the current Amazon Web+-- Services Region.+getAccountResponse_sendQuota :: Lens.Lens' GetAccountResponse (Prelude.Maybe SendQuota)+getAccountResponse_sendQuota = Lens.lens (\GetAccountResponse' {sendQuota} -> sendQuota) (\s@GetAccountResponse' {} a -> s {sendQuota = a} :: GetAccountResponse)++-- | Indicates whether or not email sending is enabled for your Amazon SES+-- account in the current Amazon Web Services Region.+getAccountResponse_sendingEnabled :: Lens.Lens' GetAccountResponse (Prelude.Maybe Prelude.Bool)+getAccountResponse_sendingEnabled = Lens.lens (\GetAccountResponse' {sendingEnabled} -> sendingEnabled) (\s@GetAccountResponse' {} a -> s {sendingEnabled = a} :: GetAccountResponse)++-- | An object that contains information about the email address suppression+-- preferences for your account in the current Amazon Web Services Region.+getAccountResponse_suppressionAttributes :: Lens.Lens' GetAccountResponse (Prelude.Maybe SuppressionAttributes)+getAccountResponse_suppressionAttributes = Lens.lens (\GetAccountResponse' {suppressionAttributes} -> suppressionAttributes) (\s@GetAccountResponse' {} a -> s {suppressionAttributes = a} :: GetAccountResponse)++-- | The VDM attributes that apply to your Amazon SES account.+getAccountResponse_vdmAttributes :: Lens.Lens' GetAccountResponse (Prelude.Maybe VdmAttributes)+getAccountResponse_vdmAttributes = Lens.lens (\GetAccountResponse' {vdmAttributes} -> vdmAttributes) (\s@GetAccountResponse' {} a -> s {vdmAttributes = a} :: GetAccountResponse)++-- | The response's http status code.+getAccountResponse_httpStatus :: Lens.Lens' GetAccountResponse Prelude.Int+getAccountResponse_httpStatus = Lens.lens (\GetAccountResponse' {httpStatus} -> httpStatus) (\s@GetAccountResponse' {} a -> s {httpStatus = a} :: GetAccountResponse)++instance Prelude.NFData GetAccountResponse where+ rnf GetAccountResponse' {..} =+ Prelude.rnf dedicatedIpAutoWarmupEnabled+ `Prelude.seq` Prelude.rnf details+ `Prelude.seq` Prelude.rnf enforcementStatus+ `Prelude.seq` Prelude.rnf productionAccessEnabled+ `Prelude.seq` Prelude.rnf sendQuota+ `Prelude.seq` Prelude.rnf sendingEnabled+ `Prelude.seq` Prelude.rnf suppressionAttributes+ `Prelude.seq` Prelude.rnf vdmAttributes+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/GetBlacklistReports.hs view
@@ -0,0 +1,183 @@+{-# 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.SESV2.GetBlacklistReports+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieve a list of the blacklists that your dedicated IP addresses+-- appear on.+module Amazonka.SESV2.GetBlacklistReports+ ( -- * Creating a Request+ GetBlacklistReports (..),+ newGetBlacklistReports,++ -- * Request Lenses+ getBlacklistReports_blacklistItemNames,++ -- * Destructuring the Response+ GetBlacklistReportsResponse (..),+ newGetBlacklistReportsResponse,++ -- * Response Lenses+ getBlacklistReportsResponse_httpStatus,+ getBlacklistReportsResponse_blacklistReport,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to retrieve a list of the blacklists that your dedicated IP+-- addresses appear on.+--+-- /See:/ 'newGetBlacklistReports' smart constructor.+data GetBlacklistReports = GetBlacklistReports'+ { -- | A list of IP addresses that you want to retrieve blacklist information+ -- about. You can only specify the dedicated IP addresses that you use to+ -- send email using Amazon SES or Amazon Pinpoint.+ blacklistItemNames :: [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetBlacklistReports' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'blacklistItemNames', 'getBlacklistReports_blacklistItemNames' - A list of IP addresses that you want to retrieve blacklist information+-- about. You can only specify the dedicated IP addresses that you use to+-- send email using Amazon SES or Amazon Pinpoint.+newGetBlacklistReports ::+ GetBlacklistReports+newGetBlacklistReports =+ GetBlacklistReports'+ { blacklistItemNames =+ Prelude.mempty+ }++-- | A list of IP addresses that you want to retrieve blacklist information+-- about. You can only specify the dedicated IP addresses that you use to+-- send email using Amazon SES or Amazon Pinpoint.+getBlacklistReports_blacklistItemNames :: Lens.Lens' GetBlacklistReports [Prelude.Text]+getBlacklistReports_blacklistItemNames = Lens.lens (\GetBlacklistReports' {blacklistItemNames} -> blacklistItemNames) (\s@GetBlacklistReports' {} a -> s {blacklistItemNames = a} :: GetBlacklistReports) Prelude.. Lens.coerced++instance Core.AWSRequest GetBlacklistReports where+ type+ AWSResponse GetBlacklistReports =+ GetBlacklistReportsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetBlacklistReportsResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> ( x+ Data..?> "BlacklistReport"+ Core..!@ Prelude.mempty+ )+ )++instance Prelude.Hashable GetBlacklistReports where+ hashWithSalt _salt GetBlacklistReports' {..} =+ _salt `Prelude.hashWithSalt` blacklistItemNames++instance Prelude.NFData GetBlacklistReports where+ rnf GetBlacklistReports' {..} =+ Prelude.rnf blacklistItemNames++instance Data.ToHeaders GetBlacklistReports where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetBlacklistReports where+ toPath =+ Prelude.const+ "/v2/email/deliverability-dashboard/blacklist-report"++instance Data.ToQuery GetBlacklistReports where+ toQuery GetBlacklistReports' {..} =+ Prelude.mconcat+ [ "BlacklistItemNames"+ Data.=: Data.toQueryList "member" blacklistItemNames+ ]++-- | An object that contains information about blacklist events.+--+-- /See:/ 'newGetBlacklistReportsResponse' smart constructor.+data GetBlacklistReportsResponse = GetBlacklistReportsResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | An object that contains information about a blacklist that one of your+ -- dedicated IP addresses appears on.+ blacklistReport :: Prelude.HashMap Prelude.Text [BlacklistEntry]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetBlacklistReportsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getBlacklistReportsResponse_httpStatus' - The response's http status code.+--+-- 'blacklistReport', 'getBlacklistReportsResponse_blacklistReport' - An object that contains information about a blacklist that one of your+-- dedicated IP addresses appears on.+newGetBlacklistReportsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetBlacklistReportsResponse+newGetBlacklistReportsResponse pHttpStatus_ =+ GetBlacklistReportsResponse'+ { httpStatus =+ pHttpStatus_,+ blacklistReport = Prelude.mempty+ }++-- | The response's http status code.+getBlacklistReportsResponse_httpStatus :: Lens.Lens' GetBlacklistReportsResponse Prelude.Int+getBlacklistReportsResponse_httpStatus = Lens.lens (\GetBlacklistReportsResponse' {httpStatus} -> httpStatus) (\s@GetBlacklistReportsResponse' {} a -> s {httpStatus = a} :: GetBlacklistReportsResponse)++-- | An object that contains information about a blacklist that one of your+-- dedicated IP addresses appears on.+getBlacklistReportsResponse_blacklistReport :: Lens.Lens' GetBlacklistReportsResponse (Prelude.HashMap Prelude.Text [BlacklistEntry])+getBlacklistReportsResponse_blacklistReport = Lens.lens (\GetBlacklistReportsResponse' {blacklistReport} -> blacklistReport) (\s@GetBlacklistReportsResponse' {} a -> s {blacklistReport = a} :: GetBlacklistReportsResponse) Prelude.. Lens.coerced++instance Prelude.NFData GetBlacklistReportsResponse where+ rnf GetBlacklistReportsResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf blacklistReport
+ gen/Amazonka/SESV2/GetConfigurationSet.hs view
@@ -0,0 +1,282 @@+{-# 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.SESV2.GetConfigurationSet+-- 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 information about an existing configuration set, including the+-- dedicated IP pool that it\'s associated with, whether or not it\'s+-- enabled for sending email, and more.+--+-- /Configuration sets/ are groups of rules that you can apply to the+-- emails you send. You apply a configuration set to an email by including+-- a reference to the configuration set in the headers of the email. When+-- you apply a configuration set to an email, all of the rules in that+-- configuration set are applied to the email.+module Amazonka.SESV2.GetConfigurationSet+ ( -- * Creating a Request+ GetConfigurationSet (..),+ newGetConfigurationSet,++ -- * Request Lenses+ getConfigurationSet_configurationSetName,++ -- * Destructuring the Response+ GetConfigurationSetResponse (..),+ newGetConfigurationSetResponse,++ -- * Response Lenses+ getConfigurationSetResponse_configurationSetName,+ getConfigurationSetResponse_deliveryOptions,+ getConfigurationSetResponse_reputationOptions,+ getConfigurationSetResponse_sendingOptions,+ getConfigurationSetResponse_suppressionOptions,+ getConfigurationSetResponse_tags,+ getConfigurationSetResponse_trackingOptions,+ getConfigurationSetResponse_vdmOptions,+ getConfigurationSetResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to obtain information about a configuration set.+--+-- /See:/ 'newGetConfigurationSet' smart constructor.+data GetConfigurationSet = GetConfigurationSet'+ { -- | The name of the configuration set.+ configurationSetName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetConfigurationSet' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configurationSetName', 'getConfigurationSet_configurationSetName' - The name of the configuration set.+newGetConfigurationSet ::+ -- | 'configurationSetName'+ Prelude.Text ->+ GetConfigurationSet+newGetConfigurationSet pConfigurationSetName_ =+ GetConfigurationSet'+ { configurationSetName =+ pConfigurationSetName_+ }++-- | The name of the configuration set.+getConfigurationSet_configurationSetName :: Lens.Lens' GetConfigurationSet Prelude.Text+getConfigurationSet_configurationSetName = Lens.lens (\GetConfigurationSet' {configurationSetName} -> configurationSetName) (\s@GetConfigurationSet' {} a -> s {configurationSetName = a} :: GetConfigurationSet)++instance Core.AWSRequest GetConfigurationSet where+ type+ AWSResponse GetConfigurationSet =+ GetConfigurationSetResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetConfigurationSetResponse'+ Prelude.<$> (x Data..?> "ConfigurationSetName")+ Prelude.<*> (x Data..?> "DeliveryOptions")+ Prelude.<*> (x Data..?> "ReputationOptions")+ Prelude.<*> (x Data..?> "SendingOptions")+ Prelude.<*> (x Data..?> "SuppressionOptions")+ Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "TrackingOptions")+ Prelude.<*> (x Data..?> "VdmOptions")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetConfigurationSet where+ hashWithSalt _salt GetConfigurationSet' {..} =+ _salt `Prelude.hashWithSalt` configurationSetName++instance Prelude.NFData GetConfigurationSet where+ rnf GetConfigurationSet' {..} =+ Prelude.rnf configurationSetName++instance Data.ToHeaders GetConfigurationSet where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetConfigurationSet where+ toPath GetConfigurationSet' {..} =+ Prelude.mconcat+ [ "/v2/email/configuration-sets/",+ Data.toBS configurationSetName+ ]++instance Data.ToQuery GetConfigurationSet where+ toQuery = Prelude.const Prelude.mempty++-- | Information about a configuration set.+--+-- /See:/ 'newGetConfigurationSetResponse' smart constructor.+data GetConfigurationSetResponse = GetConfigurationSetResponse'+ { -- | The name of the configuration set.+ configurationSetName :: Prelude.Maybe Prelude.Text,+ -- | An object that defines the dedicated IP pool that is used to send emails+ -- that you send using the configuration set.+ deliveryOptions :: Prelude.Maybe DeliveryOptions,+ -- | An object that defines whether or not Amazon SES collects reputation+ -- metrics for the emails that you send that use the configuration set.+ reputationOptions :: Prelude.Maybe ReputationOptions,+ -- | An object that defines whether or not Amazon SES can send email that you+ -- send using the configuration set.+ sendingOptions :: Prelude.Maybe SendingOptions,+ -- | An object that contains information about the suppression list+ -- preferences for your account.+ suppressionOptions :: Prelude.Maybe SuppressionOptions,+ -- | An array of objects that define the tags (keys and values) that are+ -- associated with the configuration set.+ tags :: Prelude.Maybe [Tag],+ -- | An object that defines the open and click tracking options for emails+ -- that you send using the configuration set.+ trackingOptions :: Prelude.Maybe TrackingOptions,+ -- | An object that contains information about the VDM preferences for your+ -- configuration set.+ vdmOptions :: Prelude.Maybe VdmOptions,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetConfigurationSetResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configurationSetName', 'getConfigurationSetResponse_configurationSetName' - The name of the configuration set.+--+-- 'deliveryOptions', 'getConfigurationSetResponse_deliveryOptions' - An object that defines the dedicated IP pool that is used to send emails+-- that you send using the configuration set.+--+-- 'reputationOptions', 'getConfigurationSetResponse_reputationOptions' - An object that defines whether or not Amazon SES collects reputation+-- metrics for the emails that you send that use the configuration set.+--+-- 'sendingOptions', 'getConfigurationSetResponse_sendingOptions' - An object that defines whether or not Amazon SES can send email that you+-- send using the configuration set.+--+-- 'suppressionOptions', 'getConfigurationSetResponse_suppressionOptions' - An object that contains information about the suppression list+-- preferences for your account.+--+-- 'tags', 'getConfigurationSetResponse_tags' - An array of objects that define the tags (keys and values) that are+-- associated with the configuration set.+--+-- 'trackingOptions', 'getConfigurationSetResponse_trackingOptions' - An object that defines the open and click tracking options for emails+-- that you send using the configuration set.+--+-- 'vdmOptions', 'getConfigurationSetResponse_vdmOptions' - An object that contains information about the VDM preferences for your+-- configuration set.+--+-- 'httpStatus', 'getConfigurationSetResponse_httpStatus' - The response's http status code.+newGetConfigurationSetResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetConfigurationSetResponse+newGetConfigurationSetResponse pHttpStatus_ =+ GetConfigurationSetResponse'+ { configurationSetName =+ Prelude.Nothing,+ deliveryOptions = Prelude.Nothing,+ reputationOptions = Prelude.Nothing,+ sendingOptions = Prelude.Nothing,+ suppressionOptions = Prelude.Nothing,+ tags = Prelude.Nothing,+ trackingOptions = Prelude.Nothing,+ vdmOptions = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The name of the configuration set.+getConfigurationSetResponse_configurationSetName :: Lens.Lens' GetConfigurationSetResponse (Prelude.Maybe Prelude.Text)+getConfigurationSetResponse_configurationSetName = Lens.lens (\GetConfigurationSetResponse' {configurationSetName} -> configurationSetName) (\s@GetConfigurationSetResponse' {} a -> s {configurationSetName = a} :: GetConfigurationSetResponse)++-- | An object that defines the dedicated IP pool that is used to send emails+-- that you send using the configuration set.+getConfigurationSetResponse_deliveryOptions :: Lens.Lens' GetConfigurationSetResponse (Prelude.Maybe DeliveryOptions)+getConfigurationSetResponse_deliveryOptions = Lens.lens (\GetConfigurationSetResponse' {deliveryOptions} -> deliveryOptions) (\s@GetConfigurationSetResponse' {} a -> s {deliveryOptions = a} :: GetConfigurationSetResponse)++-- | An object that defines whether or not Amazon SES collects reputation+-- metrics for the emails that you send that use the configuration set.+getConfigurationSetResponse_reputationOptions :: Lens.Lens' GetConfigurationSetResponse (Prelude.Maybe ReputationOptions)+getConfigurationSetResponse_reputationOptions = Lens.lens (\GetConfigurationSetResponse' {reputationOptions} -> reputationOptions) (\s@GetConfigurationSetResponse' {} a -> s {reputationOptions = a} :: GetConfigurationSetResponse)++-- | An object that defines whether or not Amazon SES can send email that you+-- send using the configuration set.+getConfigurationSetResponse_sendingOptions :: Lens.Lens' GetConfigurationSetResponse (Prelude.Maybe SendingOptions)+getConfigurationSetResponse_sendingOptions = Lens.lens (\GetConfigurationSetResponse' {sendingOptions} -> sendingOptions) (\s@GetConfigurationSetResponse' {} a -> s {sendingOptions = a} :: GetConfigurationSetResponse)++-- | An object that contains information about the suppression list+-- preferences for your account.+getConfigurationSetResponse_suppressionOptions :: Lens.Lens' GetConfigurationSetResponse (Prelude.Maybe SuppressionOptions)+getConfigurationSetResponse_suppressionOptions = Lens.lens (\GetConfigurationSetResponse' {suppressionOptions} -> suppressionOptions) (\s@GetConfigurationSetResponse' {} a -> s {suppressionOptions = a} :: GetConfigurationSetResponse)++-- | An array of objects that define the tags (keys and values) that are+-- associated with the configuration set.+getConfigurationSetResponse_tags :: Lens.Lens' GetConfigurationSetResponse (Prelude.Maybe [Tag])+getConfigurationSetResponse_tags = Lens.lens (\GetConfigurationSetResponse' {tags} -> tags) (\s@GetConfigurationSetResponse' {} a -> s {tags = a} :: GetConfigurationSetResponse) Prelude.. Lens.mapping Lens.coerced++-- | An object that defines the open and click tracking options for emails+-- that you send using the configuration set.+getConfigurationSetResponse_trackingOptions :: Lens.Lens' GetConfigurationSetResponse (Prelude.Maybe TrackingOptions)+getConfigurationSetResponse_trackingOptions = Lens.lens (\GetConfigurationSetResponse' {trackingOptions} -> trackingOptions) (\s@GetConfigurationSetResponse' {} a -> s {trackingOptions = a} :: GetConfigurationSetResponse)++-- | An object that contains information about the VDM preferences for your+-- configuration set.+getConfigurationSetResponse_vdmOptions :: Lens.Lens' GetConfigurationSetResponse (Prelude.Maybe VdmOptions)+getConfigurationSetResponse_vdmOptions = Lens.lens (\GetConfigurationSetResponse' {vdmOptions} -> vdmOptions) (\s@GetConfigurationSetResponse' {} a -> s {vdmOptions = a} :: GetConfigurationSetResponse)++-- | The response's http status code.+getConfigurationSetResponse_httpStatus :: Lens.Lens' GetConfigurationSetResponse Prelude.Int+getConfigurationSetResponse_httpStatus = Lens.lens (\GetConfigurationSetResponse' {httpStatus} -> httpStatus) (\s@GetConfigurationSetResponse' {} a -> s {httpStatus = a} :: GetConfigurationSetResponse)++instance Prelude.NFData GetConfigurationSetResponse where+ rnf GetConfigurationSetResponse' {..} =+ Prelude.rnf configurationSetName+ `Prelude.seq` Prelude.rnf deliveryOptions+ `Prelude.seq` Prelude.rnf reputationOptions+ `Prelude.seq` Prelude.rnf sendingOptions+ `Prelude.seq` Prelude.rnf suppressionOptions+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf trackingOptions+ `Prelude.seq` Prelude.rnf vdmOptions+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/GetConfigurationSetEventDestinations.hs view
@@ -0,0 +1,210 @@+{-# 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.SESV2.GetConfigurationSetEventDestinations+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieve a list of event destinations that are associated with a+-- configuration set.+--+-- /Events/ include message sends, deliveries, opens, clicks, bounces, and+-- complaints. /Event destinations/ are places that you can send+-- information about these events to. For example, you can send event data+-- to Amazon SNS to receive notifications when you receive bounces or+-- complaints, or you can use Amazon Kinesis Data Firehose to stream data+-- to Amazon S3 for long-term storage.+module Amazonka.SESV2.GetConfigurationSetEventDestinations+ ( -- * Creating a Request+ GetConfigurationSetEventDestinations (..),+ newGetConfigurationSetEventDestinations,++ -- * Request Lenses+ getConfigurationSetEventDestinations_configurationSetName,++ -- * Destructuring the Response+ GetConfigurationSetEventDestinationsResponse (..),+ newGetConfigurationSetEventDestinationsResponse,++ -- * Response Lenses+ getConfigurationSetEventDestinationsResponse_eventDestinations,+ getConfigurationSetEventDestinationsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to obtain information about the event destinations for a+-- configuration set.+--+-- /See:/ 'newGetConfigurationSetEventDestinations' smart constructor.+data GetConfigurationSetEventDestinations = GetConfigurationSetEventDestinations'+ { -- | The name of the configuration set that contains the event destination.+ configurationSetName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetConfigurationSetEventDestinations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configurationSetName', 'getConfigurationSetEventDestinations_configurationSetName' - The name of the configuration set that contains the event destination.+newGetConfigurationSetEventDestinations ::+ -- | 'configurationSetName'+ Prelude.Text ->+ GetConfigurationSetEventDestinations+newGetConfigurationSetEventDestinations+ pConfigurationSetName_ =+ GetConfigurationSetEventDestinations'+ { configurationSetName =+ pConfigurationSetName_+ }++-- | The name of the configuration set that contains the event destination.+getConfigurationSetEventDestinations_configurationSetName :: Lens.Lens' GetConfigurationSetEventDestinations Prelude.Text+getConfigurationSetEventDestinations_configurationSetName = Lens.lens (\GetConfigurationSetEventDestinations' {configurationSetName} -> configurationSetName) (\s@GetConfigurationSetEventDestinations' {} a -> s {configurationSetName = a} :: GetConfigurationSetEventDestinations)++instance+ Core.AWSRequest+ GetConfigurationSetEventDestinations+ where+ type+ AWSResponse GetConfigurationSetEventDestinations =+ GetConfigurationSetEventDestinationsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetConfigurationSetEventDestinationsResponse'+ Prelude.<$> ( x+ Data..?> "EventDestinations"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ GetConfigurationSetEventDestinations+ where+ hashWithSalt+ _salt+ GetConfigurationSetEventDestinations' {..} =+ _salt `Prelude.hashWithSalt` configurationSetName++instance+ Prelude.NFData+ GetConfigurationSetEventDestinations+ where+ rnf GetConfigurationSetEventDestinations' {..} =+ Prelude.rnf configurationSetName++instance+ Data.ToHeaders+ GetConfigurationSetEventDestinations+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToPath+ GetConfigurationSetEventDestinations+ where+ toPath GetConfigurationSetEventDestinations' {..} =+ Prelude.mconcat+ [ "/v2/email/configuration-sets/",+ Data.toBS configurationSetName,+ "/event-destinations"+ ]++instance+ Data.ToQuery+ GetConfigurationSetEventDestinations+ where+ toQuery = Prelude.const Prelude.mempty++-- | Information about an event destination for a configuration set.+--+-- /See:/ 'newGetConfigurationSetEventDestinationsResponse' smart constructor.+data GetConfigurationSetEventDestinationsResponse = GetConfigurationSetEventDestinationsResponse'+ { -- | An array that includes all of the events destinations that have been+ -- configured for the configuration set.+ eventDestinations :: Prelude.Maybe [EventDestination],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetConfigurationSetEventDestinationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventDestinations', 'getConfigurationSetEventDestinationsResponse_eventDestinations' - An array that includes all of the events destinations that have been+-- configured for the configuration set.+--+-- 'httpStatus', 'getConfigurationSetEventDestinationsResponse_httpStatus' - The response's http status code.+newGetConfigurationSetEventDestinationsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetConfigurationSetEventDestinationsResponse+newGetConfigurationSetEventDestinationsResponse+ pHttpStatus_ =+ GetConfigurationSetEventDestinationsResponse'+ { eventDestinations =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | An array that includes all of the events destinations that have been+-- configured for the configuration set.+getConfigurationSetEventDestinationsResponse_eventDestinations :: Lens.Lens' GetConfigurationSetEventDestinationsResponse (Prelude.Maybe [EventDestination])+getConfigurationSetEventDestinationsResponse_eventDestinations = Lens.lens (\GetConfigurationSetEventDestinationsResponse' {eventDestinations} -> eventDestinations) (\s@GetConfigurationSetEventDestinationsResponse' {} a -> s {eventDestinations = a} :: GetConfigurationSetEventDestinationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getConfigurationSetEventDestinationsResponse_httpStatus :: Lens.Lens' GetConfigurationSetEventDestinationsResponse Prelude.Int+getConfigurationSetEventDestinationsResponse_httpStatus = Lens.lens (\GetConfigurationSetEventDestinationsResponse' {httpStatus} -> httpStatus) (\s@GetConfigurationSetEventDestinationsResponse' {} a -> s {httpStatus = a} :: GetConfigurationSetEventDestinationsResponse)++instance+ Prelude.NFData+ GetConfigurationSetEventDestinationsResponse+ where+ rnf GetConfigurationSetEventDestinationsResponse' {..} =+ Prelude.rnf eventDestinations+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/GetContact.hs view
@@ -0,0 +1,275 @@+{-# 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.SESV2.GetContact+-- 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 contact from a contact list.+module Amazonka.SESV2.GetContact+ ( -- * Creating a Request+ GetContact (..),+ newGetContact,++ -- * Request Lenses+ getContact_contactListName,+ getContact_emailAddress,++ -- * Destructuring the Response+ GetContactResponse (..),+ newGetContactResponse,++ -- * Response Lenses+ getContactResponse_attributesData,+ getContactResponse_contactListName,+ getContactResponse_createdTimestamp,+ getContactResponse_emailAddress,+ getContactResponse_lastUpdatedTimestamp,+ getContactResponse_topicDefaultPreferences,+ getContactResponse_topicPreferences,+ getContactResponse_unsubscribeAll,+ getContactResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | /See:/ 'newGetContact' smart constructor.+data GetContact = GetContact'+ { -- | The name of the contact list to which the contact belongs.+ contactListName :: Prelude.Text,+ -- | The contact\'s email addres.+ emailAddress :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetContact' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contactListName', 'getContact_contactListName' - The name of the contact list to which the contact belongs.+--+-- 'emailAddress', 'getContact_emailAddress' - The contact\'s email addres.+newGetContact ::+ -- | 'contactListName'+ Prelude.Text ->+ -- | 'emailAddress'+ Prelude.Text ->+ GetContact+newGetContact pContactListName_ pEmailAddress_ =+ GetContact'+ { contactListName = pContactListName_,+ emailAddress = pEmailAddress_+ }++-- | The name of the contact list to which the contact belongs.+getContact_contactListName :: Lens.Lens' GetContact Prelude.Text+getContact_contactListName = Lens.lens (\GetContact' {contactListName} -> contactListName) (\s@GetContact' {} a -> s {contactListName = a} :: GetContact)++-- | The contact\'s email addres.+getContact_emailAddress :: Lens.Lens' GetContact Prelude.Text+getContact_emailAddress = Lens.lens (\GetContact' {emailAddress} -> emailAddress) (\s@GetContact' {} a -> s {emailAddress = a} :: GetContact)++instance Core.AWSRequest GetContact where+ type AWSResponse GetContact = GetContactResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetContactResponse'+ Prelude.<$> (x Data..?> "AttributesData")+ Prelude.<*> (x Data..?> "ContactListName")+ Prelude.<*> (x Data..?> "CreatedTimestamp")+ Prelude.<*> (x Data..?> "EmailAddress")+ Prelude.<*> (x Data..?> "LastUpdatedTimestamp")+ Prelude.<*> ( x+ Data..?> "TopicDefaultPreferences"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> ( x+ Data..?> "TopicPreferences"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "UnsubscribeAll")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetContact where+ hashWithSalt _salt GetContact' {..} =+ _salt+ `Prelude.hashWithSalt` contactListName+ `Prelude.hashWithSalt` emailAddress++instance Prelude.NFData GetContact where+ rnf GetContact' {..} =+ Prelude.rnf contactListName+ `Prelude.seq` Prelude.rnf emailAddress++instance Data.ToHeaders GetContact where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetContact where+ toPath GetContact' {..} =+ Prelude.mconcat+ [ "/v2/email/contact-lists/",+ Data.toBS contactListName,+ "/contacts/",+ Data.toBS emailAddress+ ]++instance Data.ToQuery GetContact where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetContactResponse' smart constructor.+data GetContactResponse = GetContactResponse'+ { -- | The attribute data attached to a contact.+ attributesData :: Prelude.Maybe Prelude.Text,+ -- | The name of the contact list to which the contact belongs.+ contactListName :: Prelude.Maybe Prelude.Text,+ -- | A timestamp noting when the contact was created.+ createdTimestamp :: Prelude.Maybe Data.POSIX,+ -- | The contact\'s email addres.+ emailAddress :: Prelude.Maybe Prelude.Text,+ -- | A timestamp noting the last time the contact\'s information was updated.+ lastUpdatedTimestamp :: Prelude.Maybe Data.POSIX,+ -- | The default topic preferences applied to the contact.+ topicDefaultPreferences :: Prelude.Maybe [TopicPreference],+ -- | The contact\'s preference for being opted-in to or opted-out of a+ -- topic.>+ topicPreferences :: Prelude.Maybe [TopicPreference],+ -- | A boolean value status noting if the contact is unsubscribed from all+ -- contact list topics.+ unsubscribeAll :: Prelude.Maybe Prelude.Bool,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetContactResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attributesData', 'getContactResponse_attributesData' - The attribute data attached to a contact.+--+-- 'contactListName', 'getContactResponse_contactListName' - The name of the contact list to which the contact belongs.+--+-- 'createdTimestamp', 'getContactResponse_createdTimestamp' - A timestamp noting when the contact was created.+--+-- 'emailAddress', 'getContactResponse_emailAddress' - The contact\'s email addres.+--+-- 'lastUpdatedTimestamp', 'getContactResponse_lastUpdatedTimestamp' - A timestamp noting the last time the contact\'s information was updated.+--+-- 'topicDefaultPreferences', 'getContactResponse_topicDefaultPreferences' - The default topic preferences applied to the contact.+--+-- 'topicPreferences', 'getContactResponse_topicPreferences' - The contact\'s preference for being opted-in to or opted-out of a+-- topic.>+--+-- 'unsubscribeAll', 'getContactResponse_unsubscribeAll' - A boolean value status noting if the contact is unsubscribed from all+-- contact list topics.+--+-- 'httpStatus', 'getContactResponse_httpStatus' - The response's http status code.+newGetContactResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetContactResponse+newGetContactResponse pHttpStatus_ =+ GetContactResponse'+ { attributesData =+ Prelude.Nothing,+ contactListName = Prelude.Nothing,+ createdTimestamp = Prelude.Nothing,+ emailAddress = Prelude.Nothing,+ lastUpdatedTimestamp = Prelude.Nothing,+ topicDefaultPreferences = Prelude.Nothing,+ topicPreferences = Prelude.Nothing,+ unsubscribeAll = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The attribute data attached to a contact.+getContactResponse_attributesData :: Lens.Lens' GetContactResponse (Prelude.Maybe Prelude.Text)+getContactResponse_attributesData = Lens.lens (\GetContactResponse' {attributesData} -> attributesData) (\s@GetContactResponse' {} a -> s {attributesData = a} :: GetContactResponse)++-- | The name of the contact list to which the contact belongs.+getContactResponse_contactListName :: Lens.Lens' GetContactResponse (Prelude.Maybe Prelude.Text)+getContactResponse_contactListName = Lens.lens (\GetContactResponse' {contactListName} -> contactListName) (\s@GetContactResponse' {} a -> s {contactListName = a} :: GetContactResponse)++-- | A timestamp noting when the contact was created.+getContactResponse_createdTimestamp :: Lens.Lens' GetContactResponse (Prelude.Maybe Prelude.UTCTime)+getContactResponse_createdTimestamp = Lens.lens (\GetContactResponse' {createdTimestamp} -> createdTimestamp) (\s@GetContactResponse' {} a -> s {createdTimestamp = a} :: GetContactResponse) Prelude.. Lens.mapping Data._Time++-- | The contact\'s email addres.+getContactResponse_emailAddress :: Lens.Lens' GetContactResponse (Prelude.Maybe Prelude.Text)+getContactResponse_emailAddress = Lens.lens (\GetContactResponse' {emailAddress} -> emailAddress) (\s@GetContactResponse' {} a -> s {emailAddress = a} :: GetContactResponse)++-- | A timestamp noting the last time the contact\'s information was updated.+getContactResponse_lastUpdatedTimestamp :: Lens.Lens' GetContactResponse (Prelude.Maybe Prelude.UTCTime)+getContactResponse_lastUpdatedTimestamp = Lens.lens (\GetContactResponse' {lastUpdatedTimestamp} -> lastUpdatedTimestamp) (\s@GetContactResponse' {} a -> s {lastUpdatedTimestamp = a} :: GetContactResponse) Prelude.. Lens.mapping Data._Time++-- | The default topic preferences applied to the contact.+getContactResponse_topicDefaultPreferences :: Lens.Lens' GetContactResponse (Prelude.Maybe [TopicPreference])+getContactResponse_topicDefaultPreferences = Lens.lens (\GetContactResponse' {topicDefaultPreferences} -> topicDefaultPreferences) (\s@GetContactResponse' {} a -> s {topicDefaultPreferences = a} :: GetContactResponse) Prelude.. Lens.mapping Lens.coerced++-- | The contact\'s preference for being opted-in to or opted-out of a+-- topic.>+getContactResponse_topicPreferences :: Lens.Lens' GetContactResponse (Prelude.Maybe [TopicPreference])+getContactResponse_topicPreferences = Lens.lens (\GetContactResponse' {topicPreferences} -> topicPreferences) (\s@GetContactResponse' {} a -> s {topicPreferences = a} :: GetContactResponse) Prelude.. Lens.mapping Lens.coerced++-- | A boolean value status noting if the contact is unsubscribed from all+-- contact list topics.+getContactResponse_unsubscribeAll :: Lens.Lens' GetContactResponse (Prelude.Maybe Prelude.Bool)+getContactResponse_unsubscribeAll = Lens.lens (\GetContactResponse' {unsubscribeAll} -> unsubscribeAll) (\s@GetContactResponse' {} a -> s {unsubscribeAll = a} :: GetContactResponse)++-- | The response's http status code.+getContactResponse_httpStatus :: Lens.Lens' GetContactResponse Prelude.Int+getContactResponse_httpStatus = Lens.lens (\GetContactResponse' {httpStatus} -> httpStatus) (\s@GetContactResponse' {} a -> s {httpStatus = a} :: GetContactResponse)++instance Prelude.NFData GetContactResponse where+ rnf GetContactResponse' {..} =+ Prelude.rnf attributesData+ `Prelude.seq` Prelude.rnf contactListName+ `Prelude.seq` Prelude.rnf createdTimestamp+ `Prelude.seq` Prelude.rnf emailAddress+ `Prelude.seq` Prelude.rnf lastUpdatedTimestamp+ `Prelude.seq` Prelude.rnf topicDefaultPreferences+ `Prelude.seq` Prelude.rnf topicPreferences+ `Prelude.seq` Prelude.rnf unsubscribeAll+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/GetContactList.hs view
@@ -0,0 +1,228 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.GetContactList+-- 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 contact list metadata. It does not return any information about+-- the contacts present in the list.+module Amazonka.SESV2.GetContactList+ ( -- * Creating a Request+ GetContactList (..),+ newGetContactList,++ -- * Request Lenses+ getContactList_contactListName,++ -- * Destructuring the Response+ GetContactListResponse (..),+ newGetContactListResponse,++ -- * Response Lenses+ getContactListResponse_contactListName,+ getContactListResponse_createdTimestamp,+ getContactListResponse_description,+ getContactListResponse_lastUpdatedTimestamp,+ getContactListResponse_tags,+ getContactListResponse_topics,+ getContactListResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | /See:/ 'newGetContactList' smart constructor.+data GetContactList = GetContactList'+ { -- | The name of the contact list.+ contactListName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetContactList' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contactListName', 'getContactList_contactListName' - The name of the contact list.+newGetContactList ::+ -- | 'contactListName'+ Prelude.Text ->+ GetContactList+newGetContactList pContactListName_ =+ GetContactList'+ { contactListName =+ pContactListName_+ }++-- | The name of the contact list.+getContactList_contactListName :: Lens.Lens' GetContactList Prelude.Text+getContactList_contactListName = Lens.lens (\GetContactList' {contactListName} -> contactListName) (\s@GetContactList' {} a -> s {contactListName = a} :: GetContactList)++instance Core.AWSRequest GetContactList where+ type+ AWSResponse GetContactList =+ GetContactListResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetContactListResponse'+ Prelude.<$> (x Data..?> "ContactListName")+ Prelude.<*> (x Data..?> "CreatedTimestamp")+ Prelude.<*> (x Data..?> "Description")+ Prelude.<*> (x Data..?> "LastUpdatedTimestamp")+ Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "Topics" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetContactList where+ hashWithSalt _salt GetContactList' {..} =+ _salt `Prelude.hashWithSalt` contactListName++instance Prelude.NFData GetContactList where+ rnf GetContactList' {..} = Prelude.rnf contactListName++instance Data.ToHeaders GetContactList where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetContactList where+ toPath GetContactList' {..} =+ Prelude.mconcat+ [ "/v2/email/contact-lists/",+ Data.toBS contactListName+ ]++instance Data.ToQuery GetContactList where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetContactListResponse' smart constructor.+data GetContactListResponse = GetContactListResponse'+ { -- | The name of the contact list.+ contactListName :: Prelude.Maybe Prelude.Text,+ -- | A timestamp noting when the contact list was created.+ createdTimestamp :: Prelude.Maybe Data.POSIX,+ -- | A description of what the contact list is about.+ description :: Prelude.Maybe Prelude.Text,+ -- | A timestamp noting the last time the contact list was updated.+ lastUpdatedTimestamp :: Prelude.Maybe Data.POSIX,+ -- | The tags associated with a contact list.+ tags :: Prelude.Maybe [Tag],+ -- | An interest group, theme, or label within a list. A contact list can+ -- have multiple topics.+ topics :: Prelude.Maybe [Topic],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetContactListResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contactListName', 'getContactListResponse_contactListName' - The name of the contact list.+--+-- 'createdTimestamp', 'getContactListResponse_createdTimestamp' - A timestamp noting when the contact list was created.+--+-- 'description', 'getContactListResponse_description' - A description of what the contact list is about.+--+-- 'lastUpdatedTimestamp', 'getContactListResponse_lastUpdatedTimestamp' - A timestamp noting the last time the contact list was updated.+--+-- 'tags', 'getContactListResponse_tags' - The tags associated with a contact list.+--+-- 'topics', 'getContactListResponse_topics' - An interest group, theme, or label within a list. A contact list can+-- have multiple topics.+--+-- 'httpStatus', 'getContactListResponse_httpStatus' - The response's http status code.+newGetContactListResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetContactListResponse+newGetContactListResponse pHttpStatus_ =+ GetContactListResponse'+ { contactListName =+ Prelude.Nothing,+ createdTimestamp = Prelude.Nothing,+ description = Prelude.Nothing,+ lastUpdatedTimestamp = Prelude.Nothing,+ tags = Prelude.Nothing,+ topics = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The name of the contact list.+getContactListResponse_contactListName :: Lens.Lens' GetContactListResponse (Prelude.Maybe Prelude.Text)+getContactListResponse_contactListName = Lens.lens (\GetContactListResponse' {contactListName} -> contactListName) (\s@GetContactListResponse' {} a -> s {contactListName = a} :: GetContactListResponse)++-- | A timestamp noting when the contact list was created.+getContactListResponse_createdTimestamp :: Lens.Lens' GetContactListResponse (Prelude.Maybe Prelude.UTCTime)+getContactListResponse_createdTimestamp = Lens.lens (\GetContactListResponse' {createdTimestamp} -> createdTimestamp) (\s@GetContactListResponse' {} a -> s {createdTimestamp = a} :: GetContactListResponse) Prelude.. Lens.mapping Data._Time++-- | A description of what the contact list is about.+getContactListResponse_description :: Lens.Lens' GetContactListResponse (Prelude.Maybe Prelude.Text)+getContactListResponse_description = Lens.lens (\GetContactListResponse' {description} -> description) (\s@GetContactListResponse' {} a -> s {description = a} :: GetContactListResponse)++-- | A timestamp noting the last time the contact list was updated.+getContactListResponse_lastUpdatedTimestamp :: Lens.Lens' GetContactListResponse (Prelude.Maybe Prelude.UTCTime)+getContactListResponse_lastUpdatedTimestamp = Lens.lens (\GetContactListResponse' {lastUpdatedTimestamp} -> lastUpdatedTimestamp) (\s@GetContactListResponse' {} a -> s {lastUpdatedTimestamp = a} :: GetContactListResponse) Prelude.. Lens.mapping Data._Time++-- | The tags associated with a contact list.+getContactListResponse_tags :: Lens.Lens' GetContactListResponse (Prelude.Maybe [Tag])+getContactListResponse_tags = Lens.lens (\GetContactListResponse' {tags} -> tags) (\s@GetContactListResponse' {} a -> s {tags = a} :: GetContactListResponse) Prelude.. Lens.mapping Lens.coerced++-- | An interest group, theme, or label within a list. A contact list can+-- have multiple topics.+getContactListResponse_topics :: Lens.Lens' GetContactListResponse (Prelude.Maybe [Topic])+getContactListResponse_topics = Lens.lens (\GetContactListResponse' {topics} -> topics) (\s@GetContactListResponse' {} a -> s {topics = a} :: GetContactListResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getContactListResponse_httpStatus :: Lens.Lens' GetContactListResponse Prelude.Int+getContactListResponse_httpStatus = Lens.lens (\GetContactListResponse' {httpStatus} -> httpStatus) (\s@GetContactListResponse' {} a -> s {httpStatus = a} :: GetContactListResponse)++instance Prelude.NFData GetContactListResponse where+ rnf GetContactListResponse' {..} =+ Prelude.rnf contactListName+ `Prelude.seq` Prelude.rnf createdTimestamp+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf lastUpdatedTimestamp+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf topics+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/GetCustomVerificationEmailTemplate.hs view
@@ -0,0 +1,274 @@+{-# 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.SESV2.GetCustomVerificationEmailTemplate+-- 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 custom email verification template for the template name you+-- specify.+--+-- For more information about custom verification email templates, see+-- <https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#send-email-verify-address-custom Using custom verification email templates>+-- in the /Amazon SES Developer Guide/.+--+-- You can execute this operation no more than once per second.+module Amazonka.SESV2.GetCustomVerificationEmailTemplate+ ( -- * Creating a Request+ GetCustomVerificationEmailTemplate (..),+ newGetCustomVerificationEmailTemplate,++ -- * Request Lenses+ getCustomVerificationEmailTemplate_templateName,++ -- * Destructuring the Response+ GetCustomVerificationEmailTemplateResponse (..),+ newGetCustomVerificationEmailTemplateResponse,++ -- * Response Lenses+ getCustomVerificationEmailTemplateResponse_failureRedirectionURL,+ getCustomVerificationEmailTemplateResponse_fromEmailAddress,+ getCustomVerificationEmailTemplateResponse_successRedirectionURL,+ getCustomVerificationEmailTemplateResponse_templateContent,+ getCustomVerificationEmailTemplateResponse_templateName,+ getCustomVerificationEmailTemplateResponse_templateSubject,+ getCustomVerificationEmailTemplateResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | Represents a request to retrieve an existing custom verification email+-- template.+--+-- /See:/ 'newGetCustomVerificationEmailTemplate' smart constructor.+data GetCustomVerificationEmailTemplate = GetCustomVerificationEmailTemplate'+ { -- | The name of the custom verification email template that you want to+ -- retrieve.+ templateName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetCustomVerificationEmailTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'templateName', 'getCustomVerificationEmailTemplate_templateName' - The name of the custom verification email template that you want to+-- retrieve.+newGetCustomVerificationEmailTemplate ::+ -- | 'templateName'+ Prelude.Text ->+ GetCustomVerificationEmailTemplate+newGetCustomVerificationEmailTemplate pTemplateName_ =+ GetCustomVerificationEmailTemplate'+ { templateName =+ pTemplateName_+ }++-- | The name of the custom verification email template that you want to+-- retrieve.+getCustomVerificationEmailTemplate_templateName :: Lens.Lens' GetCustomVerificationEmailTemplate Prelude.Text+getCustomVerificationEmailTemplate_templateName = Lens.lens (\GetCustomVerificationEmailTemplate' {templateName} -> templateName) (\s@GetCustomVerificationEmailTemplate' {} a -> s {templateName = a} :: GetCustomVerificationEmailTemplate)++instance+ Core.AWSRequest+ GetCustomVerificationEmailTemplate+ where+ type+ AWSResponse GetCustomVerificationEmailTemplate =+ GetCustomVerificationEmailTemplateResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetCustomVerificationEmailTemplateResponse'+ Prelude.<$> (x Data..?> "FailureRedirectionURL")+ Prelude.<*> (x Data..?> "FromEmailAddress")+ Prelude.<*> (x Data..?> "SuccessRedirectionURL")+ Prelude.<*> (x Data..?> "TemplateContent")+ Prelude.<*> (x Data..?> "TemplateName")+ Prelude.<*> (x Data..?> "TemplateSubject")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ GetCustomVerificationEmailTemplate+ where+ hashWithSalt+ _salt+ GetCustomVerificationEmailTemplate' {..} =+ _salt `Prelude.hashWithSalt` templateName++instance+ Prelude.NFData+ GetCustomVerificationEmailTemplate+ where+ rnf GetCustomVerificationEmailTemplate' {..} =+ Prelude.rnf templateName++instance+ Data.ToHeaders+ GetCustomVerificationEmailTemplate+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToPath+ GetCustomVerificationEmailTemplate+ where+ toPath GetCustomVerificationEmailTemplate' {..} =+ Prelude.mconcat+ [ "/v2/email/custom-verification-email-templates/",+ Data.toBS templateName+ ]++instance+ Data.ToQuery+ GetCustomVerificationEmailTemplate+ where+ toQuery = Prelude.const Prelude.mempty++-- | The following elements are returned by the service.+--+-- /See:/ 'newGetCustomVerificationEmailTemplateResponse' smart constructor.+data GetCustomVerificationEmailTemplateResponse = GetCustomVerificationEmailTemplateResponse'+ { -- | The URL that the recipient of the verification email is sent to if his+ -- or her address is not successfully verified.+ failureRedirectionURL :: Prelude.Maybe Prelude.Text,+ -- | The email address that the custom verification email is sent from.+ fromEmailAddress :: Prelude.Maybe Prelude.Text,+ -- | The URL that the recipient of the verification email is sent to if his+ -- or her address is successfully verified.+ successRedirectionURL :: Prelude.Maybe Prelude.Text,+ -- | The content of the custom verification email.+ templateContent :: Prelude.Maybe Prelude.Text,+ -- | The name of the custom verification email template.+ templateName :: Prelude.Maybe Prelude.Text,+ -- | The subject line of the custom verification email.+ templateSubject :: 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 'GetCustomVerificationEmailTemplateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'failureRedirectionURL', 'getCustomVerificationEmailTemplateResponse_failureRedirectionURL' - The URL that the recipient of the verification email is sent to if his+-- or her address is not successfully verified.+--+-- 'fromEmailAddress', 'getCustomVerificationEmailTemplateResponse_fromEmailAddress' - The email address that the custom verification email is sent from.+--+-- 'successRedirectionURL', 'getCustomVerificationEmailTemplateResponse_successRedirectionURL' - The URL that the recipient of the verification email is sent to if his+-- or her address is successfully verified.+--+-- 'templateContent', 'getCustomVerificationEmailTemplateResponse_templateContent' - The content of the custom verification email.+--+-- 'templateName', 'getCustomVerificationEmailTemplateResponse_templateName' - The name of the custom verification email template.+--+-- 'templateSubject', 'getCustomVerificationEmailTemplateResponse_templateSubject' - The subject line of the custom verification email.+--+-- 'httpStatus', 'getCustomVerificationEmailTemplateResponse_httpStatus' - The response's http status code.+newGetCustomVerificationEmailTemplateResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetCustomVerificationEmailTemplateResponse+newGetCustomVerificationEmailTemplateResponse+ pHttpStatus_ =+ GetCustomVerificationEmailTemplateResponse'+ { failureRedirectionURL =+ Prelude.Nothing,+ fromEmailAddress =+ Prelude.Nothing,+ successRedirectionURL =+ Prelude.Nothing,+ templateContent =+ Prelude.Nothing,+ templateName = Prelude.Nothing,+ templateSubject =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The URL that the recipient of the verification email is sent to if his+-- or her address is not successfully verified.+getCustomVerificationEmailTemplateResponse_failureRedirectionURL :: Lens.Lens' GetCustomVerificationEmailTemplateResponse (Prelude.Maybe Prelude.Text)+getCustomVerificationEmailTemplateResponse_failureRedirectionURL = Lens.lens (\GetCustomVerificationEmailTemplateResponse' {failureRedirectionURL} -> failureRedirectionURL) (\s@GetCustomVerificationEmailTemplateResponse' {} a -> s {failureRedirectionURL = a} :: GetCustomVerificationEmailTemplateResponse)++-- | The email address that the custom verification email is sent from.+getCustomVerificationEmailTemplateResponse_fromEmailAddress :: Lens.Lens' GetCustomVerificationEmailTemplateResponse (Prelude.Maybe Prelude.Text)+getCustomVerificationEmailTemplateResponse_fromEmailAddress = Lens.lens (\GetCustomVerificationEmailTemplateResponse' {fromEmailAddress} -> fromEmailAddress) (\s@GetCustomVerificationEmailTemplateResponse' {} a -> s {fromEmailAddress = a} :: GetCustomVerificationEmailTemplateResponse)++-- | The URL that the recipient of the verification email is sent to if his+-- or her address is successfully verified.+getCustomVerificationEmailTemplateResponse_successRedirectionURL :: Lens.Lens' GetCustomVerificationEmailTemplateResponse (Prelude.Maybe Prelude.Text)+getCustomVerificationEmailTemplateResponse_successRedirectionURL = Lens.lens (\GetCustomVerificationEmailTemplateResponse' {successRedirectionURL} -> successRedirectionURL) (\s@GetCustomVerificationEmailTemplateResponse' {} a -> s {successRedirectionURL = a} :: GetCustomVerificationEmailTemplateResponse)++-- | The content of the custom verification email.+getCustomVerificationEmailTemplateResponse_templateContent :: Lens.Lens' GetCustomVerificationEmailTemplateResponse (Prelude.Maybe Prelude.Text)+getCustomVerificationEmailTemplateResponse_templateContent = Lens.lens (\GetCustomVerificationEmailTemplateResponse' {templateContent} -> templateContent) (\s@GetCustomVerificationEmailTemplateResponse' {} a -> s {templateContent = a} :: GetCustomVerificationEmailTemplateResponse)++-- | The name of the custom verification email template.+getCustomVerificationEmailTemplateResponse_templateName :: Lens.Lens' GetCustomVerificationEmailTemplateResponse (Prelude.Maybe Prelude.Text)+getCustomVerificationEmailTemplateResponse_templateName = Lens.lens (\GetCustomVerificationEmailTemplateResponse' {templateName} -> templateName) (\s@GetCustomVerificationEmailTemplateResponse' {} a -> s {templateName = a} :: GetCustomVerificationEmailTemplateResponse)++-- | The subject line of the custom verification email.+getCustomVerificationEmailTemplateResponse_templateSubject :: Lens.Lens' GetCustomVerificationEmailTemplateResponse (Prelude.Maybe Prelude.Text)+getCustomVerificationEmailTemplateResponse_templateSubject = Lens.lens (\GetCustomVerificationEmailTemplateResponse' {templateSubject} -> templateSubject) (\s@GetCustomVerificationEmailTemplateResponse' {} a -> s {templateSubject = a} :: GetCustomVerificationEmailTemplateResponse)++-- | The response's http status code.+getCustomVerificationEmailTemplateResponse_httpStatus :: Lens.Lens' GetCustomVerificationEmailTemplateResponse Prelude.Int+getCustomVerificationEmailTemplateResponse_httpStatus = Lens.lens (\GetCustomVerificationEmailTemplateResponse' {httpStatus} -> httpStatus) (\s@GetCustomVerificationEmailTemplateResponse' {} a -> s {httpStatus = a} :: GetCustomVerificationEmailTemplateResponse)++instance+ Prelude.NFData+ GetCustomVerificationEmailTemplateResponse+ where+ rnf GetCustomVerificationEmailTemplateResponse' {..} =+ Prelude.rnf failureRedirectionURL+ `Prelude.seq` Prelude.rnf fromEmailAddress+ `Prelude.seq` Prelude.rnf successRedirectionURL+ `Prelude.seq` Prelude.rnf templateContent+ `Prelude.seq` Prelude.rnf templateName+ `Prelude.seq` Prelude.rnf templateSubject+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/GetDedicatedIp.hs view
@@ -0,0 +1,170 @@+{-# 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.SESV2.GetDedicatedIp+-- 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 information about a dedicated IP address, including the name of the+-- dedicated IP pool that it\'s associated with, as well information about+-- the automatic warm-up process for the address.+module Amazonka.SESV2.GetDedicatedIp+ ( -- * Creating a Request+ GetDedicatedIp (..),+ newGetDedicatedIp,++ -- * Request Lenses+ getDedicatedIp_ip,++ -- * Destructuring the Response+ GetDedicatedIpResponse (..),+ newGetDedicatedIpResponse,++ -- * Response Lenses+ getDedicatedIpResponse_dedicatedIp,+ getDedicatedIpResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to obtain more information about a dedicated IP address.+--+-- /See:/ 'newGetDedicatedIp' smart constructor.+data GetDedicatedIp = GetDedicatedIp'+ { -- | The IP address that you want to obtain more information about. The value+ -- you specify has to be a dedicated IP address that\'s assocaited with+ -- your Amazon Web Services account.+ ip :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDedicatedIp' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ip', 'getDedicatedIp_ip' - The IP address that you want to obtain more information about. The value+-- you specify has to be a dedicated IP address that\'s assocaited with+-- your Amazon Web Services account.+newGetDedicatedIp ::+ -- | 'ip'+ Prelude.Text ->+ GetDedicatedIp+newGetDedicatedIp pIp_ = GetDedicatedIp' {ip = pIp_}++-- | The IP address that you want to obtain more information about. The value+-- you specify has to be a dedicated IP address that\'s assocaited with+-- your Amazon Web Services account.+getDedicatedIp_ip :: Lens.Lens' GetDedicatedIp Prelude.Text+getDedicatedIp_ip = Lens.lens (\GetDedicatedIp' {ip} -> ip) (\s@GetDedicatedIp' {} a -> s {ip = a} :: GetDedicatedIp)++instance Core.AWSRequest GetDedicatedIp where+ type+ AWSResponse GetDedicatedIp =+ GetDedicatedIpResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetDedicatedIpResponse'+ Prelude.<$> (x Data..?> "DedicatedIp")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetDedicatedIp where+ hashWithSalt _salt GetDedicatedIp' {..} =+ _salt `Prelude.hashWithSalt` ip++instance Prelude.NFData GetDedicatedIp where+ rnf GetDedicatedIp' {..} = Prelude.rnf ip++instance Data.ToHeaders GetDedicatedIp where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetDedicatedIp where+ toPath GetDedicatedIp' {..} =+ Prelude.mconcat+ ["/v2/email/dedicated-ips/", Data.toBS ip]++instance Data.ToQuery GetDedicatedIp where+ toQuery = Prelude.const Prelude.mempty++-- | Information about a dedicated IP address.+--+-- /See:/ 'newGetDedicatedIpResponse' smart constructor.+data GetDedicatedIpResponse = GetDedicatedIpResponse'+ { -- | An object that contains information about a dedicated IP address.+ dedicatedIp :: Prelude.Maybe DedicatedIp,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDedicatedIpResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dedicatedIp', 'getDedicatedIpResponse_dedicatedIp' - An object that contains information about a dedicated IP address.+--+-- 'httpStatus', 'getDedicatedIpResponse_httpStatus' - The response's http status code.+newGetDedicatedIpResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetDedicatedIpResponse+newGetDedicatedIpResponse pHttpStatus_ =+ GetDedicatedIpResponse'+ { dedicatedIp =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | An object that contains information about a dedicated IP address.+getDedicatedIpResponse_dedicatedIp :: Lens.Lens' GetDedicatedIpResponse (Prelude.Maybe DedicatedIp)+getDedicatedIpResponse_dedicatedIp = Lens.lens (\GetDedicatedIpResponse' {dedicatedIp} -> dedicatedIp) (\s@GetDedicatedIpResponse' {} a -> s {dedicatedIp = a} :: GetDedicatedIpResponse)++-- | The response's http status code.+getDedicatedIpResponse_httpStatus :: Lens.Lens' GetDedicatedIpResponse Prelude.Int+getDedicatedIpResponse_httpStatus = Lens.lens (\GetDedicatedIpResponse' {httpStatus} -> httpStatus) (\s@GetDedicatedIpResponse' {} a -> s {httpStatus = a} :: GetDedicatedIpResponse)++instance Prelude.NFData GetDedicatedIpResponse where+ rnf GetDedicatedIpResponse' {..} =+ Prelude.rnf dedicatedIp+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/GetDedicatedIpPool.hs view
@@ -0,0 +1,163 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.GetDedicatedIpPool+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieve information about the dedicated pool.+module Amazonka.SESV2.GetDedicatedIpPool+ ( -- * Creating a Request+ GetDedicatedIpPool (..),+ newGetDedicatedIpPool,++ -- * Request Lenses+ getDedicatedIpPool_poolName,++ -- * Destructuring the Response+ GetDedicatedIpPoolResponse (..),+ newGetDedicatedIpPoolResponse,++ -- * Response Lenses+ getDedicatedIpPoolResponse_dedicatedIpPool,+ getDedicatedIpPoolResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to obtain more information about a dedicated IP pool.+--+-- /See:/ 'newGetDedicatedIpPool' smart constructor.+data GetDedicatedIpPool = GetDedicatedIpPool'+ { -- | The name of the dedicated IP pool to retrieve.+ poolName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDedicatedIpPool' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'poolName', 'getDedicatedIpPool_poolName' - The name of the dedicated IP pool to retrieve.+newGetDedicatedIpPool ::+ -- | 'poolName'+ Prelude.Text ->+ GetDedicatedIpPool+newGetDedicatedIpPool pPoolName_ =+ GetDedicatedIpPool' {poolName = pPoolName_}++-- | The name of the dedicated IP pool to retrieve.+getDedicatedIpPool_poolName :: Lens.Lens' GetDedicatedIpPool Prelude.Text+getDedicatedIpPool_poolName = Lens.lens (\GetDedicatedIpPool' {poolName} -> poolName) (\s@GetDedicatedIpPool' {} a -> s {poolName = a} :: GetDedicatedIpPool)++instance Core.AWSRequest GetDedicatedIpPool where+ type+ AWSResponse GetDedicatedIpPool =+ GetDedicatedIpPoolResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetDedicatedIpPoolResponse'+ Prelude.<$> (x Data..?> "DedicatedIpPool")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetDedicatedIpPool where+ hashWithSalt _salt GetDedicatedIpPool' {..} =+ _salt `Prelude.hashWithSalt` poolName++instance Prelude.NFData GetDedicatedIpPool where+ rnf GetDedicatedIpPool' {..} = Prelude.rnf poolName++instance Data.ToHeaders GetDedicatedIpPool where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetDedicatedIpPool where+ toPath GetDedicatedIpPool' {..} =+ Prelude.mconcat+ ["/v2/email/dedicated-ip-pools/", Data.toBS poolName]++instance Data.ToQuery GetDedicatedIpPool where+ toQuery = Prelude.const Prelude.mempty++-- | The following element is returned by the service.+--+-- /See:/ 'newGetDedicatedIpPoolResponse' smart constructor.+data GetDedicatedIpPoolResponse = GetDedicatedIpPoolResponse'+ { -- | An object that contains information about a dedicated IP pool.+ dedicatedIpPool :: Prelude.Maybe DedicatedIpPool,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDedicatedIpPoolResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dedicatedIpPool', 'getDedicatedIpPoolResponse_dedicatedIpPool' - An object that contains information about a dedicated IP pool.+--+-- 'httpStatus', 'getDedicatedIpPoolResponse_httpStatus' - The response's http status code.+newGetDedicatedIpPoolResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetDedicatedIpPoolResponse+newGetDedicatedIpPoolResponse pHttpStatus_ =+ GetDedicatedIpPoolResponse'+ { dedicatedIpPool =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | An object that contains information about a dedicated IP pool.+getDedicatedIpPoolResponse_dedicatedIpPool :: Lens.Lens' GetDedicatedIpPoolResponse (Prelude.Maybe DedicatedIpPool)+getDedicatedIpPoolResponse_dedicatedIpPool = Lens.lens (\GetDedicatedIpPoolResponse' {dedicatedIpPool} -> dedicatedIpPool) (\s@GetDedicatedIpPoolResponse' {} a -> s {dedicatedIpPool = a} :: GetDedicatedIpPoolResponse)++-- | The response's http status code.+getDedicatedIpPoolResponse_httpStatus :: Lens.Lens' GetDedicatedIpPoolResponse Prelude.Int+getDedicatedIpPoolResponse_httpStatus = Lens.lens (\GetDedicatedIpPoolResponse' {httpStatus} -> httpStatus) (\s@GetDedicatedIpPoolResponse' {} a -> s {httpStatus = a} :: GetDedicatedIpPoolResponse)++instance Prelude.NFData GetDedicatedIpPoolResponse where+ rnf GetDedicatedIpPoolResponse' {..} =+ Prelude.rnf dedicatedIpPool+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/GetDedicatedIps.hs view
@@ -0,0 +1,230 @@+{-# 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.SESV2.GetDedicatedIps+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- List the dedicated IP addresses that are associated with your Amazon Web+-- Services account.+module Amazonka.SESV2.GetDedicatedIps+ ( -- * Creating a Request+ GetDedicatedIps (..),+ newGetDedicatedIps,++ -- * Request Lenses+ getDedicatedIps_nextToken,+ getDedicatedIps_pageSize,+ getDedicatedIps_poolName,++ -- * Destructuring the Response+ GetDedicatedIpsResponse (..),+ newGetDedicatedIpsResponse,++ -- * Response Lenses+ getDedicatedIpsResponse_dedicatedIps,+ getDedicatedIpsResponse_nextToken,+ getDedicatedIpsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to obtain more information about dedicated IP pools.+--+-- /See:/ 'newGetDedicatedIps' smart constructor.+data GetDedicatedIps = GetDedicatedIps'+ { -- | A token returned from a previous call to @GetDedicatedIps@ to indicate+ -- the position of the dedicated IP pool in the list of IP pools.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The number of results to show in a single call to+ -- @GetDedicatedIpsRequest@. If the number of results is larger than the+ -- number you specified in this parameter, then the response includes a+ -- @NextToken@ element, which you can use to obtain additional results.+ pageSize :: Prelude.Maybe Prelude.Int,+ -- | The name of the IP pool that the dedicated IP address is associated+ -- with.+ poolName :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDedicatedIps' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'getDedicatedIps_nextToken' - A token returned from a previous call to @GetDedicatedIps@ to indicate+-- the position of the dedicated IP pool in the list of IP pools.+--+-- 'pageSize', 'getDedicatedIps_pageSize' - The number of results to show in a single call to+-- @GetDedicatedIpsRequest@. If the number of results is larger than the+-- number you specified in this parameter, then the response includes a+-- @NextToken@ element, which you can use to obtain additional results.+--+-- 'poolName', 'getDedicatedIps_poolName' - The name of the IP pool that the dedicated IP address is associated+-- with.+newGetDedicatedIps ::+ GetDedicatedIps+newGetDedicatedIps =+ GetDedicatedIps'+ { nextToken = Prelude.Nothing,+ pageSize = Prelude.Nothing,+ poolName = Prelude.Nothing+ }++-- | A token returned from a previous call to @GetDedicatedIps@ to indicate+-- the position of the dedicated IP pool in the list of IP pools.+getDedicatedIps_nextToken :: Lens.Lens' GetDedicatedIps (Prelude.Maybe Prelude.Text)+getDedicatedIps_nextToken = Lens.lens (\GetDedicatedIps' {nextToken} -> nextToken) (\s@GetDedicatedIps' {} a -> s {nextToken = a} :: GetDedicatedIps)++-- | The number of results to show in a single call to+-- @GetDedicatedIpsRequest@. If the number of results is larger than the+-- number you specified in this parameter, then the response includes a+-- @NextToken@ element, which you can use to obtain additional results.+getDedicatedIps_pageSize :: Lens.Lens' GetDedicatedIps (Prelude.Maybe Prelude.Int)+getDedicatedIps_pageSize = Lens.lens (\GetDedicatedIps' {pageSize} -> pageSize) (\s@GetDedicatedIps' {} a -> s {pageSize = a} :: GetDedicatedIps)++-- | The name of the IP pool that the dedicated IP address is associated+-- with.+getDedicatedIps_poolName :: Lens.Lens' GetDedicatedIps (Prelude.Maybe Prelude.Text)+getDedicatedIps_poolName = Lens.lens (\GetDedicatedIps' {poolName} -> poolName) (\s@GetDedicatedIps' {} a -> s {poolName = a} :: GetDedicatedIps)++instance Core.AWSRequest GetDedicatedIps where+ type+ AWSResponse GetDedicatedIps =+ GetDedicatedIpsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetDedicatedIpsResponse'+ Prelude.<$> (x Data..?> "DedicatedIps" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetDedicatedIps where+ hashWithSalt _salt GetDedicatedIps' {..} =+ _salt+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` pageSize+ `Prelude.hashWithSalt` poolName++instance Prelude.NFData GetDedicatedIps where+ rnf GetDedicatedIps' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf pageSize+ `Prelude.seq` Prelude.rnf poolName++instance Data.ToHeaders GetDedicatedIps where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetDedicatedIps where+ toPath = Prelude.const "/v2/email/dedicated-ips"++instance Data.ToQuery GetDedicatedIps where+ toQuery GetDedicatedIps' {..} =+ Prelude.mconcat+ [ "NextToken" Data.=: nextToken,+ "PageSize" Data.=: pageSize,+ "PoolName" Data.=: poolName+ ]++-- | Information about the dedicated IP addresses that are associated with+-- your Amazon Web Services account.+--+-- /See:/ 'newGetDedicatedIpsResponse' smart constructor.+data GetDedicatedIpsResponse = GetDedicatedIpsResponse'+ { -- | A list of dedicated IP addresses that are associated with your Amazon+ -- Web Services account.+ dedicatedIps :: Prelude.Maybe [DedicatedIp],+ -- | A token that indicates that there are additional dedicated IP addresses+ -- to list. To view additional addresses, issue another request to+ -- @GetDedicatedIps@, passing this token in the @NextToken@ parameter.+ 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 'GetDedicatedIpsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dedicatedIps', 'getDedicatedIpsResponse_dedicatedIps' - A list of dedicated IP addresses that are associated with your Amazon+-- Web Services account.+--+-- 'nextToken', 'getDedicatedIpsResponse_nextToken' - A token that indicates that there are additional dedicated IP addresses+-- to list. To view additional addresses, issue another request to+-- @GetDedicatedIps@, passing this token in the @NextToken@ parameter.+--+-- 'httpStatus', 'getDedicatedIpsResponse_httpStatus' - The response's http status code.+newGetDedicatedIpsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetDedicatedIpsResponse+newGetDedicatedIpsResponse pHttpStatus_ =+ GetDedicatedIpsResponse'+ { dedicatedIps =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list of dedicated IP addresses that are associated with your Amazon+-- Web Services account.+getDedicatedIpsResponse_dedicatedIps :: Lens.Lens' GetDedicatedIpsResponse (Prelude.Maybe [DedicatedIp])+getDedicatedIpsResponse_dedicatedIps = Lens.lens (\GetDedicatedIpsResponse' {dedicatedIps} -> dedicatedIps) (\s@GetDedicatedIpsResponse' {} a -> s {dedicatedIps = a} :: GetDedicatedIpsResponse) Prelude.. Lens.mapping Lens.coerced++-- | A token that indicates that there are additional dedicated IP addresses+-- to list. To view additional addresses, issue another request to+-- @GetDedicatedIps@, passing this token in the @NextToken@ parameter.+getDedicatedIpsResponse_nextToken :: Lens.Lens' GetDedicatedIpsResponse (Prelude.Maybe Prelude.Text)+getDedicatedIpsResponse_nextToken = Lens.lens (\GetDedicatedIpsResponse' {nextToken} -> nextToken) (\s@GetDedicatedIpsResponse' {} a -> s {nextToken = a} :: GetDedicatedIpsResponse)++-- | The response's http status code.+getDedicatedIpsResponse_httpStatus :: Lens.Lens' GetDedicatedIpsResponse Prelude.Int+getDedicatedIpsResponse_httpStatus = Lens.lens (\GetDedicatedIpsResponse' {httpStatus} -> httpStatus) (\s@GetDedicatedIpsResponse' {} a -> s {httpStatus = a} :: GetDedicatedIpsResponse)++instance Prelude.NFData GetDedicatedIpsResponse where+ rnf GetDedicatedIpsResponse' {..} =+ Prelude.rnf dedicatedIps+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/GetDeliverabilityDashboardOptions.hs view
@@ -0,0 +1,282 @@+{-# 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.SESV2.GetDeliverabilityDashboardOptions+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieve information about the status of the Deliverability dashboard+-- for your account. When the Deliverability dashboard is enabled, you gain+-- access to reputation, deliverability, and other metrics for the domains+-- that you use to send email. You also gain the ability to perform+-- predictive inbox placement tests.+--+-- When you use the Deliverability dashboard, you pay a monthly+-- subscription charge, in addition to any other fees that you accrue by+-- using Amazon SES and other Amazon Web Services services. For more+-- information about the features and cost of a Deliverability dashboard+-- subscription, see+-- <http://aws.amazon.com/ses/pricing/ Amazon SES Pricing>.+module Amazonka.SESV2.GetDeliverabilityDashboardOptions+ ( -- * Creating a Request+ GetDeliverabilityDashboardOptions (..),+ newGetDeliverabilityDashboardOptions,++ -- * Destructuring the Response+ GetDeliverabilityDashboardOptionsResponse (..),+ newGetDeliverabilityDashboardOptionsResponse,++ -- * Response Lenses+ getDeliverabilityDashboardOptionsResponse_accountStatus,+ getDeliverabilityDashboardOptionsResponse_activeSubscribedDomains,+ getDeliverabilityDashboardOptionsResponse_pendingExpirationSubscribedDomains,+ getDeliverabilityDashboardOptionsResponse_subscriptionExpiryDate,+ getDeliverabilityDashboardOptionsResponse_httpStatus,+ getDeliverabilityDashboardOptionsResponse_dashboardEnabled,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | Retrieve information about the status of the Deliverability dashboard+-- for your Amazon Web Services account. When the Deliverability dashboard+-- is enabled, you gain access to reputation, deliverability, and other+-- metrics for your domains. You also gain the ability to perform+-- predictive inbox placement tests.+--+-- When you use the Deliverability dashboard, you pay a monthly+-- subscription charge, in addition to any other fees that you accrue by+-- using Amazon SES and other Amazon Web Services services. For more+-- information about the features and cost of a Deliverability dashboard+-- subscription, see+-- <http://aws.amazon.com/pinpoint/pricing/ Amazon Pinpoint Pricing>.+--+-- /See:/ 'newGetDeliverabilityDashboardOptions' smart constructor.+data GetDeliverabilityDashboardOptions = GetDeliverabilityDashboardOptions'+ {+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDeliverabilityDashboardOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newGetDeliverabilityDashboardOptions ::+ GetDeliverabilityDashboardOptions+newGetDeliverabilityDashboardOptions =+ GetDeliverabilityDashboardOptions'++instance+ Core.AWSRequest+ GetDeliverabilityDashboardOptions+ where+ type+ AWSResponse GetDeliverabilityDashboardOptions =+ GetDeliverabilityDashboardOptionsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetDeliverabilityDashboardOptionsResponse'+ Prelude.<$> (x Data..?> "AccountStatus")+ Prelude.<*> ( x+ Data..?> "ActiveSubscribedDomains"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> ( x+ Data..?> "PendingExpirationSubscribedDomains"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "SubscriptionExpiryDate")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "DashboardEnabled")+ )++instance+ Prelude.Hashable+ GetDeliverabilityDashboardOptions+ where+ hashWithSalt _salt _ =+ _salt `Prelude.hashWithSalt` ()++instance+ Prelude.NFData+ GetDeliverabilityDashboardOptions+ where+ rnf _ = ()++instance+ Data.ToHeaders+ GetDeliverabilityDashboardOptions+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToPath+ GetDeliverabilityDashboardOptions+ where+ toPath =+ Prelude.const "/v2/email/deliverability-dashboard"++instance+ Data.ToQuery+ GetDeliverabilityDashboardOptions+ where+ toQuery = Prelude.const Prelude.mempty++-- | An object that shows the status of the Deliverability dashboard.+--+-- /See:/ 'newGetDeliverabilityDashboardOptionsResponse' smart constructor.+data GetDeliverabilityDashboardOptionsResponse = GetDeliverabilityDashboardOptionsResponse'+ { -- | The current status of your Deliverability dashboard subscription. If+ -- this value is @PENDING_EXPIRATION@, your subscription is scheduled to+ -- expire at the end of the current calendar month.+ accountStatus :: Prelude.Maybe DeliverabilityDashboardAccountStatus,+ -- | An array of objects, one for each verified domain that you use to send+ -- email and currently has an active Deliverability dashboard subscription+ -- that isn’t scheduled to expire at the end of the current calendar month.+ activeSubscribedDomains :: Prelude.Maybe [DomainDeliverabilityTrackingOption],+ -- | An array of objects, one for each verified domain that you use to send+ -- email and currently has an active Deliverability dashboard subscription+ -- that\'s scheduled to expire at the end of the current calendar month.+ pendingExpirationSubscribedDomains :: Prelude.Maybe [DomainDeliverabilityTrackingOption],+ -- | The date when your current subscription to the Deliverability dashboard+ -- is scheduled to expire, if your subscription is scheduled to expire at+ -- the end of the current calendar month. This value is null if you have an+ -- active subscription that isn’t due to expire at the end of the month.+ subscriptionExpiryDate :: Prelude.Maybe Data.POSIX,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | Specifies whether the Deliverability dashboard is enabled. If this value+ -- is @true@, the dashboard is enabled.+ dashboardEnabled :: Prelude.Bool+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDeliverabilityDashboardOptionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountStatus', 'getDeliverabilityDashboardOptionsResponse_accountStatus' - The current status of your Deliverability dashboard subscription. If+-- this value is @PENDING_EXPIRATION@, your subscription is scheduled to+-- expire at the end of the current calendar month.+--+-- 'activeSubscribedDomains', 'getDeliverabilityDashboardOptionsResponse_activeSubscribedDomains' - An array of objects, one for each verified domain that you use to send+-- email and currently has an active Deliverability dashboard subscription+-- that isn’t scheduled to expire at the end of the current calendar month.+--+-- 'pendingExpirationSubscribedDomains', 'getDeliverabilityDashboardOptionsResponse_pendingExpirationSubscribedDomains' - An array of objects, one for each verified domain that you use to send+-- email and currently has an active Deliverability dashboard subscription+-- that\'s scheduled to expire at the end of the current calendar month.+--+-- 'subscriptionExpiryDate', 'getDeliverabilityDashboardOptionsResponse_subscriptionExpiryDate' - The date when your current subscription to the Deliverability dashboard+-- is scheduled to expire, if your subscription is scheduled to expire at+-- the end of the current calendar month. This value is null if you have an+-- active subscription that isn’t due to expire at the end of the month.+--+-- 'httpStatus', 'getDeliverabilityDashboardOptionsResponse_httpStatus' - The response's http status code.+--+-- 'dashboardEnabled', 'getDeliverabilityDashboardOptionsResponse_dashboardEnabled' - Specifies whether the Deliverability dashboard is enabled. If this value+-- is @true@, the dashboard is enabled.+newGetDeliverabilityDashboardOptionsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'dashboardEnabled'+ Prelude.Bool ->+ GetDeliverabilityDashboardOptionsResponse+newGetDeliverabilityDashboardOptionsResponse+ pHttpStatus_+ pDashboardEnabled_ =+ GetDeliverabilityDashboardOptionsResponse'+ { accountStatus =+ Prelude.Nothing,+ activeSubscribedDomains =+ Prelude.Nothing,+ pendingExpirationSubscribedDomains =+ Prelude.Nothing,+ subscriptionExpiryDate =+ Prelude.Nothing,+ httpStatus = pHttpStatus_,+ dashboardEnabled =+ pDashboardEnabled_+ }++-- | The current status of your Deliverability dashboard subscription. If+-- this value is @PENDING_EXPIRATION@, your subscription is scheduled to+-- expire at the end of the current calendar month.+getDeliverabilityDashboardOptionsResponse_accountStatus :: Lens.Lens' GetDeliverabilityDashboardOptionsResponse (Prelude.Maybe DeliverabilityDashboardAccountStatus)+getDeliverabilityDashboardOptionsResponse_accountStatus = Lens.lens (\GetDeliverabilityDashboardOptionsResponse' {accountStatus} -> accountStatus) (\s@GetDeliverabilityDashboardOptionsResponse' {} a -> s {accountStatus = a} :: GetDeliverabilityDashboardOptionsResponse)++-- | An array of objects, one for each verified domain that you use to send+-- email and currently has an active Deliverability dashboard subscription+-- that isn’t scheduled to expire at the end of the current calendar month.+getDeliverabilityDashboardOptionsResponse_activeSubscribedDomains :: Lens.Lens' GetDeliverabilityDashboardOptionsResponse (Prelude.Maybe [DomainDeliverabilityTrackingOption])+getDeliverabilityDashboardOptionsResponse_activeSubscribedDomains = Lens.lens (\GetDeliverabilityDashboardOptionsResponse' {activeSubscribedDomains} -> activeSubscribedDomains) (\s@GetDeliverabilityDashboardOptionsResponse' {} a -> s {activeSubscribedDomains = a} :: GetDeliverabilityDashboardOptionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | An array of objects, one for each verified domain that you use to send+-- email and currently has an active Deliverability dashboard subscription+-- that\'s scheduled to expire at the end of the current calendar month.+getDeliverabilityDashboardOptionsResponse_pendingExpirationSubscribedDomains :: Lens.Lens' GetDeliverabilityDashboardOptionsResponse (Prelude.Maybe [DomainDeliverabilityTrackingOption])+getDeliverabilityDashboardOptionsResponse_pendingExpirationSubscribedDomains = Lens.lens (\GetDeliverabilityDashboardOptionsResponse' {pendingExpirationSubscribedDomains} -> pendingExpirationSubscribedDomains) (\s@GetDeliverabilityDashboardOptionsResponse' {} a -> s {pendingExpirationSubscribedDomains = a} :: GetDeliverabilityDashboardOptionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The date when your current subscription to the Deliverability dashboard+-- is scheduled to expire, if your subscription is scheduled to expire at+-- the end of the current calendar month. This value is null if you have an+-- active subscription that isn’t due to expire at the end of the month.+getDeliverabilityDashboardOptionsResponse_subscriptionExpiryDate :: Lens.Lens' GetDeliverabilityDashboardOptionsResponse (Prelude.Maybe Prelude.UTCTime)+getDeliverabilityDashboardOptionsResponse_subscriptionExpiryDate = Lens.lens (\GetDeliverabilityDashboardOptionsResponse' {subscriptionExpiryDate} -> subscriptionExpiryDate) (\s@GetDeliverabilityDashboardOptionsResponse' {} a -> s {subscriptionExpiryDate = a} :: GetDeliverabilityDashboardOptionsResponse) Prelude.. Lens.mapping Data._Time++-- | The response's http status code.+getDeliverabilityDashboardOptionsResponse_httpStatus :: Lens.Lens' GetDeliverabilityDashboardOptionsResponse Prelude.Int+getDeliverabilityDashboardOptionsResponse_httpStatus = Lens.lens (\GetDeliverabilityDashboardOptionsResponse' {httpStatus} -> httpStatus) (\s@GetDeliverabilityDashboardOptionsResponse' {} a -> s {httpStatus = a} :: GetDeliverabilityDashboardOptionsResponse)++-- | Specifies whether the Deliverability dashboard is enabled. If this value+-- is @true@, the dashboard is enabled.+getDeliverabilityDashboardOptionsResponse_dashboardEnabled :: Lens.Lens' GetDeliverabilityDashboardOptionsResponse Prelude.Bool+getDeliverabilityDashboardOptionsResponse_dashboardEnabled = Lens.lens (\GetDeliverabilityDashboardOptionsResponse' {dashboardEnabled} -> dashboardEnabled) (\s@GetDeliverabilityDashboardOptionsResponse' {} a -> s {dashboardEnabled = a} :: GetDeliverabilityDashboardOptionsResponse)++instance+ Prelude.NFData+ GetDeliverabilityDashboardOptionsResponse+ where+ rnf GetDeliverabilityDashboardOptionsResponse' {..} =+ Prelude.rnf accountStatus+ `Prelude.seq` Prelude.rnf activeSubscribedDomains+ `Prelude.seq` Prelude.rnf pendingExpirationSubscribedDomains+ `Prelude.seq` Prelude.rnf subscriptionExpiryDate+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf dashboardEnabled
+ gen/Amazonka/SESV2/GetDeliverabilityTestReport.hs view
@@ -0,0 +1,246 @@+{-# 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.SESV2.GetDeliverabilityTestReport+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieve the results of a predictive inbox placement test.+module Amazonka.SESV2.GetDeliverabilityTestReport+ ( -- * Creating a Request+ GetDeliverabilityTestReport (..),+ newGetDeliverabilityTestReport,++ -- * Request Lenses+ getDeliverabilityTestReport_reportId,++ -- * Destructuring the Response+ GetDeliverabilityTestReportResponse (..),+ newGetDeliverabilityTestReportResponse,++ -- * Response Lenses+ getDeliverabilityTestReportResponse_message,+ getDeliverabilityTestReportResponse_tags,+ getDeliverabilityTestReportResponse_httpStatus,+ getDeliverabilityTestReportResponse_deliverabilityTestReport,+ getDeliverabilityTestReportResponse_overallPlacement,+ getDeliverabilityTestReportResponse_ispPlacements,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to retrieve the results of a predictive inbox placement test.+--+-- /See:/ 'newGetDeliverabilityTestReport' smart constructor.+data GetDeliverabilityTestReport = GetDeliverabilityTestReport'+ { -- | A unique string that identifies the predictive inbox placement test.+ reportId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDeliverabilityTestReport' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'reportId', 'getDeliverabilityTestReport_reportId' - A unique string that identifies the predictive inbox placement test.+newGetDeliverabilityTestReport ::+ -- | 'reportId'+ Prelude.Text ->+ GetDeliverabilityTestReport+newGetDeliverabilityTestReport pReportId_ =+ GetDeliverabilityTestReport' {reportId = pReportId_}++-- | A unique string that identifies the predictive inbox placement test.+getDeliverabilityTestReport_reportId :: Lens.Lens' GetDeliverabilityTestReport Prelude.Text+getDeliverabilityTestReport_reportId = Lens.lens (\GetDeliverabilityTestReport' {reportId} -> reportId) (\s@GetDeliverabilityTestReport' {} a -> s {reportId = a} :: GetDeliverabilityTestReport)++instance Core.AWSRequest GetDeliverabilityTestReport where+ type+ AWSResponse GetDeliverabilityTestReport =+ GetDeliverabilityTestReportResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetDeliverabilityTestReportResponse'+ Prelude.<$> (x Data..?> "Message")+ Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "DeliverabilityTestReport")+ Prelude.<*> (x Data..:> "OverallPlacement")+ Prelude.<*> (x Data..?> "IspPlacements" Core..!@ Prelude.mempty)+ )++instance Prelude.Hashable GetDeliverabilityTestReport where+ hashWithSalt _salt GetDeliverabilityTestReport' {..} =+ _salt `Prelude.hashWithSalt` reportId++instance Prelude.NFData GetDeliverabilityTestReport where+ rnf GetDeliverabilityTestReport' {..} =+ Prelude.rnf reportId++instance Data.ToHeaders GetDeliverabilityTestReport where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetDeliverabilityTestReport where+ toPath GetDeliverabilityTestReport' {..} =+ Prelude.mconcat+ [ "/v2/email/deliverability-dashboard/test-reports/",+ Data.toBS reportId+ ]++instance Data.ToQuery GetDeliverabilityTestReport where+ toQuery = Prelude.const Prelude.mempty++-- | The results of the predictive inbox placement test.+--+-- /See:/ 'newGetDeliverabilityTestReportResponse' smart constructor.+data GetDeliverabilityTestReportResponse = GetDeliverabilityTestReportResponse'+ { -- | An object that contains the message that you sent when you performed+ -- this predictive inbox placement test.+ message :: Prelude.Maybe Prelude.Text,+ -- | An array of objects that define the tags (keys and values) that are+ -- associated with the predictive inbox placement test.+ tags :: Prelude.Maybe [Tag],+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | An object that contains the results of the predictive inbox placement+ -- test.+ deliverabilityTestReport :: DeliverabilityTestReport,+ -- | An object that specifies how many test messages that were sent during+ -- the predictive inbox placement test were delivered to recipients\'+ -- inboxes, how many were sent to recipients\' spam folders, and how many+ -- weren\'t delivered.+ overallPlacement :: PlacementStatistics,+ -- | An object that describes how the test email was handled by several email+ -- providers, including Gmail, Hotmail, Yahoo, AOL, and others.+ ispPlacements :: [IspPlacement]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDeliverabilityTestReportResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getDeliverabilityTestReportResponse_message' - An object that contains the message that you sent when you performed+-- this predictive inbox placement test.+--+-- 'tags', 'getDeliverabilityTestReportResponse_tags' - An array of objects that define the tags (keys and values) that are+-- associated with the predictive inbox placement test.+--+-- 'httpStatus', 'getDeliverabilityTestReportResponse_httpStatus' - The response's http status code.+--+-- 'deliverabilityTestReport', 'getDeliverabilityTestReportResponse_deliverabilityTestReport' - An object that contains the results of the predictive inbox placement+-- test.+--+-- 'overallPlacement', 'getDeliverabilityTestReportResponse_overallPlacement' - An object that specifies how many test messages that were sent during+-- the predictive inbox placement test were delivered to recipients\'+-- inboxes, how many were sent to recipients\' spam folders, and how many+-- weren\'t delivered.+--+-- 'ispPlacements', 'getDeliverabilityTestReportResponse_ispPlacements' - An object that describes how the test email was handled by several email+-- providers, including Gmail, Hotmail, Yahoo, AOL, and others.+newGetDeliverabilityTestReportResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'deliverabilityTestReport'+ DeliverabilityTestReport ->+ -- | 'overallPlacement'+ PlacementStatistics ->+ GetDeliverabilityTestReportResponse+newGetDeliverabilityTestReportResponse+ pHttpStatus_+ pDeliverabilityTestReport_+ pOverallPlacement_ =+ GetDeliverabilityTestReportResponse'+ { message =+ Prelude.Nothing,+ tags = Prelude.Nothing,+ httpStatus = pHttpStatus_,+ deliverabilityTestReport =+ pDeliverabilityTestReport_,+ overallPlacement = pOverallPlacement_,+ ispPlacements = Prelude.mempty+ }++-- | An object that contains the message that you sent when you performed+-- this predictive inbox placement test.+getDeliverabilityTestReportResponse_message :: Lens.Lens' GetDeliverabilityTestReportResponse (Prelude.Maybe Prelude.Text)+getDeliverabilityTestReportResponse_message = Lens.lens (\GetDeliverabilityTestReportResponse' {message} -> message) (\s@GetDeliverabilityTestReportResponse' {} a -> s {message = a} :: GetDeliverabilityTestReportResponse)++-- | An array of objects that define the tags (keys and values) that are+-- associated with the predictive inbox placement test.+getDeliverabilityTestReportResponse_tags :: Lens.Lens' GetDeliverabilityTestReportResponse (Prelude.Maybe [Tag])+getDeliverabilityTestReportResponse_tags = Lens.lens (\GetDeliverabilityTestReportResponse' {tags} -> tags) (\s@GetDeliverabilityTestReportResponse' {} a -> s {tags = a} :: GetDeliverabilityTestReportResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getDeliverabilityTestReportResponse_httpStatus :: Lens.Lens' GetDeliverabilityTestReportResponse Prelude.Int+getDeliverabilityTestReportResponse_httpStatus = Lens.lens (\GetDeliverabilityTestReportResponse' {httpStatus} -> httpStatus) (\s@GetDeliverabilityTestReportResponse' {} a -> s {httpStatus = a} :: GetDeliverabilityTestReportResponse)++-- | An object that contains the results of the predictive inbox placement+-- test.+getDeliverabilityTestReportResponse_deliverabilityTestReport :: Lens.Lens' GetDeliverabilityTestReportResponse DeliverabilityTestReport+getDeliverabilityTestReportResponse_deliverabilityTestReport = Lens.lens (\GetDeliverabilityTestReportResponse' {deliverabilityTestReport} -> deliverabilityTestReport) (\s@GetDeliverabilityTestReportResponse' {} a -> s {deliverabilityTestReport = a} :: GetDeliverabilityTestReportResponse)++-- | An object that specifies how many test messages that were sent during+-- the predictive inbox placement test were delivered to recipients\'+-- inboxes, how many were sent to recipients\' spam folders, and how many+-- weren\'t delivered.+getDeliverabilityTestReportResponse_overallPlacement :: Lens.Lens' GetDeliverabilityTestReportResponse PlacementStatistics+getDeliverabilityTestReportResponse_overallPlacement = Lens.lens (\GetDeliverabilityTestReportResponse' {overallPlacement} -> overallPlacement) (\s@GetDeliverabilityTestReportResponse' {} a -> s {overallPlacement = a} :: GetDeliverabilityTestReportResponse)++-- | An object that describes how the test email was handled by several email+-- providers, including Gmail, Hotmail, Yahoo, AOL, and others.+getDeliverabilityTestReportResponse_ispPlacements :: Lens.Lens' GetDeliverabilityTestReportResponse [IspPlacement]+getDeliverabilityTestReportResponse_ispPlacements = Lens.lens (\GetDeliverabilityTestReportResponse' {ispPlacements} -> ispPlacements) (\s@GetDeliverabilityTestReportResponse' {} a -> s {ispPlacements = a} :: GetDeliverabilityTestReportResponse) Prelude.. Lens.coerced++instance+ Prelude.NFData+ GetDeliverabilityTestReportResponse+ where+ rnf GetDeliverabilityTestReportResponse' {..} =+ Prelude.rnf message+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf deliverabilityTestReport+ `Prelude.seq` Prelude.rnf overallPlacement+ `Prelude.seq` Prelude.rnf ispPlacements
+ gen/Amazonka/SESV2/GetDomainDeliverabilityCampaign.hs view
@@ -0,0 +1,202 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.GetDomainDeliverabilityCampaign+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieve all the deliverability data for a specific campaign. This data+-- is available for a campaign only if the campaign sent email by using a+-- domain that the Deliverability dashboard is enabled for.+module Amazonka.SESV2.GetDomainDeliverabilityCampaign+ ( -- * Creating a Request+ GetDomainDeliverabilityCampaign (..),+ newGetDomainDeliverabilityCampaign,++ -- * Request Lenses+ getDomainDeliverabilityCampaign_campaignId,++ -- * Destructuring the Response+ GetDomainDeliverabilityCampaignResponse (..),+ newGetDomainDeliverabilityCampaignResponse,++ -- * Response Lenses+ getDomainDeliverabilityCampaignResponse_httpStatus,+ getDomainDeliverabilityCampaignResponse_domainDeliverabilityCampaign,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | Retrieve all the deliverability data for a specific campaign. This data+-- is available for a campaign only if the campaign sent email by using a+-- domain that the Deliverability dashboard is enabled for+-- (@PutDeliverabilityDashboardOption@ operation).+--+-- /See:/ 'newGetDomainDeliverabilityCampaign' smart constructor.+data GetDomainDeliverabilityCampaign = GetDomainDeliverabilityCampaign'+ { -- | The unique identifier for the campaign. The Deliverability dashboard+ -- automatically generates and assigns this identifier to a campaign.+ campaignId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDomainDeliverabilityCampaign' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'campaignId', 'getDomainDeliverabilityCampaign_campaignId' - The unique identifier for the campaign. The Deliverability dashboard+-- automatically generates and assigns this identifier to a campaign.+newGetDomainDeliverabilityCampaign ::+ -- | 'campaignId'+ Prelude.Text ->+ GetDomainDeliverabilityCampaign+newGetDomainDeliverabilityCampaign pCampaignId_ =+ GetDomainDeliverabilityCampaign'+ { campaignId =+ pCampaignId_+ }++-- | The unique identifier for the campaign. The Deliverability dashboard+-- automatically generates and assigns this identifier to a campaign.+getDomainDeliverabilityCampaign_campaignId :: Lens.Lens' GetDomainDeliverabilityCampaign Prelude.Text+getDomainDeliverabilityCampaign_campaignId = Lens.lens (\GetDomainDeliverabilityCampaign' {campaignId} -> campaignId) (\s@GetDomainDeliverabilityCampaign' {} a -> s {campaignId = a} :: GetDomainDeliverabilityCampaign)++instance+ Core.AWSRequest+ GetDomainDeliverabilityCampaign+ where+ type+ AWSResponse GetDomainDeliverabilityCampaign =+ GetDomainDeliverabilityCampaignResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetDomainDeliverabilityCampaignResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "DomainDeliverabilityCampaign")+ )++instance+ Prelude.Hashable+ GetDomainDeliverabilityCampaign+ where+ hashWithSalt+ _salt+ GetDomainDeliverabilityCampaign' {..} =+ _salt `Prelude.hashWithSalt` campaignId++instance+ Prelude.NFData+ GetDomainDeliverabilityCampaign+ where+ rnf GetDomainDeliverabilityCampaign' {..} =+ Prelude.rnf campaignId++instance+ Data.ToHeaders+ GetDomainDeliverabilityCampaign+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetDomainDeliverabilityCampaign where+ toPath GetDomainDeliverabilityCampaign' {..} =+ Prelude.mconcat+ [ "/v2/email/deliverability-dashboard/campaigns/",+ Data.toBS campaignId+ ]++instance Data.ToQuery GetDomainDeliverabilityCampaign where+ toQuery = Prelude.const Prelude.mempty++-- | An object that contains all the deliverability data for a specific+-- campaign. This data is available for a campaign only if the campaign+-- sent email by using a domain that the Deliverability dashboard is+-- enabled for.+--+-- /See:/ 'newGetDomainDeliverabilityCampaignResponse' smart constructor.+data GetDomainDeliverabilityCampaignResponse = GetDomainDeliverabilityCampaignResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | An object that contains the deliverability data for the campaign.+ domainDeliverabilityCampaign :: DomainDeliverabilityCampaign+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDomainDeliverabilityCampaignResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getDomainDeliverabilityCampaignResponse_httpStatus' - The response's http status code.+--+-- 'domainDeliverabilityCampaign', 'getDomainDeliverabilityCampaignResponse_domainDeliverabilityCampaign' - An object that contains the deliverability data for the campaign.+newGetDomainDeliverabilityCampaignResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'domainDeliverabilityCampaign'+ DomainDeliverabilityCampaign ->+ GetDomainDeliverabilityCampaignResponse+newGetDomainDeliverabilityCampaignResponse+ pHttpStatus_+ pDomainDeliverabilityCampaign_ =+ GetDomainDeliverabilityCampaignResponse'+ { httpStatus =+ pHttpStatus_,+ domainDeliverabilityCampaign =+ pDomainDeliverabilityCampaign_+ }++-- | The response's http status code.+getDomainDeliverabilityCampaignResponse_httpStatus :: Lens.Lens' GetDomainDeliverabilityCampaignResponse Prelude.Int+getDomainDeliverabilityCampaignResponse_httpStatus = Lens.lens (\GetDomainDeliverabilityCampaignResponse' {httpStatus} -> httpStatus) (\s@GetDomainDeliverabilityCampaignResponse' {} a -> s {httpStatus = a} :: GetDomainDeliverabilityCampaignResponse)++-- | An object that contains the deliverability data for the campaign.+getDomainDeliverabilityCampaignResponse_domainDeliverabilityCampaign :: Lens.Lens' GetDomainDeliverabilityCampaignResponse DomainDeliverabilityCampaign+getDomainDeliverabilityCampaignResponse_domainDeliverabilityCampaign = Lens.lens (\GetDomainDeliverabilityCampaignResponse' {domainDeliverabilityCampaign} -> domainDeliverabilityCampaign) (\s@GetDomainDeliverabilityCampaignResponse' {} a -> s {domainDeliverabilityCampaign = a} :: GetDomainDeliverabilityCampaignResponse)++instance+ Prelude.NFData+ GetDomainDeliverabilityCampaignResponse+ where+ rnf GetDomainDeliverabilityCampaignResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf domainDeliverabilityCampaign
+ gen/Amazonka/SESV2/GetDomainStatisticsReport.hs view
@@ -0,0 +1,246 @@+{-# 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.SESV2.GetDomainStatisticsReport+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieve inbox placement and engagement rates for the domains that you+-- use to send email.+module Amazonka.SESV2.GetDomainStatisticsReport+ ( -- * Creating a Request+ GetDomainStatisticsReport (..),+ newGetDomainStatisticsReport,++ -- * Request Lenses+ getDomainStatisticsReport_domain,+ getDomainStatisticsReport_startDate,+ getDomainStatisticsReport_endDate,++ -- * Destructuring the Response+ GetDomainStatisticsReportResponse (..),+ newGetDomainStatisticsReportResponse,++ -- * Response Lenses+ getDomainStatisticsReportResponse_httpStatus,+ getDomainStatisticsReportResponse_overallVolume,+ getDomainStatisticsReportResponse_dailyVolumes,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to obtain deliverability metrics for a domain.+--+-- /See:/ 'newGetDomainStatisticsReport' smart constructor.+data GetDomainStatisticsReport = GetDomainStatisticsReport'+ { -- | The domain that you want to obtain deliverability metrics for.+ domain :: Prelude.Text,+ -- | The first day (in Unix time) that you want to obtain domain+ -- deliverability metrics for.+ startDate :: Data.POSIX,+ -- | The last day (in Unix time) that you want to obtain domain+ -- deliverability metrics for. The @EndDate@ that you specify has to be+ -- less than or equal to 30 days after the @StartDate@.+ endDate :: Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDomainStatisticsReport' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'domain', 'getDomainStatisticsReport_domain' - The domain that you want to obtain deliverability metrics for.+--+-- 'startDate', 'getDomainStatisticsReport_startDate' - The first day (in Unix time) that you want to obtain domain+-- deliverability metrics for.+--+-- 'endDate', 'getDomainStatisticsReport_endDate' - The last day (in Unix time) that you want to obtain domain+-- deliverability metrics for. The @EndDate@ that you specify has to be+-- less than or equal to 30 days after the @StartDate@.+newGetDomainStatisticsReport ::+ -- | 'domain'+ Prelude.Text ->+ -- | 'startDate'+ Prelude.UTCTime ->+ -- | 'endDate'+ Prelude.UTCTime ->+ GetDomainStatisticsReport+newGetDomainStatisticsReport+ pDomain_+ pStartDate_+ pEndDate_ =+ GetDomainStatisticsReport'+ { domain = pDomain_,+ startDate = Data._Time Lens.# pStartDate_,+ endDate = Data._Time Lens.# pEndDate_+ }++-- | The domain that you want to obtain deliverability metrics for.+getDomainStatisticsReport_domain :: Lens.Lens' GetDomainStatisticsReport Prelude.Text+getDomainStatisticsReport_domain = Lens.lens (\GetDomainStatisticsReport' {domain} -> domain) (\s@GetDomainStatisticsReport' {} a -> s {domain = a} :: GetDomainStatisticsReport)++-- | The first day (in Unix time) that you want to obtain domain+-- deliverability metrics for.+getDomainStatisticsReport_startDate :: Lens.Lens' GetDomainStatisticsReport Prelude.UTCTime+getDomainStatisticsReport_startDate = Lens.lens (\GetDomainStatisticsReport' {startDate} -> startDate) (\s@GetDomainStatisticsReport' {} a -> s {startDate = a} :: GetDomainStatisticsReport) Prelude.. Data._Time++-- | The last day (in Unix time) that you want to obtain domain+-- deliverability metrics for. The @EndDate@ that you specify has to be+-- less than or equal to 30 days after the @StartDate@.+getDomainStatisticsReport_endDate :: Lens.Lens' GetDomainStatisticsReport Prelude.UTCTime+getDomainStatisticsReport_endDate = Lens.lens (\GetDomainStatisticsReport' {endDate} -> endDate) (\s@GetDomainStatisticsReport' {} a -> s {endDate = a} :: GetDomainStatisticsReport) Prelude.. Data._Time++instance Core.AWSRequest GetDomainStatisticsReport where+ type+ AWSResponse GetDomainStatisticsReport =+ GetDomainStatisticsReportResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetDomainStatisticsReportResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "OverallVolume")+ Prelude.<*> (x Data..?> "DailyVolumes" Core..!@ Prelude.mempty)+ )++instance Prelude.Hashable GetDomainStatisticsReport where+ hashWithSalt _salt GetDomainStatisticsReport' {..} =+ _salt+ `Prelude.hashWithSalt` domain+ `Prelude.hashWithSalt` startDate+ `Prelude.hashWithSalt` endDate++instance Prelude.NFData GetDomainStatisticsReport where+ rnf GetDomainStatisticsReport' {..} =+ Prelude.rnf domain+ `Prelude.seq` Prelude.rnf startDate+ `Prelude.seq` Prelude.rnf endDate++instance Data.ToHeaders GetDomainStatisticsReport where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetDomainStatisticsReport where+ toPath GetDomainStatisticsReport' {..} =+ Prelude.mconcat+ [ "/v2/email/deliverability-dashboard/statistics-report/",+ Data.toBS domain+ ]++instance Data.ToQuery GetDomainStatisticsReport where+ toQuery GetDomainStatisticsReport' {..} =+ Prelude.mconcat+ [ "StartDate" Data.=: startDate,+ "EndDate" Data.=: endDate+ ]++-- | An object that includes statistics that are related to the domain that+-- you specified.+--+-- /See:/ 'newGetDomainStatisticsReportResponse' smart constructor.+data GetDomainStatisticsReportResponse = GetDomainStatisticsReportResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | An object that contains deliverability metrics for the domain that you+ -- specified. The data in this object is a summary of all of the data that+ -- was collected from the @StartDate@ to the @EndDate@.+ overallVolume :: OverallVolume,+ -- | An object that contains deliverability metrics for the domain that you+ -- specified. This object contains data for each day, starting on the+ -- @StartDate@ and ending on the @EndDate@.+ dailyVolumes :: [DailyVolume]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDomainStatisticsReportResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getDomainStatisticsReportResponse_httpStatus' - The response's http status code.+--+-- 'overallVolume', 'getDomainStatisticsReportResponse_overallVolume' - An object that contains deliverability metrics for the domain that you+-- specified. The data in this object is a summary of all of the data that+-- was collected from the @StartDate@ to the @EndDate@.+--+-- 'dailyVolumes', 'getDomainStatisticsReportResponse_dailyVolumes' - An object that contains deliverability metrics for the domain that you+-- specified. This object contains data for each day, starting on the+-- @StartDate@ and ending on the @EndDate@.+newGetDomainStatisticsReportResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'overallVolume'+ OverallVolume ->+ GetDomainStatisticsReportResponse+newGetDomainStatisticsReportResponse+ pHttpStatus_+ pOverallVolume_ =+ GetDomainStatisticsReportResponse'+ { httpStatus =+ pHttpStatus_,+ overallVolume = pOverallVolume_,+ dailyVolumes = Prelude.mempty+ }++-- | The response's http status code.+getDomainStatisticsReportResponse_httpStatus :: Lens.Lens' GetDomainStatisticsReportResponse Prelude.Int+getDomainStatisticsReportResponse_httpStatus = Lens.lens (\GetDomainStatisticsReportResponse' {httpStatus} -> httpStatus) (\s@GetDomainStatisticsReportResponse' {} a -> s {httpStatus = a} :: GetDomainStatisticsReportResponse)++-- | An object that contains deliverability metrics for the domain that you+-- specified. The data in this object is a summary of all of the data that+-- was collected from the @StartDate@ to the @EndDate@.+getDomainStatisticsReportResponse_overallVolume :: Lens.Lens' GetDomainStatisticsReportResponse OverallVolume+getDomainStatisticsReportResponse_overallVolume = Lens.lens (\GetDomainStatisticsReportResponse' {overallVolume} -> overallVolume) (\s@GetDomainStatisticsReportResponse' {} a -> s {overallVolume = a} :: GetDomainStatisticsReportResponse)++-- | An object that contains deliverability metrics for the domain that you+-- specified. This object contains data for each day, starting on the+-- @StartDate@ and ending on the @EndDate@.+getDomainStatisticsReportResponse_dailyVolumes :: Lens.Lens' GetDomainStatisticsReportResponse [DailyVolume]+getDomainStatisticsReportResponse_dailyVolumes = Lens.lens (\GetDomainStatisticsReportResponse' {dailyVolumes} -> dailyVolumes) (\s@GetDomainStatisticsReportResponse' {} a -> s {dailyVolumes = a} :: GetDomainStatisticsReportResponse) Prelude.. Lens.coerced++instance+ Prelude.NFData+ GetDomainStatisticsReportResponse+ where+ rnf GetDomainStatisticsReportResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf overallVolume+ `Prelude.seq` Prelude.rnf dailyVolumes
+ gen/Amazonka/SESV2/GetEmailIdentity.hs view
@@ -0,0 +1,354 @@+{-# 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.SESV2.GetEmailIdentity+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Provides information about a specific identity, including the+-- identity\'s verification status, sending authorization policies, its+-- DKIM authentication status, and its custom Mail-From settings.+module Amazonka.SESV2.GetEmailIdentity+ ( -- * Creating a Request+ GetEmailIdentity (..),+ newGetEmailIdentity,++ -- * Request Lenses+ getEmailIdentity_emailIdentity,++ -- * Destructuring the Response+ GetEmailIdentityResponse (..),+ newGetEmailIdentityResponse,++ -- * Response Lenses+ getEmailIdentityResponse_configurationSetName,+ getEmailIdentityResponse_dkimAttributes,+ getEmailIdentityResponse_feedbackForwardingStatus,+ getEmailIdentityResponse_identityType,+ getEmailIdentityResponse_mailFromAttributes,+ getEmailIdentityResponse_policies,+ getEmailIdentityResponse_tags,+ getEmailIdentityResponse_verificationStatus,+ getEmailIdentityResponse_verifiedForSendingStatus,+ getEmailIdentityResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to return details about an email identity.+--+-- /See:/ 'newGetEmailIdentity' smart constructor.+data GetEmailIdentity = GetEmailIdentity'+ { -- | The email identity.+ emailIdentity :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetEmailIdentity' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'emailIdentity', 'getEmailIdentity_emailIdentity' - The email identity.+newGetEmailIdentity ::+ -- | 'emailIdentity'+ Prelude.Text ->+ GetEmailIdentity+newGetEmailIdentity pEmailIdentity_ =+ GetEmailIdentity' {emailIdentity = pEmailIdentity_}++-- | The email identity.+getEmailIdentity_emailIdentity :: Lens.Lens' GetEmailIdentity Prelude.Text+getEmailIdentity_emailIdentity = Lens.lens (\GetEmailIdentity' {emailIdentity} -> emailIdentity) (\s@GetEmailIdentity' {} a -> s {emailIdentity = a} :: GetEmailIdentity)++instance Core.AWSRequest GetEmailIdentity where+ type+ AWSResponse GetEmailIdentity =+ GetEmailIdentityResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetEmailIdentityResponse'+ Prelude.<$> (x Data..?> "ConfigurationSetName")+ Prelude.<*> (x Data..?> "DkimAttributes")+ Prelude.<*> (x Data..?> "FeedbackForwardingStatus")+ Prelude.<*> (x Data..?> "IdentityType")+ Prelude.<*> (x Data..?> "MailFromAttributes")+ Prelude.<*> (x Data..?> "Policies" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "VerificationStatus")+ Prelude.<*> (x Data..?> "VerifiedForSendingStatus")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetEmailIdentity where+ hashWithSalt _salt GetEmailIdentity' {..} =+ _salt `Prelude.hashWithSalt` emailIdentity++instance Prelude.NFData GetEmailIdentity where+ rnf GetEmailIdentity' {..} = Prelude.rnf emailIdentity++instance Data.ToHeaders GetEmailIdentity where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetEmailIdentity where+ toPath GetEmailIdentity' {..} =+ Prelude.mconcat+ ["/v2/email/identities/", Data.toBS emailIdentity]++instance Data.ToQuery GetEmailIdentity where+ toQuery = Prelude.const Prelude.mempty++-- | Details about an email identity.+--+-- /See:/ 'newGetEmailIdentityResponse' smart constructor.+data GetEmailIdentityResponse = GetEmailIdentityResponse'+ { -- | The configuration set used by default when sending from this identity.+ configurationSetName :: Prelude.Maybe Prelude.Text,+ -- | An object that contains information about the DKIM attributes for the+ -- identity.+ dkimAttributes :: Prelude.Maybe DkimAttributes,+ -- | The feedback forwarding configuration for the identity.+ --+ -- If the value is @true@, you receive email notifications when bounce or+ -- complaint events occur. These notifications are sent to the address that+ -- you specified in the @Return-Path@ header of the original email.+ --+ -- You\'re required to have a method of tracking bounces and complaints. If+ -- you haven\'t set up another mechanism for receiving bounce or complaint+ -- notifications (for example, by setting up an event destination), you+ -- receive an email notification when these events occur (even if this+ -- setting is disabled).+ feedbackForwardingStatus :: Prelude.Maybe Prelude.Bool,+ -- | The email identity type. Note: the @MANAGED_DOMAIN@ identity type is not+ -- supported.+ identityType :: Prelude.Maybe IdentityType,+ -- | An object that contains information about the Mail-From attributes for+ -- the email identity.+ mailFromAttributes :: Prelude.Maybe MailFromAttributes,+ -- | A map of policy names to policies.+ policies :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+ -- | An array of objects that define the tags (keys and values) that are+ -- associated with the email identity.+ tags :: Prelude.Maybe [Tag],+ -- | The verification status of the identity. The status can be one of the+ -- following:+ --+ -- - @PENDING@ – The verification process was initiated, but Amazon SES+ -- hasn\'t yet been able to verify the identity.+ --+ -- - @SUCCESS@ – The verification process completed successfully.+ --+ -- - @FAILED@ – The verification process failed.+ --+ -- - @TEMPORARY_FAILURE@ – A temporary issue is preventing Amazon SES+ -- from determining the verification status of the identity.+ --+ -- - @NOT_STARTED@ – The verification process hasn\'t been initiated for+ -- the identity.+ verificationStatus :: Prelude.Maybe VerificationStatus,+ -- | Specifies whether or not the identity is verified. You can only send+ -- email from verified email addresses or domains. For more information+ -- about verifying identities, see the+ -- <https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-manage-verify.html Amazon Pinpoint User Guide>.+ verifiedForSendingStatus :: Prelude.Maybe Prelude.Bool,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetEmailIdentityResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configurationSetName', 'getEmailIdentityResponse_configurationSetName' - The configuration set used by default when sending from this identity.+--+-- 'dkimAttributes', 'getEmailIdentityResponse_dkimAttributes' - An object that contains information about the DKIM attributes for the+-- identity.+--+-- 'feedbackForwardingStatus', 'getEmailIdentityResponse_feedbackForwardingStatus' - The feedback forwarding configuration for the identity.+--+-- If the value is @true@, you receive email notifications when bounce or+-- complaint events occur. These notifications are sent to the address that+-- you specified in the @Return-Path@ header of the original email.+--+-- You\'re required to have a method of tracking bounces and complaints. If+-- you haven\'t set up another mechanism for receiving bounce or complaint+-- notifications (for example, by setting up an event destination), you+-- receive an email notification when these events occur (even if this+-- setting is disabled).+--+-- 'identityType', 'getEmailIdentityResponse_identityType' - The email identity type. Note: the @MANAGED_DOMAIN@ identity type is not+-- supported.+--+-- 'mailFromAttributes', 'getEmailIdentityResponse_mailFromAttributes' - An object that contains information about the Mail-From attributes for+-- the email identity.+--+-- 'policies', 'getEmailIdentityResponse_policies' - A map of policy names to policies.+--+-- 'tags', 'getEmailIdentityResponse_tags' - An array of objects that define the tags (keys and values) that are+-- associated with the email identity.+--+-- 'verificationStatus', 'getEmailIdentityResponse_verificationStatus' - The verification status of the identity. The status can be one of the+-- following:+--+-- - @PENDING@ – The verification process was initiated, but Amazon SES+-- hasn\'t yet been able to verify the identity.+--+-- - @SUCCESS@ – The verification process completed successfully.+--+-- - @FAILED@ – The verification process failed.+--+-- - @TEMPORARY_FAILURE@ – A temporary issue is preventing Amazon SES+-- from determining the verification status of the identity.+--+-- - @NOT_STARTED@ – The verification process hasn\'t been initiated for+-- the identity.+--+-- 'verifiedForSendingStatus', 'getEmailIdentityResponse_verifiedForSendingStatus' - Specifies whether or not the identity is verified. You can only send+-- email from verified email addresses or domains. For more information+-- about verifying identities, see the+-- <https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-manage-verify.html Amazon Pinpoint User Guide>.+--+-- 'httpStatus', 'getEmailIdentityResponse_httpStatus' - The response's http status code.+newGetEmailIdentityResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetEmailIdentityResponse+newGetEmailIdentityResponse pHttpStatus_ =+ GetEmailIdentityResponse'+ { configurationSetName =+ Prelude.Nothing,+ dkimAttributes = Prelude.Nothing,+ feedbackForwardingStatus = Prelude.Nothing,+ identityType = Prelude.Nothing,+ mailFromAttributes = Prelude.Nothing,+ policies = Prelude.Nothing,+ tags = Prelude.Nothing,+ verificationStatus = Prelude.Nothing,+ verifiedForSendingStatus = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The configuration set used by default when sending from this identity.+getEmailIdentityResponse_configurationSetName :: Lens.Lens' GetEmailIdentityResponse (Prelude.Maybe Prelude.Text)+getEmailIdentityResponse_configurationSetName = Lens.lens (\GetEmailIdentityResponse' {configurationSetName} -> configurationSetName) (\s@GetEmailIdentityResponse' {} a -> s {configurationSetName = a} :: GetEmailIdentityResponse)++-- | An object that contains information about the DKIM attributes for the+-- identity.+getEmailIdentityResponse_dkimAttributes :: Lens.Lens' GetEmailIdentityResponse (Prelude.Maybe DkimAttributes)+getEmailIdentityResponse_dkimAttributes = Lens.lens (\GetEmailIdentityResponse' {dkimAttributes} -> dkimAttributes) (\s@GetEmailIdentityResponse' {} a -> s {dkimAttributes = a} :: GetEmailIdentityResponse)++-- | The feedback forwarding configuration for the identity.+--+-- If the value is @true@, you receive email notifications when bounce or+-- complaint events occur. These notifications are sent to the address that+-- you specified in the @Return-Path@ header of the original email.+--+-- You\'re required to have a method of tracking bounces and complaints. If+-- you haven\'t set up another mechanism for receiving bounce or complaint+-- notifications (for example, by setting up an event destination), you+-- receive an email notification when these events occur (even if this+-- setting is disabled).+getEmailIdentityResponse_feedbackForwardingStatus :: Lens.Lens' GetEmailIdentityResponse (Prelude.Maybe Prelude.Bool)+getEmailIdentityResponse_feedbackForwardingStatus = Lens.lens (\GetEmailIdentityResponse' {feedbackForwardingStatus} -> feedbackForwardingStatus) (\s@GetEmailIdentityResponse' {} a -> s {feedbackForwardingStatus = a} :: GetEmailIdentityResponse)++-- | The email identity type. Note: the @MANAGED_DOMAIN@ identity type is not+-- supported.+getEmailIdentityResponse_identityType :: Lens.Lens' GetEmailIdentityResponse (Prelude.Maybe IdentityType)+getEmailIdentityResponse_identityType = Lens.lens (\GetEmailIdentityResponse' {identityType} -> identityType) (\s@GetEmailIdentityResponse' {} a -> s {identityType = a} :: GetEmailIdentityResponse)++-- | An object that contains information about the Mail-From attributes for+-- the email identity.+getEmailIdentityResponse_mailFromAttributes :: Lens.Lens' GetEmailIdentityResponse (Prelude.Maybe MailFromAttributes)+getEmailIdentityResponse_mailFromAttributes = Lens.lens (\GetEmailIdentityResponse' {mailFromAttributes} -> mailFromAttributes) (\s@GetEmailIdentityResponse' {} a -> s {mailFromAttributes = a} :: GetEmailIdentityResponse)++-- | A map of policy names to policies.+getEmailIdentityResponse_policies :: Lens.Lens' GetEmailIdentityResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getEmailIdentityResponse_policies = Lens.lens (\GetEmailIdentityResponse' {policies} -> policies) (\s@GetEmailIdentityResponse' {} a -> s {policies = a} :: GetEmailIdentityResponse) Prelude.. Lens.mapping Lens.coerced++-- | An array of objects that define the tags (keys and values) that are+-- associated with the email identity.+getEmailIdentityResponse_tags :: Lens.Lens' GetEmailIdentityResponse (Prelude.Maybe [Tag])+getEmailIdentityResponse_tags = Lens.lens (\GetEmailIdentityResponse' {tags} -> tags) (\s@GetEmailIdentityResponse' {} a -> s {tags = a} :: GetEmailIdentityResponse) Prelude.. Lens.mapping Lens.coerced++-- | The verification status of the identity. The status can be one of the+-- following:+--+-- - @PENDING@ – The verification process was initiated, but Amazon SES+-- hasn\'t yet been able to verify the identity.+--+-- - @SUCCESS@ – The verification process completed successfully.+--+-- - @FAILED@ – The verification process failed.+--+-- - @TEMPORARY_FAILURE@ – A temporary issue is preventing Amazon SES+-- from determining the verification status of the identity.+--+-- - @NOT_STARTED@ – The verification process hasn\'t been initiated for+-- the identity.+getEmailIdentityResponse_verificationStatus :: Lens.Lens' GetEmailIdentityResponse (Prelude.Maybe VerificationStatus)+getEmailIdentityResponse_verificationStatus = Lens.lens (\GetEmailIdentityResponse' {verificationStatus} -> verificationStatus) (\s@GetEmailIdentityResponse' {} a -> s {verificationStatus = a} :: GetEmailIdentityResponse)++-- | Specifies whether or not the identity is verified. You can only send+-- email from verified email addresses or domains. For more information+-- about verifying identities, see the+-- <https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-manage-verify.html Amazon Pinpoint User Guide>.+getEmailIdentityResponse_verifiedForSendingStatus :: Lens.Lens' GetEmailIdentityResponse (Prelude.Maybe Prelude.Bool)+getEmailIdentityResponse_verifiedForSendingStatus = Lens.lens (\GetEmailIdentityResponse' {verifiedForSendingStatus} -> verifiedForSendingStatus) (\s@GetEmailIdentityResponse' {} a -> s {verifiedForSendingStatus = a} :: GetEmailIdentityResponse)++-- | The response's http status code.+getEmailIdentityResponse_httpStatus :: Lens.Lens' GetEmailIdentityResponse Prelude.Int+getEmailIdentityResponse_httpStatus = Lens.lens (\GetEmailIdentityResponse' {httpStatus} -> httpStatus) (\s@GetEmailIdentityResponse' {} a -> s {httpStatus = a} :: GetEmailIdentityResponse)++instance Prelude.NFData GetEmailIdentityResponse where+ rnf GetEmailIdentityResponse' {..} =+ Prelude.rnf configurationSetName+ `Prelude.seq` Prelude.rnf dkimAttributes+ `Prelude.seq` Prelude.rnf feedbackForwardingStatus+ `Prelude.seq` Prelude.rnf identityType+ `Prelude.seq` Prelude.rnf mailFromAttributes+ `Prelude.seq` Prelude.rnf policies+ `Prelude.seq` Prelude.rnf tags+ `Prelude.seq` Prelude.rnf verificationStatus+ `Prelude.seq` Prelude.rnf verifiedForSendingStatus+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/GetEmailIdentityPolicies.hs view
@@ -0,0 +1,186 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.GetEmailIdentityPolicies+-- 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 requested sending authorization policies for the given+-- identity (an email address or a domain). The policies are returned as a+-- map of policy names to policy contents. You can retrieve a maximum of 20+-- policies at a time.+--+-- This API is for the identity owner only. If you have not verified the+-- identity, this API will return an error.+--+-- Sending authorization is a feature that enables an identity owner to+-- authorize other senders to use its identities. For information about+-- using sending authorization, see the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html Amazon SES Developer Guide>.+--+-- You can execute this operation no more than once per second.+module Amazonka.SESV2.GetEmailIdentityPolicies+ ( -- * Creating a Request+ GetEmailIdentityPolicies (..),+ newGetEmailIdentityPolicies,++ -- * Request Lenses+ getEmailIdentityPolicies_emailIdentity,++ -- * Destructuring the Response+ GetEmailIdentityPoliciesResponse (..),+ newGetEmailIdentityPoliciesResponse,++ -- * Response Lenses+ getEmailIdentityPoliciesResponse_policies,+ getEmailIdentityPoliciesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to return the policies of an email identity.+--+-- /See:/ 'newGetEmailIdentityPolicies' smart constructor.+data GetEmailIdentityPolicies = GetEmailIdentityPolicies'+ { -- | The email identity.+ emailIdentity :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetEmailIdentityPolicies' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'emailIdentity', 'getEmailIdentityPolicies_emailIdentity' - The email identity.+newGetEmailIdentityPolicies ::+ -- | 'emailIdentity'+ Prelude.Text ->+ GetEmailIdentityPolicies+newGetEmailIdentityPolicies pEmailIdentity_ =+ GetEmailIdentityPolicies'+ { emailIdentity =+ pEmailIdentity_+ }++-- | The email identity.+getEmailIdentityPolicies_emailIdentity :: Lens.Lens' GetEmailIdentityPolicies Prelude.Text+getEmailIdentityPolicies_emailIdentity = Lens.lens (\GetEmailIdentityPolicies' {emailIdentity} -> emailIdentity) (\s@GetEmailIdentityPolicies' {} a -> s {emailIdentity = a} :: GetEmailIdentityPolicies)++instance Core.AWSRequest GetEmailIdentityPolicies where+ type+ AWSResponse GetEmailIdentityPolicies =+ GetEmailIdentityPoliciesResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetEmailIdentityPoliciesResponse'+ Prelude.<$> (x Data..?> "Policies" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetEmailIdentityPolicies where+ hashWithSalt _salt GetEmailIdentityPolicies' {..} =+ _salt `Prelude.hashWithSalt` emailIdentity++instance Prelude.NFData GetEmailIdentityPolicies where+ rnf GetEmailIdentityPolicies' {..} =+ Prelude.rnf emailIdentity++instance Data.ToHeaders GetEmailIdentityPolicies where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetEmailIdentityPolicies where+ toPath GetEmailIdentityPolicies' {..} =+ Prelude.mconcat+ [ "/v2/email/identities/",+ Data.toBS emailIdentity,+ "/policies"+ ]++instance Data.ToQuery GetEmailIdentityPolicies where+ toQuery = Prelude.const Prelude.mempty++-- | Identity policies associated with email identity.+--+-- /See:/ 'newGetEmailIdentityPoliciesResponse' smart constructor.+data GetEmailIdentityPoliciesResponse = GetEmailIdentityPoliciesResponse'+ { -- | A map of policy names to policies.+ policies :: 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 'GetEmailIdentityPoliciesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'policies', 'getEmailIdentityPoliciesResponse_policies' - A map of policy names to policies.+--+-- 'httpStatus', 'getEmailIdentityPoliciesResponse_httpStatus' - The response's http status code.+newGetEmailIdentityPoliciesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetEmailIdentityPoliciesResponse+newGetEmailIdentityPoliciesResponse pHttpStatus_ =+ GetEmailIdentityPoliciesResponse'+ { policies =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A map of policy names to policies.+getEmailIdentityPoliciesResponse_policies :: Lens.Lens' GetEmailIdentityPoliciesResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+getEmailIdentityPoliciesResponse_policies = Lens.lens (\GetEmailIdentityPoliciesResponse' {policies} -> policies) (\s@GetEmailIdentityPoliciesResponse' {} a -> s {policies = a} :: GetEmailIdentityPoliciesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getEmailIdentityPoliciesResponse_httpStatus :: Lens.Lens' GetEmailIdentityPoliciesResponse Prelude.Int+getEmailIdentityPoliciesResponse_httpStatus = Lens.lens (\GetEmailIdentityPoliciesResponse' {httpStatus} -> httpStatus) (\s@GetEmailIdentityPoliciesResponse' {} a -> s {httpStatus = a} :: GetEmailIdentityPoliciesResponse)++instance+ Prelude.NFData+ GetEmailIdentityPoliciesResponse+ where+ rnf GetEmailIdentityPoliciesResponse' {..} =+ Prelude.rnf policies+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/GetEmailTemplate.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.SESV2.GetEmailTemplate+-- 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 template object (which includes the subject line, HTML part+-- and text part) for the template you specify.+--+-- You can execute this operation no more than once per second.+module Amazonka.SESV2.GetEmailTemplate+ ( -- * Creating a Request+ GetEmailTemplate (..),+ newGetEmailTemplate,++ -- * Request Lenses+ getEmailTemplate_templateName,++ -- * Destructuring the Response+ GetEmailTemplateResponse (..),+ newGetEmailTemplateResponse,++ -- * Response Lenses+ getEmailTemplateResponse_httpStatus,+ getEmailTemplateResponse_templateName,+ getEmailTemplateResponse_templateContent,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | Represents a request to display the template object (which includes the+-- subject line, HTML part and text part) for the template you specify.+--+-- /See:/ 'newGetEmailTemplate' smart constructor.+data GetEmailTemplate = GetEmailTemplate'+ { -- | The name of the template.+ templateName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetEmailTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'templateName', 'getEmailTemplate_templateName' - The name of the template.+newGetEmailTemplate ::+ -- | 'templateName'+ Prelude.Text ->+ GetEmailTemplate+newGetEmailTemplate pTemplateName_ =+ GetEmailTemplate' {templateName = pTemplateName_}++-- | The name of the template.+getEmailTemplate_templateName :: Lens.Lens' GetEmailTemplate Prelude.Text+getEmailTemplate_templateName = Lens.lens (\GetEmailTemplate' {templateName} -> templateName) (\s@GetEmailTemplate' {} a -> s {templateName = a} :: GetEmailTemplate)++instance Core.AWSRequest GetEmailTemplate where+ type+ AWSResponse GetEmailTemplate =+ GetEmailTemplateResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetEmailTemplateResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "TemplateName")+ Prelude.<*> (x Data..:> "TemplateContent")+ )++instance Prelude.Hashable GetEmailTemplate where+ hashWithSalt _salt GetEmailTemplate' {..} =+ _salt `Prelude.hashWithSalt` templateName++instance Prelude.NFData GetEmailTemplate where+ rnf GetEmailTemplate' {..} = Prelude.rnf templateName++instance Data.ToHeaders GetEmailTemplate where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetEmailTemplate where+ toPath GetEmailTemplate' {..} =+ Prelude.mconcat+ ["/v2/email/templates/", Data.toBS templateName]++instance Data.ToQuery GetEmailTemplate where+ toQuery = Prelude.const Prelude.mempty++-- | The following element is returned by the service.+--+-- /See:/ 'newGetEmailTemplateResponse' smart constructor.+data GetEmailTemplateResponse = GetEmailTemplateResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The name of the template.+ templateName :: Prelude.Text,+ -- | The content of the email template, composed of a subject line, an HTML+ -- part, and a text-only part.+ templateContent :: EmailTemplateContent+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetEmailTemplateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getEmailTemplateResponse_httpStatus' - The response's http status code.+--+-- 'templateName', 'getEmailTemplateResponse_templateName' - The name of the template.+--+-- 'templateContent', 'getEmailTemplateResponse_templateContent' - The content of the email template, composed of a subject line, an HTML+-- part, and a text-only part.+newGetEmailTemplateResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'templateName'+ Prelude.Text ->+ -- | 'templateContent'+ EmailTemplateContent ->+ GetEmailTemplateResponse+newGetEmailTemplateResponse+ pHttpStatus_+ pTemplateName_+ pTemplateContent_ =+ GetEmailTemplateResponse'+ { httpStatus =+ pHttpStatus_,+ templateName = pTemplateName_,+ templateContent = pTemplateContent_+ }++-- | The response's http status code.+getEmailTemplateResponse_httpStatus :: Lens.Lens' GetEmailTemplateResponse Prelude.Int+getEmailTemplateResponse_httpStatus = Lens.lens (\GetEmailTemplateResponse' {httpStatus} -> httpStatus) (\s@GetEmailTemplateResponse' {} a -> s {httpStatus = a} :: GetEmailTemplateResponse)++-- | The name of the template.+getEmailTemplateResponse_templateName :: Lens.Lens' GetEmailTemplateResponse Prelude.Text+getEmailTemplateResponse_templateName = Lens.lens (\GetEmailTemplateResponse' {templateName} -> templateName) (\s@GetEmailTemplateResponse' {} a -> s {templateName = a} :: GetEmailTemplateResponse)++-- | The content of the email template, composed of a subject line, an HTML+-- part, and a text-only part.+getEmailTemplateResponse_templateContent :: Lens.Lens' GetEmailTemplateResponse EmailTemplateContent+getEmailTemplateResponse_templateContent = Lens.lens (\GetEmailTemplateResponse' {templateContent} -> templateContent) (\s@GetEmailTemplateResponse' {} a -> s {templateContent = a} :: GetEmailTemplateResponse)++instance Prelude.NFData GetEmailTemplateResponse where+ rnf GetEmailTemplateResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf templateName+ `Prelude.seq` Prelude.rnf templateContent
+ gen/Amazonka/SESV2/GetImportJob.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.SESV2.GetImportJob+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Provides information about an import job.+module Amazonka.SESV2.GetImportJob+ ( -- * Creating a Request+ GetImportJob (..),+ newGetImportJob,++ -- * Request Lenses+ getImportJob_jobId,++ -- * Destructuring the Response+ GetImportJobResponse (..),+ newGetImportJobResponse,++ -- * Response Lenses+ getImportJobResponse_completedTimestamp,+ getImportJobResponse_createdTimestamp,+ getImportJobResponse_failedRecordsCount,+ getImportJobResponse_failureInfo,+ getImportJobResponse_importDataSource,+ getImportJobResponse_importDestination,+ getImportJobResponse_jobId,+ getImportJobResponse_jobStatus,+ getImportJobResponse_processedRecordsCount,+ getImportJobResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | Represents a request for information about an import job using the+-- import job ID.+--+-- /See:/ 'newGetImportJob' smart constructor.+data GetImportJob = GetImportJob'+ { -- | The ID of the import job.+ jobId :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetImportJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jobId', 'getImportJob_jobId' - The ID of the import job.+newGetImportJob ::+ -- | 'jobId'+ Prelude.Text ->+ GetImportJob+newGetImportJob pJobId_ =+ GetImportJob' {jobId = pJobId_}++-- | The ID of the import job.+getImportJob_jobId :: Lens.Lens' GetImportJob Prelude.Text+getImportJob_jobId = Lens.lens (\GetImportJob' {jobId} -> jobId) (\s@GetImportJob' {} a -> s {jobId = a} :: GetImportJob)++instance Core.AWSRequest GetImportJob where+ type AWSResponse GetImportJob = GetImportJobResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetImportJobResponse'+ Prelude.<$> (x Data..?> "CompletedTimestamp")+ Prelude.<*> (x Data..?> "CreatedTimestamp")+ Prelude.<*> (x Data..?> "FailedRecordsCount")+ Prelude.<*> (x Data..?> "FailureInfo")+ Prelude.<*> (x Data..?> "ImportDataSource")+ Prelude.<*> (x Data..?> "ImportDestination")+ Prelude.<*> (x Data..?> "JobId")+ Prelude.<*> (x Data..?> "JobStatus")+ Prelude.<*> (x Data..?> "ProcessedRecordsCount")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetImportJob where+ hashWithSalt _salt GetImportJob' {..} =+ _salt `Prelude.hashWithSalt` jobId++instance Prelude.NFData GetImportJob where+ rnf GetImportJob' {..} = Prelude.rnf jobId++instance Data.ToHeaders GetImportJob where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetImportJob where+ toPath GetImportJob' {..} =+ Prelude.mconcat+ ["/v2/email/import-jobs/", Data.toBS jobId]++instance Data.ToQuery GetImportJob where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newGetImportJobResponse' smart constructor.+data GetImportJobResponse = GetImportJobResponse'+ { -- | The time stamp of when the import job was completed.+ completedTimestamp :: Prelude.Maybe Data.POSIX,+ -- | The time stamp of when the import job was created.+ createdTimestamp :: Prelude.Maybe Data.POSIX,+ -- | The number of records that failed processing because of invalid input or+ -- other reasons.+ failedRecordsCount :: Prelude.Maybe Prelude.Int,+ -- | The failure details about an import job.+ failureInfo :: Prelude.Maybe FailureInfo,+ -- | The data source of the import job.+ importDataSource :: Prelude.Maybe ImportDataSource,+ -- | The destination of the import job.+ importDestination :: Prelude.Maybe ImportDestination,+ -- | A string that represents the import job ID.+ jobId :: Prelude.Maybe Prelude.Text,+ -- | The status of the import job.+ jobStatus :: Prelude.Maybe JobStatus,+ -- | The current number of records processed.+ processedRecordsCount :: Prelude.Maybe Prelude.Int,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetImportJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'completedTimestamp', 'getImportJobResponse_completedTimestamp' - The time stamp of when the import job was completed.+--+-- 'createdTimestamp', 'getImportJobResponse_createdTimestamp' - The time stamp of when the import job was created.+--+-- 'failedRecordsCount', 'getImportJobResponse_failedRecordsCount' - The number of records that failed processing because of invalid input or+-- other reasons.+--+-- 'failureInfo', 'getImportJobResponse_failureInfo' - The failure details about an import job.+--+-- 'importDataSource', 'getImportJobResponse_importDataSource' - The data source of the import job.+--+-- 'importDestination', 'getImportJobResponse_importDestination' - The destination of the import job.+--+-- 'jobId', 'getImportJobResponse_jobId' - A string that represents the import job ID.+--+-- 'jobStatus', 'getImportJobResponse_jobStatus' - The status of the import job.+--+-- 'processedRecordsCount', 'getImportJobResponse_processedRecordsCount' - The current number of records processed.+--+-- 'httpStatus', 'getImportJobResponse_httpStatus' - The response's http status code.+newGetImportJobResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetImportJobResponse+newGetImportJobResponse pHttpStatus_ =+ GetImportJobResponse'+ { completedTimestamp =+ Prelude.Nothing,+ createdTimestamp = Prelude.Nothing,+ failedRecordsCount = Prelude.Nothing,+ failureInfo = Prelude.Nothing,+ importDataSource = Prelude.Nothing,+ importDestination = Prelude.Nothing,+ jobId = Prelude.Nothing,+ jobStatus = Prelude.Nothing,+ processedRecordsCount = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The time stamp of when the import job was completed.+getImportJobResponse_completedTimestamp :: Lens.Lens' GetImportJobResponse (Prelude.Maybe Prelude.UTCTime)+getImportJobResponse_completedTimestamp = Lens.lens (\GetImportJobResponse' {completedTimestamp} -> completedTimestamp) (\s@GetImportJobResponse' {} a -> s {completedTimestamp = a} :: GetImportJobResponse) Prelude.. Lens.mapping Data._Time++-- | The time stamp of when the import job was created.+getImportJobResponse_createdTimestamp :: Lens.Lens' GetImportJobResponse (Prelude.Maybe Prelude.UTCTime)+getImportJobResponse_createdTimestamp = Lens.lens (\GetImportJobResponse' {createdTimestamp} -> createdTimestamp) (\s@GetImportJobResponse' {} a -> s {createdTimestamp = a} :: GetImportJobResponse) Prelude.. Lens.mapping Data._Time++-- | The number of records that failed processing because of invalid input or+-- other reasons.+getImportJobResponse_failedRecordsCount :: Lens.Lens' GetImportJobResponse (Prelude.Maybe Prelude.Int)+getImportJobResponse_failedRecordsCount = Lens.lens (\GetImportJobResponse' {failedRecordsCount} -> failedRecordsCount) (\s@GetImportJobResponse' {} a -> s {failedRecordsCount = a} :: GetImportJobResponse)++-- | The failure details about an import job.+getImportJobResponse_failureInfo :: Lens.Lens' GetImportJobResponse (Prelude.Maybe FailureInfo)+getImportJobResponse_failureInfo = Lens.lens (\GetImportJobResponse' {failureInfo} -> failureInfo) (\s@GetImportJobResponse' {} a -> s {failureInfo = a} :: GetImportJobResponse)++-- | The data source of the import job.+getImportJobResponse_importDataSource :: Lens.Lens' GetImportJobResponse (Prelude.Maybe ImportDataSource)+getImportJobResponse_importDataSource = Lens.lens (\GetImportJobResponse' {importDataSource} -> importDataSource) (\s@GetImportJobResponse' {} a -> s {importDataSource = a} :: GetImportJobResponse)++-- | The destination of the import job.+getImportJobResponse_importDestination :: Lens.Lens' GetImportJobResponse (Prelude.Maybe ImportDestination)+getImportJobResponse_importDestination = Lens.lens (\GetImportJobResponse' {importDestination} -> importDestination) (\s@GetImportJobResponse' {} a -> s {importDestination = a} :: GetImportJobResponse)++-- | A string that represents the import job ID.+getImportJobResponse_jobId :: Lens.Lens' GetImportJobResponse (Prelude.Maybe Prelude.Text)+getImportJobResponse_jobId = Lens.lens (\GetImportJobResponse' {jobId} -> jobId) (\s@GetImportJobResponse' {} a -> s {jobId = a} :: GetImportJobResponse)++-- | The status of the import job.+getImportJobResponse_jobStatus :: Lens.Lens' GetImportJobResponse (Prelude.Maybe JobStatus)+getImportJobResponse_jobStatus = Lens.lens (\GetImportJobResponse' {jobStatus} -> jobStatus) (\s@GetImportJobResponse' {} a -> s {jobStatus = a} :: GetImportJobResponse)++-- | The current number of records processed.+getImportJobResponse_processedRecordsCount :: Lens.Lens' GetImportJobResponse (Prelude.Maybe Prelude.Int)+getImportJobResponse_processedRecordsCount = Lens.lens (\GetImportJobResponse' {processedRecordsCount} -> processedRecordsCount) (\s@GetImportJobResponse' {} a -> s {processedRecordsCount = a} :: GetImportJobResponse)++-- | The response's http status code.+getImportJobResponse_httpStatus :: Lens.Lens' GetImportJobResponse Prelude.Int+getImportJobResponse_httpStatus = Lens.lens (\GetImportJobResponse' {httpStatus} -> httpStatus) (\s@GetImportJobResponse' {} a -> s {httpStatus = a} :: GetImportJobResponse)++instance Prelude.NFData GetImportJobResponse where+ rnf GetImportJobResponse' {..} =+ Prelude.rnf completedTimestamp+ `Prelude.seq` Prelude.rnf createdTimestamp+ `Prelude.seq` Prelude.rnf failedRecordsCount+ `Prelude.seq` Prelude.rnf failureInfo+ `Prelude.seq` Prelude.rnf importDataSource+ `Prelude.seq` Prelude.rnf importDestination+ `Prelude.seq` Prelude.rnf jobId+ `Prelude.seq` Prelude.rnf jobStatus+ `Prelude.seq` Prelude.rnf processedRecordsCount+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/GetSuppressedDestination.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.SESV2.GetSuppressedDestination+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves information about a specific email address that\'s on the+-- suppression list for your account.+module Amazonka.SESV2.GetSuppressedDestination+ ( -- * Creating a Request+ GetSuppressedDestination (..),+ newGetSuppressedDestination,++ -- * Request Lenses+ getSuppressedDestination_emailAddress,++ -- * Destructuring the Response+ GetSuppressedDestinationResponse (..),+ newGetSuppressedDestinationResponse,++ -- * Response Lenses+ getSuppressedDestinationResponse_httpStatus,+ getSuppressedDestinationResponse_suppressedDestination,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to retrieve information about an email address that\'s on the+-- suppression list for your account.+--+-- /See:/ 'newGetSuppressedDestination' smart constructor.+data GetSuppressedDestination = GetSuppressedDestination'+ { -- | The email address that\'s on the account suppression list.+ emailAddress :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSuppressedDestination' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'emailAddress', 'getSuppressedDestination_emailAddress' - The email address that\'s on the account suppression list.+newGetSuppressedDestination ::+ -- | 'emailAddress'+ Prelude.Text ->+ GetSuppressedDestination+newGetSuppressedDestination pEmailAddress_ =+ GetSuppressedDestination'+ { emailAddress =+ pEmailAddress_+ }++-- | The email address that\'s on the account suppression list.+getSuppressedDestination_emailAddress :: Lens.Lens' GetSuppressedDestination Prelude.Text+getSuppressedDestination_emailAddress = Lens.lens (\GetSuppressedDestination' {emailAddress} -> emailAddress) (\s@GetSuppressedDestination' {} a -> s {emailAddress = a} :: GetSuppressedDestination)++instance Core.AWSRequest GetSuppressedDestination where+ type+ AWSResponse GetSuppressedDestination =+ GetSuppressedDestinationResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetSuppressedDestinationResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "SuppressedDestination")+ )++instance Prelude.Hashable GetSuppressedDestination where+ hashWithSalt _salt GetSuppressedDestination' {..} =+ _salt `Prelude.hashWithSalt` emailAddress++instance Prelude.NFData GetSuppressedDestination where+ rnf GetSuppressedDestination' {..} =+ Prelude.rnf emailAddress++instance Data.ToHeaders GetSuppressedDestination where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath GetSuppressedDestination where+ toPath GetSuppressedDestination' {..} =+ Prelude.mconcat+ [ "/v2/email/suppression/addresses/",+ Data.toBS emailAddress+ ]++instance Data.ToQuery GetSuppressedDestination where+ toQuery = Prelude.const Prelude.mempty++-- | Information about the suppressed email address.+--+-- /See:/ 'newGetSuppressedDestinationResponse' smart constructor.+data GetSuppressedDestinationResponse = GetSuppressedDestinationResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | An object containing information about the suppressed email address.+ suppressedDestination :: SuppressedDestination+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSuppressedDestinationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getSuppressedDestinationResponse_httpStatus' - The response's http status code.+--+-- 'suppressedDestination', 'getSuppressedDestinationResponse_suppressedDestination' - An object containing information about the suppressed email address.+newGetSuppressedDestinationResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'suppressedDestination'+ SuppressedDestination ->+ GetSuppressedDestinationResponse+newGetSuppressedDestinationResponse+ pHttpStatus_+ pSuppressedDestination_ =+ GetSuppressedDestinationResponse'+ { httpStatus =+ pHttpStatus_,+ suppressedDestination =+ pSuppressedDestination_+ }++-- | The response's http status code.+getSuppressedDestinationResponse_httpStatus :: Lens.Lens' GetSuppressedDestinationResponse Prelude.Int+getSuppressedDestinationResponse_httpStatus = Lens.lens (\GetSuppressedDestinationResponse' {httpStatus} -> httpStatus) (\s@GetSuppressedDestinationResponse' {} a -> s {httpStatus = a} :: GetSuppressedDestinationResponse)++-- | An object containing information about the suppressed email address.+getSuppressedDestinationResponse_suppressedDestination :: Lens.Lens' GetSuppressedDestinationResponse SuppressedDestination+getSuppressedDestinationResponse_suppressedDestination = Lens.lens (\GetSuppressedDestinationResponse' {suppressedDestination} -> suppressedDestination) (\s@GetSuppressedDestinationResponse' {} a -> s {suppressedDestination = a} :: GetSuppressedDestinationResponse)++instance+ Prelude.NFData+ GetSuppressedDestinationResponse+ where+ rnf GetSuppressedDestinationResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf suppressedDestination
+ gen/Amazonka/SESV2/Lens.hs view
@@ -0,0 +1,1139 @@+{-# 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.SESV2.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.SESV2.Lens+ ( -- * Operations++ -- ** BatchGetMetricData+ batchGetMetricData_queries,+ batchGetMetricDataResponse_errors,+ batchGetMetricDataResponse_results,+ batchGetMetricDataResponse_httpStatus,++ -- ** CreateConfigurationSet+ createConfigurationSet_deliveryOptions,+ createConfigurationSet_reputationOptions,+ createConfigurationSet_sendingOptions,+ createConfigurationSet_suppressionOptions,+ createConfigurationSet_tags,+ createConfigurationSet_trackingOptions,+ createConfigurationSet_vdmOptions,+ createConfigurationSet_configurationSetName,+ createConfigurationSetResponse_httpStatus,++ -- ** CreateConfigurationSetEventDestination+ createConfigurationSetEventDestination_configurationSetName,+ createConfigurationSetEventDestination_eventDestinationName,+ createConfigurationSetEventDestination_eventDestination,+ createConfigurationSetEventDestinationResponse_httpStatus,++ -- ** CreateContact+ createContact_attributesData,+ createContact_topicPreferences,+ createContact_unsubscribeAll,+ createContact_contactListName,+ createContact_emailAddress,+ createContactResponse_httpStatus,++ -- ** CreateContactList+ createContactList_description,+ createContactList_tags,+ createContactList_topics,+ createContactList_contactListName,+ createContactListResponse_httpStatus,++ -- ** CreateCustomVerificationEmailTemplate+ createCustomVerificationEmailTemplate_templateName,+ createCustomVerificationEmailTemplate_fromEmailAddress,+ createCustomVerificationEmailTemplate_templateSubject,+ createCustomVerificationEmailTemplate_templateContent,+ createCustomVerificationEmailTemplate_successRedirectionURL,+ createCustomVerificationEmailTemplate_failureRedirectionURL,+ createCustomVerificationEmailTemplateResponse_httpStatus,++ -- ** CreateDedicatedIpPool+ createDedicatedIpPool_scalingMode,+ createDedicatedIpPool_tags,+ createDedicatedIpPool_poolName,+ createDedicatedIpPoolResponse_httpStatus,++ -- ** CreateDeliverabilityTestReport+ createDeliverabilityTestReport_reportName,+ createDeliverabilityTestReport_tags,+ createDeliverabilityTestReport_fromEmailAddress,+ createDeliverabilityTestReport_content,+ createDeliverabilityTestReportResponse_httpStatus,+ createDeliverabilityTestReportResponse_reportId,+ createDeliverabilityTestReportResponse_deliverabilityTestStatus,++ -- ** CreateEmailIdentity+ createEmailIdentity_configurationSetName,+ createEmailIdentity_dkimSigningAttributes,+ createEmailIdentity_tags,+ createEmailIdentity_emailIdentity,+ createEmailIdentityResponse_dkimAttributes,+ createEmailIdentityResponse_identityType,+ createEmailIdentityResponse_verifiedForSendingStatus,+ createEmailIdentityResponse_httpStatus,++ -- ** CreateEmailIdentityPolicy+ createEmailIdentityPolicy_emailIdentity,+ createEmailIdentityPolicy_policyName,+ createEmailIdentityPolicy_policy,+ createEmailIdentityPolicyResponse_httpStatus,++ -- ** CreateEmailTemplate+ createEmailTemplate_templateName,+ createEmailTemplate_templateContent,+ createEmailTemplateResponse_httpStatus,++ -- ** CreateImportJob+ createImportJob_importDestination,+ createImportJob_importDataSource,+ createImportJobResponse_jobId,+ createImportJobResponse_httpStatus,++ -- ** DeleteConfigurationSet+ deleteConfigurationSet_configurationSetName,+ deleteConfigurationSetResponse_httpStatus,++ -- ** DeleteConfigurationSetEventDestination+ deleteConfigurationSetEventDestination_configurationSetName,+ deleteConfigurationSetEventDestination_eventDestinationName,+ deleteConfigurationSetEventDestinationResponse_httpStatus,++ -- ** DeleteContact+ deleteContact_contactListName,+ deleteContact_emailAddress,+ deleteContactResponse_httpStatus,++ -- ** DeleteContactList+ deleteContactList_contactListName,+ deleteContactListResponse_httpStatus,++ -- ** DeleteCustomVerificationEmailTemplate+ deleteCustomVerificationEmailTemplate_templateName,+ deleteCustomVerificationEmailTemplateResponse_httpStatus,++ -- ** DeleteDedicatedIpPool+ deleteDedicatedIpPool_poolName,+ deleteDedicatedIpPoolResponse_httpStatus,++ -- ** DeleteEmailIdentity+ deleteEmailIdentity_emailIdentity,+ deleteEmailIdentityResponse_httpStatus,++ -- ** DeleteEmailIdentityPolicy+ deleteEmailIdentityPolicy_emailIdentity,+ deleteEmailIdentityPolicy_policyName,+ deleteEmailIdentityPolicyResponse_httpStatus,++ -- ** DeleteEmailTemplate+ deleteEmailTemplate_templateName,+ deleteEmailTemplateResponse_httpStatus,++ -- ** DeleteSuppressedDestination+ deleteSuppressedDestination_emailAddress,+ deleteSuppressedDestinationResponse_httpStatus,++ -- ** GetAccount+ getAccountResponse_dedicatedIpAutoWarmupEnabled,+ getAccountResponse_details,+ getAccountResponse_enforcementStatus,+ getAccountResponse_productionAccessEnabled,+ getAccountResponse_sendQuota,+ getAccountResponse_sendingEnabled,+ getAccountResponse_suppressionAttributes,+ getAccountResponse_vdmAttributes,+ getAccountResponse_httpStatus,++ -- ** GetBlacklistReports+ getBlacklistReports_blacklistItemNames,+ getBlacklistReportsResponse_httpStatus,+ getBlacklistReportsResponse_blacklistReport,++ -- ** GetConfigurationSet+ getConfigurationSet_configurationSetName,+ getConfigurationSetResponse_configurationSetName,+ getConfigurationSetResponse_deliveryOptions,+ getConfigurationSetResponse_reputationOptions,+ getConfigurationSetResponse_sendingOptions,+ getConfigurationSetResponse_suppressionOptions,+ getConfigurationSetResponse_tags,+ getConfigurationSetResponse_trackingOptions,+ getConfigurationSetResponse_vdmOptions,+ getConfigurationSetResponse_httpStatus,++ -- ** GetConfigurationSetEventDestinations+ getConfigurationSetEventDestinations_configurationSetName,+ getConfigurationSetEventDestinationsResponse_eventDestinations,+ getConfigurationSetEventDestinationsResponse_httpStatus,++ -- ** GetContact+ getContact_contactListName,+ getContact_emailAddress,+ getContactResponse_attributesData,+ getContactResponse_contactListName,+ getContactResponse_createdTimestamp,+ getContactResponse_emailAddress,+ getContactResponse_lastUpdatedTimestamp,+ getContactResponse_topicDefaultPreferences,+ getContactResponse_topicPreferences,+ getContactResponse_unsubscribeAll,+ getContactResponse_httpStatus,++ -- ** GetContactList+ getContactList_contactListName,+ getContactListResponse_contactListName,+ getContactListResponse_createdTimestamp,+ getContactListResponse_description,+ getContactListResponse_lastUpdatedTimestamp,+ getContactListResponse_tags,+ getContactListResponse_topics,+ getContactListResponse_httpStatus,++ -- ** GetCustomVerificationEmailTemplate+ getCustomVerificationEmailTemplate_templateName,+ getCustomVerificationEmailTemplateResponse_failureRedirectionURL,+ getCustomVerificationEmailTemplateResponse_fromEmailAddress,+ getCustomVerificationEmailTemplateResponse_successRedirectionURL,+ getCustomVerificationEmailTemplateResponse_templateContent,+ getCustomVerificationEmailTemplateResponse_templateName,+ getCustomVerificationEmailTemplateResponse_templateSubject,+ getCustomVerificationEmailTemplateResponse_httpStatus,++ -- ** GetDedicatedIp+ getDedicatedIp_ip,+ getDedicatedIpResponse_dedicatedIp,+ getDedicatedIpResponse_httpStatus,++ -- ** GetDedicatedIpPool+ getDedicatedIpPool_poolName,+ getDedicatedIpPoolResponse_dedicatedIpPool,+ getDedicatedIpPoolResponse_httpStatus,++ -- ** GetDedicatedIps+ getDedicatedIps_nextToken,+ getDedicatedIps_pageSize,+ getDedicatedIps_poolName,+ getDedicatedIpsResponse_dedicatedIps,+ getDedicatedIpsResponse_nextToken,+ getDedicatedIpsResponse_httpStatus,++ -- ** GetDeliverabilityDashboardOptions+ getDeliverabilityDashboardOptionsResponse_accountStatus,+ getDeliverabilityDashboardOptionsResponse_activeSubscribedDomains,+ getDeliverabilityDashboardOptionsResponse_pendingExpirationSubscribedDomains,+ getDeliverabilityDashboardOptionsResponse_subscriptionExpiryDate,+ getDeliverabilityDashboardOptionsResponse_httpStatus,+ getDeliverabilityDashboardOptionsResponse_dashboardEnabled,++ -- ** GetDeliverabilityTestReport+ getDeliverabilityTestReport_reportId,+ getDeliverabilityTestReportResponse_message,+ getDeliverabilityTestReportResponse_tags,+ getDeliverabilityTestReportResponse_httpStatus,+ getDeliverabilityTestReportResponse_deliverabilityTestReport,+ getDeliverabilityTestReportResponse_overallPlacement,+ getDeliverabilityTestReportResponse_ispPlacements,++ -- ** GetDomainDeliverabilityCampaign+ getDomainDeliverabilityCampaign_campaignId,+ getDomainDeliverabilityCampaignResponse_httpStatus,+ getDomainDeliverabilityCampaignResponse_domainDeliverabilityCampaign,++ -- ** GetDomainStatisticsReport+ getDomainStatisticsReport_domain,+ getDomainStatisticsReport_startDate,+ getDomainStatisticsReport_endDate,+ getDomainStatisticsReportResponse_httpStatus,+ getDomainStatisticsReportResponse_overallVolume,+ getDomainStatisticsReportResponse_dailyVolumes,++ -- ** GetEmailIdentity+ getEmailIdentity_emailIdentity,+ getEmailIdentityResponse_configurationSetName,+ getEmailIdentityResponse_dkimAttributes,+ getEmailIdentityResponse_feedbackForwardingStatus,+ getEmailIdentityResponse_identityType,+ getEmailIdentityResponse_mailFromAttributes,+ getEmailIdentityResponse_policies,+ getEmailIdentityResponse_tags,+ getEmailIdentityResponse_verificationStatus,+ getEmailIdentityResponse_verifiedForSendingStatus,+ getEmailIdentityResponse_httpStatus,++ -- ** GetEmailIdentityPolicies+ getEmailIdentityPolicies_emailIdentity,+ getEmailIdentityPoliciesResponse_policies,+ getEmailIdentityPoliciesResponse_httpStatus,++ -- ** GetEmailTemplate+ getEmailTemplate_templateName,+ getEmailTemplateResponse_httpStatus,+ getEmailTemplateResponse_templateName,+ getEmailTemplateResponse_templateContent,++ -- ** GetImportJob+ getImportJob_jobId,+ getImportJobResponse_completedTimestamp,+ getImportJobResponse_createdTimestamp,+ getImportJobResponse_failedRecordsCount,+ getImportJobResponse_failureInfo,+ getImportJobResponse_importDataSource,+ getImportJobResponse_importDestination,+ getImportJobResponse_jobId,+ getImportJobResponse_jobStatus,+ getImportJobResponse_processedRecordsCount,+ getImportJobResponse_httpStatus,++ -- ** GetSuppressedDestination+ getSuppressedDestination_emailAddress,+ getSuppressedDestinationResponse_httpStatus,+ getSuppressedDestinationResponse_suppressedDestination,++ -- ** ListConfigurationSets+ listConfigurationSets_nextToken,+ listConfigurationSets_pageSize,+ listConfigurationSetsResponse_configurationSets,+ listConfigurationSetsResponse_nextToken,+ listConfigurationSetsResponse_httpStatus,++ -- ** ListContactLists+ listContactLists_nextToken,+ listContactLists_pageSize,+ listContactListsResponse_contactLists,+ listContactListsResponse_nextToken,+ listContactListsResponse_httpStatus,++ -- ** ListContacts+ listContacts_filter,+ listContacts_nextToken,+ listContacts_pageSize,+ listContacts_contactListName,+ listContactsResponse_contacts,+ listContactsResponse_nextToken,+ listContactsResponse_httpStatus,++ -- ** ListCustomVerificationEmailTemplates+ listCustomVerificationEmailTemplates_nextToken,+ listCustomVerificationEmailTemplates_pageSize,+ listCustomVerificationEmailTemplatesResponse_customVerificationEmailTemplates,+ listCustomVerificationEmailTemplatesResponse_nextToken,+ listCustomVerificationEmailTemplatesResponse_httpStatus,++ -- ** ListDedicatedIpPools+ listDedicatedIpPools_nextToken,+ listDedicatedIpPools_pageSize,+ listDedicatedIpPoolsResponse_dedicatedIpPools,+ listDedicatedIpPoolsResponse_nextToken,+ listDedicatedIpPoolsResponse_httpStatus,++ -- ** ListDeliverabilityTestReports+ listDeliverabilityTestReports_nextToken,+ listDeliverabilityTestReports_pageSize,+ listDeliverabilityTestReportsResponse_nextToken,+ listDeliverabilityTestReportsResponse_httpStatus,+ listDeliverabilityTestReportsResponse_deliverabilityTestReports,++ -- ** ListDomainDeliverabilityCampaigns+ listDomainDeliverabilityCampaigns_nextToken,+ listDomainDeliverabilityCampaigns_pageSize,+ listDomainDeliverabilityCampaigns_startDate,+ listDomainDeliverabilityCampaigns_endDate,+ listDomainDeliverabilityCampaigns_subscribedDomain,+ listDomainDeliverabilityCampaignsResponse_nextToken,+ listDomainDeliverabilityCampaignsResponse_httpStatus,+ listDomainDeliverabilityCampaignsResponse_domainDeliverabilityCampaigns,++ -- ** ListEmailIdentities+ listEmailIdentities_nextToken,+ listEmailIdentities_pageSize,+ listEmailIdentitiesResponse_emailIdentities,+ listEmailIdentitiesResponse_nextToken,+ listEmailIdentitiesResponse_httpStatus,++ -- ** ListEmailTemplates+ listEmailTemplates_nextToken,+ listEmailTemplates_pageSize,+ listEmailTemplatesResponse_nextToken,+ listEmailTemplatesResponse_templatesMetadata,+ listEmailTemplatesResponse_httpStatus,++ -- ** ListImportJobs+ listImportJobs_importDestinationType,+ listImportJobs_nextToken,+ listImportJobs_pageSize,+ listImportJobsResponse_importJobs,+ listImportJobsResponse_nextToken,+ listImportJobsResponse_httpStatus,++ -- ** ListRecommendations+ listRecommendations_filter,+ listRecommendations_nextToken,+ listRecommendations_pageSize,+ listRecommendationsResponse_nextToken,+ listRecommendationsResponse_recommendations,+ listRecommendationsResponse_httpStatus,++ -- ** ListSuppressedDestinations+ listSuppressedDestinations_endDate,+ listSuppressedDestinations_nextToken,+ listSuppressedDestinations_pageSize,+ listSuppressedDestinations_reasons,+ listSuppressedDestinations_startDate,+ listSuppressedDestinationsResponse_nextToken,+ listSuppressedDestinationsResponse_suppressedDestinationSummaries,+ listSuppressedDestinationsResponse_httpStatus,++ -- ** ListTagsForResource+ listTagsForResource_resourceArn,+ listTagsForResourceResponse_httpStatus,+ listTagsForResourceResponse_tags,++ -- ** PutAccountDedicatedIpWarmupAttributes+ putAccountDedicatedIpWarmupAttributes_autoWarmupEnabled,+ putAccountDedicatedIpWarmupAttributesResponse_httpStatus,++ -- ** PutAccountDetails+ putAccountDetails_additionalContactEmailAddresses,+ putAccountDetails_contactLanguage,+ putAccountDetails_productionAccessEnabled,+ putAccountDetails_mailType,+ putAccountDetails_websiteURL,+ putAccountDetails_useCaseDescription,+ putAccountDetailsResponse_httpStatus,++ -- ** PutAccountSendingAttributes+ putAccountSendingAttributes_sendingEnabled,+ putAccountSendingAttributesResponse_httpStatus,++ -- ** PutAccountSuppressionAttributes+ putAccountSuppressionAttributes_suppressedReasons,+ putAccountSuppressionAttributesResponse_httpStatus,++ -- ** PutAccountVdmAttributes+ putAccountVdmAttributes_vdmAttributes,+ putAccountVdmAttributesResponse_httpStatus,++ -- ** PutConfigurationSetDeliveryOptions+ putConfigurationSetDeliveryOptions_sendingPoolName,+ putConfigurationSetDeliveryOptions_tlsPolicy,+ putConfigurationSetDeliveryOptions_configurationSetName,+ putConfigurationSetDeliveryOptionsResponse_httpStatus,++ -- ** PutConfigurationSetReputationOptions+ putConfigurationSetReputationOptions_reputationMetricsEnabled,+ putConfigurationSetReputationOptions_configurationSetName,+ putConfigurationSetReputationOptionsResponse_httpStatus,++ -- ** PutConfigurationSetSendingOptions+ putConfigurationSetSendingOptions_sendingEnabled,+ putConfigurationSetSendingOptions_configurationSetName,+ putConfigurationSetSendingOptionsResponse_httpStatus,++ -- ** PutConfigurationSetSuppressionOptions+ putConfigurationSetSuppressionOptions_suppressedReasons,+ putConfigurationSetSuppressionOptions_configurationSetName,+ putConfigurationSetSuppressionOptionsResponse_httpStatus,++ -- ** PutConfigurationSetTrackingOptions+ putConfigurationSetTrackingOptions_customRedirectDomain,+ putConfigurationSetTrackingOptions_configurationSetName,+ putConfigurationSetTrackingOptionsResponse_httpStatus,++ -- ** PutConfigurationSetVdmOptions+ putConfigurationSetVdmOptions_vdmOptions,+ putConfigurationSetVdmOptions_configurationSetName,+ putConfigurationSetVdmOptionsResponse_httpStatus,++ -- ** PutDedicatedIpInPool+ putDedicatedIpInPool_ip,+ putDedicatedIpInPool_destinationPoolName,+ putDedicatedIpInPoolResponse_httpStatus,++ -- ** PutDedicatedIpWarmupAttributes+ putDedicatedIpWarmupAttributes_ip,+ putDedicatedIpWarmupAttributes_warmupPercentage,+ putDedicatedIpWarmupAttributesResponse_httpStatus,++ -- ** PutDeliverabilityDashboardOption+ putDeliverabilityDashboardOption_subscribedDomains,+ putDeliverabilityDashboardOption_dashboardEnabled,+ putDeliverabilityDashboardOptionResponse_httpStatus,++ -- ** PutEmailIdentityConfigurationSetAttributes+ putEmailIdentityConfigurationSetAttributes_configurationSetName,+ putEmailIdentityConfigurationSetAttributes_emailIdentity,+ putEmailIdentityConfigurationSetAttributesResponse_httpStatus,++ -- ** PutEmailIdentityDkimAttributes+ putEmailIdentityDkimAttributes_signingEnabled,+ putEmailIdentityDkimAttributes_emailIdentity,+ putEmailIdentityDkimAttributesResponse_httpStatus,++ -- ** PutEmailIdentityDkimSigningAttributes+ putEmailIdentityDkimSigningAttributes_signingAttributes,+ putEmailIdentityDkimSigningAttributes_emailIdentity,+ putEmailIdentityDkimSigningAttributes_signingAttributesOrigin,+ putEmailIdentityDkimSigningAttributesResponse_dkimStatus,+ putEmailIdentityDkimSigningAttributesResponse_dkimTokens,+ putEmailIdentityDkimSigningAttributesResponse_httpStatus,++ -- ** PutEmailIdentityFeedbackAttributes+ putEmailIdentityFeedbackAttributes_emailForwardingEnabled,+ putEmailIdentityFeedbackAttributes_emailIdentity,+ putEmailIdentityFeedbackAttributesResponse_httpStatus,++ -- ** PutEmailIdentityMailFromAttributes+ putEmailIdentityMailFromAttributes_behaviorOnMxFailure,+ putEmailIdentityMailFromAttributes_mailFromDomain,+ putEmailIdentityMailFromAttributes_emailIdentity,+ putEmailIdentityMailFromAttributesResponse_httpStatus,++ -- ** PutSuppressedDestination+ putSuppressedDestination_emailAddress,+ putSuppressedDestination_reason,+ putSuppressedDestinationResponse_httpStatus,++ -- ** SendBulkEmail+ sendBulkEmail_configurationSetName,+ sendBulkEmail_defaultEmailTags,+ sendBulkEmail_feedbackForwardingEmailAddress,+ sendBulkEmail_feedbackForwardingEmailAddressIdentityArn,+ sendBulkEmail_fromEmailAddress,+ sendBulkEmail_fromEmailAddressIdentityArn,+ sendBulkEmail_replyToAddresses,+ sendBulkEmail_defaultContent,+ sendBulkEmail_bulkEmailEntries,+ sendBulkEmailResponse_httpStatus,+ sendBulkEmailResponse_bulkEmailEntryResults,++ -- ** SendCustomVerificationEmail+ sendCustomVerificationEmail_configurationSetName,+ sendCustomVerificationEmail_emailAddress,+ sendCustomVerificationEmail_templateName,+ sendCustomVerificationEmailResponse_messageId,+ sendCustomVerificationEmailResponse_httpStatus,++ -- ** SendEmail+ sendEmail_configurationSetName,+ sendEmail_destination,+ sendEmail_emailTags,+ sendEmail_feedbackForwardingEmailAddress,+ sendEmail_feedbackForwardingEmailAddressIdentityArn,+ sendEmail_fromEmailAddress,+ sendEmail_fromEmailAddressIdentityArn,+ sendEmail_listManagementOptions,+ sendEmail_replyToAddresses,+ sendEmail_content,+ sendEmailResponse_messageId,+ sendEmailResponse_httpStatus,++ -- ** TagResource+ tagResource_resourceArn,+ tagResource_tags,+ tagResourceResponse_httpStatus,++ -- ** TestRenderEmailTemplate+ testRenderEmailTemplate_templateName,+ testRenderEmailTemplate_templateData,+ testRenderEmailTemplateResponse_httpStatus,+ testRenderEmailTemplateResponse_renderedTemplate,++ -- ** UntagResource+ untagResource_resourceArn,+ untagResource_tagKeys,+ untagResourceResponse_httpStatus,++ -- ** UpdateConfigurationSetEventDestination+ updateConfigurationSetEventDestination_configurationSetName,+ updateConfigurationSetEventDestination_eventDestinationName,+ updateConfigurationSetEventDestination_eventDestination,+ updateConfigurationSetEventDestinationResponse_httpStatus,++ -- ** UpdateContact+ updateContact_attributesData,+ updateContact_topicPreferences,+ updateContact_unsubscribeAll,+ updateContact_contactListName,+ updateContact_emailAddress,+ updateContactResponse_httpStatus,++ -- ** UpdateContactList+ updateContactList_description,+ updateContactList_topics,+ updateContactList_contactListName,+ updateContactListResponse_httpStatus,++ -- ** UpdateCustomVerificationEmailTemplate+ updateCustomVerificationEmailTemplate_templateName,+ updateCustomVerificationEmailTemplate_fromEmailAddress,+ updateCustomVerificationEmailTemplate_templateSubject,+ updateCustomVerificationEmailTemplate_templateContent,+ updateCustomVerificationEmailTemplate_successRedirectionURL,+ updateCustomVerificationEmailTemplate_failureRedirectionURL,+ updateCustomVerificationEmailTemplateResponse_httpStatus,++ -- ** UpdateEmailIdentityPolicy+ updateEmailIdentityPolicy_emailIdentity,+ updateEmailIdentityPolicy_policyName,+ updateEmailIdentityPolicy_policy,+ updateEmailIdentityPolicyResponse_httpStatus,++ -- ** UpdateEmailTemplate+ updateEmailTemplate_templateName,+ updateEmailTemplate_templateContent,+ updateEmailTemplateResponse_httpStatus,++ -- * Types++ -- ** AccountDetails+ accountDetails_additionalContactEmailAddresses,+ accountDetails_contactLanguage,+ accountDetails_mailType,+ accountDetails_reviewDetails,+ accountDetails_useCaseDescription,+ accountDetails_websiteURL,++ -- ** BatchGetMetricDataQuery+ batchGetMetricDataQuery_dimensions,+ batchGetMetricDataQuery_id,+ batchGetMetricDataQuery_namespace,+ batchGetMetricDataQuery_metric,+ batchGetMetricDataQuery_startDate,+ batchGetMetricDataQuery_endDate,++ -- ** BlacklistEntry+ blacklistEntry_description,+ blacklistEntry_listingTime,+ blacklistEntry_rblName,++ -- ** Body+ body_html,+ body_text,++ -- ** BulkEmailContent+ bulkEmailContent_template,++ -- ** BulkEmailEntry+ bulkEmailEntry_replacementEmailContent,+ bulkEmailEntry_replacementTags,+ bulkEmailEntry_destination,++ -- ** BulkEmailEntryResult+ bulkEmailEntryResult_error,+ bulkEmailEntryResult_messageId,+ bulkEmailEntryResult_status,++ -- ** CloudWatchDestination+ cloudWatchDestination_dimensionConfigurations,++ -- ** CloudWatchDimensionConfiguration+ cloudWatchDimensionConfiguration_dimensionName,+ cloudWatchDimensionConfiguration_dimensionValueSource,+ cloudWatchDimensionConfiguration_defaultDimensionValue,++ -- ** Contact+ contact_emailAddress,+ contact_lastUpdatedTimestamp,+ contact_topicDefaultPreferences,+ contact_topicPreferences,+ contact_unsubscribeAll,++ -- ** ContactList+ contactList_contactListName,+ contactList_lastUpdatedTimestamp,++ -- ** ContactListDestination+ contactListDestination_contactListName,+ contactListDestination_contactListImportAction,++ -- ** Content+ content_charset,+ content_data,++ -- ** CustomVerificationEmailTemplateMetadata+ customVerificationEmailTemplateMetadata_failureRedirectionURL,+ customVerificationEmailTemplateMetadata_fromEmailAddress,+ customVerificationEmailTemplateMetadata_successRedirectionURL,+ customVerificationEmailTemplateMetadata_templateName,+ customVerificationEmailTemplateMetadata_templateSubject,++ -- ** DailyVolume+ dailyVolume_domainIspPlacements,+ dailyVolume_startDate,+ dailyVolume_volumeStatistics,++ -- ** DashboardAttributes+ dashboardAttributes_engagementMetrics,++ -- ** DashboardOptions+ dashboardOptions_engagementMetrics,++ -- ** DedicatedIp+ dedicatedIp_poolName,+ dedicatedIp_ip,+ dedicatedIp_warmupStatus,+ dedicatedIp_warmupPercentage,++ -- ** DedicatedIpPool+ dedicatedIpPool_poolName,+ dedicatedIpPool_scalingMode,++ -- ** DeliverabilityTestReport+ deliverabilityTestReport_createDate,+ deliverabilityTestReport_deliverabilityTestStatus,+ deliverabilityTestReport_fromEmailAddress,+ deliverabilityTestReport_reportId,+ deliverabilityTestReport_reportName,+ deliverabilityTestReport_subject,++ -- ** DeliveryOptions+ deliveryOptions_sendingPoolName,+ deliveryOptions_tlsPolicy,++ -- ** Destination+ destination_bccAddresses,+ destination_ccAddresses,+ destination_toAddresses,++ -- ** DkimAttributes+ dkimAttributes_currentSigningKeyLength,+ dkimAttributes_lastKeyGenerationTimestamp,+ dkimAttributes_nextSigningKeyLength,+ dkimAttributes_signingAttributesOrigin,+ dkimAttributes_signingEnabled,+ dkimAttributes_status,+ dkimAttributes_tokens,++ -- ** DkimSigningAttributes+ dkimSigningAttributes_domainSigningPrivateKey,+ dkimSigningAttributes_domainSigningSelector,+ dkimSigningAttributes_nextSigningKeyLength,++ -- ** DomainDeliverabilityCampaign+ domainDeliverabilityCampaign_campaignId,+ domainDeliverabilityCampaign_deleteRate,+ domainDeliverabilityCampaign_esps,+ domainDeliverabilityCampaign_firstSeenDateTime,+ domainDeliverabilityCampaign_fromAddress,+ domainDeliverabilityCampaign_imageUrl,+ domainDeliverabilityCampaign_inboxCount,+ domainDeliverabilityCampaign_lastSeenDateTime,+ domainDeliverabilityCampaign_projectedVolume,+ domainDeliverabilityCampaign_readDeleteRate,+ domainDeliverabilityCampaign_readRate,+ domainDeliverabilityCampaign_sendingIps,+ domainDeliverabilityCampaign_spamCount,+ domainDeliverabilityCampaign_subject,++ -- ** DomainDeliverabilityTrackingOption+ domainDeliverabilityTrackingOption_domain,+ domainDeliverabilityTrackingOption_inboxPlacementTrackingOption,+ domainDeliverabilityTrackingOption_subscriptionStartDate,++ -- ** DomainIspPlacement+ domainIspPlacement_inboxPercentage,+ domainIspPlacement_inboxRawCount,+ domainIspPlacement_ispName,+ domainIspPlacement_spamPercentage,+ domainIspPlacement_spamRawCount,++ -- ** EmailContent+ emailContent_raw,+ emailContent_simple,+ emailContent_template,++ -- ** EmailTemplateContent+ emailTemplateContent_html,+ emailTemplateContent_subject,+ emailTemplateContent_text,++ -- ** EmailTemplateMetadata+ emailTemplateMetadata_createdTimestamp,+ emailTemplateMetadata_templateName,++ -- ** EventDestination+ eventDestination_cloudWatchDestination,+ eventDestination_enabled,+ eventDestination_kinesisFirehoseDestination,+ eventDestination_pinpointDestination,+ eventDestination_snsDestination,+ eventDestination_name,+ eventDestination_matchingEventTypes,++ -- ** EventDestinationDefinition+ eventDestinationDefinition_cloudWatchDestination,+ eventDestinationDefinition_enabled,+ eventDestinationDefinition_kinesisFirehoseDestination,+ eventDestinationDefinition_matchingEventTypes,+ eventDestinationDefinition_pinpointDestination,+ eventDestinationDefinition_snsDestination,++ -- ** FailureInfo+ failureInfo_errorMessage,+ failureInfo_failedRecordsS3Url,++ -- ** GuardianAttributes+ guardianAttributes_optimizedSharedDelivery,++ -- ** GuardianOptions+ guardianOptions_optimizedSharedDelivery,++ -- ** IdentityInfo+ identityInfo_identityName,+ identityInfo_identityType,+ identityInfo_sendingEnabled,+ identityInfo_verificationStatus,++ -- ** ImportDataSource+ importDataSource_s3Url,+ importDataSource_dataFormat,++ -- ** ImportDestination+ importDestination_contactListDestination,+ importDestination_suppressionListDestination,++ -- ** ImportJobSummary+ importJobSummary_createdTimestamp,+ importJobSummary_failedRecordsCount,+ importJobSummary_importDestination,+ importJobSummary_jobId,+ importJobSummary_jobStatus,+ importJobSummary_processedRecordsCount,++ -- ** InboxPlacementTrackingOption+ inboxPlacementTrackingOption_global,+ inboxPlacementTrackingOption_trackedIsps,++ -- ** IspPlacement+ ispPlacement_ispName,+ ispPlacement_placementStatistics,++ -- ** KinesisFirehoseDestination+ kinesisFirehoseDestination_iamRoleArn,+ kinesisFirehoseDestination_deliveryStreamArn,++ -- ** ListContactsFilter+ listContactsFilter_filteredStatus,+ listContactsFilter_topicFilter,++ -- ** ListManagementOptions+ listManagementOptions_topicName,+ listManagementOptions_contactListName,++ -- ** MailFromAttributes+ mailFromAttributes_mailFromDomain,+ mailFromAttributes_mailFromDomainStatus,+ mailFromAttributes_behaviorOnMxFailure,++ -- ** Message+ message_subject,+ message_body,++ -- ** MessageTag+ messageTag_name,+ messageTag_value,++ -- ** MetricDataError+ metricDataError_code,+ metricDataError_id,+ metricDataError_message,++ -- ** MetricDataResult+ metricDataResult_id,+ metricDataResult_timestamps,+ metricDataResult_values,++ -- ** OverallVolume+ overallVolume_domainIspPlacements,+ overallVolume_readRatePercent,+ overallVolume_volumeStatistics,++ -- ** PinpointDestination+ pinpointDestination_applicationArn,++ -- ** PlacementStatistics+ placementStatistics_dkimPercentage,+ placementStatistics_inboxPercentage,+ placementStatistics_missingPercentage,+ placementStatistics_spamPercentage,+ placementStatistics_spfPercentage,++ -- ** RawMessage+ rawMessage_data,++ -- ** Recommendation+ recommendation_createdTimestamp,+ recommendation_description,+ recommendation_impact,+ recommendation_lastUpdatedTimestamp,+ recommendation_resourceArn,+ recommendation_status,+ recommendation_type,++ -- ** ReplacementEmailContent+ replacementEmailContent_replacementTemplate,++ -- ** ReplacementTemplate+ replacementTemplate_replacementTemplateData,++ -- ** ReputationOptions+ reputationOptions_lastFreshStart,+ reputationOptions_reputationMetricsEnabled,++ -- ** ReviewDetails+ reviewDetails_caseId,+ reviewDetails_status,++ -- ** SendQuota+ sendQuota_max24HourSend,+ sendQuota_maxSendRate,+ sendQuota_sentLast24Hours,++ -- ** SendingOptions+ sendingOptions_sendingEnabled,++ -- ** SnsDestination+ snsDestination_topicArn,++ -- ** SuppressedDestination+ suppressedDestination_attributes,+ suppressedDestination_emailAddress,+ suppressedDestination_reason,+ suppressedDestination_lastUpdateTime,++ -- ** SuppressedDestinationAttributes+ suppressedDestinationAttributes_feedbackId,+ suppressedDestinationAttributes_messageId,++ -- ** SuppressedDestinationSummary+ suppressedDestinationSummary_emailAddress,+ suppressedDestinationSummary_reason,+ suppressedDestinationSummary_lastUpdateTime,++ -- ** SuppressionAttributes+ suppressionAttributes_suppressedReasons,++ -- ** SuppressionListDestination+ suppressionListDestination_suppressionListImportAction,++ -- ** SuppressionOptions+ suppressionOptions_suppressedReasons,++ -- ** Tag+ tag_key,+ tag_value,++ -- ** Template+ template_templateArn,+ template_templateData,+ template_templateName,++ -- ** Topic+ topic_description,+ topic_topicName,+ topic_displayName,+ topic_defaultSubscriptionStatus,++ -- ** TopicFilter+ topicFilter_topicName,+ topicFilter_useDefaultIfPreferenceUnavailable,++ -- ** TopicPreference+ topicPreference_topicName,+ topicPreference_subscriptionStatus,++ -- ** TrackingOptions+ trackingOptions_customRedirectDomain,++ -- ** VdmAttributes+ vdmAttributes_dashboardAttributes,+ vdmAttributes_guardianAttributes,+ vdmAttributes_vdmEnabled,++ -- ** VdmOptions+ vdmOptions_dashboardOptions,+ vdmOptions_guardianOptions,++ -- ** VolumeStatistics+ volumeStatistics_inboxRawCount,+ volumeStatistics_projectedInbox,+ volumeStatistics_projectedSpam,+ volumeStatistics_spamRawCount,+ )+where++import Amazonka.SESV2.BatchGetMetricData+import Amazonka.SESV2.CreateConfigurationSet+import Amazonka.SESV2.CreateConfigurationSetEventDestination+import Amazonka.SESV2.CreateContact+import Amazonka.SESV2.CreateContactList+import Amazonka.SESV2.CreateCustomVerificationEmailTemplate+import Amazonka.SESV2.CreateDedicatedIpPool+import Amazonka.SESV2.CreateDeliverabilityTestReport+import Amazonka.SESV2.CreateEmailIdentity+import Amazonka.SESV2.CreateEmailIdentityPolicy+import Amazonka.SESV2.CreateEmailTemplate+import Amazonka.SESV2.CreateImportJob+import Amazonka.SESV2.DeleteConfigurationSet+import Amazonka.SESV2.DeleteConfigurationSetEventDestination+import Amazonka.SESV2.DeleteContact+import Amazonka.SESV2.DeleteContactList+import Amazonka.SESV2.DeleteCustomVerificationEmailTemplate+import Amazonka.SESV2.DeleteDedicatedIpPool+import Amazonka.SESV2.DeleteEmailIdentity+import Amazonka.SESV2.DeleteEmailIdentityPolicy+import Amazonka.SESV2.DeleteEmailTemplate+import Amazonka.SESV2.DeleteSuppressedDestination+import Amazonka.SESV2.GetAccount+import Amazonka.SESV2.GetBlacklistReports+import Amazonka.SESV2.GetConfigurationSet+import Amazonka.SESV2.GetConfigurationSetEventDestinations+import Amazonka.SESV2.GetContact+import Amazonka.SESV2.GetContactList+import Amazonka.SESV2.GetCustomVerificationEmailTemplate+import Amazonka.SESV2.GetDedicatedIp+import Amazonka.SESV2.GetDedicatedIpPool+import Amazonka.SESV2.GetDedicatedIps+import Amazonka.SESV2.GetDeliverabilityDashboardOptions+import Amazonka.SESV2.GetDeliverabilityTestReport+import Amazonka.SESV2.GetDomainDeliverabilityCampaign+import Amazonka.SESV2.GetDomainStatisticsReport+import Amazonka.SESV2.GetEmailIdentity+import Amazonka.SESV2.GetEmailIdentityPolicies+import Amazonka.SESV2.GetEmailTemplate+import Amazonka.SESV2.GetImportJob+import Amazonka.SESV2.GetSuppressedDestination+import Amazonka.SESV2.ListConfigurationSets+import Amazonka.SESV2.ListContactLists+import Amazonka.SESV2.ListContacts+import Amazonka.SESV2.ListCustomVerificationEmailTemplates+import Amazonka.SESV2.ListDedicatedIpPools+import Amazonka.SESV2.ListDeliverabilityTestReports+import Amazonka.SESV2.ListDomainDeliverabilityCampaigns+import Amazonka.SESV2.ListEmailIdentities+import Amazonka.SESV2.ListEmailTemplates+import Amazonka.SESV2.ListImportJobs+import Amazonka.SESV2.ListRecommendations+import Amazonka.SESV2.ListSuppressedDestinations+import Amazonka.SESV2.ListTagsForResource+import Amazonka.SESV2.PutAccountDedicatedIpWarmupAttributes+import Amazonka.SESV2.PutAccountDetails+import Amazonka.SESV2.PutAccountSendingAttributes+import Amazonka.SESV2.PutAccountSuppressionAttributes+import Amazonka.SESV2.PutAccountVdmAttributes+import Amazonka.SESV2.PutConfigurationSetDeliveryOptions+import Amazonka.SESV2.PutConfigurationSetReputationOptions+import Amazonka.SESV2.PutConfigurationSetSendingOptions+import Amazonka.SESV2.PutConfigurationSetSuppressionOptions+import Amazonka.SESV2.PutConfigurationSetTrackingOptions+import Amazonka.SESV2.PutConfigurationSetVdmOptions+import Amazonka.SESV2.PutDedicatedIpInPool+import Amazonka.SESV2.PutDedicatedIpWarmupAttributes+import Amazonka.SESV2.PutDeliverabilityDashboardOption+import Amazonka.SESV2.PutEmailIdentityConfigurationSetAttributes+import Amazonka.SESV2.PutEmailIdentityDkimAttributes+import Amazonka.SESV2.PutEmailIdentityDkimSigningAttributes+import Amazonka.SESV2.PutEmailIdentityFeedbackAttributes+import Amazonka.SESV2.PutEmailIdentityMailFromAttributes+import Amazonka.SESV2.PutSuppressedDestination+import Amazonka.SESV2.SendBulkEmail+import Amazonka.SESV2.SendCustomVerificationEmail+import Amazonka.SESV2.SendEmail+import Amazonka.SESV2.TagResource+import Amazonka.SESV2.TestRenderEmailTemplate+import Amazonka.SESV2.Types.AccountDetails+import Amazonka.SESV2.Types.BatchGetMetricDataQuery+import Amazonka.SESV2.Types.BlacklistEntry+import Amazonka.SESV2.Types.Body+import Amazonka.SESV2.Types.BulkEmailContent+import Amazonka.SESV2.Types.BulkEmailEntry+import Amazonka.SESV2.Types.BulkEmailEntryResult+import Amazonka.SESV2.Types.CloudWatchDestination+import Amazonka.SESV2.Types.CloudWatchDimensionConfiguration+import Amazonka.SESV2.Types.Contact+import Amazonka.SESV2.Types.ContactList+import Amazonka.SESV2.Types.ContactListDestination+import Amazonka.SESV2.Types.Content+import Amazonka.SESV2.Types.CustomVerificationEmailTemplateMetadata+import Amazonka.SESV2.Types.DailyVolume+import Amazonka.SESV2.Types.DashboardAttributes+import Amazonka.SESV2.Types.DashboardOptions+import Amazonka.SESV2.Types.DedicatedIp+import Amazonka.SESV2.Types.DedicatedIpPool+import Amazonka.SESV2.Types.DeliverabilityTestReport+import Amazonka.SESV2.Types.DeliveryOptions+import Amazonka.SESV2.Types.Destination+import Amazonka.SESV2.Types.DkimAttributes+import Amazonka.SESV2.Types.DkimSigningAttributes+import Amazonka.SESV2.Types.DomainDeliverabilityCampaign+import Amazonka.SESV2.Types.DomainDeliverabilityTrackingOption+import Amazonka.SESV2.Types.DomainIspPlacement+import Amazonka.SESV2.Types.EmailContent+import Amazonka.SESV2.Types.EmailTemplateContent+import Amazonka.SESV2.Types.EmailTemplateMetadata+import Amazonka.SESV2.Types.EventDestination+import Amazonka.SESV2.Types.EventDestinationDefinition+import Amazonka.SESV2.Types.FailureInfo+import Amazonka.SESV2.Types.GuardianAttributes+import Amazonka.SESV2.Types.GuardianOptions+import Amazonka.SESV2.Types.IdentityInfo+import Amazonka.SESV2.Types.ImportDataSource+import Amazonka.SESV2.Types.ImportDestination+import Amazonka.SESV2.Types.ImportJobSummary+import Amazonka.SESV2.Types.InboxPlacementTrackingOption+import Amazonka.SESV2.Types.IspPlacement+import Amazonka.SESV2.Types.KinesisFirehoseDestination+import Amazonka.SESV2.Types.ListContactsFilter+import Amazonka.SESV2.Types.ListManagementOptions+import Amazonka.SESV2.Types.MailFromAttributes+import Amazonka.SESV2.Types.Message+import Amazonka.SESV2.Types.MessageTag+import Amazonka.SESV2.Types.MetricDataError+import Amazonka.SESV2.Types.MetricDataResult+import Amazonka.SESV2.Types.OverallVolume+import Amazonka.SESV2.Types.PinpointDestination+import Amazonka.SESV2.Types.PlacementStatistics+import Amazonka.SESV2.Types.RawMessage+import Amazonka.SESV2.Types.Recommendation+import Amazonka.SESV2.Types.ReplacementEmailContent+import Amazonka.SESV2.Types.ReplacementTemplate+import Amazonka.SESV2.Types.ReputationOptions+import Amazonka.SESV2.Types.ReviewDetails+import Amazonka.SESV2.Types.SendQuota+import Amazonka.SESV2.Types.SendingOptions+import Amazonka.SESV2.Types.SnsDestination+import Amazonka.SESV2.Types.SuppressedDestination+import Amazonka.SESV2.Types.SuppressedDestinationAttributes+import Amazonka.SESV2.Types.SuppressedDestinationSummary+import Amazonka.SESV2.Types.SuppressionAttributes+import Amazonka.SESV2.Types.SuppressionListDestination+import Amazonka.SESV2.Types.SuppressionOptions+import Amazonka.SESV2.Types.Tag+import Amazonka.SESV2.Types.Template+import Amazonka.SESV2.Types.Topic+import Amazonka.SESV2.Types.TopicFilter+import Amazonka.SESV2.Types.TopicPreference+import Amazonka.SESV2.Types.TrackingOptions+import Amazonka.SESV2.Types.VdmAttributes+import Amazonka.SESV2.Types.VdmOptions+import Amazonka.SESV2.Types.VolumeStatistics+import Amazonka.SESV2.UntagResource+import Amazonka.SESV2.UpdateConfigurationSetEventDestination+import Amazonka.SESV2.UpdateContact+import Amazonka.SESV2.UpdateContactList+import Amazonka.SESV2.UpdateCustomVerificationEmailTemplate+import Amazonka.SESV2.UpdateEmailIdentityPolicy+import Amazonka.SESV2.UpdateEmailTemplate
+ gen/Amazonka/SESV2/ListConfigurationSets.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.SESV2.ListConfigurationSets+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- List all of the configuration sets associated with your account in the+-- current region.+--+-- /Configuration sets/ are groups of rules that you can apply to the+-- emails you send. You apply a configuration set to an email by including+-- a reference to the configuration set in the headers of the email. When+-- you apply a configuration set to an email, all of the rules in that+-- configuration set are applied to the email.+module Amazonka.SESV2.ListConfigurationSets+ ( -- * Creating a Request+ ListConfigurationSets (..),+ newListConfigurationSets,++ -- * Request Lenses+ listConfigurationSets_nextToken,+ listConfigurationSets_pageSize,++ -- * Destructuring the Response+ ListConfigurationSetsResponse (..),+ newListConfigurationSetsResponse,++ -- * Response Lenses+ listConfigurationSetsResponse_configurationSets,+ listConfigurationSetsResponse_nextToken,+ listConfigurationSetsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to obtain a list of configuration sets for your Amazon SES+-- account in the current Amazon Web Services Region.+--+-- /See:/ 'newListConfigurationSets' smart constructor.+data ListConfigurationSets = ListConfigurationSets'+ { -- | A token returned from a previous call to @ListConfigurationSets@ to+ -- indicate the position in the list of configuration sets.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The number of results to show in a single call to+ -- @ListConfigurationSets@. If the number of results is larger than the+ -- number you specified in this parameter, then the response includes a+ -- @NextToken@ element, which you can use to obtain additional results.+ pageSize :: Prelude.Maybe Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListConfigurationSets' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listConfigurationSets_nextToken' - A token returned from a previous call to @ListConfigurationSets@ to+-- indicate the position in the list of configuration sets.+--+-- 'pageSize', 'listConfigurationSets_pageSize' - The number of results to show in a single call to+-- @ListConfigurationSets@. If the number of results is larger than the+-- number you specified in this parameter, then the response includes a+-- @NextToken@ element, which you can use to obtain additional results.+newListConfigurationSets ::+ ListConfigurationSets+newListConfigurationSets =+ ListConfigurationSets'+ { nextToken = Prelude.Nothing,+ pageSize = Prelude.Nothing+ }++-- | A token returned from a previous call to @ListConfigurationSets@ to+-- indicate the position in the list of configuration sets.+listConfigurationSets_nextToken :: Lens.Lens' ListConfigurationSets (Prelude.Maybe Prelude.Text)+listConfigurationSets_nextToken = Lens.lens (\ListConfigurationSets' {nextToken} -> nextToken) (\s@ListConfigurationSets' {} a -> s {nextToken = a} :: ListConfigurationSets)++-- | The number of results to show in a single call to+-- @ListConfigurationSets@. If the number of results is larger than the+-- number you specified in this parameter, then the response includes a+-- @NextToken@ element, which you can use to obtain additional results.+listConfigurationSets_pageSize :: Lens.Lens' ListConfigurationSets (Prelude.Maybe Prelude.Int)+listConfigurationSets_pageSize = Lens.lens (\ListConfigurationSets' {pageSize} -> pageSize) (\s@ListConfigurationSets' {} a -> s {pageSize = a} :: ListConfigurationSets)++instance Core.AWSRequest ListConfigurationSets where+ type+ AWSResponse ListConfigurationSets =+ ListConfigurationSetsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListConfigurationSetsResponse'+ Prelude.<$> ( x+ Data..?> "ConfigurationSets"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListConfigurationSets where+ hashWithSalt _salt ListConfigurationSets' {..} =+ _salt+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` pageSize++instance Prelude.NFData ListConfigurationSets where+ rnf ListConfigurationSets' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf pageSize++instance Data.ToHeaders ListConfigurationSets where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListConfigurationSets where+ toPath = Prelude.const "/v2/email/configuration-sets"++instance Data.ToQuery ListConfigurationSets where+ toQuery ListConfigurationSets' {..} =+ Prelude.mconcat+ [ "NextToken" Data.=: nextToken,+ "PageSize" Data.=: pageSize+ ]++-- | A list of configuration sets in your Amazon SES account in the current+-- Amazon Web Services Region.+--+-- /See:/ 'newListConfigurationSetsResponse' smart constructor.+data ListConfigurationSetsResponse = ListConfigurationSetsResponse'+ { -- | An array that contains all of the configuration sets in your Amazon SES+ -- account in the current Amazon Web Services Region.+ configurationSets :: Prelude.Maybe [Prelude.Text],+ -- | A token that indicates that there are additional configuration sets to+ -- list. To view additional configuration sets, issue another request to+ -- @ListConfigurationSets@, and pass this token in the @NextToken@+ -- parameter.+ 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 'ListConfigurationSetsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configurationSets', 'listConfigurationSetsResponse_configurationSets' - An array that contains all of the configuration sets in your Amazon SES+-- account in the current Amazon Web Services Region.+--+-- 'nextToken', 'listConfigurationSetsResponse_nextToken' - A token that indicates that there are additional configuration sets to+-- list. To view additional configuration sets, issue another request to+-- @ListConfigurationSets@, and pass this token in the @NextToken@+-- parameter.+--+-- 'httpStatus', 'listConfigurationSetsResponse_httpStatus' - The response's http status code.+newListConfigurationSetsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListConfigurationSetsResponse+newListConfigurationSetsResponse pHttpStatus_ =+ ListConfigurationSetsResponse'+ { configurationSets =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | An array that contains all of the configuration sets in your Amazon SES+-- account in the current Amazon Web Services Region.+listConfigurationSetsResponse_configurationSets :: Lens.Lens' ListConfigurationSetsResponse (Prelude.Maybe [Prelude.Text])+listConfigurationSetsResponse_configurationSets = Lens.lens (\ListConfigurationSetsResponse' {configurationSets} -> configurationSets) (\s@ListConfigurationSetsResponse' {} a -> s {configurationSets = a} :: ListConfigurationSetsResponse) Prelude.. Lens.mapping Lens.coerced++-- | A token that indicates that there are additional configuration sets to+-- list. To view additional configuration sets, issue another request to+-- @ListConfigurationSets@, and pass this token in the @NextToken@+-- parameter.+listConfigurationSetsResponse_nextToken :: Lens.Lens' ListConfigurationSetsResponse (Prelude.Maybe Prelude.Text)+listConfigurationSetsResponse_nextToken = Lens.lens (\ListConfigurationSetsResponse' {nextToken} -> nextToken) (\s@ListConfigurationSetsResponse' {} a -> s {nextToken = a} :: ListConfigurationSetsResponse)++-- | The response's http status code.+listConfigurationSetsResponse_httpStatus :: Lens.Lens' ListConfigurationSetsResponse Prelude.Int+listConfigurationSetsResponse_httpStatus = Lens.lens (\ListConfigurationSetsResponse' {httpStatus} -> httpStatus) (\s@ListConfigurationSetsResponse' {} a -> s {httpStatus = a} :: ListConfigurationSetsResponse)++instance Prelude.NFData ListConfigurationSetsResponse where+ rnf ListConfigurationSetsResponse' {..} =+ Prelude.rnf configurationSets+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/ListContactLists.hs view
@@ -0,0 +1,214 @@+{-# 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.SESV2.ListContactLists+-- 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 contact lists available.+module Amazonka.SESV2.ListContactLists+ ( -- * Creating a Request+ ListContactLists (..),+ newListContactLists,++ -- * Request Lenses+ listContactLists_nextToken,+ listContactLists_pageSize,++ -- * Destructuring the Response+ ListContactListsResponse (..),+ newListContactListsResponse,++ -- * Response Lenses+ listContactListsResponse_contactLists,+ listContactListsResponse_nextToken,+ listContactListsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | /See:/ 'newListContactLists' smart constructor.+data ListContactLists = ListContactLists'+ { -- | A string token indicating that there might be additional contact lists+ -- available to be listed. Use the token provided in the Response to use in+ -- the subsequent call to ListContactLists with the same parameters to+ -- retrieve the next page of contact lists.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | Maximum number of contact lists to return at once. Use this parameter to+ -- paginate results. If additional contact lists exist beyond the specified+ -- limit, the @NextToken@ element is sent in the response. Use the+ -- @NextToken@ value in subsequent requests to retrieve additional lists.+ pageSize :: Prelude.Maybe Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListContactLists' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listContactLists_nextToken' - A string token indicating that there might be additional contact lists+-- available to be listed. Use the token provided in the Response to use in+-- the subsequent call to ListContactLists with the same parameters to+-- retrieve the next page of contact lists.+--+-- 'pageSize', 'listContactLists_pageSize' - Maximum number of contact lists to return at once. Use this parameter to+-- paginate results. If additional contact lists exist beyond the specified+-- limit, the @NextToken@ element is sent in the response. Use the+-- @NextToken@ value in subsequent requests to retrieve additional lists.+newListContactLists ::+ ListContactLists+newListContactLists =+ ListContactLists'+ { nextToken = Prelude.Nothing,+ pageSize = Prelude.Nothing+ }++-- | A string token indicating that there might be additional contact lists+-- available to be listed. Use the token provided in the Response to use in+-- the subsequent call to ListContactLists with the same parameters to+-- retrieve the next page of contact lists.+listContactLists_nextToken :: Lens.Lens' ListContactLists (Prelude.Maybe Prelude.Text)+listContactLists_nextToken = Lens.lens (\ListContactLists' {nextToken} -> nextToken) (\s@ListContactLists' {} a -> s {nextToken = a} :: ListContactLists)++-- | Maximum number of contact lists to return at once. Use this parameter to+-- paginate results. If additional contact lists exist beyond the specified+-- limit, the @NextToken@ element is sent in the response. Use the+-- @NextToken@ value in subsequent requests to retrieve additional lists.+listContactLists_pageSize :: Lens.Lens' ListContactLists (Prelude.Maybe Prelude.Int)+listContactLists_pageSize = Lens.lens (\ListContactLists' {pageSize} -> pageSize) (\s@ListContactLists' {} a -> s {pageSize = a} :: ListContactLists)++instance Core.AWSRequest ListContactLists where+ type+ AWSResponse ListContactLists =+ ListContactListsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListContactListsResponse'+ Prelude.<$> (x Data..?> "ContactLists" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListContactLists where+ hashWithSalt _salt ListContactLists' {..} =+ _salt+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` pageSize++instance Prelude.NFData ListContactLists where+ rnf ListContactLists' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf pageSize++instance Data.ToHeaders ListContactLists where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListContactLists where+ toPath = Prelude.const "/v2/email/contact-lists"++instance Data.ToQuery ListContactLists where+ toQuery ListContactLists' {..} =+ Prelude.mconcat+ [ "NextToken" Data.=: nextToken,+ "PageSize" Data.=: pageSize+ ]++-- | /See:/ 'newListContactListsResponse' smart constructor.+data ListContactListsResponse = ListContactListsResponse'+ { -- | The available contact lists.+ contactLists :: Prelude.Maybe [ContactList],+ -- | A string token indicating that there might be additional contact lists+ -- available to be listed. Copy this token to a subsequent call to+ -- @ListContactLists@ with the same parameters to retrieve the next page of+ -- contact lists.+ 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 'ListContactListsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contactLists', 'listContactListsResponse_contactLists' - The available contact lists.+--+-- 'nextToken', 'listContactListsResponse_nextToken' - A string token indicating that there might be additional contact lists+-- available to be listed. Copy this token to a subsequent call to+-- @ListContactLists@ with the same parameters to retrieve the next page of+-- contact lists.+--+-- 'httpStatus', 'listContactListsResponse_httpStatus' - The response's http status code.+newListContactListsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListContactListsResponse+newListContactListsResponse pHttpStatus_ =+ ListContactListsResponse'+ { contactLists =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The available contact lists.+listContactListsResponse_contactLists :: Lens.Lens' ListContactListsResponse (Prelude.Maybe [ContactList])+listContactListsResponse_contactLists = Lens.lens (\ListContactListsResponse' {contactLists} -> contactLists) (\s@ListContactListsResponse' {} a -> s {contactLists = a} :: ListContactListsResponse) Prelude.. Lens.mapping Lens.coerced++-- | A string token indicating that there might be additional contact lists+-- available to be listed. Copy this token to a subsequent call to+-- @ListContactLists@ with the same parameters to retrieve the next page of+-- contact lists.+listContactListsResponse_nextToken :: Lens.Lens' ListContactListsResponse (Prelude.Maybe Prelude.Text)+listContactListsResponse_nextToken = Lens.lens (\ListContactListsResponse' {nextToken} -> nextToken) (\s@ListContactListsResponse' {} a -> s {nextToken = a} :: ListContactListsResponse)++-- | The response's http status code.+listContactListsResponse_httpStatus :: Lens.Lens' ListContactListsResponse Prelude.Int+listContactListsResponse_httpStatus = Lens.lens (\ListContactListsResponse' {httpStatus} -> httpStatus) (\s@ListContactListsResponse' {} a -> s {httpStatus = a} :: ListContactListsResponse)++instance Prelude.NFData ListContactListsResponse where+ rnf ListContactListsResponse' {..} =+ Prelude.rnf contactLists+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/ListContacts.hs view
@@ -0,0 +1,248 @@+{-# 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.SESV2.ListContacts+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the contacts present in a specific contact list.+module Amazonka.SESV2.ListContacts+ ( -- * Creating a Request+ ListContacts (..),+ newListContacts,++ -- * Request Lenses+ listContacts_filter,+ listContacts_nextToken,+ listContacts_pageSize,+ listContacts_contactListName,++ -- * Destructuring the Response+ ListContactsResponse (..),+ newListContactsResponse,++ -- * Response Lenses+ listContactsResponse_contacts,+ listContactsResponse_nextToken,+ listContactsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | /See:/ 'newListContacts' smart constructor.+data ListContacts = ListContacts'+ { -- | A filter that can be applied to a list of contacts.+ filter' :: Prelude.Maybe ListContactsFilter,+ -- | A string token indicating that there might be additional contacts+ -- available to be listed. Use the token provided in the Response to use in+ -- the subsequent call to ListContacts with the same parameters to retrieve+ -- the next page of contacts.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The number of contacts that may be returned at once, which is dependent+ -- on if there are more or less contacts than the value of the PageSize.+ -- Use this parameter to paginate results. If additional contacts exist+ -- beyond the specified limit, the @NextToken@ element is sent in the+ -- response. Use the @NextToken@ value in subsequent requests to retrieve+ -- additional contacts.+ pageSize :: Prelude.Maybe Prelude.Int,+ -- | The name of the contact list.+ contactListName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListContacts' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filter'', 'listContacts_filter' - A filter that can be applied to a list of contacts.+--+-- 'nextToken', 'listContacts_nextToken' - A string token indicating that there might be additional contacts+-- available to be listed. Use the token provided in the Response to use in+-- the subsequent call to ListContacts with the same parameters to retrieve+-- the next page of contacts.+--+-- 'pageSize', 'listContacts_pageSize' - The number of contacts that may be returned at once, which is dependent+-- on if there are more or less contacts than the value of the PageSize.+-- Use this parameter to paginate results. If additional contacts exist+-- beyond the specified limit, the @NextToken@ element is sent in the+-- response. Use the @NextToken@ value in subsequent requests to retrieve+-- additional contacts.+--+-- 'contactListName', 'listContacts_contactListName' - The name of the contact list.+newListContacts ::+ -- | 'contactListName'+ Prelude.Text ->+ ListContacts+newListContacts pContactListName_ =+ ListContacts'+ { filter' = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ pageSize = Prelude.Nothing,+ contactListName = pContactListName_+ }++-- | A filter that can be applied to a list of contacts.+listContacts_filter :: Lens.Lens' ListContacts (Prelude.Maybe ListContactsFilter)+listContacts_filter = Lens.lens (\ListContacts' {filter'} -> filter') (\s@ListContacts' {} a -> s {filter' = a} :: ListContacts)++-- | A string token indicating that there might be additional contacts+-- available to be listed. Use the token provided in the Response to use in+-- the subsequent call to ListContacts with the same parameters to retrieve+-- the next page of contacts.+listContacts_nextToken :: Lens.Lens' ListContacts (Prelude.Maybe Prelude.Text)+listContacts_nextToken = Lens.lens (\ListContacts' {nextToken} -> nextToken) (\s@ListContacts' {} a -> s {nextToken = a} :: ListContacts)++-- | The number of contacts that may be returned at once, which is dependent+-- on if there are more or less contacts than the value of the PageSize.+-- Use this parameter to paginate results. If additional contacts exist+-- beyond the specified limit, the @NextToken@ element is sent in the+-- response. Use the @NextToken@ value in subsequent requests to retrieve+-- additional contacts.+listContacts_pageSize :: Lens.Lens' ListContacts (Prelude.Maybe Prelude.Int)+listContacts_pageSize = Lens.lens (\ListContacts' {pageSize} -> pageSize) (\s@ListContacts' {} a -> s {pageSize = a} :: ListContacts)++-- | The name of the contact list.+listContacts_contactListName :: Lens.Lens' ListContacts Prelude.Text+listContacts_contactListName = Lens.lens (\ListContacts' {contactListName} -> contactListName) (\s@ListContacts' {} a -> s {contactListName = a} :: ListContacts)++instance Core.AWSRequest ListContacts where+ type AWSResponse ListContacts = ListContactsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListContactsResponse'+ Prelude.<$> (x Data..?> "Contacts" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListContacts where+ hashWithSalt _salt ListContacts' {..} =+ _salt+ `Prelude.hashWithSalt` filter'+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` pageSize+ `Prelude.hashWithSalt` contactListName++instance Prelude.NFData ListContacts where+ rnf ListContacts' {..} =+ Prelude.rnf filter'+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf pageSize+ `Prelude.seq` Prelude.rnf contactListName++instance Data.ToHeaders ListContacts where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListContacts where+ toPath ListContacts' {..} =+ Prelude.mconcat+ [ "/v2/email/contact-lists/",+ Data.toBS contactListName,+ "/contacts"+ ]++instance Data.ToQuery ListContacts where+ toQuery ListContacts' {..} =+ Prelude.mconcat+ [ "NextToken" Data.=: nextToken,+ "PageSize" Data.=: pageSize+ ]++-- | /See:/ 'newListContactsResponse' smart constructor.+data ListContactsResponse = ListContactsResponse'+ { -- | The contacts present in a specific contact list.+ contacts :: Prelude.Maybe [Contact],+ -- | A string token indicating that there might be additional contacts+ -- available to be listed. Copy this token to a subsequent call to+ -- @ListContacts@ with the same parameters to retrieve the next page of+ -- contacts.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListContactsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contacts', 'listContactsResponse_contacts' - The contacts present in a specific contact list.+--+-- 'nextToken', 'listContactsResponse_nextToken' - A string token indicating that there might be additional contacts+-- available to be listed. Copy this token to a subsequent call to+-- @ListContacts@ with the same parameters to retrieve the next page of+-- contacts.+--+-- 'httpStatus', 'listContactsResponse_httpStatus' - The response's http status code.+newListContactsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListContactsResponse+newListContactsResponse pHttpStatus_ =+ ListContactsResponse'+ { contacts = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The contacts present in a specific contact list.+listContactsResponse_contacts :: Lens.Lens' ListContactsResponse (Prelude.Maybe [Contact])+listContactsResponse_contacts = Lens.lens (\ListContactsResponse' {contacts} -> contacts) (\s@ListContactsResponse' {} a -> s {contacts = a} :: ListContactsResponse) Prelude.. Lens.mapping Lens.coerced++-- | A string token indicating that there might be additional contacts+-- available to be listed. Copy this token to a subsequent call to+-- @ListContacts@ with the same parameters to retrieve the next page of+-- contacts.+listContactsResponse_nextToken :: Lens.Lens' ListContactsResponse (Prelude.Maybe Prelude.Text)+listContactsResponse_nextToken = Lens.lens (\ListContactsResponse' {nextToken} -> nextToken) (\s@ListContactsResponse' {} a -> s {nextToken = a} :: ListContactsResponse)++-- | The response's http status code.+listContactsResponse_httpStatus :: Lens.Lens' ListContactsResponse Prelude.Int+listContactsResponse_httpStatus = Lens.lens (\ListContactsResponse' {httpStatus} -> httpStatus) (\s@ListContactsResponse' {} a -> s {httpStatus = a} :: ListContactsResponse)++instance Prelude.NFData ListContactsResponse where+ rnf ListContactsResponse' {..} =+ Prelude.rnf contacts+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/ListCustomVerificationEmailTemplates.hs view
@@ -0,0 +1,265 @@+{-# 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.SESV2.ListCustomVerificationEmailTemplates+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the existing custom verification email templates for your account+-- in the current Amazon Web Services Region.+--+-- For more information about custom verification email templates, see+-- <https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#send-email-verify-address-custom Using custom verification email templates>+-- in the /Amazon SES Developer Guide/.+--+-- You can execute this operation no more than once per second.+module Amazonka.SESV2.ListCustomVerificationEmailTemplates+ ( -- * Creating a Request+ ListCustomVerificationEmailTemplates (..),+ newListCustomVerificationEmailTemplates,++ -- * Request Lenses+ listCustomVerificationEmailTemplates_nextToken,+ listCustomVerificationEmailTemplates_pageSize,++ -- * Destructuring the Response+ ListCustomVerificationEmailTemplatesResponse (..),+ newListCustomVerificationEmailTemplatesResponse,++ -- * Response Lenses+ listCustomVerificationEmailTemplatesResponse_customVerificationEmailTemplates,+ listCustomVerificationEmailTemplatesResponse_nextToken,+ listCustomVerificationEmailTemplatesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | Represents a request to list the existing custom verification email+-- templates for your account.+--+-- /See:/ 'newListCustomVerificationEmailTemplates' smart constructor.+data ListCustomVerificationEmailTemplates = ListCustomVerificationEmailTemplates'+ { -- | A token returned from a previous call to+ -- @ListCustomVerificationEmailTemplates@ to indicate the position in the+ -- list of custom verification email templates.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The number of results to show in a single call to+ -- @ListCustomVerificationEmailTemplates@. If the number of results is+ -- larger than the number you specified in this parameter, then the+ -- response includes a @NextToken@ element, which you can use to obtain+ -- additional results.+ --+ -- The value you specify has to be at least 1, and can be no more than 50.+ pageSize :: Prelude.Maybe Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCustomVerificationEmailTemplates' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listCustomVerificationEmailTemplates_nextToken' - A token returned from a previous call to+-- @ListCustomVerificationEmailTemplates@ to indicate the position in the+-- list of custom verification email templates.+--+-- 'pageSize', 'listCustomVerificationEmailTemplates_pageSize' - The number of results to show in a single call to+-- @ListCustomVerificationEmailTemplates@. If the number of results is+-- larger than the number you specified in this parameter, then the+-- response includes a @NextToken@ element, which you can use to obtain+-- additional results.+--+-- The value you specify has to be at least 1, and can be no more than 50.+newListCustomVerificationEmailTemplates ::+ ListCustomVerificationEmailTemplates+newListCustomVerificationEmailTemplates =+ ListCustomVerificationEmailTemplates'+ { nextToken =+ Prelude.Nothing,+ pageSize = Prelude.Nothing+ }++-- | A token returned from a previous call to+-- @ListCustomVerificationEmailTemplates@ to indicate the position in the+-- list of custom verification email templates.+listCustomVerificationEmailTemplates_nextToken :: Lens.Lens' ListCustomVerificationEmailTemplates (Prelude.Maybe Prelude.Text)+listCustomVerificationEmailTemplates_nextToken = Lens.lens (\ListCustomVerificationEmailTemplates' {nextToken} -> nextToken) (\s@ListCustomVerificationEmailTemplates' {} a -> s {nextToken = a} :: ListCustomVerificationEmailTemplates)++-- | The number of results to show in a single call to+-- @ListCustomVerificationEmailTemplates@. If the number of results is+-- larger than the number you specified in this parameter, then the+-- response includes a @NextToken@ element, which you can use to obtain+-- additional results.+--+-- The value you specify has to be at least 1, and can be no more than 50.+listCustomVerificationEmailTemplates_pageSize :: Lens.Lens' ListCustomVerificationEmailTemplates (Prelude.Maybe Prelude.Int)+listCustomVerificationEmailTemplates_pageSize = Lens.lens (\ListCustomVerificationEmailTemplates' {pageSize} -> pageSize) (\s@ListCustomVerificationEmailTemplates' {} a -> s {pageSize = a} :: ListCustomVerificationEmailTemplates)++instance+ Core.AWSRequest+ ListCustomVerificationEmailTemplates+ where+ type+ AWSResponse ListCustomVerificationEmailTemplates =+ ListCustomVerificationEmailTemplatesResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListCustomVerificationEmailTemplatesResponse'+ Prelude.<$> ( x+ Data..?> "CustomVerificationEmailTemplates"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ ListCustomVerificationEmailTemplates+ where+ hashWithSalt+ _salt+ ListCustomVerificationEmailTemplates' {..} =+ _salt+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` pageSize++instance+ Prelude.NFData+ ListCustomVerificationEmailTemplates+ where+ rnf ListCustomVerificationEmailTemplates' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf pageSize++instance+ Data.ToHeaders+ ListCustomVerificationEmailTemplates+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToPath+ ListCustomVerificationEmailTemplates+ where+ toPath =+ Prelude.const+ "/v2/email/custom-verification-email-templates"++instance+ Data.ToQuery+ ListCustomVerificationEmailTemplates+ where+ toQuery ListCustomVerificationEmailTemplates' {..} =+ Prelude.mconcat+ [ "NextToken" Data.=: nextToken,+ "PageSize" Data.=: pageSize+ ]++-- | The following elements are returned by the service.+--+-- /See:/ 'newListCustomVerificationEmailTemplatesResponse' smart constructor.+data ListCustomVerificationEmailTemplatesResponse = ListCustomVerificationEmailTemplatesResponse'+ { -- | A list of the custom verification email templates that exist in your+ -- account.+ customVerificationEmailTemplates :: Prelude.Maybe [CustomVerificationEmailTemplateMetadata],+ -- | A token indicating that there are additional custom verification email+ -- templates available to be listed. Pass this token to a subsequent call+ -- to @ListCustomVerificationEmailTemplates@ to retrieve the next 50 custom+ -- verification email templates.+ 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 'ListCustomVerificationEmailTemplatesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'customVerificationEmailTemplates', 'listCustomVerificationEmailTemplatesResponse_customVerificationEmailTemplates' - A list of the custom verification email templates that exist in your+-- account.+--+-- 'nextToken', 'listCustomVerificationEmailTemplatesResponse_nextToken' - A token indicating that there are additional custom verification email+-- templates available to be listed. Pass this token to a subsequent call+-- to @ListCustomVerificationEmailTemplates@ to retrieve the next 50 custom+-- verification email templates.+--+-- 'httpStatus', 'listCustomVerificationEmailTemplatesResponse_httpStatus' - The response's http status code.+newListCustomVerificationEmailTemplatesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListCustomVerificationEmailTemplatesResponse+newListCustomVerificationEmailTemplatesResponse+ pHttpStatus_ =+ ListCustomVerificationEmailTemplatesResponse'+ { customVerificationEmailTemplates =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list of the custom verification email templates that exist in your+-- account.+listCustomVerificationEmailTemplatesResponse_customVerificationEmailTemplates :: Lens.Lens' ListCustomVerificationEmailTemplatesResponse (Prelude.Maybe [CustomVerificationEmailTemplateMetadata])+listCustomVerificationEmailTemplatesResponse_customVerificationEmailTemplates = Lens.lens (\ListCustomVerificationEmailTemplatesResponse' {customVerificationEmailTemplates} -> customVerificationEmailTemplates) (\s@ListCustomVerificationEmailTemplatesResponse' {} a -> s {customVerificationEmailTemplates = a} :: ListCustomVerificationEmailTemplatesResponse) Prelude.. Lens.mapping Lens.coerced++-- | A token indicating that there are additional custom verification email+-- templates available to be listed. Pass this token to a subsequent call+-- to @ListCustomVerificationEmailTemplates@ to retrieve the next 50 custom+-- verification email templates.+listCustomVerificationEmailTemplatesResponse_nextToken :: Lens.Lens' ListCustomVerificationEmailTemplatesResponse (Prelude.Maybe Prelude.Text)+listCustomVerificationEmailTemplatesResponse_nextToken = Lens.lens (\ListCustomVerificationEmailTemplatesResponse' {nextToken} -> nextToken) (\s@ListCustomVerificationEmailTemplatesResponse' {} a -> s {nextToken = a} :: ListCustomVerificationEmailTemplatesResponse)++-- | The response's http status code.+listCustomVerificationEmailTemplatesResponse_httpStatus :: Lens.Lens' ListCustomVerificationEmailTemplatesResponse Prelude.Int+listCustomVerificationEmailTemplatesResponse_httpStatus = Lens.lens (\ListCustomVerificationEmailTemplatesResponse' {httpStatus} -> httpStatus) (\s@ListCustomVerificationEmailTemplatesResponse' {} a -> s {httpStatus = a} :: ListCustomVerificationEmailTemplatesResponse)++instance+ Prelude.NFData+ ListCustomVerificationEmailTemplatesResponse+ where+ rnf ListCustomVerificationEmailTemplatesResponse' {..} =+ Prelude.rnf customVerificationEmailTemplates+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/ListDedicatedIpPools.hs view
@@ -0,0 +1,216 @@+{-# 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.SESV2.ListDedicatedIpPools+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- List all of the dedicated IP pools that exist in your Amazon Web+-- Services account in the current Region.+module Amazonka.SESV2.ListDedicatedIpPools+ ( -- * Creating a Request+ ListDedicatedIpPools (..),+ newListDedicatedIpPools,++ -- * Request Lenses+ listDedicatedIpPools_nextToken,+ listDedicatedIpPools_pageSize,++ -- * Destructuring the Response+ ListDedicatedIpPoolsResponse (..),+ newListDedicatedIpPoolsResponse,++ -- * Response Lenses+ listDedicatedIpPoolsResponse_dedicatedIpPools,+ listDedicatedIpPoolsResponse_nextToken,+ listDedicatedIpPoolsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to obtain a list of dedicated IP pools.+--+-- /See:/ 'newListDedicatedIpPools' smart constructor.+data ListDedicatedIpPools = ListDedicatedIpPools'+ { -- | A token returned from a previous call to @ListDedicatedIpPools@ to+ -- indicate the position in the list of dedicated IP pools.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The number of results to show in a single call to+ -- @ListDedicatedIpPools@. If the number of results is larger than the+ -- number you specified in this parameter, then the response includes a+ -- @NextToken@ element, which you can use to obtain additional results.+ pageSize :: Prelude.Maybe Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDedicatedIpPools' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listDedicatedIpPools_nextToken' - A token returned from a previous call to @ListDedicatedIpPools@ to+-- indicate the position in the list of dedicated IP pools.+--+-- 'pageSize', 'listDedicatedIpPools_pageSize' - The number of results to show in a single call to+-- @ListDedicatedIpPools@. If the number of results is larger than the+-- number you specified in this parameter, then the response includes a+-- @NextToken@ element, which you can use to obtain additional results.+newListDedicatedIpPools ::+ ListDedicatedIpPools+newListDedicatedIpPools =+ ListDedicatedIpPools'+ { nextToken = Prelude.Nothing,+ pageSize = Prelude.Nothing+ }++-- | A token returned from a previous call to @ListDedicatedIpPools@ to+-- indicate the position in the list of dedicated IP pools.+listDedicatedIpPools_nextToken :: Lens.Lens' ListDedicatedIpPools (Prelude.Maybe Prelude.Text)+listDedicatedIpPools_nextToken = Lens.lens (\ListDedicatedIpPools' {nextToken} -> nextToken) (\s@ListDedicatedIpPools' {} a -> s {nextToken = a} :: ListDedicatedIpPools)++-- | The number of results to show in a single call to+-- @ListDedicatedIpPools@. If the number of results is larger than the+-- number you specified in this parameter, then the response includes a+-- @NextToken@ element, which you can use to obtain additional results.+listDedicatedIpPools_pageSize :: Lens.Lens' ListDedicatedIpPools (Prelude.Maybe Prelude.Int)+listDedicatedIpPools_pageSize = Lens.lens (\ListDedicatedIpPools' {pageSize} -> pageSize) (\s@ListDedicatedIpPools' {} a -> s {pageSize = a} :: ListDedicatedIpPools)++instance Core.AWSRequest ListDedicatedIpPools where+ type+ AWSResponse ListDedicatedIpPools =+ ListDedicatedIpPoolsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListDedicatedIpPoolsResponse'+ Prelude.<$> ( x+ Data..?> "DedicatedIpPools"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListDedicatedIpPools where+ hashWithSalt _salt ListDedicatedIpPools' {..} =+ _salt+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` pageSize++instance Prelude.NFData ListDedicatedIpPools where+ rnf ListDedicatedIpPools' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf pageSize++instance Data.ToHeaders ListDedicatedIpPools where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListDedicatedIpPools where+ toPath = Prelude.const "/v2/email/dedicated-ip-pools"++instance Data.ToQuery ListDedicatedIpPools where+ toQuery ListDedicatedIpPools' {..} =+ Prelude.mconcat+ [ "NextToken" Data.=: nextToken,+ "PageSize" Data.=: pageSize+ ]++-- | A list of dedicated IP pools.+--+-- /See:/ 'newListDedicatedIpPoolsResponse' smart constructor.+data ListDedicatedIpPoolsResponse = ListDedicatedIpPoolsResponse'+ { -- | A list of all of the dedicated IP pools that are associated with your+ -- Amazon Web Services account in the current Region.+ dedicatedIpPools :: Prelude.Maybe [Prelude.Text],+ -- | A token that indicates that there are additional IP pools to list. To+ -- view additional IP pools, issue another request to+ -- @ListDedicatedIpPools@, passing this token in the @NextToken@ parameter.+ 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 'ListDedicatedIpPoolsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dedicatedIpPools', 'listDedicatedIpPoolsResponse_dedicatedIpPools' - A list of all of the dedicated IP pools that are associated with your+-- Amazon Web Services account in the current Region.+--+-- 'nextToken', 'listDedicatedIpPoolsResponse_nextToken' - A token that indicates that there are additional IP pools to list. To+-- view additional IP pools, issue another request to+-- @ListDedicatedIpPools@, passing this token in the @NextToken@ parameter.+--+-- 'httpStatus', 'listDedicatedIpPoolsResponse_httpStatus' - The response's http status code.+newListDedicatedIpPoolsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListDedicatedIpPoolsResponse+newListDedicatedIpPoolsResponse pHttpStatus_ =+ ListDedicatedIpPoolsResponse'+ { dedicatedIpPools =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list of all of the dedicated IP pools that are associated with your+-- Amazon Web Services account in the current Region.+listDedicatedIpPoolsResponse_dedicatedIpPools :: Lens.Lens' ListDedicatedIpPoolsResponse (Prelude.Maybe [Prelude.Text])+listDedicatedIpPoolsResponse_dedicatedIpPools = Lens.lens (\ListDedicatedIpPoolsResponse' {dedicatedIpPools} -> dedicatedIpPools) (\s@ListDedicatedIpPoolsResponse' {} a -> s {dedicatedIpPools = a} :: ListDedicatedIpPoolsResponse) Prelude.. Lens.mapping Lens.coerced++-- | A token that indicates that there are additional IP pools to list. To+-- view additional IP pools, issue another request to+-- @ListDedicatedIpPools@, passing this token in the @NextToken@ parameter.+listDedicatedIpPoolsResponse_nextToken :: Lens.Lens' ListDedicatedIpPoolsResponse (Prelude.Maybe Prelude.Text)+listDedicatedIpPoolsResponse_nextToken = Lens.lens (\ListDedicatedIpPoolsResponse' {nextToken} -> nextToken) (\s@ListDedicatedIpPoolsResponse' {} a -> s {nextToken = a} :: ListDedicatedIpPoolsResponse)++-- | The response's http status code.+listDedicatedIpPoolsResponse_httpStatus :: Lens.Lens' ListDedicatedIpPoolsResponse Prelude.Int+listDedicatedIpPoolsResponse_httpStatus = Lens.lens (\ListDedicatedIpPoolsResponse' {httpStatus} -> httpStatus) (\s@ListDedicatedIpPoolsResponse' {} a -> s {httpStatus = a} :: ListDedicatedIpPoolsResponse)++instance Prelude.NFData ListDedicatedIpPoolsResponse where+ rnf ListDedicatedIpPoolsResponse' {..} =+ Prelude.rnf dedicatedIpPools+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/ListDeliverabilityTestReports.hs view
@@ -0,0 +1,248 @@+{-# 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.SESV2.ListDeliverabilityTestReports+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Show a list of the predictive inbox placement tests that you\'ve+-- performed, regardless of their statuses. For predictive inbox placement+-- tests that are complete, you can use the @GetDeliverabilityTestReport@+-- operation to view the results.+module Amazonka.SESV2.ListDeliverabilityTestReports+ ( -- * Creating a Request+ ListDeliverabilityTestReports (..),+ newListDeliverabilityTestReports,++ -- * Request Lenses+ listDeliverabilityTestReports_nextToken,+ listDeliverabilityTestReports_pageSize,++ -- * Destructuring the Response+ ListDeliverabilityTestReportsResponse (..),+ newListDeliverabilityTestReportsResponse,++ -- * Response Lenses+ listDeliverabilityTestReportsResponse_nextToken,+ listDeliverabilityTestReportsResponse_httpStatus,+ listDeliverabilityTestReportsResponse_deliverabilityTestReports,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to list all of the predictive inbox placement tests that+-- you\'ve performed.+--+-- /See:/ 'newListDeliverabilityTestReports' smart constructor.+data ListDeliverabilityTestReports = ListDeliverabilityTestReports'+ { -- | A token returned from a previous call to @ListDeliverabilityTestReports@+ -- to indicate the position in the list of predictive inbox placement+ -- tests.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The number of results to show in a single call to+ -- @ListDeliverabilityTestReports@. If the number of results is larger than+ -- the number you specified in this parameter, then the response includes a+ -- @NextToken@ element, which you can use to obtain additional results.+ --+ -- The value you specify has to be at least 0, and can be no more than+ -- 1000.+ pageSize :: Prelude.Maybe Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDeliverabilityTestReports' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listDeliverabilityTestReports_nextToken' - A token returned from a previous call to @ListDeliverabilityTestReports@+-- to indicate the position in the list of predictive inbox placement+-- tests.+--+-- 'pageSize', 'listDeliverabilityTestReports_pageSize' - The number of results to show in a single call to+-- @ListDeliverabilityTestReports@. If the number of results is larger than+-- the number you specified in this parameter, then the response includes a+-- @NextToken@ element, which you can use to obtain additional results.+--+-- The value you specify has to be at least 0, and can be no more than+-- 1000.+newListDeliverabilityTestReports ::+ ListDeliverabilityTestReports+newListDeliverabilityTestReports =+ ListDeliverabilityTestReports'+ { nextToken =+ Prelude.Nothing,+ pageSize = Prelude.Nothing+ }++-- | A token returned from a previous call to @ListDeliverabilityTestReports@+-- to indicate the position in the list of predictive inbox placement+-- tests.+listDeliverabilityTestReports_nextToken :: Lens.Lens' ListDeliverabilityTestReports (Prelude.Maybe Prelude.Text)+listDeliverabilityTestReports_nextToken = Lens.lens (\ListDeliverabilityTestReports' {nextToken} -> nextToken) (\s@ListDeliverabilityTestReports' {} a -> s {nextToken = a} :: ListDeliverabilityTestReports)++-- | The number of results to show in a single call to+-- @ListDeliverabilityTestReports@. If the number of results is larger than+-- the number you specified in this parameter, then the response includes a+-- @NextToken@ element, which you can use to obtain additional results.+--+-- The value you specify has to be at least 0, and can be no more than+-- 1000.+listDeliverabilityTestReports_pageSize :: Lens.Lens' ListDeliverabilityTestReports (Prelude.Maybe Prelude.Int)+listDeliverabilityTestReports_pageSize = Lens.lens (\ListDeliverabilityTestReports' {pageSize} -> pageSize) (\s@ListDeliverabilityTestReports' {} a -> s {pageSize = a} :: ListDeliverabilityTestReports)++instance+ Core.AWSRequest+ ListDeliverabilityTestReports+ where+ type+ AWSResponse ListDeliverabilityTestReports =+ ListDeliverabilityTestReportsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListDeliverabilityTestReportsResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> ( x+ Data..?> "DeliverabilityTestReports"+ Core..!@ Prelude.mempty+ )+ )++instance+ Prelude.Hashable+ ListDeliverabilityTestReports+ where+ hashWithSalt _salt ListDeliverabilityTestReports' {..} =+ _salt+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` pageSize++instance Prelude.NFData ListDeliverabilityTestReports where+ rnf ListDeliverabilityTestReports' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf pageSize++instance Data.ToHeaders ListDeliverabilityTestReports where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListDeliverabilityTestReports where+ toPath =+ Prelude.const+ "/v2/email/deliverability-dashboard/test-reports"++instance Data.ToQuery ListDeliverabilityTestReports where+ toQuery ListDeliverabilityTestReports' {..} =+ Prelude.mconcat+ [ "NextToken" Data.=: nextToken,+ "PageSize" Data.=: pageSize+ ]++-- | A list of the predictive inbox placement test reports that are available+-- for your account, regardless of whether or not those tests are complete.+--+-- /See:/ 'newListDeliverabilityTestReportsResponse' smart constructor.+data ListDeliverabilityTestReportsResponse = ListDeliverabilityTestReportsResponse'+ { -- | A token that indicates that there are additional predictive inbox+ -- placement tests to list. To view additional predictive inbox placement+ -- tests, issue another request to @ListDeliverabilityTestReports@, and+ -- pass this token in the @NextToken@ parameter.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | An object that contains a lists of predictive inbox placement tests that+ -- you\'ve performed.+ deliverabilityTestReports :: [DeliverabilityTestReport]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDeliverabilityTestReportsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listDeliverabilityTestReportsResponse_nextToken' - A token that indicates that there are additional predictive inbox+-- placement tests to list. To view additional predictive inbox placement+-- tests, issue another request to @ListDeliverabilityTestReports@, and+-- pass this token in the @NextToken@ parameter.+--+-- 'httpStatus', 'listDeliverabilityTestReportsResponse_httpStatus' - The response's http status code.+--+-- 'deliverabilityTestReports', 'listDeliverabilityTestReportsResponse_deliverabilityTestReports' - An object that contains a lists of predictive inbox placement tests that+-- you\'ve performed.+newListDeliverabilityTestReportsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListDeliverabilityTestReportsResponse+newListDeliverabilityTestReportsResponse pHttpStatus_ =+ ListDeliverabilityTestReportsResponse'+ { nextToken =+ Prelude.Nothing,+ httpStatus = pHttpStatus_,+ deliverabilityTestReports =+ Prelude.mempty+ }++-- | A token that indicates that there are additional predictive inbox+-- placement tests to list. To view additional predictive inbox placement+-- tests, issue another request to @ListDeliverabilityTestReports@, and+-- pass this token in the @NextToken@ parameter.+listDeliverabilityTestReportsResponse_nextToken :: Lens.Lens' ListDeliverabilityTestReportsResponse (Prelude.Maybe Prelude.Text)+listDeliverabilityTestReportsResponse_nextToken = Lens.lens (\ListDeliverabilityTestReportsResponse' {nextToken} -> nextToken) (\s@ListDeliverabilityTestReportsResponse' {} a -> s {nextToken = a} :: ListDeliverabilityTestReportsResponse)++-- | The response's http status code.+listDeliverabilityTestReportsResponse_httpStatus :: Lens.Lens' ListDeliverabilityTestReportsResponse Prelude.Int+listDeliverabilityTestReportsResponse_httpStatus = Lens.lens (\ListDeliverabilityTestReportsResponse' {httpStatus} -> httpStatus) (\s@ListDeliverabilityTestReportsResponse' {} a -> s {httpStatus = a} :: ListDeliverabilityTestReportsResponse)++-- | An object that contains a lists of predictive inbox placement tests that+-- you\'ve performed.+listDeliverabilityTestReportsResponse_deliverabilityTestReports :: Lens.Lens' ListDeliverabilityTestReportsResponse [DeliverabilityTestReport]+listDeliverabilityTestReportsResponse_deliverabilityTestReports = Lens.lens (\ListDeliverabilityTestReportsResponse' {deliverabilityTestReports} -> deliverabilityTestReports) (\s@ListDeliverabilityTestReportsResponse' {} a -> s {deliverabilityTestReports = a} :: ListDeliverabilityTestReportsResponse) Prelude.. Lens.coerced++instance+ Prelude.NFData+ ListDeliverabilityTestReportsResponse+ where+ rnf ListDeliverabilityTestReportsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf deliverabilityTestReports
+ gen/Amazonka/SESV2/ListDomainDeliverabilityCampaigns.hs view
@@ -0,0 +1,314 @@+{-# 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.SESV2.ListDomainDeliverabilityCampaigns+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieve deliverability data for all the campaigns that used a specific+-- domain to send email during a specified time range. This data is+-- available for a domain only if you enabled the Deliverability dashboard+-- for the domain.+module Amazonka.SESV2.ListDomainDeliverabilityCampaigns+ ( -- * Creating a Request+ ListDomainDeliverabilityCampaigns (..),+ newListDomainDeliverabilityCampaigns,++ -- * Request Lenses+ listDomainDeliverabilityCampaigns_nextToken,+ listDomainDeliverabilityCampaigns_pageSize,+ listDomainDeliverabilityCampaigns_startDate,+ listDomainDeliverabilityCampaigns_endDate,+ listDomainDeliverabilityCampaigns_subscribedDomain,++ -- * Destructuring the Response+ ListDomainDeliverabilityCampaignsResponse (..),+ newListDomainDeliverabilityCampaignsResponse,++ -- * Response Lenses+ listDomainDeliverabilityCampaignsResponse_nextToken,+ listDomainDeliverabilityCampaignsResponse_httpStatus,+ listDomainDeliverabilityCampaignsResponse_domainDeliverabilityCampaigns,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | Retrieve deliverability data for all the campaigns that used a specific+-- domain to send email during a specified time range. This data is+-- available for a domain only if you enabled the Deliverability dashboard.+--+-- /See:/ 'newListDomainDeliverabilityCampaigns' smart constructor.+data ListDomainDeliverabilityCampaigns = ListDomainDeliverabilityCampaigns'+ { -- | A token that’s returned from a previous call to the+ -- @ListDomainDeliverabilityCampaigns@ operation. This token indicates the+ -- position of a campaign in the list of campaigns.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The maximum number of results to include in response to a single call to+ -- the @ListDomainDeliverabilityCampaigns@ operation. If the number of+ -- results is larger than the number that you specify in this parameter,+ -- the response includes a @NextToken@ element, which you can use to obtain+ -- additional results.+ pageSize :: Prelude.Maybe Prelude.Int,+ -- | The first day that you want to obtain deliverability data for.+ startDate :: Data.POSIX,+ -- | The last day that you want to obtain deliverability data for. This value+ -- has to be less than or equal to 30 days after the value of the+ -- @StartDate@ parameter.+ endDate :: Data.POSIX,+ -- | The domain to obtain deliverability data for.+ subscribedDomain :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDomainDeliverabilityCampaigns' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listDomainDeliverabilityCampaigns_nextToken' - A token that’s returned from a previous call to the+-- @ListDomainDeliverabilityCampaigns@ operation. This token indicates the+-- position of a campaign in the list of campaigns.+--+-- 'pageSize', 'listDomainDeliverabilityCampaigns_pageSize' - The maximum number of results to include in response to a single call to+-- the @ListDomainDeliverabilityCampaigns@ operation. If the number of+-- results is larger than the number that you specify in this parameter,+-- the response includes a @NextToken@ element, which you can use to obtain+-- additional results.+--+-- 'startDate', 'listDomainDeliverabilityCampaigns_startDate' - The first day that you want to obtain deliverability data for.+--+-- 'endDate', 'listDomainDeliverabilityCampaigns_endDate' - The last day that you want to obtain deliverability data for. This value+-- has to be less than or equal to 30 days after the value of the+-- @StartDate@ parameter.+--+-- 'subscribedDomain', 'listDomainDeliverabilityCampaigns_subscribedDomain' - The domain to obtain deliverability data for.+newListDomainDeliverabilityCampaigns ::+ -- | 'startDate'+ Prelude.UTCTime ->+ -- | 'endDate'+ Prelude.UTCTime ->+ -- | 'subscribedDomain'+ Prelude.Text ->+ ListDomainDeliverabilityCampaigns+newListDomainDeliverabilityCampaigns+ pStartDate_+ pEndDate_+ pSubscribedDomain_ =+ ListDomainDeliverabilityCampaigns'+ { nextToken =+ Prelude.Nothing,+ pageSize = Prelude.Nothing,+ startDate =+ Data._Time Lens.# pStartDate_,+ endDate = Data._Time Lens.# pEndDate_,+ subscribedDomain = pSubscribedDomain_+ }++-- | A token that’s returned from a previous call to the+-- @ListDomainDeliverabilityCampaigns@ operation. This token indicates the+-- position of a campaign in the list of campaigns.+listDomainDeliverabilityCampaigns_nextToken :: Lens.Lens' ListDomainDeliverabilityCampaigns (Prelude.Maybe Prelude.Text)+listDomainDeliverabilityCampaigns_nextToken = Lens.lens (\ListDomainDeliverabilityCampaigns' {nextToken} -> nextToken) (\s@ListDomainDeliverabilityCampaigns' {} a -> s {nextToken = a} :: ListDomainDeliverabilityCampaigns)++-- | The maximum number of results to include in response to a single call to+-- the @ListDomainDeliverabilityCampaigns@ operation. If the number of+-- results is larger than the number that you specify in this parameter,+-- the response includes a @NextToken@ element, which you can use to obtain+-- additional results.+listDomainDeliverabilityCampaigns_pageSize :: Lens.Lens' ListDomainDeliverabilityCampaigns (Prelude.Maybe Prelude.Int)+listDomainDeliverabilityCampaigns_pageSize = Lens.lens (\ListDomainDeliverabilityCampaigns' {pageSize} -> pageSize) (\s@ListDomainDeliverabilityCampaigns' {} a -> s {pageSize = a} :: ListDomainDeliverabilityCampaigns)++-- | The first day that you want to obtain deliverability data for.+listDomainDeliverabilityCampaigns_startDate :: Lens.Lens' ListDomainDeliverabilityCampaigns Prelude.UTCTime+listDomainDeliverabilityCampaigns_startDate = Lens.lens (\ListDomainDeliverabilityCampaigns' {startDate} -> startDate) (\s@ListDomainDeliverabilityCampaigns' {} a -> s {startDate = a} :: ListDomainDeliverabilityCampaigns) Prelude.. Data._Time++-- | The last day that you want to obtain deliverability data for. This value+-- has to be less than or equal to 30 days after the value of the+-- @StartDate@ parameter.+listDomainDeliverabilityCampaigns_endDate :: Lens.Lens' ListDomainDeliverabilityCampaigns Prelude.UTCTime+listDomainDeliverabilityCampaigns_endDate = Lens.lens (\ListDomainDeliverabilityCampaigns' {endDate} -> endDate) (\s@ListDomainDeliverabilityCampaigns' {} a -> s {endDate = a} :: ListDomainDeliverabilityCampaigns) Prelude.. Data._Time++-- | The domain to obtain deliverability data for.+listDomainDeliverabilityCampaigns_subscribedDomain :: Lens.Lens' ListDomainDeliverabilityCampaigns Prelude.Text+listDomainDeliverabilityCampaigns_subscribedDomain = Lens.lens (\ListDomainDeliverabilityCampaigns' {subscribedDomain} -> subscribedDomain) (\s@ListDomainDeliverabilityCampaigns' {} a -> s {subscribedDomain = a} :: ListDomainDeliverabilityCampaigns)++instance+ Core.AWSRequest+ ListDomainDeliverabilityCampaigns+ where+ type+ AWSResponse ListDomainDeliverabilityCampaigns =+ ListDomainDeliverabilityCampaignsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListDomainDeliverabilityCampaignsResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> ( x+ Data..?> "DomainDeliverabilityCampaigns"+ Core..!@ Prelude.mempty+ )+ )++instance+ Prelude.Hashable+ ListDomainDeliverabilityCampaigns+ where+ hashWithSalt+ _salt+ ListDomainDeliverabilityCampaigns' {..} =+ _salt+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` pageSize+ `Prelude.hashWithSalt` startDate+ `Prelude.hashWithSalt` endDate+ `Prelude.hashWithSalt` subscribedDomain++instance+ Prelude.NFData+ ListDomainDeliverabilityCampaigns+ where+ rnf ListDomainDeliverabilityCampaigns' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf pageSize+ `Prelude.seq` Prelude.rnf startDate+ `Prelude.seq` Prelude.rnf endDate+ `Prelude.seq` Prelude.rnf subscribedDomain++instance+ Data.ToHeaders+ ListDomainDeliverabilityCampaigns+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToPath+ ListDomainDeliverabilityCampaigns+ where+ toPath ListDomainDeliverabilityCampaigns' {..} =+ Prelude.mconcat+ [ "/v2/email/deliverability-dashboard/domains/",+ Data.toBS subscribedDomain,+ "/campaigns"+ ]++instance+ Data.ToQuery+ ListDomainDeliverabilityCampaigns+ where+ toQuery ListDomainDeliverabilityCampaigns' {..} =+ Prelude.mconcat+ [ "NextToken" Data.=: nextToken,+ "PageSize" Data.=: pageSize,+ "StartDate" Data.=: startDate,+ "EndDate" Data.=: endDate+ ]++-- | An array of objects that provide deliverability data for all the+-- campaigns that used a specific domain to send email during a specified+-- time range. This data is available for a domain only if you enabled the+-- Deliverability dashboard for the domain.+--+-- /See:/ 'newListDomainDeliverabilityCampaignsResponse' smart constructor.+data ListDomainDeliverabilityCampaignsResponse = ListDomainDeliverabilityCampaignsResponse'+ { -- | A token that’s returned from a previous call to the+ -- @ListDomainDeliverabilityCampaigns@ operation. This token indicates the+ -- position of the campaign in the list of campaigns.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | An array of responses, one for each campaign that used the domain to+ -- send email during the specified time range.+ domainDeliverabilityCampaigns :: [DomainDeliverabilityCampaign]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDomainDeliverabilityCampaignsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listDomainDeliverabilityCampaignsResponse_nextToken' - A token that’s returned from a previous call to the+-- @ListDomainDeliverabilityCampaigns@ operation. This token indicates the+-- position of the campaign in the list of campaigns.+--+-- 'httpStatus', 'listDomainDeliverabilityCampaignsResponse_httpStatus' - The response's http status code.+--+-- 'domainDeliverabilityCampaigns', 'listDomainDeliverabilityCampaignsResponse_domainDeliverabilityCampaigns' - An array of responses, one for each campaign that used the domain to+-- send email during the specified time range.+newListDomainDeliverabilityCampaignsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListDomainDeliverabilityCampaignsResponse+newListDomainDeliverabilityCampaignsResponse+ pHttpStatus_ =+ ListDomainDeliverabilityCampaignsResponse'+ { nextToken =+ Prelude.Nothing,+ httpStatus = pHttpStatus_,+ domainDeliverabilityCampaigns =+ Prelude.mempty+ }++-- | A token that’s returned from a previous call to the+-- @ListDomainDeliverabilityCampaigns@ operation. This token indicates the+-- position of the campaign in the list of campaigns.+listDomainDeliverabilityCampaignsResponse_nextToken :: Lens.Lens' ListDomainDeliverabilityCampaignsResponse (Prelude.Maybe Prelude.Text)+listDomainDeliverabilityCampaignsResponse_nextToken = Lens.lens (\ListDomainDeliverabilityCampaignsResponse' {nextToken} -> nextToken) (\s@ListDomainDeliverabilityCampaignsResponse' {} a -> s {nextToken = a} :: ListDomainDeliverabilityCampaignsResponse)++-- | The response's http status code.+listDomainDeliverabilityCampaignsResponse_httpStatus :: Lens.Lens' ListDomainDeliverabilityCampaignsResponse Prelude.Int+listDomainDeliverabilityCampaignsResponse_httpStatus = Lens.lens (\ListDomainDeliverabilityCampaignsResponse' {httpStatus} -> httpStatus) (\s@ListDomainDeliverabilityCampaignsResponse' {} a -> s {httpStatus = a} :: ListDomainDeliverabilityCampaignsResponse)++-- | An array of responses, one for each campaign that used the domain to+-- send email during the specified time range.+listDomainDeliverabilityCampaignsResponse_domainDeliverabilityCampaigns :: Lens.Lens' ListDomainDeliverabilityCampaignsResponse [DomainDeliverabilityCampaign]+listDomainDeliverabilityCampaignsResponse_domainDeliverabilityCampaigns = Lens.lens (\ListDomainDeliverabilityCampaignsResponse' {domainDeliverabilityCampaigns} -> domainDeliverabilityCampaigns) (\s@ListDomainDeliverabilityCampaignsResponse' {} a -> s {domainDeliverabilityCampaigns = a} :: ListDomainDeliverabilityCampaignsResponse) Prelude.. Lens.coerced++instance+ Prelude.NFData+ ListDomainDeliverabilityCampaignsResponse+ where+ rnf ListDomainDeliverabilityCampaignsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf domainDeliverabilityCampaigns
+ gen/Amazonka/SESV2/ListEmailIdentities.hs view
@@ -0,0 +1,233 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.ListEmailIdentities+-- 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 of the email identities that are associated with+-- your Amazon Web Services account. An identity can be either an email+-- address or a domain. This operation returns identities that are verified+-- as well as those that aren\'t. This operation returns identities that+-- are associated with Amazon SES and Amazon Pinpoint.+module Amazonka.SESV2.ListEmailIdentities+ ( -- * Creating a Request+ ListEmailIdentities (..),+ newListEmailIdentities,++ -- * Request Lenses+ listEmailIdentities_nextToken,+ listEmailIdentities_pageSize,++ -- * Destructuring the Response+ ListEmailIdentitiesResponse (..),+ newListEmailIdentitiesResponse,++ -- * Response Lenses+ listEmailIdentitiesResponse_emailIdentities,+ listEmailIdentitiesResponse_nextToken,+ listEmailIdentitiesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to list all of the email identities associated with your+-- Amazon Web Services account. This list includes identities that you\'ve+-- already verified, identities that are unverified, and identities that+-- were verified in the past, but are no longer verified.+--+-- /See:/ 'newListEmailIdentities' smart constructor.+data ListEmailIdentities = ListEmailIdentities'+ { -- | A token returned from a previous call to @ListEmailIdentities@ to+ -- indicate the position in the list of identities.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The number of results to show in a single call to @ListEmailIdentities@.+ -- If the number of results is larger than the number you specified in this+ -- parameter, then the response includes a @NextToken@ element, which you+ -- can use to obtain additional results.+ --+ -- The value you specify has to be at least 0, and can be no more than+ -- 1000.+ pageSize :: Prelude.Maybe Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListEmailIdentities' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listEmailIdentities_nextToken' - A token returned from a previous call to @ListEmailIdentities@ to+-- indicate the position in the list of identities.+--+-- 'pageSize', 'listEmailIdentities_pageSize' - The number of results to show in a single call to @ListEmailIdentities@.+-- If the number of results is larger than the number you specified in this+-- parameter, then the response includes a @NextToken@ element, which you+-- can use to obtain additional results.+--+-- The value you specify has to be at least 0, and can be no more than+-- 1000.+newListEmailIdentities ::+ ListEmailIdentities+newListEmailIdentities =+ ListEmailIdentities'+ { nextToken = Prelude.Nothing,+ pageSize = Prelude.Nothing+ }++-- | A token returned from a previous call to @ListEmailIdentities@ to+-- indicate the position in the list of identities.+listEmailIdentities_nextToken :: Lens.Lens' ListEmailIdentities (Prelude.Maybe Prelude.Text)+listEmailIdentities_nextToken = Lens.lens (\ListEmailIdentities' {nextToken} -> nextToken) (\s@ListEmailIdentities' {} a -> s {nextToken = a} :: ListEmailIdentities)++-- | The number of results to show in a single call to @ListEmailIdentities@.+-- If the number of results is larger than the number you specified in this+-- parameter, then the response includes a @NextToken@ element, which you+-- can use to obtain additional results.+--+-- The value you specify has to be at least 0, and can be no more than+-- 1000.+listEmailIdentities_pageSize :: Lens.Lens' ListEmailIdentities (Prelude.Maybe Prelude.Int)+listEmailIdentities_pageSize = Lens.lens (\ListEmailIdentities' {pageSize} -> pageSize) (\s@ListEmailIdentities' {} a -> s {pageSize = a} :: ListEmailIdentities)++instance Core.AWSRequest ListEmailIdentities where+ type+ AWSResponse ListEmailIdentities =+ ListEmailIdentitiesResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListEmailIdentitiesResponse'+ Prelude.<$> ( x+ Data..?> "EmailIdentities"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListEmailIdentities where+ hashWithSalt _salt ListEmailIdentities' {..} =+ _salt+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` pageSize++instance Prelude.NFData ListEmailIdentities where+ rnf ListEmailIdentities' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf pageSize++instance Data.ToHeaders ListEmailIdentities where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListEmailIdentities where+ toPath = Prelude.const "/v2/email/identities"++instance Data.ToQuery ListEmailIdentities where+ toQuery ListEmailIdentities' {..} =+ Prelude.mconcat+ [ "NextToken" Data.=: nextToken,+ "PageSize" Data.=: pageSize+ ]++-- | A list of all of the identities that you\'ve attempted to verify,+-- regardless of whether or not those identities were successfully+-- verified.+--+-- /See:/ 'newListEmailIdentitiesResponse' smart constructor.+data ListEmailIdentitiesResponse = ListEmailIdentitiesResponse'+ { -- | An array that includes all of the email identities associated with your+ -- Amazon Web Services account.+ emailIdentities :: Prelude.Maybe [IdentityInfo],+ -- | A token that indicates that there are additional configuration sets to+ -- list. To view additional configuration sets, issue another request to+ -- @ListEmailIdentities@, and pass this token in the @NextToken@ parameter.+ 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 'ListEmailIdentitiesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'emailIdentities', 'listEmailIdentitiesResponse_emailIdentities' - An array that includes all of the email identities associated with your+-- Amazon Web Services account.+--+-- 'nextToken', 'listEmailIdentitiesResponse_nextToken' - A token that indicates that there are additional configuration sets to+-- list. To view additional configuration sets, issue another request to+-- @ListEmailIdentities@, and pass this token in the @NextToken@ parameter.+--+-- 'httpStatus', 'listEmailIdentitiesResponse_httpStatus' - The response's http status code.+newListEmailIdentitiesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListEmailIdentitiesResponse+newListEmailIdentitiesResponse pHttpStatus_ =+ ListEmailIdentitiesResponse'+ { emailIdentities =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | An array that includes all of the email identities associated with your+-- Amazon Web Services account.+listEmailIdentitiesResponse_emailIdentities :: Lens.Lens' ListEmailIdentitiesResponse (Prelude.Maybe [IdentityInfo])+listEmailIdentitiesResponse_emailIdentities = Lens.lens (\ListEmailIdentitiesResponse' {emailIdentities} -> emailIdentities) (\s@ListEmailIdentitiesResponse' {} a -> s {emailIdentities = a} :: ListEmailIdentitiesResponse) Prelude.. Lens.mapping Lens.coerced++-- | A token that indicates that there are additional configuration sets to+-- list. To view additional configuration sets, issue another request to+-- @ListEmailIdentities@, and pass this token in the @NextToken@ parameter.+listEmailIdentitiesResponse_nextToken :: Lens.Lens' ListEmailIdentitiesResponse (Prelude.Maybe Prelude.Text)+listEmailIdentitiesResponse_nextToken = Lens.lens (\ListEmailIdentitiesResponse' {nextToken} -> nextToken) (\s@ListEmailIdentitiesResponse' {} a -> s {nextToken = a} :: ListEmailIdentitiesResponse)++-- | The response's http status code.+listEmailIdentitiesResponse_httpStatus :: Lens.Lens' ListEmailIdentitiesResponse Prelude.Int+listEmailIdentitiesResponse_httpStatus = Lens.lens (\ListEmailIdentitiesResponse' {httpStatus} -> httpStatus) (\s@ListEmailIdentitiesResponse' {} a -> s {httpStatus = a} :: ListEmailIdentitiesResponse)++instance Prelude.NFData ListEmailIdentitiesResponse where+ rnf ListEmailIdentitiesResponse' {..} =+ Prelude.rnf emailIdentities+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/ListEmailTemplates.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.SESV2.ListEmailTemplates+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the email templates present in your Amazon SES account in the+-- current Amazon Web Services Region.+--+-- You can execute this operation no more than once per second.+module Amazonka.SESV2.ListEmailTemplates+ ( -- * Creating a Request+ ListEmailTemplates (..),+ newListEmailTemplates,++ -- * Request Lenses+ listEmailTemplates_nextToken,+ listEmailTemplates_pageSize,++ -- * Destructuring the Response+ ListEmailTemplatesResponse (..),+ newListEmailTemplatesResponse,++ -- * Response Lenses+ listEmailTemplatesResponse_nextToken,+ listEmailTemplatesResponse_templatesMetadata,+ listEmailTemplatesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | Represents a request to list the email templates present in your Amazon+-- SES account in the current Amazon Web Services Region. For more+-- information, see the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-personalized-email-api.html Amazon SES Developer Guide>.+--+-- /See:/ 'newListEmailTemplates' smart constructor.+data ListEmailTemplates = ListEmailTemplates'+ { -- | A token returned from a previous call to @ListEmailTemplates@ to+ -- indicate the position in the list of email templates.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The number of results to show in a single call to @ListEmailTemplates@.+ -- If the number of results is larger than the number you specified in this+ -- parameter, then the response includes a @NextToken@ element, which you+ -- can use to obtain additional results.+ --+ -- The value you specify has to be at least 1, and can be no more than 10.+ pageSize :: Prelude.Maybe Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListEmailTemplates' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listEmailTemplates_nextToken' - A token returned from a previous call to @ListEmailTemplates@ to+-- indicate the position in the list of email templates.+--+-- 'pageSize', 'listEmailTemplates_pageSize' - The number of results to show in a single call to @ListEmailTemplates@.+-- If the number of results is larger than the number you specified in this+-- parameter, then the response includes a @NextToken@ element, which you+-- can use to obtain additional results.+--+-- The value you specify has to be at least 1, and can be no more than 10.+newListEmailTemplates ::+ ListEmailTemplates+newListEmailTemplates =+ ListEmailTemplates'+ { nextToken = Prelude.Nothing,+ pageSize = Prelude.Nothing+ }++-- | A token returned from a previous call to @ListEmailTemplates@ to+-- indicate the position in the list of email templates.+listEmailTemplates_nextToken :: Lens.Lens' ListEmailTemplates (Prelude.Maybe Prelude.Text)+listEmailTemplates_nextToken = Lens.lens (\ListEmailTemplates' {nextToken} -> nextToken) (\s@ListEmailTemplates' {} a -> s {nextToken = a} :: ListEmailTemplates)++-- | The number of results to show in a single call to @ListEmailTemplates@.+-- If the number of results is larger than the number you specified in this+-- parameter, then the response includes a @NextToken@ element, which you+-- can use to obtain additional results.+--+-- The value you specify has to be at least 1, and can be no more than 10.+listEmailTemplates_pageSize :: Lens.Lens' ListEmailTemplates (Prelude.Maybe Prelude.Int)+listEmailTemplates_pageSize = Lens.lens (\ListEmailTemplates' {pageSize} -> pageSize) (\s@ListEmailTemplates' {} a -> s {pageSize = a} :: ListEmailTemplates)++instance Core.AWSRequest ListEmailTemplates where+ type+ AWSResponse ListEmailTemplates =+ ListEmailTemplatesResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListEmailTemplatesResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> ( x+ Data..?> "TemplatesMetadata"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListEmailTemplates where+ hashWithSalt _salt ListEmailTemplates' {..} =+ _salt+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` pageSize++instance Prelude.NFData ListEmailTemplates where+ rnf ListEmailTemplates' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf pageSize++instance Data.ToHeaders ListEmailTemplates where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListEmailTemplates where+ toPath = Prelude.const "/v2/email/templates"++instance Data.ToQuery ListEmailTemplates where+ toQuery ListEmailTemplates' {..} =+ Prelude.mconcat+ [ "NextToken" Data.=: nextToken,+ "PageSize" Data.=: pageSize+ ]++-- | The following elements are returned by the service.+--+-- /See:/ 'newListEmailTemplatesResponse' smart constructor.+data ListEmailTemplatesResponse = ListEmailTemplatesResponse'+ { -- | A token indicating that there are additional email templates available+ -- to be listed. Pass this token to a subsequent @ListEmailTemplates@ call+ -- to retrieve the next 10 email templates.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | An array the contains the name and creation time stamp for each template+ -- in your Amazon SES account.+ templatesMetadata :: Prelude.Maybe [EmailTemplateMetadata],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListEmailTemplatesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listEmailTemplatesResponse_nextToken' - A token indicating that there are additional email templates available+-- to be listed. Pass this token to a subsequent @ListEmailTemplates@ call+-- to retrieve the next 10 email templates.+--+-- 'templatesMetadata', 'listEmailTemplatesResponse_templatesMetadata' - An array the contains the name and creation time stamp for each template+-- in your Amazon SES account.+--+-- 'httpStatus', 'listEmailTemplatesResponse_httpStatus' - The response's http status code.+newListEmailTemplatesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListEmailTemplatesResponse+newListEmailTemplatesResponse pHttpStatus_ =+ ListEmailTemplatesResponse'+ { nextToken =+ Prelude.Nothing,+ templatesMetadata = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A token indicating that there are additional email templates available+-- to be listed. Pass this token to a subsequent @ListEmailTemplates@ call+-- to retrieve the next 10 email templates.+listEmailTemplatesResponse_nextToken :: Lens.Lens' ListEmailTemplatesResponse (Prelude.Maybe Prelude.Text)+listEmailTemplatesResponse_nextToken = Lens.lens (\ListEmailTemplatesResponse' {nextToken} -> nextToken) (\s@ListEmailTemplatesResponse' {} a -> s {nextToken = a} :: ListEmailTemplatesResponse)++-- | An array the contains the name and creation time stamp for each template+-- in your Amazon SES account.+listEmailTemplatesResponse_templatesMetadata :: Lens.Lens' ListEmailTemplatesResponse (Prelude.Maybe [EmailTemplateMetadata])+listEmailTemplatesResponse_templatesMetadata = Lens.lens (\ListEmailTemplatesResponse' {templatesMetadata} -> templatesMetadata) (\s@ListEmailTemplatesResponse' {} a -> s {templatesMetadata = a} :: ListEmailTemplatesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listEmailTemplatesResponse_httpStatus :: Lens.Lens' ListEmailTemplatesResponse Prelude.Int+listEmailTemplatesResponse_httpStatus = Lens.lens (\ListEmailTemplatesResponse' {httpStatus} -> httpStatus) (\s@ListEmailTemplatesResponse' {} a -> s {httpStatus = a} :: ListEmailTemplatesResponse)++instance Prelude.NFData ListEmailTemplatesResponse where+ rnf ListEmailTemplatesResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf templatesMetadata+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/ListImportJobs.hs view
@@ -0,0 +1,239 @@+{-# 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.SESV2.ListImportJobs+-- 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 import jobs.+module Amazonka.SESV2.ListImportJobs+ ( -- * Creating a Request+ ListImportJobs (..),+ newListImportJobs,++ -- * Request Lenses+ listImportJobs_importDestinationType,+ listImportJobs_nextToken,+ listImportJobs_pageSize,++ -- * Destructuring the Response+ ListImportJobsResponse (..),+ newListImportJobsResponse,++ -- * Response Lenses+ listImportJobsResponse_importJobs,+ listImportJobsResponse_nextToken,+ listImportJobsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | Represents a request to list all of the import jobs for a data+-- destination within the specified maximum number of import jobs.+--+-- /See:/ 'newListImportJobs' smart constructor.+data ListImportJobs = ListImportJobs'+ { -- | The destination of the import job, which can be used to list import jobs+ -- that have a certain @ImportDestinationType@.+ importDestinationType :: Prelude.Maybe ImportDestinationType,+ -- | A string token indicating that there might be additional import jobs+ -- available to be listed. Copy this token to a subsequent call to+ -- @ListImportJobs@ with the same parameters to retrieve the next page of+ -- import jobs.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | Maximum number of import jobs to return at once. Use this parameter to+ -- paginate results. If additional import jobs exist beyond the specified+ -- limit, the @NextToken@ element is sent in the response. Use the+ -- @NextToken@ value in subsequent requests to retrieve additional+ -- addresses.+ pageSize :: Prelude.Maybe Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListImportJobs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'importDestinationType', 'listImportJobs_importDestinationType' - The destination of the import job, which can be used to list import jobs+-- that have a certain @ImportDestinationType@.+--+-- 'nextToken', 'listImportJobs_nextToken' - A string token indicating that there might be additional import jobs+-- available to be listed. Copy this token to a subsequent call to+-- @ListImportJobs@ with the same parameters to retrieve the next page of+-- import jobs.+--+-- 'pageSize', 'listImportJobs_pageSize' - Maximum number of import jobs to return at once. Use this parameter to+-- paginate results. If additional import jobs exist beyond the specified+-- limit, the @NextToken@ element is sent in the response. Use the+-- @NextToken@ value in subsequent requests to retrieve additional+-- addresses.+newListImportJobs ::+ ListImportJobs+newListImportJobs =+ ListImportJobs'+ { importDestinationType =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ pageSize = Prelude.Nothing+ }++-- | The destination of the import job, which can be used to list import jobs+-- that have a certain @ImportDestinationType@.+listImportJobs_importDestinationType :: Lens.Lens' ListImportJobs (Prelude.Maybe ImportDestinationType)+listImportJobs_importDestinationType = Lens.lens (\ListImportJobs' {importDestinationType} -> importDestinationType) (\s@ListImportJobs' {} a -> s {importDestinationType = a} :: ListImportJobs)++-- | A string token indicating that there might be additional import jobs+-- available to be listed. Copy this token to a subsequent call to+-- @ListImportJobs@ with the same parameters to retrieve the next page of+-- import jobs.+listImportJobs_nextToken :: Lens.Lens' ListImportJobs (Prelude.Maybe Prelude.Text)+listImportJobs_nextToken = Lens.lens (\ListImportJobs' {nextToken} -> nextToken) (\s@ListImportJobs' {} a -> s {nextToken = a} :: ListImportJobs)++-- | Maximum number of import jobs to return at once. Use this parameter to+-- paginate results. If additional import jobs exist beyond the specified+-- limit, the @NextToken@ element is sent in the response. Use the+-- @NextToken@ value in subsequent requests to retrieve additional+-- addresses.+listImportJobs_pageSize :: Lens.Lens' ListImportJobs (Prelude.Maybe Prelude.Int)+listImportJobs_pageSize = Lens.lens (\ListImportJobs' {pageSize} -> pageSize) (\s@ListImportJobs' {} a -> s {pageSize = a} :: ListImportJobs)++instance Core.AWSRequest ListImportJobs where+ type+ AWSResponse ListImportJobs =+ ListImportJobsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListImportJobsResponse'+ Prelude.<$> (x Data..?> "ImportJobs" Core..!@ Prelude.mempty)+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListImportJobs where+ hashWithSalt _salt ListImportJobs' {..} =+ _salt+ `Prelude.hashWithSalt` importDestinationType+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` pageSize++instance Prelude.NFData ListImportJobs where+ rnf ListImportJobs' {..} =+ Prelude.rnf importDestinationType+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf pageSize++instance Data.ToHeaders ListImportJobs where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListImportJobs where+ toPath = Prelude.const "/v2/email/import-jobs"++instance Data.ToQuery ListImportJobs where+ toQuery ListImportJobs' {..} =+ Prelude.mconcat+ [ "NextToken" Data.=: nextToken,+ "PageSize" Data.=: pageSize+ ]++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newListImportJobsResponse' smart constructor.+data ListImportJobsResponse = ListImportJobsResponse'+ { -- | A list of the import job summaries.+ importJobs :: Prelude.Maybe [ImportJobSummary],+ -- | A string token indicating that there might be additional import jobs+ -- available to be listed. Copy this token to a subsequent call to+ -- @ListImportJobs@ with the same parameters to retrieve the next page of+ -- import jobs.+ 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 'ListImportJobsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'importJobs', 'listImportJobsResponse_importJobs' - A list of the import job summaries.+--+-- 'nextToken', 'listImportJobsResponse_nextToken' - A string token indicating that there might be additional import jobs+-- available to be listed. Copy this token to a subsequent call to+-- @ListImportJobs@ with the same parameters to retrieve the next page of+-- import jobs.+--+-- 'httpStatus', 'listImportJobsResponse_httpStatus' - The response's http status code.+newListImportJobsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListImportJobsResponse+newListImportJobsResponse pHttpStatus_ =+ ListImportJobsResponse'+ { importJobs =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A list of the import job summaries.+listImportJobsResponse_importJobs :: Lens.Lens' ListImportJobsResponse (Prelude.Maybe [ImportJobSummary])+listImportJobsResponse_importJobs = Lens.lens (\ListImportJobsResponse' {importJobs} -> importJobs) (\s@ListImportJobsResponse' {} a -> s {importJobs = a} :: ListImportJobsResponse) Prelude.. Lens.mapping Lens.coerced++-- | A string token indicating that there might be additional import jobs+-- available to be listed. Copy this token to a subsequent call to+-- @ListImportJobs@ with the same parameters to retrieve the next page of+-- import jobs.+listImportJobsResponse_nextToken :: Lens.Lens' ListImportJobsResponse (Prelude.Maybe Prelude.Text)+listImportJobsResponse_nextToken = Lens.lens (\ListImportJobsResponse' {nextToken} -> nextToken) (\s@ListImportJobsResponse' {} a -> s {nextToken = a} :: ListImportJobsResponse)++-- | The response's http status code.+listImportJobsResponse_httpStatus :: Lens.Lens' ListImportJobsResponse Prelude.Int+listImportJobsResponse_httpStatus = Lens.lens (\ListImportJobsResponse' {httpStatus} -> httpStatus) (\s@ListImportJobsResponse' {} a -> s {httpStatus = a} :: ListImportJobsResponse)++instance Prelude.NFData ListImportJobsResponse where+ rnf ListImportJobsResponse' {..} =+ Prelude.rnf importJobs+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/ListRecommendations.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.SESV2.ListRecommendations+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the recommendations present in your Amazon SES account in the+-- current Amazon Web Services Region.+--+-- You can execute this operation no more than once per second.+module Amazonka.SESV2.ListRecommendations+ ( -- * Creating a Request+ ListRecommendations (..),+ newListRecommendations,++ -- * Request Lenses+ listRecommendations_filter,+ listRecommendations_nextToken,+ listRecommendations_pageSize,++ -- * Destructuring the Response+ ListRecommendationsResponse (..),+ newListRecommendationsResponse,++ -- * Response Lenses+ listRecommendationsResponse_nextToken,+ listRecommendationsResponse_recommendations,+ listRecommendationsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | Represents a request to list the existing recommendations for your+-- account.+--+-- /See:/ 'newListRecommendations' smart constructor.+data ListRecommendations = ListRecommendations'+ { -- | Filters applied when retrieving recommendations. Can eiter be an+ -- individual filter, or combinations of @STATUS@ and @IMPACT@ or @STATUS@+ -- and @TYPE@+ filter' :: Prelude.Maybe (Prelude.HashMap ListRecommendationsFilterKey Prelude.Text),+ -- | A token returned from a previous call to @ListRecommendations@ to+ -- indicate the position in the list of recommendations.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The number of results to show in a single call to @ListRecommendations@.+ -- If the number of results is larger than the number you specified in this+ -- parameter, then the response includes a @NextToken@ element, which you+ -- can use to obtain additional results.+ --+ -- The value you specify has to be at least 1, and can be no more than 100.+ pageSize :: Prelude.Maybe Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRecommendations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filter'', 'listRecommendations_filter' - Filters applied when retrieving recommendations. Can eiter be an+-- individual filter, or combinations of @STATUS@ and @IMPACT@ or @STATUS@+-- and @TYPE@+--+-- 'nextToken', 'listRecommendations_nextToken' - A token returned from a previous call to @ListRecommendations@ to+-- indicate the position in the list of recommendations.+--+-- 'pageSize', 'listRecommendations_pageSize' - The number of results to show in a single call to @ListRecommendations@.+-- If the number of results is larger than the number you specified in this+-- parameter, then the response includes a @NextToken@ element, which you+-- can use to obtain additional results.+--+-- The value you specify has to be at least 1, and can be no more than 100.+newListRecommendations ::+ ListRecommendations+newListRecommendations =+ ListRecommendations'+ { filter' = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ pageSize = Prelude.Nothing+ }++-- | Filters applied when retrieving recommendations. Can eiter be an+-- individual filter, or combinations of @STATUS@ and @IMPACT@ or @STATUS@+-- and @TYPE@+listRecommendations_filter :: Lens.Lens' ListRecommendations (Prelude.Maybe (Prelude.HashMap ListRecommendationsFilterKey Prelude.Text))+listRecommendations_filter = Lens.lens (\ListRecommendations' {filter'} -> filter') (\s@ListRecommendations' {} a -> s {filter' = a} :: ListRecommendations) Prelude.. Lens.mapping Lens.coerced++-- | A token returned from a previous call to @ListRecommendations@ to+-- indicate the position in the list of recommendations.+listRecommendations_nextToken :: Lens.Lens' ListRecommendations (Prelude.Maybe Prelude.Text)+listRecommendations_nextToken = Lens.lens (\ListRecommendations' {nextToken} -> nextToken) (\s@ListRecommendations' {} a -> s {nextToken = a} :: ListRecommendations)++-- | The number of results to show in a single call to @ListRecommendations@.+-- If the number of results is larger than the number you specified in this+-- parameter, then the response includes a @NextToken@ element, which you+-- can use to obtain additional results.+--+-- The value you specify has to be at least 1, and can be no more than 100.+listRecommendations_pageSize :: Lens.Lens' ListRecommendations (Prelude.Maybe Prelude.Int)+listRecommendations_pageSize = Lens.lens (\ListRecommendations' {pageSize} -> pageSize) (\s@ListRecommendations' {} a -> s {pageSize = a} :: ListRecommendations)++instance Core.AWSRequest ListRecommendations where+ type+ AWSResponse ListRecommendations =+ ListRecommendationsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListRecommendationsResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> ( x+ Data..?> "Recommendations"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListRecommendations where+ hashWithSalt _salt ListRecommendations' {..} =+ _salt+ `Prelude.hashWithSalt` filter'+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` pageSize++instance Prelude.NFData ListRecommendations where+ rnf ListRecommendations' {..} =+ Prelude.rnf filter'+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf pageSize++instance Data.ToHeaders ListRecommendations where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON ListRecommendations where+ toJSON ListRecommendations' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Filter" Data..=) Prelude.<$> filter',+ ("NextToken" Data..=) Prelude.<$> nextToken,+ ("PageSize" Data..=) Prelude.<$> pageSize+ ]+ )++instance Data.ToPath ListRecommendations where+ toPath =+ Prelude.const "/v2/email/vdm/recommendations"++instance Data.ToQuery ListRecommendations where+ toQuery = Prelude.const Prelude.mempty++-- | Contains the response to your request to retrieve the list of+-- recommendations for your account.+--+-- /See:/ 'newListRecommendationsResponse' smart constructor.+data ListRecommendationsResponse = ListRecommendationsResponse'+ { -- | A string token indicating that there might be additional recommendations+ -- available to be listed. Use the token provided in the+ -- @ListRecommendationsResponse@ to use in the subsequent call to+ -- @ListRecommendations@ with the same parameters to retrieve the next page+ -- of recommendations.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The recommendations applicable to your account.+ recommendations :: Prelude.Maybe [Recommendation],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRecommendationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listRecommendationsResponse_nextToken' - A string token indicating that there might be additional recommendations+-- available to be listed. Use the token provided in the+-- @ListRecommendationsResponse@ to use in the subsequent call to+-- @ListRecommendations@ with the same parameters to retrieve the next page+-- of recommendations.+--+-- 'recommendations', 'listRecommendationsResponse_recommendations' - The recommendations applicable to your account.+--+-- 'httpStatus', 'listRecommendationsResponse_httpStatus' - The response's http status code.+newListRecommendationsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListRecommendationsResponse+newListRecommendationsResponse pHttpStatus_ =+ ListRecommendationsResponse'+ { nextToken =+ Prelude.Nothing,+ recommendations = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A string token indicating that there might be additional recommendations+-- available to be listed. Use the token provided in the+-- @ListRecommendationsResponse@ to use in the subsequent call to+-- @ListRecommendations@ with the same parameters to retrieve the next page+-- of recommendations.+listRecommendationsResponse_nextToken :: Lens.Lens' ListRecommendationsResponse (Prelude.Maybe Prelude.Text)+listRecommendationsResponse_nextToken = Lens.lens (\ListRecommendationsResponse' {nextToken} -> nextToken) (\s@ListRecommendationsResponse' {} a -> s {nextToken = a} :: ListRecommendationsResponse)++-- | The recommendations applicable to your account.+listRecommendationsResponse_recommendations :: Lens.Lens' ListRecommendationsResponse (Prelude.Maybe [Recommendation])+listRecommendationsResponse_recommendations = Lens.lens (\ListRecommendationsResponse' {recommendations} -> recommendations) (\s@ListRecommendationsResponse' {} a -> s {recommendations = a} :: ListRecommendationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listRecommendationsResponse_httpStatus :: Lens.Lens' ListRecommendationsResponse Prelude.Int+listRecommendationsResponse_httpStatus = Lens.lens (\ListRecommendationsResponse' {httpStatus} -> httpStatus) (\s@ListRecommendationsResponse' {} a -> s {httpStatus = a} :: ListRecommendationsResponse)++instance Prelude.NFData ListRecommendationsResponse where+ rnf ListRecommendationsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf recommendations+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/ListSuppressedDestinations.hs view
@@ -0,0 +1,273 @@+{-# 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.SESV2.ListSuppressedDestinations+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a list of email addresses that are on the suppression list for+-- your account.+module Amazonka.SESV2.ListSuppressedDestinations+ ( -- * Creating a Request+ ListSuppressedDestinations (..),+ newListSuppressedDestinations,++ -- * Request Lenses+ listSuppressedDestinations_endDate,+ listSuppressedDestinations_nextToken,+ listSuppressedDestinations_pageSize,+ listSuppressedDestinations_reasons,+ listSuppressedDestinations_startDate,++ -- * Destructuring the Response+ ListSuppressedDestinationsResponse (..),+ newListSuppressedDestinationsResponse,++ -- * Response Lenses+ listSuppressedDestinationsResponse_nextToken,+ listSuppressedDestinationsResponse_suppressedDestinationSummaries,+ listSuppressedDestinationsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to obtain a list of email destinations that are on the+-- suppression list for your account.+--+-- /See:/ 'newListSuppressedDestinations' smart constructor.+data ListSuppressedDestinations = ListSuppressedDestinations'+ { -- | Used to filter the list of suppressed email destinations so that it only+ -- includes addresses that were added to the list before a specific date.+ endDate :: Prelude.Maybe Data.POSIX,+ -- | A token returned from a previous call to @ListSuppressedDestinations@ to+ -- indicate the position in the list of suppressed email addresses.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The number of results to show in a single call to+ -- @ListSuppressedDestinations@. If the number of results is larger than+ -- the number you specified in this parameter, then the response includes a+ -- @NextToken@ element, which you can use to obtain additional results.+ pageSize :: Prelude.Maybe Prelude.Int,+ -- | The factors that caused the email address to be added to .+ reasons :: Prelude.Maybe [SuppressionListReason],+ -- | Used to filter the list of suppressed email destinations so that it only+ -- includes addresses that were added to the list after a specific date.+ startDate :: Prelude.Maybe Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSuppressedDestinations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endDate', 'listSuppressedDestinations_endDate' - Used to filter the list of suppressed email destinations so that it only+-- includes addresses that were added to the list before a specific date.+--+-- 'nextToken', 'listSuppressedDestinations_nextToken' - A token returned from a previous call to @ListSuppressedDestinations@ to+-- indicate the position in the list of suppressed email addresses.+--+-- 'pageSize', 'listSuppressedDestinations_pageSize' - The number of results to show in a single call to+-- @ListSuppressedDestinations@. If the number of results is larger than+-- the number you specified in this parameter, then the response includes a+-- @NextToken@ element, which you can use to obtain additional results.+--+-- 'reasons', 'listSuppressedDestinations_reasons' - The factors that caused the email address to be added to .+--+-- 'startDate', 'listSuppressedDestinations_startDate' - Used to filter the list of suppressed email destinations so that it only+-- includes addresses that were added to the list after a specific date.+newListSuppressedDestinations ::+ ListSuppressedDestinations+newListSuppressedDestinations =+ ListSuppressedDestinations'+ { endDate =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ pageSize = Prelude.Nothing,+ reasons = Prelude.Nothing,+ startDate = Prelude.Nothing+ }++-- | Used to filter the list of suppressed email destinations so that it only+-- includes addresses that were added to the list before a specific date.+listSuppressedDestinations_endDate :: Lens.Lens' ListSuppressedDestinations (Prelude.Maybe Prelude.UTCTime)+listSuppressedDestinations_endDate = Lens.lens (\ListSuppressedDestinations' {endDate} -> endDate) (\s@ListSuppressedDestinations' {} a -> s {endDate = a} :: ListSuppressedDestinations) Prelude.. Lens.mapping Data._Time++-- | A token returned from a previous call to @ListSuppressedDestinations@ to+-- indicate the position in the list of suppressed email addresses.+listSuppressedDestinations_nextToken :: Lens.Lens' ListSuppressedDestinations (Prelude.Maybe Prelude.Text)+listSuppressedDestinations_nextToken = Lens.lens (\ListSuppressedDestinations' {nextToken} -> nextToken) (\s@ListSuppressedDestinations' {} a -> s {nextToken = a} :: ListSuppressedDestinations)++-- | The number of results to show in a single call to+-- @ListSuppressedDestinations@. If the number of results is larger than+-- the number you specified in this parameter, then the response includes a+-- @NextToken@ element, which you can use to obtain additional results.+listSuppressedDestinations_pageSize :: Lens.Lens' ListSuppressedDestinations (Prelude.Maybe Prelude.Int)+listSuppressedDestinations_pageSize = Lens.lens (\ListSuppressedDestinations' {pageSize} -> pageSize) (\s@ListSuppressedDestinations' {} a -> s {pageSize = a} :: ListSuppressedDestinations)++-- | The factors that caused the email address to be added to .+listSuppressedDestinations_reasons :: Lens.Lens' ListSuppressedDestinations (Prelude.Maybe [SuppressionListReason])+listSuppressedDestinations_reasons = Lens.lens (\ListSuppressedDestinations' {reasons} -> reasons) (\s@ListSuppressedDestinations' {} a -> s {reasons = a} :: ListSuppressedDestinations) Prelude.. Lens.mapping Lens.coerced++-- | Used to filter the list of suppressed email destinations so that it only+-- includes addresses that were added to the list after a specific date.+listSuppressedDestinations_startDate :: Lens.Lens' ListSuppressedDestinations (Prelude.Maybe Prelude.UTCTime)+listSuppressedDestinations_startDate = Lens.lens (\ListSuppressedDestinations' {startDate} -> startDate) (\s@ListSuppressedDestinations' {} a -> s {startDate = a} :: ListSuppressedDestinations) Prelude.. Lens.mapping Data._Time++instance Core.AWSRequest ListSuppressedDestinations where+ type+ AWSResponse ListSuppressedDestinations =+ ListSuppressedDestinationsResponse+ request overrides =+ Request.get (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ ListSuppressedDestinationsResponse'+ Prelude.<$> (x Data..?> "NextToken")+ Prelude.<*> ( x+ Data..?> "SuppressedDestinationSummaries"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable ListSuppressedDestinations where+ hashWithSalt _salt ListSuppressedDestinations' {..} =+ _salt+ `Prelude.hashWithSalt` endDate+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` pageSize+ `Prelude.hashWithSalt` reasons+ `Prelude.hashWithSalt` startDate++instance Prelude.NFData ListSuppressedDestinations where+ rnf ListSuppressedDestinations' {..} =+ Prelude.rnf endDate+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf pageSize+ `Prelude.seq` Prelude.rnf reasons+ `Prelude.seq` Prelude.rnf startDate++instance Data.ToHeaders ListSuppressedDestinations where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath ListSuppressedDestinations where+ toPath =+ Prelude.const "/v2/email/suppression/addresses"++instance Data.ToQuery ListSuppressedDestinations where+ toQuery ListSuppressedDestinations' {..} =+ Prelude.mconcat+ [ "EndDate" Data.=: endDate,+ "NextToken" Data.=: nextToken,+ "PageSize" Data.=: pageSize,+ "Reason"+ Data.=: Data.toQuery+ (Data.toQueryList "member" Prelude.<$> reasons),+ "StartDate" Data.=: startDate+ ]++-- | A list of suppressed email addresses.+--+-- /See:/ 'newListSuppressedDestinationsResponse' smart constructor.+data ListSuppressedDestinationsResponse = ListSuppressedDestinationsResponse'+ { -- | A token that indicates that there are additional email addresses on the+ -- suppression list for your account. To view additional suppressed+ -- addresses, issue another request to @ListSuppressedDestinations@, and+ -- pass this token in the @NextToken@ parameter.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | A list of summaries, each containing a summary for a suppressed email+ -- destination.+ suppressedDestinationSummaries :: Prelude.Maybe [SuppressedDestinationSummary],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSuppressedDestinationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listSuppressedDestinationsResponse_nextToken' - A token that indicates that there are additional email addresses on the+-- suppression list for your account. To view additional suppressed+-- addresses, issue another request to @ListSuppressedDestinations@, and+-- pass this token in the @NextToken@ parameter.+--+-- 'suppressedDestinationSummaries', 'listSuppressedDestinationsResponse_suppressedDestinationSummaries' - A list of summaries, each containing a summary for a suppressed email+-- destination.+--+-- 'httpStatus', 'listSuppressedDestinationsResponse_httpStatus' - The response's http status code.+newListSuppressedDestinationsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListSuppressedDestinationsResponse+newListSuppressedDestinationsResponse pHttpStatus_ =+ ListSuppressedDestinationsResponse'+ { nextToken =+ Prelude.Nothing,+ suppressedDestinationSummaries =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A token that indicates that there are additional email addresses on the+-- suppression list for your account. To view additional suppressed+-- addresses, issue another request to @ListSuppressedDestinations@, and+-- pass this token in the @NextToken@ parameter.+listSuppressedDestinationsResponse_nextToken :: Lens.Lens' ListSuppressedDestinationsResponse (Prelude.Maybe Prelude.Text)+listSuppressedDestinationsResponse_nextToken = Lens.lens (\ListSuppressedDestinationsResponse' {nextToken} -> nextToken) (\s@ListSuppressedDestinationsResponse' {} a -> s {nextToken = a} :: ListSuppressedDestinationsResponse)++-- | A list of summaries, each containing a summary for a suppressed email+-- destination.+listSuppressedDestinationsResponse_suppressedDestinationSummaries :: Lens.Lens' ListSuppressedDestinationsResponse (Prelude.Maybe [SuppressedDestinationSummary])+listSuppressedDestinationsResponse_suppressedDestinationSummaries = Lens.lens (\ListSuppressedDestinationsResponse' {suppressedDestinationSummaries} -> suppressedDestinationSummaries) (\s@ListSuppressedDestinationsResponse' {} a -> s {suppressedDestinationSummaries = a} :: ListSuppressedDestinationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listSuppressedDestinationsResponse_httpStatus :: Lens.Lens' ListSuppressedDestinationsResponse Prelude.Int+listSuppressedDestinationsResponse_httpStatus = Lens.lens (\ListSuppressedDestinationsResponse' {httpStatus} -> httpStatus) (\s@ListSuppressedDestinationsResponse' {} a -> s {httpStatus = a} :: ListSuppressedDestinationsResponse)++instance+ Prelude.NFData+ ListSuppressedDestinationsResponse+ where+ rnf ListSuppressedDestinationsResponse' {..} =+ Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf suppressedDestinationSummaries+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/ListTagsForResource.hs view
@@ -0,0 +1,173 @@+{-# 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.SESV2.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)+--+-- Retrieve a list of the tags (keys and values) that are associated with a+-- specified resource. A /tag/ is a label that you optionally define and+-- associate with a resource. Each tag consists of a required /tag key/ and+-- an optional associated /tag value/. A tag key is a general label that+-- acts as a category for more specific tag values. A tag value acts as a+-- descriptor within a tag key.+module Amazonka.SESV2.ListTagsForResource+ ( -- * Creating a Request+ ListTagsForResource (..),+ newListTagsForResource,++ -- * Request Lenses+ listTagsForResource_resourceArn,++ -- * Destructuring the Response+ ListTagsForResourceResponse (..),+ newListTagsForResourceResponse,++ -- * Response Lenses+ listTagsForResourceResponse_httpStatus,+ listTagsForResourceResponse_tags,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+ { -- | The Amazon Resource Name (ARN) of the resource that you want to retrieve+ -- tag information for.+ resourceArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'listTagsForResource_resourceArn' - The Amazon Resource Name (ARN) of the resource that you want to retrieve+-- tag information for.+newListTagsForResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ ListTagsForResource+newListTagsForResource pResourceArn_ =+ ListTagsForResource' {resourceArn = pResourceArn_}++-- | The Amazon Resource Name (ARN) of the resource that you want to retrieve+-- tag information for.+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.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+ )++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 = Prelude.const "/v2/email/tags"++instance Data.ToQuery ListTagsForResource where+ toQuery ListTagsForResource' {..} =+ Prelude.mconcat ["ResourceArn" Data.=: resourceArn]++-- | /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | An array that lists all the tags that are associated with the resource.+ -- Each tag consists of a required tag key (@Key@) and an associated tag+ -- value (@Value@)+ tags :: [Tag]+ }+ 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:+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+--+-- 'tags', 'listTagsForResourceResponse_tags' - An array that lists all the tags that are associated with the resource.+-- Each tag consists of a required tag key (@Key@) and an associated tag+-- value (@Value@)+newListTagsForResourceResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+ ListTagsForResourceResponse'+ { httpStatus =+ pHttpStatus_,+ tags = Prelude.mempty+ }++-- | 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)++-- | An array that lists all the tags that are associated with the resource.+-- Each tag consists of a required tag key (@Key@) and an associated tag+-- value (@Value@)+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse [Tag]+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListTagsForResourceResponse where+ rnf ListTagsForResourceResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/SESV2/PutAccountDedicatedIpWarmupAttributes.hs view
@@ -0,0 +1,202 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.PutAccountDedicatedIpWarmupAttributes+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Enable or disable the automatic warm-up feature for dedicated IP+-- addresses.+module Amazonka.SESV2.PutAccountDedicatedIpWarmupAttributes+ ( -- * Creating a Request+ PutAccountDedicatedIpWarmupAttributes (..),+ newPutAccountDedicatedIpWarmupAttributes,++ -- * Request Lenses+ putAccountDedicatedIpWarmupAttributes_autoWarmupEnabled,++ -- * Destructuring the Response+ PutAccountDedicatedIpWarmupAttributesResponse (..),+ newPutAccountDedicatedIpWarmupAttributesResponse,++ -- * Response Lenses+ putAccountDedicatedIpWarmupAttributesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to enable or disable the automatic IP address warm-up feature.+--+-- /See:/ 'newPutAccountDedicatedIpWarmupAttributes' smart constructor.+data PutAccountDedicatedIpWarmupAttributes = PutAccountDedicatedIpWarmupAttributes'+ { -- | Enables or disables the automatic warm-up feature for dedicated IP+ -- addresses that are associated with your Amazon SES account in the+ -- current Amazon Web Services Region. Set to @true@ to enable the+ -- automatic warm-up feature, or set to @false@ to disable it.+ autoWarmupEnabled :: Prelude.Maybe Prelude.Bool+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutAccountDedicatedIpWarmupAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'autoWarmupEnabled', 'putAccountDedicatedIpWarmupAttributes_autoWarmupEnabled' - Enables or disables the automatic warm-up feature for dedicated IP+-- addresses that are associated with your Amazon SES account in the+-- current Amazon Web Services Region. Set to @true@ to enable the+-- automatic warm-up feature, or set to @false@ to disable it.+newPutAccountDedicatedIpWarmupAttributes ::+ PutAccountDedicatedIpWarmupAttributes+newPutAccountDedicatedIpWarmupAttributes =+ PutAccountDedicatedIpWarmupAttributes'+ { autoWarmupEnabled =+ Prelude.Nothing+ }++-- | Enables or disables the automatic warm-up feature for dedicated IP+-- addresses that are associated with your Amazon SES account in the+-- current Amazon Web Services Region. Set to @true@ to enable the+-- automatic warm-up feature, or set to @false@ to disable it.+putAccountDedicatedIpWarmupAttributes_autoWarmupEnabled :: Lens.Lens' PutAccountDedicatedIpWarmupAttributes (Prelude.Maybe Prelude.Bool)+putAccountDedicatedIpWarmupAttributes_autoWarmupEnabled = Lens.lens (\PutAccountDedicatedIpWarmupAttributes' {autoWarmupEnabled} -> autoWarmupEnabled) (\s@PutAccountDedicatedIpWarmupAttributes' {} a -> s {autoWarmupEnabled = a} :: PutAccountDedicatedIpWarmupAttributes)++instance+ Core.AWSRequest+ PutAccountDedicatedIpWarmupAttributes+ where+ type+ AWSResponse+ PutAccountDedicatedIpWarmupAttributes =+ PutAccountDedicatedIpWarmupAttributesResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ PutAccountDedicatedIpWarmupAttributesResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ PutAccountDedicatedIpWarmupAttributes+ where+ hashWithSalt+ _salt+ PutAccountDedicatedIpWarmupAttributes' {..} =+ _salt `Prelude.hashWithSalt` autoWarmupEnabled++instance+ Prelude.NFData+ PutAccountDedicatedIpWarmupAttributes+ where+ rnf PutAccountDedicatedIpWarmupAttributes' {..} =+ Prelude.rnf autoWarmupEnabled++instance+ Data.ToHeaders+ PutAccountDedicatedIpWarmupAttributes+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToJSON+ PutAccountDedicatedIpWarmupAttributes+ where+ toJSON PutAccountDedicatedIpWarmupAttributes' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AutoWarmupEnabled" Data..=)+ Prelude.<$> autoWarmupEnabled+ ]+ )++instance+ Data.ToPath+ PutAccountDedicatedIpWarmupAttributes+ where+ toPath =+ Prelude.const+ "/v2/email/account/dedicated-ips/warmup"++instance+ Data.ToQuery+ PutAccountDedicatedIpWarmupAttributes+ where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newPutAccountDedicatedIpWarmupAttributesResponse' smart constructor.+data PutAccountDedicatedIpWarmupAttributesResponse = PutAccountDedicatedIpWarmupAttributesResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutAccountDedicatedIpWarmupAttributesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putAccountDedicatedIpWarmupAttributesResponse_httpStatus' - The response's http status code.+newPutAccountDedicatedIpWarmupAttributesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutAccountDedicatedIpWarmupAttributesResponse+newPutAccountDedicatedIpWarmupAttributesResponse+ pHttpStatus_ =+ PutAccountDedicatedIpWarmupAttributesResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+putAccountDedicatedIpWarmupAttributesResponse_httpStatus :: Lens.Lens' PutAccountDedicatedIpWarmupAttributesResponse Prelude.Int+putAccountDedicatedIpWarmupAttributesResponse_httpStatus = Lens.lens (\PutAccountDedicatedIpWarmupAttributesResponse' {httpStatus} -> httpStatus) (\s@PutAccountDedicatedIpWarmupAttributesResponse' {} a -> s {httpStatus = a} :: PutAccountDedicatedIpWarmupAttributesResponse)++instance+ Prelude.NFData+ PutAccountDedicatedIpWarmupAttributesResponse+ where+ rnf+ PutAccountDedicatedIpWarmupAttributesResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/PutAccountDetails.hs view
@@ -0,0 +1,282 @@+{-# 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.SESV2.PutAccountDetails+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Update your Amazon SES account details.+module Amazonka.SESV2.PutAccountDetails+ ( -- * Creating a Request+ PutAccountDetails (..),+ newPutAccountDetails,++ -- * Request Lenses+ putAccountDetails_additionalContactEmailAddresses,+ putAccountDetails_contactLanguage,+ putAccountDetails_productionAccessEnabled,+ putAccountDetails_mailType,+ putAccountDetails_websiteURL,+ putAccountDetails_useCaseDescription,++ -- * Destructuring the Response+ PutAccountDetailsResponse (..),+ newPutAccountDetailsResponse,++ -- * Response Lenses+ putAccountDetailsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to submit new account details.+--+-- /See:/ 'newPutAccountDetails' smart constructor.+data PutAccountDetails = PutAccountDetails'+ { -- | Additional email addresses that you would like to be notified regarding+ -- Amazon SES matters.+ additionalContactEmailAddresses :: Prelude.Maybe (Data.Sensitive (Prelude.NonEmpty (Data.Sensitive Prelude.Text))),+ -- | The language you would prefer to be contacted with.+ contactLanguage :: Prelude.Maybe ContactLanguage,+ -- | Indicates whether or not your account should have production access in+ -- the current Amazon Web Services Region.+ --+ -- If the value is @false@, then your account is in the /sandbox/. When+ -- your account is in the sandbox, you can only send email to verified+ -- identities. Additionally, the maximum number of emails you can send in a+ -- 24-hour period (your sending quota) is 200, and the maximum number of+ -- emails you can send per second (your maximum sending rate) is 1.+ --+ -- If the value is @true@, then your account has production access. When+ -- your account has production access, you can send email to any address.+ -- The sending quota and maximum sending rate for your account vary based+ -- on your specific use case.+ productionAccessEnabled :: Prelude.Maybe Prelude.Bool,+ -- | The type of email your account will send.+ mailType :: MailType,+ -- | The URL of your website. This information helps us better understand the+ -- type of content that you plan to send.+ websiteURL :: Data.Sensitive Prelude.Text,+ -- | A description of the types of email that you plan to send.+ useCaseDescription :: Data.Sensitive Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutAccountDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'additionalContactEmailAddresses', 'putAccountDetails_additionalContactEmailAddresses' - Additional email addresses that you would like to be notified regarding+-- Amazon SES matters.+--+-- 'contactLanguage', 'putAccountDetails_contactLanguage' - The language you would prefer to be contacted with.+--+-- 'productionAccessEnabled', 'putAccountDetails_productionAccessEnabled' - Indicates whether or not your account should have production access in+-- the current Amazon Web Services Region.+--+-- If the value is @false@, then your account is in the /sandbox/. When+-- your account is in the sandbox, you can only send email to verified+-- identities. Additionally, the maximum number of emails you can send in a+-- 24-hour period (your sending quota) is 200, and the maximum number of+-- emails you can send per second (your maximum sending rate) is 1.+--+-- If the value is @true@, then your account has production access. When+-- your account has production access, you can send email to any address.+-- The sending quota and maximum sending rate for your account vary based+-- on your specific use case.+--+-- 'mailType', 'putAccountDetails_mailType' - The type of email your account will send.+--+-- 'websiteURL', 'putAccountDetails_websiteURL' - The URL of your website. This information helps us better understand the+-- type of content that you plan to send.+--+-- 'useCaseDescription', 'putAccountDetails_useCaseDescription' - A description of the types of email that you plan to send.+newPutAccountDetails ::+ -- | 'mailType'+ MailType ->+ -- | 'websiteURL'+ Prelude.Text ->+ -- | 'useCaseDescription'+ Prelude.Text ->+ PutAccountDetails+newPutAccountDetails+ pMailType_+ pWebsiteURL_+ pUseCaseDescription_ =+ PutAccountDetails'+ { additionalContactEmailAddresses =+ Prelude.Nothing,+ contactLanguage = Prelude.Nothing,+ productionAccessEnabled = Prelude.Nothing,+ mailType = pMailType_,+ websiteURL = Data._Sensitive Lens.# pWebsiteURL_,+ useCaseDescription =+ Data._Sensitive Lens.# pUseCaseDescription_+ }++-- | Additional email addresses that you would like to be notified regarding+-- Amazon SES matters.+putAccountDetails_additionalContactEmailAddresses :: Lens.Lens' PutAccountDetails (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+putAccountDetails_additionalContactEmailAddresses = Lens.lens (\PutAccountDetails' {additionalContactEmailAddresses} -> additionalContactEmailAddresses) (\s@PutAccountDetails' {} a -> s {additionalContactEmailAddresses = a} :: PutAccountDetails) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | The language you would prefer to be contacted with.+putAccountDetails_contactLanguage :: Lens.Lens' PutAccountDetails (Prelude.Maybe ContactLanguage)+putAccountDetails_contactLanguage = Lens.lens (\PutAccountDetails' {contactLanguage} -> contactLanguage) (\s@PutAccountDetails' {} a -> s {contactLanguage = a} :: PutAccountDetails)++-- | Indicates whether or not your account should have production access in+-- the current Amazon Web Services Region.+--+-- If the value is @false@, then your account is in the /sandbox/. When+-- your account is in the sandbox, you can only send email to verified+-- identities. Additionally, the maximum number of emails you can send in a+-- 24-hour period (your sending quota) is 200, and the maximum number of+-- emails you can send per second (your maximum sending rate) is 1.+--+-- If the value is @true@, then your account has production access. When+-- your account has production access, you can send email to any address.+-- The sending quota and maximum sending rate for your account vary based+-- on your specific use case.+putAccountDetails_productionAccessEnabled :: Lens.Lens' PutAccountDetails (Prelude.Maybe Prelude.Bool)+putAccountDetails_productionAccessEnabled = Lens.lens (\PutAccountDetails' {productionAccessEnabled} -> productionAccessEnabled) (\s@PutAccountDetails' {} a -> s {productionAccessEnabled = a} :: PutAccountDetails)++-- | The type of email your account will send.+putAccountDetails_mailType :: Lens.Lens' PutAccountDetails MailType+putAccountDetails_mailType = Lens.lens (\PutAccountDetails' {mailType} -> mailType) (\s@PutAccountDetails' {} a -> s {mailType = a} :: PutAccountDetails)++-- | The URL of your website. This information helps us better understand the+-- type of content that you plan to send.+putAccountDetails_websiteURL :: Lens.Lens' PutAccountDetails Prelude.Text+putAccountDetails_websiteURL = Lens.lens (\PutAccountDetails' {websiteURL} -> websiteURL) (\s@PutAccountDetails' {} a -> s {websiteURL = a} :: PutAccountDetails) Prelude.. Data._Sensitive++-- | A description of the types of email that you plan to send.+putAccountDetails_useCaseDescription :: Lens.Lens' PutAccountDetails Prelude.Text+putAccountDetails_useCaseDescription = Lens.lens (\PutAccountDetails' {useCaseDescription} -> useCaseDescription) (\s@PutAccountDetails' {} a -> s {useCaseDescription = a} :: PutAccountDetails) Prelude.. Data._Sensitive++instance Core.AWSRequest PutAccountDetails where+ type+ AWSResponse PutAccountDetails =+ PutAccountDetailsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ PutAccountDetailsResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable PutAccountDetails where+ hashWithSalt _salt PutAccountDetails' {..} =+ _salt+ `Prelude.hashWithSalt` additionalContactEmailAddresses+ `Prelude.hashWithSalt` contactLanguage+ `Prelude.hashWithSalt` productionAccessEnabled+ `Prelude.hashWithSalt` mailType+ `Prelude.hashWithSalt` websiteURL+ `Prelude.hashWithSalt` useCaseDescription++instance Prelude.NFData PutAccountDetails where+ rnf PutAccountDetails' {..} =+ Prelude.rnf additionalContactEmailAddresses+ `Prelude.seq` Prelude.rnf contactLanguage+ `Prelude.seq` Prelude.rnf productionAccessEnabled+ `Prelude.seq` Prelude.rnf mailType+ `Prelude.seq` Prelude.rnf websiteURL+ `Prelude.seq` Prelude.rnf useCaseDescription++instance Data.ToHeaders PutAccountDetails where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON PutAccountDetails where+ toJSON PutAccountDetails' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AdditionalContactEmailAddresses" Data..=)+ Prelude.<$> additionalContactEmailAddresses,+ ("ContactLanguage" Data..=)+ Prelude.<$> contactLanguage,+ ("ProductionAccessEnabled" Data..=)+ Prelude.<$> productionAccessEnabled,+ Prelude.Just ("MailType" Data..= mailType),+ Prelude.Just ("WebsiteURL" Data..= websiteURL),+ Prelude.Just+ ("UseCaseDescription" Data..= useCaseDescription)+ ]+ )++instance Data.ToPath PutAccountDetails where+ toPath = Prelude.const "/v2/email/account/details"++instance Data.ToQuery PutAccountDetails where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newPutAccountDetailsResponse' smart constructor.+data PutAccountDetailsResponse = PutAccountDetailsResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutAccountDetailsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putAccountDetailsResponse_httpStatus' - The response's http status code.+newPutAccountDetailsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutAccountDetailsResponse+newPutAccountDetailsResponse pHttpStatus_ =+ PutAccountDetailsResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+putAccountDetailsResponse_httpStatus :: Lens.Lens' PutAccountDetailsResponse Prelude.Int+putAccountDetailsResponse_httpStatus = Lens.lens (\PutAccountDetailsResponse' {httpStatus} -> httpStatus) (\s@PutAccountDetailsResponse' {} a -> s {httpStatus = a} :: PutAccountDetailsResponse)++instance Prelude.NFData PutAccountDetailsResponse where+ rnf PutAccountDetailsResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/PutAccountSendingAttributes.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.SESV2.PutAccountSendingAttributes+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Enable or disable the ability of your account to send email.+module Amazonka.SESV2.PutAccountSendingAttributes+ ( -- * Creating a Request+ PutAccountSendingAttributes (..),+ newPutAccountSendingAttributes,++ -- * Request Lenses+ putAccountSendingAttributes_sendingEnabled,++ -- * Destructuring the Response+ PutAccountSendingAttributesResponse (..),+ newPutAccountSendingAttributesResponse,++ -- * Response Lenses+ putAccountSendingAttributesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to change the ability of your account to send email.+--+-- /See:/ 'newPutAccountSendingAttributes' smart constructor.+data PutAccountSendingAttributes = PutAccountSendingAttributes'+ { -- | Enables or disables your account\'s ability to send email. Set to @true@+ -- to enable email sending, or set to @false@ to disable email sending.+ --+ -- If Amazon Web Services paused your account\'s ability to send email, you+ -- can\'t use this operation to resume your account\'s ability to send+ -- email.+ sendingEnabled :: Prelude.Maybe Prelude.Bool+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutAccountSendingAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sendingEnabled', 'putAccountSendingAttributes_sendingEnabled' - Enables or disables your account\'s ability to send email. Set to @true@+-- to enable email sending, or set to @false@ to disable email sending.+--+-- If Amazon Web Services paused your account\'s ability to send email, you+-- can\'t use this operation to resume your account\'s ability to send+-- email.+newPutAccountSendingAttributes ::+ PutAccountSendingAttributes+newPutAccountSendingAttributes =+ PutAccountSendingAttributes'+ { sendingEnabled =+ Prelude.Nothing+ }++-- | Enables or disables your account\'s ability to send email. Set to @true@+-- to enable email sending, or set to @false@ to disable email sending.+--+-- If Amazon Web Services paused your account\'s ability to send email, you+-- can\'t use this operation to resume your account\'s ability to send+-- email.+putAccountSendingAttributes_sendingEnabled :: Lens.Lens' PutAccountSendingAttributes (Prelude.Maybe Prelude.Bool)+putAccountSendingAttributes_sendingEnabled = Lens.lens (\PutAccountSendingAttributes' {sendingEnabled} -> sendingEnabled) (\s@PutAccountSendingAttributes' {} a -> s {sendingEnabled = a} :: PutAccountSendingAttributes)++instance Core.AWSRequest PutAccountSendingAttributes where+ type+ AWSResponse PutAccountSendingAttributes =+ PutAccountSendingAttributesResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ PutAccountSendingAttributesResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable PutAccountSendingAttributes where+ hashWithSalt _salt PutAccountSendingAttributes' {..} =+ _salt `Prelude.hashWithSalt` sendingEnabled++instance Prelude.NFData PutAccountSendingAttributes where+ rnf PutAccountSendingAttributes' {..} =+ Prelude.rnf sendingEnabled++instance Data.ToHeaders PutAccountSendingAttributes where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON PutAccountSendingAttributes where+ toJSON PutAccountSendingAttributes' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("SendingEnabled" Data..=)+ Prelude.<$> sendingEnabled+ ]+ )++instance Data.ToPath PutAccountSendingAttributes where+ toPath = Prelude.const "/v2/email/account/sending"++instance Data.ToQuery PutAccountSendingAttributes where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newPutAccountSendingAttributesResponse' smart constructor.+data PutAccountSendingAttributesResponse = PutAccountSendingAttributesResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutAccountSendingAttributesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putAccountSendingAttributesResponse_httpStatus' - The response's http status code.+newPutAccountSendingAttributesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutAccountSendingAttributesResponse+newPutAccountSendingAttributesResponse pHttpStatus_ =+ PutAccountSendingAttributesResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+putAccountSendingAttributesResponse_httpStatus :: Lens.Lens' PutAccountSendingAttributesResponse Prelude.Int+putAccountSendingAttributesResponse_httpStatus = Lens.lens (\PutAccountSendingAttributesResponse' {httpStatus} -> httpStatus) (\s@PutAccountSendingAttributesResponse' {} a -> s {httpStatus = a} :: PutAccountSendingAttributesResponse)++instance+ Prelude.NFData+ PutAccountSendingAttributesResponse+ where+ rnf PutAccountSendingAttributesResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/PutAccountSuppressionAttributes.hs view
@@ -0,0 +1,210 @@+{-# 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.SESV2.PutAccountSuppressionAttributes+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Change the settings for the account-level suppression list.+module Amazonka.SESV2.PutAccountSuppressionAttributes+ ( -- * Creating a Request+ PutAccountSuppressionAttributes (..),+ newPutAccountSuppressionAttributes,++ -- * Request Lenses+ putAccountSuppressionAttributes_suppressedReasons,++ -- * Destructuring the Response+ PutAccountSuppressionAttributesResponse (..),+ newPutAccountSuppressionAttributesResponse,++ -- * Response Lenses+ putAccountSuppressionAttributesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to change your account\'s suppression preferences.+--+-- /See:/ 'newPutAccountSuppressionAttributes' smart constructor.+data PutAccountSuppressionAttributes = PutAccountSuppressionAttributes'+ { -- | A list that contains the reasons that email addresses will be+ -- automatically added to the suppression list for your account. This list+ -- can contain any or all of the following:+ --+ -- - @COMPLAINT@ – Amazon SES adds an email address to the suppression+ -- list for your account when a message sent to that address results in+ -- a complaint.+ --+ -- - @BOUNCE@ – Amazon SES adds an email address to the suppression list+ -- for your account when a message sent to that address results in a+ -- hard bounce.+ suppressedReasons :: Prelude.Maybe [SuppressionListReason]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutAccountSuppressionAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'suppressedReasons', 'putAccountSuppressionAttributes_suppressedReasons' - A list that contains the reasons that email addresses will be+-- automatically added to the suppression list for your account. This list+-- can contain any or all of the following:+--+-- - @COMPLAINT@ – Amazon SES adds an email address to the suppression+-- list for your account when a message sent to that address results in+-- a complaint.+--+-- - @BOUNCE@ – Amazon SES adds an email address to the suppression list+-- for your account when a message sent to that address results in a+-- hard bounce.+newPutAccountSuppressionAttributes ::+ PutAccountSuppressionAttributes+newPutAccountSuppressionAttributes =+ PutAccountSuppressionAttributes'+ { suppressedReasons =+ Prelude.Nothing+ }++-- | A list that contains the reasons that email addresses will be+-- automatically added to the suppression list for your account. This list+-- can contain any or all of the following:+--+-- - @COMPLAINT@ – Amazon SES adds an email address to the suppression+-- list for your account when a message sent to that address results in+-- a complaint.+--+-- - @BOUNCE@ – Amazon SES adds an email address to the suppression list+-- for your account when a message sent to that address results in a+-- hard bounce.+putAccountSuppressionAttributes_suppressedReasons :: Lens.Lens' PutAccountSuppressionAttributes (Prelude.Maybe [SuppressionListReason])+putAccountSuppressionAttributes_suppressedReasons = Lens.lens (\PutAccountSuppressionAttributes' {suppressedReasons} -> suppressedReasons) (\s@PutAccountSuppressionAttributes' {} a -> s {suppressedReasons = a} :: PutAccountSuppressionAttributes) Prelude.. Lens.mapping Lens.coerced++instance+ Core.AWSRequest+ PutAccountSuppressionAttributes+ where+ type+ AWSResponse PutAccountSuppressionAttributes =+ PutAccountSuppressionAttributesResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ PutAccountSuppressionAttributesResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ PutAccountSuppressionAttributes+ where+ hashWithSalt+ _salt+ PutAccountSuppressionAttributes' {..} =+ _salt `Prelude.hashWithSalt` suppressedReasons++instance+ Prelude.NFData+ PutAccountSuppressionAttributes+ where+ rnf PutAccountSuppressionAttributes' {..} =+ Prelude.rnf suppressedReasons++instance+ Data.ToHeaders+ PutAccountSuppressionAttributes+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON PutAccountSuppressionAttributes where+ toJSON PutAccountSuppressionAttributes' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("SuppressedReasons" Data..=)+ Prelude.<$> suppressedReasons+ ]+ )++instance Data.ToPath PutAccountSuppressionAttributes where+ toPath =+ Prelude.const "/v2/email/account/suppression"++instance Data.ToQuery PutAccountSuppressionAttributes where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newPutAccountSuppressionAttributesResponse' smart constructor.+data PutAccountSuppressionAttributesResponse = PutAccountSuppressionAttributesResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutAccountSuppressionAttributesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putAccountSuppressionAttributesResponse_httpStatus' - The response's http status code.+newPutAccountSuppressionAttributesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutAccountSuppressionAttributesResponse+newPutAccountSuppressionAttributesResponse+ pHttpStatus_ =+ PutAccountSuppressionAttributesResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+putAccountSuppressionAttributesResponse_httpStatus :: Lens.Lens' PutAccountSuppressionAttributesResponse Prelude.Int+putAccountSuppressionAttributesResponse_httpStatus = Lens.lens (\PutAccountSuppressionAttributesResponse' {httpStatus} -> httpStatus) (\s@PutAccountSuppressionAttributesResponse' {} a -> s {httpStatus = a} :: PutAccountSuppressionAttributesResponse)++instance+ Prelude.NFData+ PutAccountSuppressionAttributesResponse+ where+ rnf PutAccountSuppressionAttributesResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/PutAccountVdmAttributes.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.SESV2.PutAccountVdmAttributes+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Update your Amazon SES account VDM attributes.+--+-- You can execute this operation no more than once per second.+module Amazonka.SESV2.PutAccountVdmAttributes+ ( -- * Creating a Request+ PutAccountVdmAttributes (..),+ newPutAccountVdmAttributes,++ -- * Request Lenses+ putAccountVdmAttributes_vdmAttributes,++ -- * Destructuring the Response+ PutAccountVdmAttributesResponse (..),+ newPutAccountVdmAttributesResponse,++ -- * Response Lenses+ putAccountVdmAttributesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to submit new account VDM attributes.+--+-- /See:/ 'newPutAccountVdmAttributes' smart constructor.+data PutAccountVdmAttributes = PutAccountVdmAttributes'+ { -- | The VDM attributes that you wish to apply to your Amazon SES account.+ vdmAttributes :: VdmAttributes+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutAccountVdmAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'vdmAttributes', 'putAccountVdmAttributes_vdmAttributes' - The VDM attributes that you wish to apply to your Amazon SES account.+newPutAccountVdmAttributes ::+ -- | 'vdmAttributes'+ VdmAttributes ->+ PutAccountVdmAttributes+newPutAccountVdmAttributes pVdmAttributes_ =+ PutAccountVdmAttributes'+ { vdmAttributes =+ pVdmAttributes_+ }++-- | The VDM attributes that you wish to apply to your Amazon SES account.+putAccountVdmAttributes_vdmAttributes :: Lens.Lens' PutAccountVdmAttributes VdmAttributes+putAccountVdmAttributes_vdmAttributes = Lens.lens (\PutAccountVdmAttributes' {vdmAttributes} -> vdmAttributes) (\s@PutAccountVdmAttributes' {} a -> s {vdmAttributes = a} :: PutAccountVdmAttributes)++instance Core.AWSRequest PutAccountVdmAttributes where+ type+ AWSResponse PutAccountVdmAttributes =+ PutAccountVdmAttributesResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ PutAccountVdmAttributesResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable PutAccountVdmAttributes where+ hashWithSalt _salt PutAccountVdmAttributes' {..} =+ _salt `Prelude.hashWithSalt` vdmAttributes++instance Prelude.NFData PutAccountVdmAttributes where+ rnf PutAccountVdmAttributes' {..} =+ Prelude.rnf vdmAttributes++instance Data.ToHeaders PutAccountVdmAttributes where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON PutAccountVdmAttributes where+ toJSON PutAccountVdmAttributes' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("VdmAttributes" Data..= vdmAttributes)+ ]+ )++instance Data.ToPath PutAccountVdmAttributes where+ toPath = Prelude.const "/v2/email/account/vdm"++instance Data.ToQuery PutAccountVdmAttributes where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutAccountVdmAttributesResponse' smart constructor.+data PutAccountVdmAttributesResponse = PutAccountVdmAttributesResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutAccountVdmAttributesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putAccountVdmAttributesResponse_httpStatus' - The response's http status code.+newPutAccountVdmAttributesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutAccountVdmAttributesResponse+newPutAccountVdmAttributesResponse pHttpStatus_ =+ PutAccountVdmAttributesResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+putAccountVdmAttributesResponse_httpStatus :: Lens.Lens' PutAccountVdmAttributesResponse Prelude.Int+putAccountVdmAttributesResponse_httpStatus = Lens.lens (\PutAccountVdmAttributesResponse' {httpStatus} -> httpStatus) (\s@PutAccountVdmAttributesResponse' {} a -> s {httpStatus = a} :: PutAccountVdmAttributesResponse)++instance+ Prelude.NFData+ PutAccountVdmAttributesResponse+ where+ rnf PutAccountVdmAttributesResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/PutConfigurationSetDeliveryOptions.hs view
@@ -0,0 +1,240 @@+{-# 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.SESV2.PutConfigurationSetDeliveryOptions+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Associate a configuration set with a dedicated IP pool. You can use+-- dedicated IP pools to create groups of dedicated IP addresses for+-- sending specific types of email.+module Amazonka.SESV2.PutConfigurationSetDeliveryOptions+ ( -- * Creating a Request+ PutConfigurationSetDeliveryOptions (..),+ newPutConfigurationSetDeliveryOptions,++ -- * Request Lenses+ putConfigurationSetDeliveryOptions_sendingPoolName,+ putConfigurationSetDeliveryOptions_tlsPolicy,+ putConfigurationSetDeliveryOptions_configurationSetName,++ -- * Destructuring the Response+ PutConfigurationSetDeliveryOptionsResponse (..),+ newPutConfigurationSetDeliveryOptionsResponse,++ -- * Response Lenses+ putConfigurationSetDeliveryOptionsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to associate a configuration set with a dedicated IP pool.+--+-- /See:/ 'newPutConfigurationSetDeliveryOptions' smart constructor.+data PutConfigurationSetDeliveryOptions = PutConfigurationSetDeliveryOptions'+ { -- | The name of the dedicated IP pool to associate with the configuration+ -- set.+ sendingPoolName :: Prelude.Maybe Prelude.Text,+ -- | Specifies whether messages that use the configuration set are required+ -- to use Transport Layer Security (TLS). If the value is @Require@,+ -- messages are only delivered if a TLS connection can be established. If+ -- the value is @Optional@, messages can be delivered in plain text if a+ -- TLS connection can\'t be established.+ tlsPolicy :: Prelude.Maybe TlsPolicy,+ -- | The name of the configuration set to associate with a dedicated IP pool.+ configurationSetName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutConfigurationSetDeliveryOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sendingPoolName', 'putConfigurationSetDeliveryOptions_sendingPoolName' - The name of the dedicated IP pool to associate with the configuration+-- set.+--+-- 'tlsPolicy', 'putConfigurationSetDeliveryOptions_tlsPolicy' - Specifies whether messages that use the configuration set are required+-- to use Transport Layer Security (TLS). If the value is @Require@,+-- messages are only delivered if a TLS connection can be established. If+-- the value is @Optional@, messages can be delivered in plain text if a+-- TLS connection can\'t be established.+--+-- 'configurationSetName', 'putConfigurationSetDeliveryOptions_configurationSetName' - The name of the configuration set to associate with a dedicated IP pool.+newPutConfigurationSetDeliveryOptions ::+ -- | 'configurationSetName'+ Prelude.Text ->+ PutConfigurationSetDeliveryOptions+newPutConfigurationSetDeliveryOptions+ pConfigurationSetName_ =+ PutConfigurationSetDeliveryOptions'+ { sendingPoolName =+ Prelude.Nothing,+ tlsPolicy = Prelude.Nothing,+ configurationSetName =+ pConfigurationSetName_+ }++-- | The name of the dedicated IP pool to associate with the configuration+-- set.+putConfigurationSetDeliveryOptions_sendingPoolName :: Lens.Lens' PutConfigurationSetDeliveryOptions (Prelude.Maybe Prelude.Text)+putConfigurationSetDeliveryOptions_sendingPoolName = Lens.lens (\PutConfigurationSetDeliveryOptions' {sendingPoolName} -> sendingPoolName) (\s@PutConfigurationSetDeliveryOptions' {} a -> s {sendingPoolName = a} :: PutConfigurationSetDeliveryOptions)++-- | Specifies whether messages that use the configuration set are required+-- to use Transport Layer Security (TLS). If the value is @Require@,+-- messages are only delivered if a TLS connection can be established. If+-- the value is @Optional@, messages can be delivered in plain text if a+-- TLS connection can\'t be established.+putConfigurationSetDeliveryOptions_tlsPolicy :: Lens.Lens' PutConfigurationSetDeliveryOptions (Prelude.Maybe TlsPolicy)+putConfigurationSetDeliveryOptions_tlsPolicy = Lens.lens (\PutConfigurationSetDeliveryOptions' {tlsPolicy} -> tlsPolicy) (\s@PutConfigurationSetDeliveryOptions' {} a -> s {tlsPolicy = a} :: PutConfigurationSetDeliveryOptions)++-- | The name of the configuration set to associate with a dedicated IP pool.+putConfigurationSetDeliveryOptions_configurationSetName :: Lens.Lens' PutConfigurationSetDeliveryOptions Prelude.Text+putConfigurationSetDeliveryOptions_configurationSetName = Lens.lens (\PutConfigurationSetDeliveryOptions' {configurationSetName} -> configurationSetName) (\s@PutConfigurationSetDeliveryOptions' {} a -> s {configurationSetName = a} :: PutConfigurationSetDeliveryOptions)++instance+ Core.AWSRequest+ PutConfigurationSetDeliveryOptions+ where+ type+ AWSResponse PutConfigurationSetDeliveryOptions =+ PutConfigurationSetDeliveryOptionsResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ PutConfigurationSetDeliveryOptionsResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ PutConfigurationSetDeliveryOptions+ where+ hashWithSalt+ _salt+ PutConfigurationSetDeliveryOptions' {..} =+ _salt+ `Prelude.hashWithSalt` sendingPoolName+ `Prelude.hashWithSalt` tlsPolicy+ `Prelude.hashWithSalt` configurationSetName++instance+ Prelude.NFData+ PutConfigurationSetDeliveryOptions+ where+ rnf PutConfigurationSetDeliveryOptions' {..} =+ Prelude.rnf sendingPoolName+ `Prelude.seq` Prelude.rnf tlsPolicy+ `Prelude.seq` Prelude.rnf configurationSetName++instance+ Data.ToHeaders+ PutConfigurationSetDeliveryOptions+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToJSON+ PutConfigurationSetDeliveryOptions+ where+ toJSON PutConfigurationSetDeliveryOptions' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("SendingPoolName" Data..=)+ Prelude.<$> sendingPoolName,+ ("TlsPolicy" Data..=) Prelude.<$> tlsPolicy+ ]+ )++instance+ Data.ToPath+ PutConfigurationSetDeliveryOptions+ where+ toPath PutConfigurationSetDeliveryOptions' {..} =+ Prelude.mconcat+ [ "/v2/email/configuration-sets/",+ Data.toBS configurationSetName,+ "/delivery-options"+ ]++instance+ Data.ToQuery+ PutConfigurationSetDeliveryOptions+ where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newPutConfigurationSetDeliveryOptionsResponse' smart constructor.+data PutConfigurationSetDeliveryOptionsResponse = PutConfigurationSetDeliveryOptionsResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutConfigurationSetDeliveryOptionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putConfigurationSetDeliveryOptionsResponse_httpStatus' - The response's http status code.+newPutConfigurationSetDeliveryOptionsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutConfigurationSetDeliveryOptionsResponse+newPutConfigurationSetDeliveryOptionsResponse+ pHttpStatus_ =+ PutConfigurationSetDeliveryOptionsResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+putConfigurationSetDeliveryOptionsResponse_httpStatus :: Lens.Lens' PutConfigurationSetDeliveryOptionsResponse Prelude.Int+putConfigurationSetDeliveryOptionsResponse_httpStatus = Lens.lens (\PutConfigurationSetDeliveryOptionsResponse' {httpStatus} -> httpStatus) (\s@PutConfigurationSetDeliveryOptionsResponse' {} a -> s {httpStatus = a} :: PutConfigurationSetDeliveryOptionsResponse)++instance+ Prelude.NFData+ PutConfigurationSetDeliveryOptionsResponse+ where+ rnf PutConfigurationSetDeliveryOptionsResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/PutConfigurationSetReputationOptions.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.SESV2.PutConfigurationSetReputationOptions+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Enable or disable collection of reputation metrics for emails that you+-- send using a particular configuration set in a specific Amazon Web+-- Services Region.+module Amazonka.SESV2.PutConfigurationSetReputationOptions+ ( -- * Creating a Request+ PutConfigurationSetReputationOptions (..),+ newPutConfigurationSetReputationOptions,++ -- * Request Lenses+ putConfigurationSetReputationOptions_reputationMetricsEnabled,+ putConfigurationSetReputationOptions_configurationSetName,++ -- * Destructuring the Response+ PutConfigurationSetReputationOptionsResponse (..),+ newPutConfigurationSetReputationOptionsResponse,++ -- * Response Lenses+ putConfigurationSetReputationOptionsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to enable or disable tracking of reputation metrics for a+-- configuration set.+--+-- /See:/ 'newPutConfigurationSetReputationOptions' smart constructor.+data PutConfigurationSetReputationOptions = PutConfigurationSetReputationOptions'+ { -- | If @true@, tracking of reputation metrics is enabled for the+ -- configuration set. If @false@, tracking of reputation metrics is+ -- disabled for the configuration set.+ reputationMetricsEnabled :: Prelude.Maybe Prelude.Bool,+ -- | The name of the configuration set.+ configurationSetName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutConfigurationSetReputationOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'reputationMetricsEnabled', 'putConfigurationSetReputationOptions_reputationMetricsEnabled' - If @true@, tracking of reputation metrics is enabled for the+-- configuration set. If @false@, tracking of reputation metrics is+-- disabled for the configuration set.+--+-- 'configurationSetName', 'putConfigurationSetReputationOptions_configurationSetName' - The name of the configuration set.+newPutConfigurationSetReputationOptions ::+ -- | 'configurationSetName'+ Prelude.Text ->+ PutConfigurationSetReputationOptions+newPutConfigurationSetReputationOptions+ pConfigurationSetName_ =+ PutConfigurationSetReputationOptions'+ { reputationMetricsEnabled =+ Prelude.Nothing,+ configurationSetName =+ pConfigurationSetName_+ }++-- | If @true@, tracking of reputation metrics is enabled for the+-- configuration set. If @false@, tracking of reputation metrics is+-- disabled for the configuration set.+putConfigurationSetReputationOptions_reputationMetricsEnabled :: Lens.Lens' PutConfigurationSetReputationOptions (Prelude.Maybe Prelude.Bool)+putConfigurationSetReputationOptions_reputationMetricsEnabled = Lens.lens (\PutConfigurationSetReputationOptions' {reputationMetricsEnabled} -> reputationMetricsEnabled) (\s@PutConfigurationSetReputationOptions' {} a -> s {reputationMetricsEnabled = a} :: PutConfigurationSetReputationOptions)++-- | The name of the configuration set.+putConfigurationSetReputationOptions_configurationSetName :: Lens.Lens' PutConfigurationSetReputationOptions Prelude.Text+putConfigurationSetReputationOptions_configurationSetName = Lens.lens (\PutConfigurationSetReputationOptions' {configurationSetName} -> configurationSetName) (\s@PutConfigurationSetReputationOptions' {} a -> s {configurationSetName = a} :: PutConfigurationSetReputationOptions)++instance+ Core.AWSRequest+ PutConfigurationSetReputationOptions+ where+ type+ AWSResponse PutConfigurationSetReputationOptions =+ PutConfigurationSetReputationOptionsResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ PutConfigurationSetReputationOptionsResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ PutConfigurationSetReputationOptions+ where+ hashWithSalt+ _salt+ PutConfigurationSetReputationOptions' {..} =+ _salt+ `Prelude.hashWithSalt` reputationMetricsEnabled+ `Prelude.hashWithSalt` configurationSetName++instance+ Prelude.NFData+ PutConfigurationSetReputationOptions+ where+ rnf PutConfigurationSetReputationOptions' {..} =+ Prelude.rnf reputationMetricsEnabled+ `Prelude.seq` Prelude.rnf configurationSetName++instance+ Data.ToHeaders+ PutConfigurationSetReputationOptions+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToJSON+ PutConfigurationSetReputationOptions+ where+ toJSON PutConfigurationSetReputationOptions' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ReputationMetricsEnabled" Data..=)+ Prelude.<$> reputationMetricsEnabled+ ]+ )++instance+ Data.ToPath+ PutConfigurationSetReputationOptions+ where+ toPath PutConfigurationSetReputationOptions' {..} =+ Prelude.mconcat+ [ "/v2/email/configuration-sets/",+ Data.toBS configurationSetName,+ "/reputation-options"+ ]++instance+ Data.ToQuery+ PutConfigurationSetReputationOptions+ where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newPutConfigurationSetReputationOptionsResponse' smart constructor.+data PutConfigurationSetReputationOptionsResponse = PutConfigurationSetReputationOptionsResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutConfigurationSetReputationOptionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putConfigurationSetReputationOptionsResponse_httpStatus' - The response's http status code.+newPutConfigurationSetReputationOptionsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutConfigurationSetReputationOptionsResponse+newPutConfigurationSetReputationOptionsResponse+ pHttpStatus_ =+ PutConfigurationSetReputationOptionsResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+putConfigurationSetReputationOptionsResponse_httpStatus :: Lens.Lens' PutConfigurationSetReputationOptionsResponse Prelude.Int+putConfigurationSetReputationOptionsResponse_httpStatus = Lens.lens (\PutConfigurationSetReputationOptionsResponse' {httpStatus} -> httpStatus) (\s@PutConfigurationSetReputationOptionsResponse' {} a -> s {httpStatus = a} :: PutConfigurationSetReputationOptionsResponse)++instance+ Prelude.NFData+ PutConfigurationSetReputationOptionsResponse+ where+ rnf PutConfigurationSetReputationOptionsResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/PutConfigurationSetSendingOptions.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.SESV2.PutConfigurationSetSendingOptions+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Enable or disable email sending for messages that use a particular+-- configuration set in a specific Amazon Web Services Region.+module Amazonka.SESV2.PutConfigurationSetSendingOptions+ ( -- * Creating a Request+ PutConfigurationSetSendingOptions (..),+ newPutConfigurationSetSendingOptions,++ -- * Request Lenses+ putConfigurationSetSendingOptions_sendingEnabled,+ putConfigurationSetSendingOptions_configurationSetName,++ -- * Destructuring the Response+ PutConfigurationSetSendingOptionsResponse (..),+ newPutConfigurationSetSendingOptionsResponse,++ -- * Response Lenses+ putConfigurationSetSendingOptionsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to enable or disable the ability of Amazon SES to send emails+-- that use a specific configuration set.+--+-- /See:/ 'newPutConfigurationSetSendingOptions' smart constructor.+data PutConfigurationSetSendingOptions = PutConfigurationSetSendingOptions'+ { -- | If @true@, email sending is enabled for the configuration set. If+ -- @false@, email sending is disabled for the configuration set.+ sendingEnabled :: Prelude.Maybe Prelude.Bool,+ -- | The name of the configuration set to enable or disable email sending+ -- for.+ configurationSetName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutConfigurationSetSendingOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sendingEnabled', 'putConfigurationSetSendingOptions_sendingEnabled' - If @true@, email sending is enabled for the configuration set. If+-- @false@, email sending is disabled for the configuration set.+--+-- 'configurationSetName', 'putConfigurationSetSendingOptions_configurationSetName' - The name of the configuration set to enable or disable email sending+-- for.+newPutConfigurationSetSendingOptions ::+ -- | 'configurationSetName'+ Prelude.Text ->+ PutConfigurationSetSendingOptions+newPutConfigurationSetSendingOptions+ pConfigurationSetName_ =+ PutConfigurationSetSendingOptions'+ { sendingEnabled =+ Prelude.Nothing,+ configurationSetName =+ pConfigurationSetName_+ }++-- | If @true@, email sending is enabled for the configuration set. If+-- @false@, email sending is disabled for the configuration set.+putConfigurationSetSendingOptions_sendingEnabled :: Lens.Lens' PutConfigurationSetSendingOptions (Prelude.Maybe Prelude.Bool)+putConfigurationSetSendingOptions_sendingEnabled = Lens.lens (\PutConfigurationSetSendingOptions' {sendingEnabled} -> sendingEnabled) (\s@PutConfigurationSetSendingOptions' {} a -> s {sendingEnabled = a} :: PutConfigurationSetSendingOptions)++-- | The name of the configuration set to enable or disable email sending+-- for.+putConfigurationSetSendingOptions_configurationSetName :: Lens.Lens' PutConfigurationSetSendingOptions Prelude.Text+putConfigurationSetSendingOptions_configurationSetName = Lens.lens (\PutConfigurationSetSendingOptions' {configurationSetName} -> configurationSetName) (\s@PutConfigurationSetSendingOptions' {} a -> s {configurationSetName = a} :: PutConfigurationSetSendingOptions)++instance+ Core.AWSRequest+ PutConfigurationSetSendingOptions+ where+ type+ AWSResponse PutConfigurationSetSendingOptions =+ PutConfigurationSetSendingOptionsResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ PutConfigurationSetSendingOptionsResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ PutConfigurationSetSendingOptions+ where+ hashWithSalt+ _salt+ PutConfigurationSetSendingOptions' {..} =+ _salt+ `Prelude.hashWithSalt` sendingEnabled+ `Prelude.hashWithSalt` configurationSetName++instance+ Prelude.NFData+ PutConfigurationSetSendingOptions+ where+ rnf PutConfigurationSetSendingOptions' {..} =+ Prelude.rnf sendingEnabled+ `Prelude.seq` Prelude.rnf configurationSetName++instance+ Data.ToHeaders+ PutConfigurationSetSendingOptions+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToJSON+ PutConfigurationSetSendingOptions+ where+ toJSON PutConfigurationSetSendingOptions' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("SendingEnabled" Data..=)+ Prelude.<$> sendingEnabled+ ]+ )++instance+ Data.ToPath+ PutConfigurationSetSendingOptions+ where+ toPath PutConfigurationSetSendingOptions' {..} =+ Prelude.mconcat+ [ "/v2/email/configuration-sets/",+ Data.toBS configurationSetName,+ "/sending"+ ]++instance+ Data.ToQuery+ PutConfigurationSetSendingOptions+ where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newPutConfigurationSetSendingOptionsResponse' smart constructor.+data PutConfigurationSetSendingOptionsResponse = PutConfigurationSetSendingOptionsResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutConfigurationSetSendingOptionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putConfigurationSetSendingOptionsResponse_httpStatus' - The response's http status code.+newPutConfigurationSetSendingOptionsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutConfigurationSetSendingOptionsResponse+newPutConfigurationSetSendingOptionsResponse+ pHttpStatus_ =+ PutConfigurationSetSendingOptionsResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+putConfigurationSetSendingOptionsResponse_httpStatus :: Lens.Lens' PutConfigurationSetSendingOptionsResponse Prelude.Int+putConfigurationSetSendingOptionsResponse_httpStatus = Lens.lens (\PutConfigurationSetSendingOptionsResponse' {httpStatus} -> httpStatus) (\s@PutConfigurationSetSendingOptionsResponse' {} a -> s {httpStatus = a} :: PutConfigurationSetSendingOptionsResponse)++instance+ Prelude.NFData+ PutConfigurationSetSendingOptionsResponse+ where+ rnf PutConfigurationSetSendingOptionsResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/PutConfigurationSetSuppressionOptions.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.SESV2.PutConfigurationSetSuppressionOptions+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Specify the account suppression list preferences for a configuration+-- set.+module Amazonka.SESV2.PutConfigurationSetSuppressionOptions+ ( -- * Creating a Request+ PutConfigurationSetSuppressionOptions (..),+ newPutConfigurationSetSuppressionOptions,++ -- * Request Lenses+ putConfigurationSetSuppressionOptions_suppressedReasons,+ putConfigurationSetSuppressionOptions_configurationSetName,++ -- * Destructuring the Response+ PutConfigurationSetSuppressionOptionsResponse (..),+ newPutConfigurationSetSuppressionOptionsResponse,++ -- * Response Lenses+ putConfigurationSetSuppressionOptionsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to change the account suppression list preferences for a+-- specific configuration set.+--+-- /See:/ 'newPutConfigurationSetSuppressionOptions' smart constructor.+data PutConfigurationSetSuppressionOptions = PutConfigurationSetSuppressionOptions'+ { -- | A list that contains the reasons that email addresses are automatically+ -- added to the suppression list for your account. This list can contain+ -- any or all of the following:+ --+ -- - @COMPLAINT@ – Amazon SES adds an email address to the suppression+ -- list for your account when a message sent to that address results in+ -- a complaint.+ --+ -- - @BOUNCE@ – Amazon SES adds an email address to the suppression list+ -- for your account when a message sent to that address results in a+ -- hard bounce.+ suppressedReasons :: Prelude.Maybe [SuppressionListReason],+ -- | The name of the configuration set to change the suppression list+ -- preferences for.+ configurationSetName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutConfigurationSetSuppressionOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'suppressedReasons', 'putConfigurationSetSuppressionOptions_suppressedReasons' - A list that contains the reasons that email addresses are automatically+-- added to the suppression list for your account. This list can contain+-- any or all of the following:+--+-- - @COMPLAINT@ – Amazon SES adds an email address to the suppression+-- list for your account when a message sent to that address results in+-- a complaint.+--+-- - @BOUNCE@ – Amazon SES adds an email address to the suppression list+-- for your account when a message sent to that address results in a+-- hard bounce.+--+-- 'configurationSetName', 'putConfigurationSetSuppressionOptions_configurationSetName' - The name of the configuration set to change the suppression list+-- preferences for.+newPutConfigurationSetSuppressionOptions ::+ -- | 'configurationSetName'+ Prelude.Text ->+ PutConfigurationSetSuppressionOptions+newPutConfigurationSetSuppressionOptions+ pConfigurationSetName_ =+ PutConfigurationSetSuppressionOptions'+ { suppressedReasons =+ Prelude.Nothing,+ configurationSetName =+ pConfigurationSetName_+ }++-- | A list that contains the reasons that email addresses are automatically+-- added to the suppression list for your account. This list can contain+-- any or all of the following:+--+-- - @COMPLAINT@ – Amazon SES adds an email address to the suppression+-- list for your account when a message sent to that address results in+-- a complaint.+--+-- - @BOUNCE@ – Amazon SES adds an email address to the suppression list+-- for your account when a message sent to that address results in a+-- hard bounce.+putConfigurationSetSuppressionOptions_suppressedReasons :: Lens.Lens' PutConfigurationSetSuppressionOptions (Prelude.Maybe [SuppressionListReason])+putConfigurationSetSuppressionOptions_suppressedReasons = Lens.lens (\PutConfigurationSetSuppressionOptions' {suppressedReasons} -> suppressedReasons) (\s@PutConfigurationSetSuppressionOptions' {} a -> s {suppressedReasons = a} :: PutConfigurationSetSuppressionOptions) Prelude.. Lens.mapping Lens.coerced++-- | The name of the configuration set to change the suppression list+-- preferences for.+putConfigurationSetSuppressionOptions_configurationSetName :: Lens.Lens' PutConfigurationSetSuppressionOptions Prelude.Text+putConfigurationSetSuppressionOptions_configurationSetName = Lens.lens (\PutConfigurationSetSuppressionOptions' {configurationSetName} -> configurationSetName) (\s@PutConfigurationSetSuppressionOptions' {} a -> s {configurationSetName = a} :: PutConfigurationSetSuppressionOptions)++instance+ Core.AWSRequest+ PutConfigurationSetSuppressionOptions+ where+ type+ AWSResponse+ PutConfigurationSetSuppressionOptions =+ PutConfigurationSetSuppressionOptionsResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ PutConfigurationSetSuppressionOptionsResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ PutConfigurationSetSuppressionOptions+ where+ hashWithSalt+ _salt+ PutConfigurationSetSuppressionOptions' {..} =+ _salt+ `Prelude.hashWithSalt` suppressedReasons+ `Prelude.hashWithSalt` configurationSetName++instance+ Prelude.NFData+ PutConfigurationSetSuppressionOptions+ where+ rnf PutConfigurationSetSuppressionOptions' {..} =+ Prelude.rnf suppressedReasons+ `Prelude.seq` Prelude.rnf configurationSetName++instance+ Data.ToHeaders+ PutConfigurationSetSuppressionOptions+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToJSON+ PutConfigurationSetSuppressionOptions+ where+ toJSON PutConfigurationSetSuppressionOptions' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("SuppressedReasons" Data..=)+ Prelude.<$> suppressedReasons+ ]+ )++instance+ Data.ToPath+ PutConfigurationSetSuppressionOptions+ where+ toPath PutConfigurationSetSuppressionOptions' {..} =+ Prelude.mconcat+ [ "/v2/email/configuration-sets/",+ Data.toBS configurationSetName,+ "/suppression-options"+ ]++instance+ Data.ToQuery+ PutConfigurationSetSuppressionOptions+ where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newPutConfigurationSetSuppressionOptionsResponse' smart constructor.+data PutConfigurationSetSuppressionOptionsResponse = PutConfigurationSetSuppressionOptionsResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutConfigurationSetSuppressionOptionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putConfigurationSetSuppressionOptionsResponse_httpStatus' - The response's http status code.+newPutConfigurationSetSuppressionOptionsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutConfigurationSetSuppressionOptionsResponse+newPutConfigurationSetSuppressionOptionsResponse+ pHttpStatus_ =+ PutConfigurationSetSuppressionOptionsResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+putConfigurationSetSuppressionOptionsResponse_httpStatus :: Lens.Lens' PutConfigurationSetSuppressionOptionsResponse Prelude.Int+putConfigurationSetSuppressionOptionsResponse_httpStatus = Lens.lens (\PutConfigurationSetSuppressionOptionsResponse' {httpStatus} -> httpStatus) (\s@PutConfigurationSetSuppressionOptionsResponse' {} a -> s {httpStatus = a} :: PutConfigurationSetSuppressionOptionsResponse)++instance+ Prelude.NFData+ PutConfigurationSetSuppressionOptionsResponse+ where+ rnf+ PutConfigurationSetSuppressionOptionsResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/PutConfigurationSetTrackingOptions.hs view
@@ -0,0 +1,212 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.PutConfigurationSetTrackingOptions+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Specify a custom domain to use for open and click tracking elements in+-- email that you send.+module Amazonka.SESV2.PutConfigurationSetTrackingOptions+ ( -- * Creating a Request+ PutConfigurationSetTrackingOptions (..),+ newPutConfigurationSetTrackingOptions,++ -- * Request Lenses+ putConfigurationSetTrackingOptions_customRedirectDomain,+ putConfigurationSetTrackingOptions_configurationSetName,++ -- * Destructuring the Response+ PutConfigurationSetTrackingOptionsResponse (..),+ newPutConfigurationSetTrackingOptionsResponse,++ -- * Response Lenses+ putConfigurationSetTrackingOptionsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to add a custom domain for tracking open and click events to a+-- configuration set.+--+-- /See:/ 'newPutConfigurationSetTrackingOptions' smart constructor.+data PutConfigurationSetTrackingOptions = PutConfigurationSetTrackingOptions'+ { -- | The domain to use to track open and click events.+ customRedirectDomain :: Prelude.Maybe Prelude.Text,+ -- | The name of the configuration set.+ configurationSetName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutConfigurationSetTrackingOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'customRedirectDomain', 'putConfigurationSetTrackingOptions_customRedirectDomain' - The domain to use to track open and click events.+--+-- 'configurationSetName', 'putConfigurationSetTrackingOptions_configurationSetName' - The name of the configuration set.+newPutConfigurationSetTrackingOptions ::+ -- | 'configurationSetName'+ Prelude.Text ->+ PutConfigurationSetTrackingOptions+newPutConfigurationSetTrackingOptions+ pConfigurationSetName_ =+ PutConfigurationSetTrackingOptions'+ { customRedirectDomain =+ Prelude.Nothing,+ configurationSetName =+ pConfigurationSetName_+ }++-- | The domain to use to track open and click events.+putConfigurationSetTrackingOptions_customRedirectDomain :: Lens.Lens' PutConfigurationSetTrackingOptions (Prelude.Maybe Prelude.Text)+putConfigurationSetTrackingOptions_customRedirectDomain = Lens.lens (\PutConfigurationSetTrackingOptions' {customRedirectDomain} -> customRedirectDomain) (\s@PutConfigurationSetTrackingOptions' {} a -> s {customRedirectDomain = a} :: PutConfigurationSetTrackingOptions)++-- | The name of the configuration set.+putConfigurationSetTrackingOptions_configurationSetName :: Lens.Lens' PutConfigurationSetTrackingOptions Prelude.Text+putConfigurationSetTrackingOptions_configurationSetName = Lens.lens (\PutConfigurationSetTrackingOptions' {configurationSetName} -> configurationSetName) (\s@PutConfigurationSetTrackingOptions' {} a -> s {configurationSetName = a} :: PutConfigurationSetTrackingOptions)++instance+ Core.AWSRequest+ PutConfigurationSetTrackingOptions+ where+ type+ AWSResponse PutConfigurationSetTrackingOptions =+ PutConfigurationSetTrackingOptionsResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ PutConfigurationSetTrackingOptionsResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ PutConfigurationSetTrackingOptions+ where+ hashWithSalt+ _salt+ PutConfigurationSetTrackingOptions' {..} =+ _salt+ `Prelude.hashWithSalt` customRedirectDomain+ `Prelude.hashWithSalt` configurationSetName++instance+ Prelude.NFData+ PutConfigurationSetTrackingOptions+ where+ rnf PutConfigurationSetTrackingOptions' {..} =+ Prelude.rnf customRedirectDomain+ `Prelude.seq` Prelude.rnf configurationSetName++instance+ Data.ToHeaders+ PutConfigurationSetTrackingOptions+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToJSON+ PutConfigurationSetTrackingOptions+ where+ toJSON PutConfigurationSetTrackingOptions' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CustomRedirectDomain" Data..=)+ Prelude.<$> customRedirectDomain+ ]+ )++instance+ Data.ToPath+ PutConfigurationSetTrackingOptions+ where+ toPath PutConfigurationSetTrackingOptions' {..} =+ Prelude.mconcat+ [ "/v2/email/configuration-sets/",+ Data.toBS configurationSetName,+ "/tracking-options"+ ]++instance+ Data.ToQuery+ PutConfigurationSetTrackingOptions+ where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newPutConfigurationSetTrackingOptionsResponse' smart constructor.+data PutConfigurationSetTrackingOptionsResponse = PutConfigurationSetTrackingOptionsResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutConfigurationSetTrackingOptionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putConfigurationSetTrackingOptionsResponse_httpStatus' - The response's http status code.+newPutConfigurationSetTrackingOptionsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutConfigurationSetTrackingOptionsResponse+newPutConfigurationSetTrackingOptionsResponse+ pHttpStatus_ =+ PutConfigurationSetTrackingOptionsResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+putConfigurationSetTrackingOptionsResponse_httpStatus :: Lens.Lens' PutConfigurationSetTrackingOptionsResponse Prelude.Int+putConfigurationSetTrackingOptionsResponse_httpStatus = Lens.lens (\PutConfigurationSetTrackingOptionsResponse' {httpStatus} -> httpStatus) (\s@PutConfigurationSetTrackingOptionsResponse' {} a -> s {httpStatus = a} :: PutConfigurationSetTrackingOptionsResponse)++instance+ Prelude.NFData+ PutConfigurationSetTrackingOptionsResponse+ where+ rnf PutConfigurationSetTrackingOptionsResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/PutConfigurationSetVdmOptions.hs view
@@ -0,0 +1,193 @@+{-# 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.SESV2.PutConfigurationSetVdmOptions+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Specify VDM preferences for email that you send using the configuration+-- set.+--+-- You can execute this operation no more than once per second.+module Amazonka.SESV2.PutConfigurationSetVdmOptions+ ( -- * Creating a Request+ PutConfigurationSetVdmOptions (..),+ newPutConfigurationSetVdmOptions,++ -- * Request Lenses+ putConfigurationSetVdmOptions_vdmOptions,+ putConfigurationSetVdmOptions_configurationSetName,++ -- * Destructuring the Response+ PutConfigurationSetVdmOptionsResponse (..),+ newPutConfigurationSetVdmOptionsResponse,++ -- * Response Lenses+ putConfigurationSetVdmOptionsResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to add specific VDM settings to a configuration set.+--+-- /See:/ 'newPutConfigurationSetVdmOptions' smart constructor.+data PutConfigurationSetVdmOptions = PutConfigurationSetVdmOptions'+ { -- | The VDM options to apply to the configuration set.+ vdmOptions :: Prelude.Maybe VdmOptions,+ -- | The name of the configuration set.+ configurationSetName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutConfigurationSetVdmOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'vdmOptions', 'putConfigurationSetVdmOptions_vdmOptions' - The VDM options to apply to the configuration set.+--+-- 'configurationSetName', 'putConfigurationSetVdmOptions_configurationSetName' - The name of the configuration set.+newPutConfigurationSetVdmOptions ::+ -- | 'configurationSetName'+ Prelude.Text ->+ PutConfigurationSetVdmOptions+newPutConfigurationSetVdmOptions+ pConfigurationSetName_ =+ PutConfigurationSetVdmOptions'+ { vdmOptions =+ Prelude.Nothing,+ configurationSetName =+ pConfigurationSetName_+ }++-- | The VDM options to apply to the configuration set.+putConfigurationSetVdmOptions_vdmOptions :: Lens.Lens' PutConfigurationSetVdmOptions (Prelude.Maybe VdmOptions)+putConfigurationSetVdmOptions_vdmOptions = Lens.lens (\PutConfigurationSetVdmOptions' {vdmOptions} -> vdmOptions) (\s@PutConfigurationSetVdmOptions' {} a -> s {vdmOptions = a} :: PutConfigurationSetVdmOptions)++-- | The name of the configuration set.+putConfigurationSetVdmOptions_configurationSetName :: Lens.Lens' PutConfigurationSetVdmOptions Prelude.Text+putConfigurationSetVdmOptions_configurationSetName = Lens.lens (\PutConfigurationSetVdmOptions' {configurationSetName} -> configurationSetName) (\s@PutConfigurationSetVdmOptions' {} a -> s {configurationSetName = a} :: PutConfigurationSetVdmOptions)++instance+ Core.AWSRequest+ PutConfigurationSetVdmOptions+ where+ type+ AWSResponse PutConfigurationSetVdmOptions =+ PutConfigurationSetVdmOptionsResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ PutConfigurationSetVdmOptionsResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ PutConfigurationSetVdmOptions+ where+ hashWithSalt _salt PutConfigurationSetVdmOptions' {..} =+ _salt+ `Prelude.hashWithSalt` vdmOptions+ `Prelude.hashWithSalt` configurationSetName++instance Prelude.NFData PutConfigurationSetVdmOptions where+ rnf PutConfigurationSetVdmOptions' {..} =+ Prelude.rnf vdmOptions+ `Prelude.seq` Prelude.rnf configurationSetName++instance Data.ToHeaders PutConfigurationSetVdmOptions where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON PutConfigurationSetVdmOptions where+ toJSON PutConfigurationSetVdmOptions' {..} =+ Data.object+ ( Prelude.catMaybes+ [("VdmOptions" Data..=) Prelude.<$> vdmOptions]+ )++instance Data.ToPath PutConfigurationSetVdmOptions where+ toPath PutConfigurationSetVdmOptions' {..} =+ Prelude.mconcat+ [ "/v2/email/configuration-sets/",+ Data.toBS configurationSetName,+ "/vdm-options"+ ]++instance Data.ToQuery PutConfigurationSetVdmOptions where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newPutConfigurationSetVdmOptionsResponse' smart constructor.+data PutConfigurationSetVdmOptionsResponse = PutConfigurationSetVdmOptionsResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutConfigurationSetVdmOptionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putConfigurationSetVdmOptionsResponse_httpStatus' - The response's http status code.+newPutConfigurationSetVdmOptionsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutConfigurationSetVdmOptionsResponse+newPutConfigurationSetVdmOptionsResponse pHttpStatus_ =+ PutConfigurationSetVdmOptionsResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+putConfigurationSetVdmOptionsResponse_httpStatus :: Lens.Lens' PutConfigurationSetVdmOptionsResponse Prelude.Int+putConfigurationSetVdmOptionsResponse_httpStatus = Lens.lens (\PutConfigurationSetVdmOptionsResponse' {httpStatus} -> httpStatus) (\s@PutConfigurationSetVdmOptionsResponse' {} a -> s {httpStatus = a} :: PutConfigurationSetVdmOptionsResponse)++instance+ Prelude.NFData+ PutConfigurationSetVdmOptionsResponse+ where+ rnf PutConfigurationSetVdmOptionsResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/PutDedicatedIpInPool.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.SESV2.PutDedicatedIpInPool+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Move a dedicated IP address to an existing dedicated IP pool.+--+-- The dedicated IP address that you specify must already exist, and must+-- be associated with your Amazon Web Services account.+--+-- The dedicated IP pool you specify must already exist. You can create a+-- new pool by using the @CreateDedicatedIpPool@ operation.+module Amazonka.SESV2.PutDedicatedIpInPool+ ( -- * Creating a Request+ PutDedicatedIpInPool (..),+ newPutDedicatedIpInPool,++ -- * Request Lenses+ putDedicatedIpInPool_ip,+ putDedicatedIpInPool_destinationPoolName,++ -- * Destructuring the Response+ PutDedicatedIpInPoolResponse (..),+ newPutDedicatedIpInPoolResponse,++ -- * Response Lenses+ putDedicatedIpInPoolResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to move a dedicated IP address to a dedicated IP pool.+--+-- /See:/ 'newPutDedicatedIpInPool' smart constructor.+data PutDedicatedIpInPool = PutDedicatedIpInPool'+ { -- | The IP address that you want to move to the dedicated IP pool. The value+ -- you specify has to be a dedicated IP address that\'s associated with+ -- your Amazon Web Services account.+ ip :: Prelude.Text,+ -- | The name of the IP pool that you want to add the dedicated IP address+ -- to. You have to specify an IP pool that already exists.+ destinationPoolName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutDedicatedIpInPool' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ip', 'putDedicatedIpInPool_ip' - The IP address that you want to move to the dedicated IP pool. The value+-- you specify has to be a dedicated IP address that\'s associated with+-- your Amazon Web Services account.+--+-- 'destinationPoolName', 'putDedicatedIpInPool_destinationPoolName' - The name of the IP pool that you want to add the dedicated IP address+-- to. You have to specify an IP pool that already exists.+newPutDedicatedIpInPool ::+ -- | 'ip'+ Prelude.Text ->+ -- | 'destinationPoolName'+ Prelude.Text ->+ PutDedicatedIpInPool+newPutDedicatedIpInPool pIp_ pDestinationPoolName_ =+ PutDedicatedIpInPool'+ { ip = pIp_,+ destinationPoolName = pDestinationPoolName_+ }++-- | The IP address that you want to move to the dedicated IP pool. The value+-- you specify has to be a dedicated IP address that\'s associated with+-- your Amazon Web Services account.+putDedicatedIpInPool_ip :: Lens.Lens' PutDedicatedIpInPool Prelude.Text+putDedicatedIpInPool_ip = Lens.lens (\PutDedicatedIpInPool' {ip} -> ip) (\s@PutDedicatedIpInPool' {} a -> s {ip = a} :: PutDedicatedIpInPool)++-- | The name of the IP pool that you want to add the dedicated IP address+-- to. You have to specify an IP pool that already exists.+putDedicatedIpInPool_destinationPoolName :: Lens.Lens' PutDedicatedIpInPool Prelude.Text+putDedicatedIpInPool_destinationPoolName = Lens.lens (\PutDedicatedIpInPool' {destinationPoolName} -> destinationPoolName) (\s@PutDedicatedIpInPool' {} a -> s {destinationPoolName = a} :: PutDedicatedIpInPool)++instance Core.AWSRequest PutDedicatedIpInPool where+ type+ AWSResponse PutDedicatedIpInPool =+ PutDedicatedIpInPoolResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ PutDedicatedIpInPoolResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable PutDedicatedIpInPool where+ hashWithSalt _salt PutDedicatedIpInPool' {..} =+ _salt+ `Prelude.hashWithSalt` ip+ `Prelude.hashWithSalt` destinationPoolName++instance Prelude.NFData PutDedicatedIpInPool where+ rnf PutDedicatedIpInPool' {..} =+ Prelude.rnf ip+ `Prelude.seq` Prelude.rnf destinationPoolName++instance Data.ToHeaders PutDedicatedIpInPool where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON PutDedicatedIpInPool where+ toJSON PutDedicatedIpInPool' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("DestinationPoolName" Data..= destinationPoolName)+ ]+ )++instance Data.ToPath PutDedicatedIpInPool where+ toPath PutDedicatedIpInPool' {..} =+ Prelude.mconcat+ ["/v2/email/dedicated-ips/", Data.toBS ip, "/pool"]++instance Data.ToQuery PutDedicatedIpInPool where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newPutDedicatedIpInPoolResponse' smart constructor.+data PutDedicatedIpInPoolResponse = PutDedicatedIpInPoolResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutDedicatedIpInPoolResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putDedicatedIpInPoolResponse_httpStatus' - The response's http status code.+newPutDedicatedIpInPoolResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutDedicatedIpInPoolResponse+newPutDedicatedIpInPoolResponse pHttpStatus_ =+ PutDedicatedIpInPoolResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+putDedicatedIpInPoolResponse_httpStatus :: Lens.Lens' PutDedicatedIpInPoolResponse Prelude.Int+putDedicatedIpInPoolResponse_httpStatus = Lens.lens (\PutDedicatedIpInPoolResponse' {httpStatus} -> httpStatus) (\s@PutDedicatedIpInPoolResponse' {} a -> s {httpStatus = a} :: PutDedicatedIpInPoolResponse)++instance Prelude.NFData PutDedicatedIpInPoolResponse where+ rnf PutDedicatedIpInPoolResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/PutDedicatedIpWarmupAttributes.hs view
@@ -0,0 +1,205 @@+{-# 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.SESV2.PutDedicatedIpWarmupAttributes+-- 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.SESV2.PutDedicatedIpWarmupAttributes+ ( -- * Creating a Request+ PutDedicatedIpWarmupAttributes (..),+ newPutDedicatedIpWarmupAttributes,++ -- * Request Lenses+ putDedicatedIpWarmupAttributes_ip,+ putDedicatedIpWarmupAttributes_warmupPercentage,++ -- * Destructuring the Response+ PutDedicatedIpWarmupAttributesResponse (..),+ newPutDedicatedIpWarmupAttributesResponse,++ -- * Response Lenses+ putDedicatedIpWarmupAttributesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to change the warm-up attributes for a dedicated IP address.+-- This operation is useful when you want to resume the warm-up process for+-- an existing IP address.+--+-- /See:/ 'newPutDedicatedIpWarmupAttributes' smart constructor.+data PutDedicatedIpWarmupAttributes = PutDedicatedIpWarmupAttributes'+ { -- | The dedicated IP address that you want to update the warm-up attributes+ -- for.+ ip :: Prelude.Text,+ -- | The warm-up percentage that you want to associate with the dedicated IP+ -- address.+ warmupPercentage :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutDedicatedIpWarmupAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ip', 'putDedicatedIpWarmupAttributes_ip' - The dedicated IP address that you want to update the warm-up attributes+-- for.+--+-- 'warmupPercentage', 'putDedicatedIpWarmupAttributes_warmupPercentage' - The warm-up percentage that you want to associate with the dedicated IP+-- address.+newPutDedicatedIpWarmupAttributes ::+ -- | 'ip'+ Prelude.Text ->+ -- | 'warmupPercentage'+ Prelude.Int ->+ PutDedicatedIpWarmupAttributes+newPutDedicatedIpWarmupAttributes+ pIp_+ pWarmupPercentage_ =+ PutDedicatedIpWarmupAttributes'+ { ip = pIp_,+ warmupPercentage = pWarmupPercentage_+ }++-- | The dedicated IP address that you want to update the warm-up attributes+-- for.+putDedicatedIpWarmupAttributes_ip :: Lens.Lens' PutDedicatedIpWarmupAttributes Prelude.Text+putDedicatedIpWarmupAttributes_ip = Lens.lens (\PutDedicatedIpWarmupAttributes' {ip} -> ip) (\s@PutDedicatedIpWarmupAttributes' {} a -> s {ip = a} :: PutDedicatedIpWarmupAttributes)++-- | The warm-up percentage that you want to associate with the dedicated IP+-- address.+putDedicatedIpWarmupAttributes_warmupPercentage :: Lens.Lens' PutDedicatedIpWarmupAttributes Prelude.Int+putDedicatedIpWarmupAttributes_warmupPercentage = Lens.lens (\PutDedicatedIpWarmupAttributes' {warmupPercentage} -> warmupPercentage) (\s@PutDedicatedIpWarmupAttributes' {} a -> s {warmupPercentage = a} :: PutDedicatedIpWarmupAttributes)++instance+ Core.AWSRequest+ PutDedicatedIpWarmupAttributes+ where+ type+ AWSResponse PutDedicatedIpWarmupAttributes =+ PutDedicatedIpWarmupAttributesResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ PutDedicatedIpWarmupAttributesResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ PutDedicatedIpWarmupAttributes+ where+ hashWithSalt+ _salt+ PutDedicatedIpWarmupAttributes' {..} =+ _salt+ `Prelude.hashWithSalt` ip+ `Prelude.hashWithSalt` warmupPercentage++instance+ Prelude.NFData+ PutDedicatedIpWarmupAttributes+ where+ rnf PutDedicatedIpWarmupAttributes' {..} =+ Prelude.rnf ip+ `Prelude.seq` Prelude.rnf warmupPercentage++instance+ Data.ToHeaders+ PutDedicatedIpWarmupAttributes+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON PutDedicatedIpWarmupAttributes where+ toJSON PutDedicatedIpWarmupAttributes' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("WarmupPercentage" Data..= warmupPercentage)+ ]+ )++instance Data.ToPath PutDedicatedIpWarmupAttributes where+ toPath PutDedicatedIpWarmupAttributes' {..} =+ Prelude.mconcat+ ["/v2/email/dedicated-ips/", Data.toBS ip, "/warmup"]++instance Data.ToQuery PutDedicatedIpWarmupAttributes where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newPutDedicatedIpWarmupAttributesResponse' smart constructor.+data PutDedicatedIpWarmupAttributesResponse = PutDedicatedIpWarmupAttributesResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutDedicatedIpWarmupAttributesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putDedicatedIpWarmupAttributesResponse_httpStatus' - The response's http status code.+newPutDedicatedIpWarmupAttributesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutDedicatedIpWarmupAttributesResponse+newPutDedicatedIpWarmupAttributesResponse+ pHttpStatus_ =+ PutDedicatedIpWarmupAttributesResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+putDedicatedIpWarmupAttributesResponse_httpStatus :: Lens.Lens' PutDedicatedIpWarmupAttributesResponse Prelude.Int+putDedicatedIpWarmupAttributesResponse_httpStatus = Lens.lens (\PutDedicatedIpWarmupAttributesResponse' {httpStatus} -> httpStatus) (\s@PutDedicatedIpWarmupAttributesResponse' {} a -> s {httpStatus = a} :: PutDedicatedIpWarmupAttributesResponse)++instance+ Prelude.NFData+ PutDedicatedIpWarmupAttributesResponse+ where+ rnf PutDedicatedIpWarmupAttributesResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/PutDeliverabilityDashboardOption.hs view
@@ -0,0 +1,228 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.PutDeliverabilityDashboardOption+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Enable or disable the Deliverability dashboard. When you enable the+-- Deliverability dashboard, you gain access to reputation, deliverability,+-- and other metrics for the domains that you use to send email. You also+-- gain the ability to perform predictive inbox placement tests.+--+-- When you use the Deliverability dashboard, you pay a monthly+-- subscription charge, in addition to any other fees that you accrue by+-- using Amazon SES and other Amazon Web Services services. For more+-- information about the features and cost of a Deliverability dashboard+-- subscription, see+-- <http://aws.amazon.com/ses/pricing/ Amazon SES Pricing>.+module Amazonka.SESV2.PutDeliverabilityDashboardOption+ ( -- * Creating a Request+ PutDeliverabilityDashboardOption (..),+ newPutDeliverabilityDashboardOption,++ -- * Request Lenses+ putDeliverabilityDashboardOption_subscribedDomains,+ putDeliverabilityDashboardOption_dashboardEnabled,++ -- * Destructuring the Response+ PutDeliverabilityDashboardOptionResponse (..),+ newPutDeliverabilityDashboardOptionResponse,++ -- * Response Lenses+ putDeliverabilityDashboardOptionResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | Enable or disable the Deliverability dashboard. When you enable the+-- Deliverability dashboard, you gain access to reputation, deliverability,+-- and other metrics for the domains that you use to send email using+-- Amazon SES API v2. You also gain the ability to perform predictive inbox+-- placement tests.+--+-- When you use the Deliverability dashboard, you pay a monthly+-- subscription charge, in addition to any other fees that you accrue by+-- using Amazon SES and other Amazon Web Services services. For more+-- information about the features and cost of a Deliverability dashboard+-- subscription, see+-- <http://aws.amazon.com/pinpoint/pricing/ Amazon Pinpoint Pricing>.+--+-- /See:/ 'newPutDeliverabilityDashboardOption' smart constructor.+data PutDeliverabilityDashboardOption = PutDeliverabilityDashboardOption'+ { -- | An array of objects, one for each verified domain that you use to send+ -- email and enabled the Deliverability dashboard for.+ subscribedDomains :: Prelude.Maybe [DomainDeliverabilityTrackingOption],+ -- | Specifies whether to enable the Deliverability dashboard. To enable the+ -- dashboard, set this value to @true@.+ dashboardEnabled :: Prelude.Bool+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutDeliverabilityDashboardOption' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'subscribedDomains', 'putDeliverabilityDashboardOption_subscribedDomains' - An array of objects, one for each verified domain that you use to send+-- email and enabled the Deliverability dashboard for.+--+-- 'dashboardEnabled', 'putDeliverabilityDashboardOption_dashboardEnabled' - Specifies whether to enable the Deliverability dashboard. To enable the+-- dashboard, set this value to @true@.+newPutDeliverabilityDashboardOption ::+ -- | 'dashboardEnabled'+ Prelude.Bool ->+ PutDeliverabilityDashboardOption+newPutDeliverabilityDashboardOption+ pDashboardEnabled_ =+ PutDeliverabilityDashboardOption'+ { subscribedDomains =+ Prelude.Nothing,+ dashboardEnabled = pDashboardEnabled_+ }++-- | An array of objects, one for each verified domain that you use to send+-- email and enabled the Deliverability dashboard for.+putDeliverabilityDashboardOption_subscribedDomains :: Lens.Lens' PutDeliverabilityDashboardOption (Prelude.Maybe [DomainDeliverabilityTrackingOption])+putDeliverabilityDashboardOption_subscribedDomains = Lens.lens (\PutDeliverabilityDashboardOption' {subscribedDomains} -> subscribedDomains) (\s@PutDeliverabilityDashboardOption' {} a -> s {subscribedDomains = a} :: PutDeliverabilityDashboardOption) Prelude.. Lens.mapping Lens.coerced++-- | Specifies whether to enable the Deliverability dashboard. To enable the+-- dashboard, set this value to @true@.+putDeliverabilityDashboardOption_dashboardEnabled :: Lens.Lens' PutDeliverabilityDashboardOption Prelude.Bool+putDeliverabilityDashboardOption_dashboardEnabled = Lens.lens (\PutDeliverabilityDashboardOption' {dashboardEnabled} -> dashboardEnabled) (\s@PutDeliverabilityDashboardOption' {} a -> s {dashboardEnabled = a} :: PutDeliverabilityDashboardOption)++instance+ Core.AWSRequest+ PutDeliverabilityDashboardOption+ where+ type+ AWSResponse PutDeliverabilityDashboardOption =+ PutDeliverabilityDashboardOptionResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ PutDeliverabilityDashboardOptionResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ PutDeliverabilityDashboardOption+ where+ hashWithSalt+ _salt+ PutDeliverabilityDashboardOption' {..} =+ _salt+ `Prelude.hashWithSalt` subscribedDomains+ `Prelude.hashWithSalt` dashboardEnabled++instance+ Prelude.NFData+ PutDeliverabilityDashboardOption+ where+ rnf PutDeliverabilityDashboardOption' {..} =+ Prelude.rnf subscribedDomains+ `Prelude.seq` Prelude.rnf dashboardEnabled++instance+ Data.ToHeaders+ PutDeliverabilityDashboardOption+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON PutDeliverabilityDashboardOption where+ toJSON PutDeliverabilityDashboardOption' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("SubscribedDomains" Data..=)+ Prelude.<$> subscribedDomains,+ Prelude.Just+ ("DashboardEnabled" Data..= dashboardEnabled)+ ]+ )++instance Data.ToPath PutDeliverabilityDashboardOption where+ toPath =+ Prelude.const "/v2/email/deliverability-dashboard"++instance+ Data.ToQuery+ PutDeliverabilityDashboardOption+ where+ toQuery = Prelude.const Prelude.mempty++-- | A response that indicates whether the Deliverability dashboard is+-- enabled.+--+-- /See:/ 'newPutDeliverabilityDashboardOptionResponse' smart constructor.+data PutDeliverabilityDashboardOptionResponse = PutDeliverabilityDashboardOptionResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutDeliverabilityDashboardOptionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putDeliverabilityDashboardOptionResponse_httpStatus' - The response's http status code.+newPutDeliverabilityDashboardOptionResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutDeliverabilityDashboardOptionResponse+newPutDeliverabilityDashboardOptionResponse+ pHttpStatus_ =+ PutDeliverabilityDashboardOptionResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+putDeliverabilityDashboardOptionResponse_httpStatus :: Lens.Lens' PutDeliverabilityDashboardOptionResponse Prelude.Int+putDeliverabilityDashboardOptionResponse_httpStatus = Lens.lens (\PutDeliverabilityDashboardOptionResponse' {httpStatus} -> httpStatus) (\s@PutDeliverabilityDashboardOptionResponse' {} a -> s {httpStatus = a} :: PutDeliverabilityDashboardOptionResponse)++instance+ Prelude.NFData+ PutDeliverabilityDashboardOptionResponse+ where+ rnf PutDeliverabilityDashboardOptionResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/PutEmailIdentityConfigurationSetAttributes.hs view
@@ -0,0 +1,213 @@+{-# 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.SESV2.PutEmailIdentityConfigurationSetAttributes+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Used to associate a configuration set with an email identity.+module Amazonka.SESV2.PutEmailIdentityConfigurationSetAttributes+ ( -- * Creating a Request+ PutEmailIdentityConfigurationSetAttributes (..),+ newPutEmailIdentityConfigurationSetAttributes,++ -- * Request Lenses+ putEmailIdentityConfigurationSetAttributes_configurationSetName,+ putEmailIdentityConfigurationSetAttributes_emailIdentity,++ -- * Destructuring the Response+ PutEmailIdentityConfigurationSetAttributesResponse (..),+ newPutEmailIdentityConfigurationSetAttributesResponse,++ -- * Response Lenses+ putEmailIdentityConfigurationSetAttributesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to associate a configuration set with an email identity.+--+-- /See:/ 'newPutEmailIdentityConfigurationSetAttributes' smart constructor.+data PutEmailIdentityConfigurationSetAttributes = PutEmailIdentityConfigurationSetAttributes'+ { -- | The configuration set to associate with an email identity.+ configurationSetName :: Prelude.Maybe Prelude.Text,+ -- | The email address or domain to associate with a configuration set.+ emailIdentity :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutEmailIdentityConfigurationSetAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configurationSetName', 'putEmailIdentityConfigurationSetAttributes_configurationSetName' - The configuration set to associate with an email identity.+--+-- 'emailIdentity', 'putEmailIdentityConfigurationSetAttributes_emailIdentity' - The email address or domain to associate with a configuration set.+newPutEmailIdentityConfigurationSetAttributes ::+ -- | 'emailIdentity'+ Prelude.Text ->+ PutEmailIdentityConfigurationSetAttributes+newPutEmailIdentityConfigurationSetAttributes+ pEmailIdentity_ =+ PutEmailIdentityConfigurationSetAttributes'+ { configurationSetName =+ Prelude.Nothing,+ emailIdentity = pEmailIdentity_+ }++-- | The configuration set to associate with an email identity.+putEmailIdentityConfigurationSetAttributes_configurationSetName :: Lens.Lens' PutEmailIdentityConfigurationSetAttributes (Prelude.Maybe Prelude.Text)+putEmailIdentityConfigurationSetAttributes_configurationSetName = Lens.lens (\PutEmailIdentityConfigurationSetAttributes' {configurationSetName} -> configurationSetName) (\s@PutEmailIdentityConfigurationSetAttributes' {} a -> s {configurationSetName = a} :: PutEmailIdentityConfigurationSetAttributes)++-- | The email address or domain to associate with a configuration set.+putEmailIdentityConfigurationSetAttributes_emailIdentity :: Lens.Lens' PutEmailIdentityConfigurationSetAttributes Prelude.Text+putEmailIdentityConfigurationSetAttributes_emailIdentity = Lens.lens (\PutEmailIdentityConfigurationSetAttributes' {emailIdentity} -> emailIdentity) (\s@PutEmailIdentityConfigurationSetAttributes' {} a -> s {emailIdentity = a} :: PutEmailIdentityConfigurationSetAttributes)++instance+ Core.AWSRequest+ PutEmailIdentityConfigurationSetAttributes+ where+ type+ AWSResponse+ PutEmailIdentityConfigurationSetAttributes =+ PutEmailIdentityConfigurationSetAttributesResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ PutEmailIdentityConfigurationSetAttributesResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ PutEmailIdentityConfigurationSetAttributes+ where+ hashWithSalt+ _salt+ PutEmailIdentityConfigurationSetAttributes' {..} =+ _salt+ `Prelude.hashWithSalt` configurationSetName+ `Prelude.hashWithSalt` emailIdentity++instance+ Prelude.NFData+ PutEmailIdentityConfigurationSetAttributes+ where+ rnf PutEmailIdentityConfigurationSetAttributes' {..} =+ Prelude.rnf configurationSetName+ `Prelude.seq` Prelude.rnf emailIdentity++instance+ Data.ToHeaders+ PutEmailIdentityConfigurationSetAttributes+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToJSON+ PutEmailIdentityConfigurationSetAttributes+ where+ toJSON+ PutEmailIdentityConfigurationSetAttributes' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ConfigurationSetName" Data..=)+ Prelude.<$> configurationSetName+ ]+ )++instance+ Data.ToPath+ PutEmailIdentityConfigurationSetAttributes+ where+ toPath+ PutEmailIdentityConfigurationSetAttributes' {..} =+ Prelude.mconcat+ [ "/v2/email/identities/",+ Data.toBS emailIdentity,+ "/configuration-set"+ ]++instance+ Data.ToQuery+ PutEmailIdentityConfigurationSetAttributes+ where+ toQuery = Prelude.const Prelude.mempty++-- | If the action is successful, the service sends back an HTTP 200 response+-- with an empty HTTP body.+--+-- /See:/ 'newPutEmailIdentityConfigurationSetAttributesResponse' smart constructor.+data PutEmailIdentityConfigurationSetAttributesResponse = PutEmailIdentityConfigurationSetAttributesResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutEmailIdentityConfigurationSetAttributesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putEmailIdentityConfigurationSetAttributesResponse_httpStatus' - The response's http status code.+newPutEmailIdentityConfigurationSetAttributesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutEmailIdentityConfigurationSetAttributesResponse+newPutEmailIdentityConfigurationSetAttributesResponse+ pHttpStatus_ =+ PutEmailIdentityConfigurationSetAttributesResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+putEmailIdentityConfigurationSetAttributesResponse_httpStatus :: Lens.Lens' PutEmailIdentityConfigurationSetAttributesResponse Prelude.Int+putEmailIdentityConfigurationSetAttributesResponse_httpStatus = Lens.lens (\PutEmailIdentityConfigurationSetAttributesResponse' {httpStatus} -> httpStatus) (\s@PutEmailIdentityConfigurationSetAttributesResponse' {} a -> s {httpStatus = a} :: PutEmailIdentityConfigurationSetAttributesResponse)++instance+ Prelude.NFData+ PutEmailIdentityConfigurationSetAttributesResponse+ where+ rnf+ PutEmailIdentityConfigurationSetAttributesResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/PutEmailIdentityDkimAttributes.hs view
@@ -0,0 +1,212 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.PutEmailIdentityDkimAttributes+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Used to enable or disable DKIM authentication for an email identity.+module Amazonka.SESV2.PutEmailIdentityDkimAttributes+ ( -- * Creating a Request+ PutEmailIdentityDkimAttributes (..),+ newPutEmailIdentityDkimAttributes,++ -- * Request Lenses+ putEmailIdentityDkimAttributes_signingEnabled,+ putEmailIdentityDkimAttributes_emailIdentity,++ -- * Destructuring the Response+ PutEmailIdentityDkimAttributesResponse (..),+ newPutEmailIdentityDkimAttributesResponse,++ -- * Response Lenses+ putEmailIdentityDkimAttributesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to enable or disable DKIM signing of email that you send from+-- an email identity.+--+-- /See:/ 'newPutEmailIdentityDkimAttributes' smart constructor.+data PutEmailIdentityDkimAttributes = PutEmailIdentityDkimAttributes'+ { -- | Sets the DKIM signing configuration for the identity.+ --+ -- When you set this value @true@, then the messages that are sent from the+ -- identity are signed using DKIM. If you set this value to @false@, your+ -- messages are sent without DKIM signing.+ signingEnabled :: Prelude.Maybe Prelude.Bool,+ -- | The email identity.+ emailIdentity :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutEmailIdentityDkimAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'signingEnabled', 'putEmailIdentityDkimAttributes_signingEnabled' - Sets the DKIM signing configuration for the identity.+--+-- When you set this value @true@, then the messages that are sent from the+-- identity are signed using DKIM. If you set this value to @false@, your+-- messages are sent without DKIM signing.+--+-- 'emailIdentity', 'putEmailIdentityDkimAttributes_emailIdentity' - The email identity.+newPutEmailIdentityDkimAttributes ::+ -- | 'emailIdentity'+ Prelude.Text ->+ PutEmailIdentityDkimAttributes+newPutEmailIdentityDkimAttributes pEmailIdentity_ =+ PutEmailIdentityDkimAttributes'+ { signingEnabled =+ Prelude.Nothing,+ emailIdentity = pEmailIdentity_+ }++-- | Sets the DKIM signing configuration for the identity.+--+-- When you set this value @true@, then the messages that are sent from the+-- identity are signed using DKIM. If you set this value to @false@, your+-- messages are sent without DKIM signing.+putEmailIdentityDkimAttributes_signingEnabled :: Lens.Lens' PutEmailIdentityDkimAttributes (Prelude.Maybe Prelude.Bool)+putEmailIdentityDkimAttributes_signingEnabled = Lens.lens (\PutEmailIdentityDkimAttributes' {signingEnabled} -> signingEnabled) (\s@PutEmailIdentityDkimAttributes' {} a -> s {signingEnabled = a} :: PutEmailIdentityDkimAttributes)++-- | The email identity.+putEmailIdentityDkimAttributes_emailIdentity :: Lens.Lens' PutEmailIdentityDkimAttributes Prelude.Text+putEmailIdentityDkimAttributes_emailIdentity = Lens.lens (\PutEmailIdentityDkimAttributes' {emailIdentity} -> emailIdentity) (\s@PutEmailIdentityDkimAttributes' {} a -> s {emailIdentity = a} :: PutEmailIdentityDkimAttributes)++instance+ Core.AWSRequest+ PutEmailIdentityDkimAttributes+ where+ type+ AWSResponse PutEmailIdentityDkimAttributes =+ PutEmailIdentityDkimAttributesResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ PutEmailIdentityDkimAttributesResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ PutEmailIdentityDkimAttributes+ where+ hashWithSalt+ _salt+ PutEmailIdentityDkimAttributes' {..} =+ _salt+ `Prelude.hashWithSalt` signingEnabled+ `Prelude.hashWithSalt` emailIdentity++instance+ Prelude.NFData+ PutEmailIdentityDkimAttributes+ where+ rnf PutEmailIdentityDkimAttributes' {..} =+ Prelude.rnf signingEnabled+ `Prelude.seq` Prelude.rnf emailIdentity++instance+ Data.ToHeaders+ PutEmailIdentityDkimAttributes+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON PutEmailIdentityDkimAttributes where+ toJSON PutEmailIdentityDkimAttributes' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("SigningEnabled" Data..=)+ Prelude.<$> signingEnabled+ ]+ )++instance Data.ToPath PutEmailIdentityDkimAttributes where+ toPath PutEmailIdentityDkimAttributes' {..} =+ Prelude.mconcat+ [ "/v2/email/identities/",+ Data.toBS emailIdentity,+ "/dkim"+ ]++instance Data.ToQuery PutEmailIdentityDkimAttributes where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newPutEmailIdentityDkimAttributesResponse' smart constructor.+data PutEmailIdentityDkimAttributesResponse = PutEmailIdentityDkimAttributesResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutEmailIdentityDkimAttributesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putEmailIdentityDkimAttributesResponse_httpStatus' - The response's http status code.+newPutEmailIdentityDkimAttributesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutEmailIdentityDkimAttributesResponse+newPutEmailIdentityDkimAttributesResponse+ pHttpStatus_ =+ PutEmailIdentityDkimAttributesResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+putEmailIdentityDkimAttributesResponse_httpStatus :: Lens.Lens' PutEmailIdentityDkimAttributesResponse Prelude.Int+putEmailIdentityDkimAttributesResponse_httpStatus = Lens.lens (\PutEmailIdentityDkimAttributesResponse' {httpStatus} -> httpStatus) (\s@PutEmailIdentityDkimAttributesResponse' {} a -> s {httpStatus = a} :: PutEmailIdentityDkimAttributesResponse)++instance+ Prelude.NFData+ PutEmailIdentityDkimAttributesResponse+ where+ rnf PutEmailIdentityDkimAttributesResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/PutEmailIdentityDkimSigningAttributes.hs view
@@ -0,0 +1,431 @@+{-# 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.SESV2.PutEmailIdentityDkimSigningAttributes+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Used to configure or change the DKIM authentication settings for an+-- email domain identity. You can use this operation to do any of the+-- following:+--+-- - Update the signing attributes for an identity that uses Bring Your+-- Own DKIM (BYODKIM).+--+-- - Update the key length that should be used for Easy DKIM.+--+-- - Change from using no DKIM authentication to using Easy DKIM.+--+-- - Change from using no DKIM authentication to using BYODKIM.+--+-- - Change from using Easy DKIM to using BYODKIM.+--+-- - Change from using BYODKIM to using Easy DKIM.+module Amazonka.SESV2.PutEmailIdentityDkimSigningAttributes+ ( -- * Creating a Request+ PutEmailIdentityDkimSigningAttributes (..),+ newPutEmailIdentityDkimSigningAttributes,++ -- * Request Lenses+ putEmailIdentityDkimSigningAttributes_signingAttributes,+ putEmailIdentityDkimSigningAttributes_emailIdentity,+ putEmailIdentityDkimSigningAttributes_signingAttributesOrigin,++ -- * Destructuring the Response+ PutEmailIdentityDkimSigningAttributesResponse (..),+ newPutEmailIdentityDkimSigningAttributesResponse,++ -- * Response Lenses+ putEmailIdentityDkimSigningAttributesResponse_dkimStatus,+ putEmailIdentityDkimSigningAttributesResponse_dkimTokens,+ putEmailIdentityDkimSigningAttributesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to change the DKIM attributes for an email identity.+--+-- /See:/ 'newPutEmailIdentityDkimSigningAttributes' smart constructor.+data PutEmailIdentityDkimSigningAttributes = PutEmailIdentityDkimSigningAttributes'+ { -- | An object that contains information about the private key and selector+ -- that you want to use to configure DKIM for the identity for Bring Your+ -- Own DKIM (BYODKIM) for the identity, or, configures the key length to be+ -- used for+ -- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>.+ signingAttributes :: Prelude.Maybe DkimSigningAttributes,+ -- | The email identity.+ emailIdentity :: Prelude.Text,+ -- | The method to use to configure DKIM for the identity. There are the+ -- following possible values:+ --+ -- - @AWS_SES@ – Configure DKIM for the identity by using+ -- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>.+ --+ -- - @EXTERNAL@ – Configure DKIM for the identity by using Bring Your Own+ -- DKIM (BYODKIM).+ signingAttributesOrigin :: DkimSigningAttributesOrigin+ }+ deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutEmailIdentityDkimSigningAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'signingAttributes', 'putEmailIdentityDkimSigningAttributes_signingAttributes' - An object that contains information about the private key and selector+-- that you want to use to configure DKIM for the identity for Bring Your+-- Own DKIM (BYODKIM) for the identity, or, configures the key length to be+-- used for+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>.+--+-- 'emailIdentity', 'putEmailIdentityDkimSigningAttributes_emailIdentity' - The email identity.+--+-- 'signingAttributesOrigin', 'putEmailIdentityDkimSigningAttributes_signingAttributesOrigin' - The method to use to configure DKIM for the identity. There are the+-- following possible values:+--+-- - @AWS_SES@ – Configure DKIM for the identity by using+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>.+--+-- - @EXTERNAL@ – Configure DKIM for the identity by using Bring Your Own+-- DKIM (BYODKIM).+newPutEmailIdentityDkimSigningAttributes ::+ -- | 'emailIdentity'+ Prelude.Text ->+ -- | 'signingAttributesOrigin'+ DkimSigningAttributesOrigin ->+ PutEmailIdentityDkimSigningAttributes+newPutEmailIdentityDkimSigningAttributes+ pEmailIdentity_+ pSigningAttributesOrigin_ =+ PutEmailIdentityDkimSigningAttributes'+ { signingAttributes =+ Prelude.Nothing,+ emailIdentity = pEmailIdentity_,+ signingAttributesOrigin =+ pSigningAttributesOrigin_+ }++-- | An object that contains information about the private key and selector+-- that you want to use to configure DKIM for the identity for Bring Your+-- Own DKIM (BYODKIM) for the identity, or, configures the key length to be+-- used for+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>.+putEmailIdentityDkimSigningAttributes_signingAttributes :: Lens.Lens' PutEmailIdentityDkimSigningAttributes (Prelude.Maybe DkimSigningAttributes)+putEmailIdentityDkimSigningAttributes_signingAttributes = Lens.lens (\PutEmailIdentityDkimSigningAttributes' {signingAttributes} -> signingAttributes) (\s@PutEmailIdentityDkimSigningAttributes' {} a -> s {signingAttributes = a} :: PutEmailIdentityDkimSigningAttributes)++-- | The email identity.+putEmailIdentityDkimSigningAttributes_emailIdentity :: Lens.Lens' PutEmailIdentityDkimSigningAttributes Prelude.Text+putEmailIdentityDkimSigningAttributes_emailIdentity = Lens.lens (\PutEmailIdentityDkimSigningAttributes' {emailIdentity} -> emailIdentity) (\s@PutEmailIdentityDkimSigningAttributes' {} a -> s {emailIdentity = a} :: PutEmailIdentityDkimSigningAttributes)++-- | The method to use to configure DKIM for the identity. There are the+-- following possible values:+--+-- - @AWS_SES@ – Configure DKIM for the identity by using+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>.+--+-- - @EXTERNAL@ – Configure DKIM for the identity by using Bring Your Own+-- DKIM (BYODKIM).+putEmailIdentityDkimSigningAttributes_signingAttributesOrigin :: Lens.Lens' PutEmailIdentityDkimSigningAttributes DkimSigningAttributesOrigin+putEmailIdentityDkimSigningAttributes_signingAttributesOrigin = Lens.lens (\PutEmailIdentityDkimSigningAttributes' {signingAttributesOrigin} -> signingAttributesOrigin) (\s@PutEmailIdentityDkimSigningAttributes' {} a -> s {signingAttributesOrigin = a} :: PutEmailIdentityDkimSigningAttributes)++instance+ Core.AWSRequest+ PutEmailIdentityDkimSigningAttributes+ where+ type+ AWSResponse+ PutEmailIdentityDkimSigningAttributes =+ PutEmailIdentityDkimSigningAttributesResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ PutEmailIdentityDkimSigningAttributesResponse'+ Prelude.<$> (x Data..?> "DkimStatus")+ Prelude.<*> (x Data..?> "DkimTokens" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ PutEmailIdentityDkimSigningAttributes+ where+ hashWithSalt+ _salt+ PutEmailIdentityDkimSigningAttributes' {..} =+ _salt+ `Prelude.hashWithSalt` signingAttributes+ `Prelude.hashWithSalt` emailIdentity+ `Prelude.hashWithSalt` signingAttributesOrigin++instance+ Prelude.NFData+ PutEmailIdentityDkimSigningAttributes+ where+ rnf PutEmailIdentityDkimSigningAttributes' {..} =+ Prelude.rnf signingAttributes+ `Prelude.seq` Prelude.rnf emailIdentity+ `Prelude.seq` Prelude.rnf signingAttributesOrigin++instance+ Data.ToHeaders+ PutEmailIdentityDkimSigningAttributes+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToJSON+ PutEmailIdentityDkimSigningAttributes+ where+ toJSON PutEmailIdentityDkimSigningAttributes' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("SigningAttributes" Data..=)+ Prelude.<$> signingAttributes,+ Prelude.Just+ ( "SigningAttributesOrigin"+ Data..= signingAttributesOrigin+ )+ ]+ )++instance+ Data.ToPath+ PutEmailIdentityDkimSigningAttributes+ where+ toPath PutEmailIdentityDkimSigningAttributes' {..} =+ Prelude.mconcat+ [ "/v1/email/identities/",+ Data.toBS emailIdentity,+ "/dkim/signing"+ ]++instance+ Data.ToQuery+ PutEmailIdentityDkimSigningAttributes+ where+ toQuery = Prelude.const Prelude.mempty++-- | If the action is successful, the service sends back an HTTP 200+-- response.+--+-- The following data is returned in JSON format by the service.+--+-- /See:/ 'newPutEmailIdentityDkimSigningAttributesResponse' smart constructor.+data PutEmailIdentityDkimSigningAttributesResponse = PutEmailIdentityDkimSigningAttributesResponse'+ { -- | The DKIM authentication status of the identity. Amazon SES determines+ -- the authentication status by searching for specific records in the DNS+ -- configuration for your domain. If you used+ -- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>+ -- to set up DKIM authentication, Amazon SES tries to find three unique+ -- CNAME records in the DNS configuration for your domain.+ --+ -- If you provided a public key to perform DKIM authentication, Amazon SES+ -- tries to find a TXT record that uses the selector that you specified.+ -- The value of the TXT record must be a public key that\'s paired with the+ -- private key that you specified in the process of creating the identity.+ --+ -- The status can be one of the following:+ --+ -- - @PENDING@ – The verification process was initiated, but Amazon SES+ -- hasn\'t yet detected the DKIM records in the DNS configuration for+ -- the domain.+ --+ -- - @SUCCESS@ – The verification process completed successfully.+ --+ -- - @FAILED@ – The verification process failed. This typically occurs+ -- when Amazon SES fails to find the DKIM records in the DNS+ -- configuration of the domain.+ --+ -- - @TEMPORARY_FAILURE@ – A temporary issue is preventing Amazon SES+ -- from determining the DKIM authentication status of the domain.+ --+ -- - @NOT_STARTED@ – The DKIM verification process hasn\'t been initiated+ -- for the domain.+ dkimStatus :: Prelude.Maybe DkimStatus,+ -- | If you used+ -- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>+ -- to configure DKIM authentication for the domain, then this object+ -- contains a set of unique strings that you use to create a set of CNAME+ -- records that you add to the DNS configuration for your domain. When+ -- Amazon SES detects these records in the DNS configuration for your+ -- domain, the DKIM authentication process is complete.+ --+ -- If you configured DKIM authentication for the domain by providing your+ -- own public-private key pair, then this object contains the selector+ -- that\'s associated with your public key.+ --+ -- Regardless of the DKIM authentication method you use, Amazon SES+ -- searches for the appropriate records in the DNS configuration of the+ -- domain for up to 72 hours.+ dkimTokens :: 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 'PutEmailIdentityDkimSigningAttributesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dkimStatus', 'putEmailIdentityDkimSigningAttributesResponse_dkimStatus' - The DKIM authentication status of the identity. Amazon SES determines+-- the authentication status by searching for specific records in the DNS+-- configuration for your domain. If you used+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>+-- to set up DKIM authentication, Amazon SES tries to find three unique+-- CNAME records in the DNS configuration for your domain.+--+-- If you provided a public key to perform DKIM authentication, Amazon SES+-- tries to find a TXT record that uses the selector that you specified.+-- The value of the TXT record must be a public key that\'s paired with the+-- private key that you specified in the process of creating the identity.+--+-- The status can be one of the following:+--+-- - @PENDING@ – The verification process was initiated, but Amazon SES+-- hasn\'t yet detected the DKIM records in the DNS configuration for+-- the domain.+--+-- - @SUCCESS@ – The verification process completed successfully.+--+-- - @FAILED@ – The verification process failed. This typically occurs+-- when Amazon SES fails to find the DKIM records in the DNS+-- configuration of the domain.+--+-- - @TEMPORARY_FAILURE@ – A temporary issue is preventing Amazon SES+-- from determining the DKIM authentication status of the domain.+--+-- - @NOT_STARTED@ – The DKIM verification process hasn\'t been initiated+-- for the domain.+--+-- 'dkimTokens', 'putEmailIdentityDkimSigningAttributesResponse_dkimTokens' - If you used+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>+-- to configure DKIM authentication for the domain, then this object+-- contains a set of unique strings that you use to create a set of CNAME+-- records that you add to the DNS configuration for your domain. When+-- Amazon SES detects these records in the DNS configuration for your+-- domain, the DKIM authentication process is complete.+--+-- If you configured DKIM authentication for the domain by providing your+-- own public-private key pair, then this object contains the selector+-- that\'s associated with your public key.+--+-- Regardless of the DKIM authentication method you use, Amazon SES+-- searches for the appropriate records in the DNS configuration of the+-- domain for up to 72 hours.+--+-- 'httpStatus', 'putEmailIdentityDkimSigningAttributesResponse_httpStatus' - The response's http status code.+newPutEmailIdentityDkimSigningAttributesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutEmailIdentityDkimSigningAttributesResponse+newPutEmailIdentityDkimSigningAttributesResponse+ pHttpStatus_ =+ PutEmailIdentityDkimSigningAttributesResponse'+ { dkimStatus =+ Prelude.Nothing,+ dkimTokens = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The DKIM authentication status of the identity. Amazon SES determines+-- the authentication status by searching for specific records in the DNS+-- configuration for your domain. If you used+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>+-- to set up DKIM authentication, Amazon SES tries to find three unique+-- CNAME records in the DNS configuration for your domain.+--+-- If you provided a public key to perform DKIM authentication, Amazon SES+-- tries to find a TXT record that uses the selector that you specified.+-- The value of the TXT record must be a public key that\'s paired with the+-- private key that you specified in the process of creating the identity.+--+-- The status can be one of the following:+--+-- - @PENDING@ – The verification process was initiated, but Amazon SES+-- hasn\'t yet detected the DKIM records in the DNS configuration for+-- the domain.+--+-- - @SUCCESS@ – The verification process completed successfully.+--+-- - @FAILED@ – The verification process failed. This typically occurs+-- when Amazon SES fails to find the DKIM records in the DNS+-- configuration of the domain.+--+-- - @TEMPORARY_FAILURE@ – A temporary issue is preventing Amazon SES+-- from determining the DKIM authentication status of the domain.+--+-- - @NOT_STARTED@ – The DKIM verification process hasn\'t been initiated+-- for the domain.+putEmailIdentityDkimSigningAttributesResponse_dkimStatus :: Lens.Lens' PutEmailIdentityDkimSigningAttributesResponse (Prelude.Maybe DkimStatus)+putEmailIdentityDkimSigningAttributesResponse_dkimStatus = Lens.lens (\PutEmailIdentityDkimSigningAttributesResponse' {dkimStatus} -> dkimStatus) (\s@PutEmailIdentityDkimSigningAttributesResponse' {} a -> s {dkimStatus = a} :: PutEmailIdentityDkimSigningAttributesResponse)++-- | If you used+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>+-- to configure DKIM authentication for the domain, then this object+-- contains a set of unique strings that you use to create a set of CNAME+-- records that you add to the DNS configuration for your domain. When+-- Amazon SES detects these records in the DNS configuration for your+-- domain, the DKIM authentication process is complete.+--+-- If you configured DKIM authentication for the domain by providing your+-- own public-private key pair, then this object contains the selector+-- that\'s associated with your public key.+--+-- Regardless of the DKIM authentication method you use, Amazon SES+-- searches for the appropriate records in the DNS configuration of the+-- domain for up to 72 hours.+putEmailIdentityDkimSigningAttributesResponse_dkimTokens :: Lens.Lens' PutEmailIdentityDkimSigningAttributesResponse (Prelude.Maybe [Prelude.Text])+putEmailIdentityDkimSigningAttributesResponse_dkimTokens = Lens.lens (\PutEmailIdentityDkimSigningAttributesResponse' {dkimTokens} -> dkimTokens) (\s@PutEmailIdentityDkimSigningAttributesResponse' {} a -> s {dkimTokens = a} :: PutEmailIdentityDkimSigningAttributesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+putEmailIdentityDkimSigningAttributesResponse_httpStatus :: Lens.Lens' PutEmailIdentityDkimSigningAttributesResponse Prelude.Int+putEmailIdentityDkimSigningAttributesResponse_httpStatus = Lens.lens (\PutEmailIdentityDkimSigningAttributesResponse' {httpStatus} -> httpStatus) (\s@PutEmailIdentityDkimSigningAttributesResponse' {} a -> s {httpStatus = a} :: PutEmailIdentityDkimSigningAttributesResponse)++instance+ Prelude.NFData+ PutEmailIdentityDkimSigningAttributesResponse+ where+ rnf+ PutEmailIdentityDkimSigningAttributesResponse' {..} =+ Prelude.rnf dkimStatus+ `Prelude.seq` Prelude.rnf dkimTokens+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/PutEmailIdentityFeedbackAttributes.hs view
@@ -0,0 +1,251 @@+{-# 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.SESV2.PutEmailIdentityFeedbackAttributes+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Used to enable or disable feedback forwarding for an identity. This+-- setting determines what happens when an identity is used to send an+-- email that results in a bounce or complaint event.+--+-- If the value is @true@, you receive email notifications when bounce or+-- complaint events occur. These notifications are sent to the address that+-- you specified in the @Return-Path@ header of the original email.+--+-- You\'re required to have a method of tracking bounces and complaints. If+-- you haven\'t set up another mechanism for receiving bounce or complaint+-- notifications (for example, by setting up an event destination), you+-- receive an email notification when these events occur (even if this+-- setting is disabled).+module Amazonka.SESV2.PutEmailIdentityFeedbackAttributes+ ( -- * Creating a Request+ PutEmailIdentityFeedbackAttributes (..),+ newPutEmailIdentityFeedbackAttributes,++ -- * Request Lenses+ putEmailIdentityFeedbackAttributes_emailForwardingEnabled,+ putEmailIdentityFeedbackAttributes_emailIdentity,++ -- * Destructuring the Response+ PutEmailIdentityFeedbackAttributesResponse (..),+ newPutEmailIdentityFeedbackAttributesResponse,++ -- * Response Lenses+ putEmailIdentityFeedbackAttributesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to set the attributes that control how bounce and complaint+-- events are processed.+--+-- /See:/ 'newPutEmailIdentityFeedbackAttributes' smart constructor.+data PutEmailIdentityFeedbackAttributes = PutEmailIdentityFeedbackAttributes'+ { -- | Sets the feedback forwarding configuration for the identity.+ --+ -- If the value is @true@, you receive email notifications when bounce or+ -- complaint events occur. These notifications are sent to the address that+ -- you specified in the @Return-Path@ header of the original email.+ --+ -- You\'re required to have a method of tracking bounces and complaints. If+ -- you haven\'t set up another mechanism for receiving bounce or complaint+ -- notifications (for example, by setting up an event destination), you+ -- receive an email notification when these events occur (even if this+ -- setting is disabled).+ emailForwardingEnabled :: Prelude.Maybe Prelude.Bool,+ -- | The email identity.+ emailIdentity :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutEmailIdentityFeedbackAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'emailForwardingEnabled', 'putEmailIdentityFeedbackAttributes_emailForwardingEnabled' - Sets the feedback forwarding configuration for the identity.+--+-- If the value is @true@, you receive email notifications when bounce or+-- complaint events occur. These notifications are sent to the address that+-- you specified in the @Return-Path@ header of the original email.+--+-- You\'re required to have a method of tracking bounces and complaints. If+-- you haven\'t set up another mechanism for receiving bounce or complaint+-- notifications (for example, by setting up an event destination), you+-- receive an email notification when these events occur (even if this+-- setting is disabled).+--+-- 'emailIdentity', 'putEmailIdentityFeedbackAttributes_emailIdentity' - The email identity.+newPutEmailIdentityFeedbackAttributes ::+ -- | 'emailIdentity'+ Prelude.Text ->+ PutEmailIdentityFeedbackAttributes+newPutEmailIdentityFeedbackAttributes pEmailIdentity_ =+ PutEmailIdentityFeedbackAttributes'+ { emailForwardingEnabled =+ Prelude.Nothing,+ emailIdentity = pEmailIdentity_+ }++-- | Sets the feedback forwarding configuration for the identity.+--+-- If the value is @true@, you receive email notifications when bounce or+-- complaint events occur. These notifications are sent to the address that+-- you specified in the @Return-Path@ header of the original email.+--+-- You\'re required to have a method of tracking bounces and complaints. If+-- you haven\'t set up another mechanism for receiving bounce or complaint+-- notifications (for example, by setting up an event destination), you+-- receive an email notification when these events occur (even if this+-- setting is disabled).+putEmailIdentityFeedbackAttributes_emailForwardingEnabled :: Lens.Lens' PutEmailIdentityFeedbackAttributes (Prelude.Maybe Prelude.Bool)+putEmailIdentityFeedbackAttributes_emailForwardingEnabled = Lens.lens (\PutEmailIdentityFeedbackAttributes' {emailForwardingEnabled} -> emailForwardingEnabled) (\s@PutEmailIdentityFeedbackAttributes' {} a -> s {emailForwardingEnabled = a} :: PutEmailIdentityFeedbackAttributes)++-- | The email identity.+putEmailIdentityFeedbackAttributes_emailIdentity :: Lens.Lens' PutEmailIdentityFeedbackAttributes Prelude.Text+putEmailIdentityFeedbackAttributes_emailIdentity = Lens.lens (\PutEmailIdentityFeedbackAttributes' {emailIdentity} -> emailIdentity) (\s@PutEmailIdentityFeedbackAttributes' {} a -> s {emailIdentity = a} :: PutEmailIdentityFeedbackAttributes)++instance+ Core.AWSRequest+ PutEmailIdentityFeedbackAttributes+ where+ type+ AWSResponse PutEmailIdentityFeedbackAttributes =+ PutEmailIdentityFeedbackAttributesResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ PutEmailIdentityFeedbackAttributesResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ PutEmailIdentityFeedbackAttributes+ where+ hashWithSalt+ _salt+ PutEmailIdentityFeedbackAttributes' {..} =+ _salt+ `Prelude.hashWithSalt` emailForwardingEnabled+ `Prelude.hashWithSalt` emailIdentity++instance+ Prelude.NFData+ PutEmailIdentityFeedbackAttributes+ where+ rnf PutEmailIdentityFeedbackAttributes' {..} =+ Prelude.rnf emailForwardingEnabled+ `Prelude.seq` Prelude.rnf emailIdentity++instance+ Data.ToHeaders+ PutEmailIdentityFeedbackAttributes+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToJSON+ PutEmailIdentityFeedbackAttributes+ where+ toJSON PutEmailIdentityFeedbackAttributes' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("EmailForwardingEnabled" Data..=)+ Prelude.<$> emailForwardingEnabled+ ]+ )++instance+ Data.ToPath+ PutEmailIdentityFeedbackAttributes+ where+ toPath PutEmailIdentityFeedbackAttributes' {..} =+ Prelude.mconcat+ [ "/v2/email/identities/",+ Data.toBS emailIdentity,+ "/feedback"+ ]++instance+ Data.ToQuery+ PutEmailIdentityFeedbackAttributes+ where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newPutEmailIdentityFeedbackAttributesResponse' smart constructor.+data PutEmailIdentityFeedbackAttributesResponse = PutEmailIdentityFeedbackAttributesResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutEmailIdentityFeedbackAttributesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putEmailIdentityFeedbackAttributesResponse_httpStatus' - The response's http status code.+newPutEmailIdentityFeedbackAttributesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutEmailIdentityFeedbackAttributesResponse+newPutEmailIdentityFeedbackAttributesResponse+ pHttpStatus_ =+ PutEmailIdentityFeedbackAttributesResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+putEmailIdentityFeedbackAttributesResponse_httpStatus :: Lens.Lens' PutEmailIdentityFeedbackAttributesResponse Prelude.Int+putEmailIdentityFeedbackAttributesResponse_httpStatus = Lens.lens (\PutEmailIdentityFeedbackAttributesResponse' {httpStatus} -> httpStatus) (\s@PutEmailIdentityFeedbackAttributesResponse' {} a -> s {httpStatus = a} :: PutEmailIdentityFeedbackAttributesResponse)++instance+ Prelude.NFData+ PutEmailIdentityFeedbackAttributesResponse+ where+ rnf PutEmailIdentityFeedbackAttributesResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/PutEmailIdentityMailFromAttributes.hs view
@@ -0,0 +1,272 @@+{-# 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.SESV2.PutEmailIdentityMailFromAttributes+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Used to enable or disable the custom Mail-From domain configuration for+-- an email identity.+module Amazonka.SESV2.PutEmailIdentityMailFromAttributes+ ( -- * Creating a Request+ PutEmailIdentityMailFromAttributes (..),+ newPutEmailIdentityMailFromAttributes,++ -- * Request Lenses+ putEmailIdentityMailFromAttributes_behaviorOnMxFailure,+ putEmailIdentityMailFromAttributes_mailFromDomain,+ putEmailIdentityMailFromAttributes_emailIdentity,++ -- * Destructuring the Response+ PutEmailIdentityMailFromAttributesResponse (..),+ newPutEmailIdentityMailFromAttributesResponse,++ -- * Response Lenses+ putEmailIdentityMailFromAttributesResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to configure the custom MAIL FROM domain for a verified+-- identity.+--+-- /See:/ 'newPutEmailIdentityMailFromAttributes' smart constructor.+data PutEmailIdentityMailFromAttributes = PutEmailIdentityMailFromAttributes'+ { -- | The action to take if the required MX record isn\'t found when you send+ -- an email. When you set this value to @UseDefaultValue@, the mail is sent+ -- using /amazonses.com/ as the MAIL FROM domain. When you set this value+ -- to @RejectMessage@, the Amazon SES API v2 returns a+ -- @MailFromDomainNotVerified@ error, and doesn\'t attempt to deliver the+ -- email.+ --+ -- These behaviors are taken when the custom MAIL FROM domain configuration+ -- is in the @Pending@, @Failed@, and @TemporaryFailure@ states.+ behaviorOnMxFailure :: Prelude.Maybe BehaviorOnMxFailure,+ -- | The custom MAIL FROM domain that you want the verified identity to use.+ -- The MAIL FROM domain must meet the following criteria:+ --+ -- - It has to be a subdomain of the verified identity.+ --+ -- - It can\'t be used to receive email.+ --+ -- - It can\'t be used in a \"From\" address if the MAIL FROM domain is a+ -- destination for feedback forwarding emails.+ mailFromDomain :: Prelude.Maybe Prelude.Text,+ -- | The verified email identity.+ emailIdentity :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutEmailIdentityMailFromAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'behaviorOnMxFailure', 'putEmailIdentityMailFromAttributes_behaviorOnMxFailure' - The action to take if the required MX record isn\'t found when you send+-- an email. When you set this value to @UseDefaultValue@, the mail is sent+-- using /amazonses.com/ as the MAIL FROM domain. When you set this value+-- to @RejectMessage@, the Amazon SES API v2 returns a+-- @MailFromDomainNotVerified@ error, and doesn\'t attempt to deliver the+-- email.+--+-- These behaviors are taken when the custom MAIL FROM domain configuration+-- is in the @Pending@, @Failed@, and @TemporaryFailure@ states.+--+-- 'mailFromDomain', 'putEmailIdentityMailFromAttributes_mailFromDomain' - The custom MAIL FROM domain that you want the verified identity to use.+-- The MAIL FROM domain must meet the following criteria:+--+-- - It has to be a subdomain of the verified identity.+--+-- - It can\'t be used to receive email.+--+-- - It can\'t be used in a \"From\" address if the MAIL FROM domain is a+-- destination for feedback forwarding emails.+--+-- 'emailIdentity', 'putEmailIdentityMailFromAttributes_emailIdentity' - The verified email identity.+newPutEmailIdentityMailFromAttributes ::+ -- | 'emailIdentity'+ Prelude.Text ->+ PutEmailIdentityMailFromAttributes+newPutEmailIdentityMailFromAttributes pEmailIdentity_ =+ PutEmailIdentityMailFromAttributes'+ { behaviorOnMxFailure =+ Prelude.Nothing,+ mailFromDomain = Prelude.Nothing,+ emailIdentity = pEmailIdentity_+ }++-- | The action to take if the required MX record isn\'t found when you send+-- an email. When you set this value to @UseDefaultValue@, the mail is sent+-- using /amazonses.com/ as the MAIL FROM domain. When you set this value+-- to @RejectMessage@, the Amazon SES API v2 returns a+-- @MailFromDomainNotVerified@ error, and doesn\'t attempt to deliver the+-- email.+--+-- These behaviors are taken when the custom MAIL FROM domain configuration+-- is in the @Pending@, @Failed@, and @TemporaryFailure@ states.+putEmailIdentityMailFromAttributes_behaviorOnMxFailure :: Lens.Lens' PutEmailIdentityMailFromAttributes (Prelude.Maybe BehaviorOnMxFailure)+putEmailIdentityMailFromAttributes_behaviorOnMxFailure = Lens.lens (\PutEmailIdentityMailFromAttributes' {behaviorOnMxFailure} -> behaviorOnMxFailure) (\s@PutEmailIdentityMailFromAttributes' {} a -> s {behaviorOnMxFailure = a} :: PutEmailIdentityMailFromAttributes)++-- | The custom MAIL FROM domain that you want the verified identity to use.+-- The MAIL FROM domain must meet the following criteria:+--+-- - It has to be a subdomain of the verified identity.+--+-- - It can\'t be used to receive email.+--+-- - It can\'t be used in a \"From\" address if the MAIL FROM domain is a+-- destination for feedback forwarding emails.+putEmailIdentityMailFromAttributes_mailFromDomain :: Lens.Lens' PutEmailIdentityMailFromAttributes (Prelude.Maybe Prelude.Text)+putEmailIdentityMailFromAttributes_mailFromDomain = Lens.lens (\PutEmailIdentityMailFromAttributes' {mailFromDomain} -> mailFromDomain) (\s@PutEmailIdentityMailFromAttributes' {} a -> s {mailFromDomain = a} :: PutEmailIdentityMailFromAttributes)++-- | The verified email identity.+putEmailIdentityMailFromAttributes_emailIdentity :: Lens.Lens' PutEmailIdentityMailFromAttributes Prelude.Text+putEmailIdentityMailFromAttributes_emailIdentity = Lens.lens (\PutEmailIdentityMailFromAttributes' {emailIdentity} -> emailIdentity) (\s@PutEmailIdentityMailFromAttributes' {} a -> s {emailIdentity = a} :: PutEmailIdentityMailFromAttributes)++instance+ Core.AWSRequest+ PutEmailIdentityMailFromAttributes+ where+ type+ AWSResponse PutEmailIdentityMailFromAttributes =+ PutEmailIdentityMailFromAttributesResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ PutEmailIdentityMailFromAttributesResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ PutEmailIdentityMailFromAttributes+ where+ hashWithSalt+ _salt+ PutEmailIdentityMailFromAttributes' {..} =+ _salt+ `Prelude.hashWithSalt` behaviorOnMxFailure+ `Prelude.hashWithSalt` mailFromDomain+ `Prelude.hashWithSalt` emailIdentity++instance+ Prelude.NFData+ PutEmailIdentityMailFromAttributes+ where+ rnf PutEmailIdentityMailFromAttributes' {..} =+ Prelude.rnf behaviorOnMxFailure+ `Prelude.seq` Prelude.rnf mailFromDomain+ `Prelude.seq` Prelude.rnf emailIdentity++instance+ Data.ToHeaders+ PutEmailIdentityMailFromAttributes+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToJSON+ PutEmailIdentityMailFromAttributes+ where+ toJSON PutEmailIdentityMailFromAttributes' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("BehaviorOnMxFailure" Data..=)+ Prelude.<$> behaviorOnMxFailure,+ ("MailFromDomain" Data..=)+ Prelude.<$> mailFromDomain+ ]+ )++instance+ Data.ToPath+ PutEmailIdentityMailFromAttributes+ where+ toPath PutEmailIdentityMailFromAttributes' {..} =+ Prelude.mconcat+ [ "/v2/email/identities/",+ Data.toBS emailIdentity,+ "/mail-from"+ ]++instance+ Data.ToQuery+ PutEmailIdentityMailFromAttributes+ where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newPutEmailIdentityMailFromAttributesResponse' smart constructor.+data PutEmailIdentityMailFromAttributesResponse = PutEmailIdentityMailFromAttributesResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutEmailIdentityMailFromAttributesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putEmailIdentityMailFromAttributesResponse_httpStatus' - The response's http status code.+newPutEmailIdentityMailFromAttributesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutEmailIdentityMailFromAttributesResponse+newPutEmailIdentityMailFromAttributesResponse+ pHttpStatus_ =+ PutEmailIdentityMailFromAttributesResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+putEmailIdentityMailFromAttributesResponse_httpStatus :: Lens.Lens' PutEmailIdentityMailFromAttributesResponse Prelude.Int+putEmailIdentityMailFromAttributesResponse_httpStatus = Lens.lens (\PutEmailIdentityMailFromAttributesResponse' {httpStatus} -> httpStatus) (\s@PutEmailIdentityMailFromAttributesResponse' {} a -> s {httpStatus = a} :: PutEmailIdentityMailFromAttributesResponse)++instance+ Prelude.NFData+ PutEmailIdentityMailFromAttributesResponse+ where+ rnf PutEmailIdentityMailFromAttributesResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/PutSuppressedDestination.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.SESV2.PutSuppressedDestination+-- 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 email address to the suppression list for your account.+module Amazonka.SESV2.PutSuppressedDestination+ ( -- * Creating a Request+ PutSuppressedDestination (..),+ newPutSuppressedDestination,++ -- * Request Lenses+ putSuppressedDestination_emailAddress,+ putSuppressedDestination_reason,++ -- * Destructuring the Response+ PutSuppressedDestinationResponse (..),+ newPutSuppressedDestinationResponse,++ -- * Response Lenses+ putSuppressedDestinationResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to add an email destination to the suppression list for your+-- account.+--+-- /See:/ 'newPutSuppressedDestination' smart constructor.+data PutSuppressedDestination = PutSuppressedDestination'+ { -- | The email address that should be added to the suppression list for your+ -- account.+ emailAddress :: Prelude.Text,+ -- | The factors that should cause the email address to be added to the+ -- suppression list for your account.+ reason :: SuppressionListReason+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutSuppressedDestination' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'emailAddress', 'putSuppressedDestination_emailAddress' - The email address that should be added to the suppression list for your+-- account.+--+-- 'reason', 'putSuppressedDestination_reason' - The factors that should cause the email address to be added to the+-- suppression list for your account.+newPutSuppressedDestination ::+ -- | 'emailAddress'+ Prelude.Text ->+ -- | 'reason'+ SuppressionListReason ->+ PutSuppressedDestination+newPutSuppressedDestination pEmailAddress_ pReason_ =+ PutSuppressedDestination'+ { emailAddress =+ pEmailAddress_,+ reason = pReason_+ }++-- | The email address that should be added to the suppression list for your+-- account.+putSuppressedDestination_emailAddress :: Lens.Lens' PutSuppressedDestination Prelude.Text+putSuppressedDestination_emailAddress = Lens.lens (\PutSuppressedDestination' {emailAddress} -> emailAddress) (\s@PutSuppressedDestination' {} a -> s {emailAddress = a} :: PutSuppressedDestination)++-- | The factors that should cause the email address to be added to the+-- suppression list for your account.+putSuppressedDestination_reason :: Lens.Lens' PutSuppressedDestination SuppressionListReason+putSuppressedDestination_reason = Lens.lens (\PutSuppressedDestination' {reason} -> reason) (\s@PutSuppressedDestination' {} a -> s {reason = a} :: PutSuppressedDestination)++instance Core.AWSRequest PutSuppressedDestination where+ type+ AWSResponse PutSuppressedDestination =+ PutSuppressedDestinationResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ PutSuppressedDestinationResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable PutSuppressedDestination where+ hashWithSalt _salt PutSuppressedDestination' {..} =+ _salt+ `Prelude.hashWithSalt` emailAddress+ `Prelude.hashWithSalt` reason++instance Prelude.NFData PutSuppressedDestination where+ rnf PutSuppressedDestination' {..} =+ Prelude.rnf emailAddress+ `Prelude.seq` Prelude.rnf reason++instance Data.ToHeaders PutSuppressedDestination where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON PutSuppressedDestination where+ toJSON PutSuppressedDestination' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("EmailAddress" Data..= emailAddress),+ Prelude.Just ("Reason" Data..= reason)+ ]+ )++instance Data.ToPath PutSuppressedDestination where+ toPath =+ Prelude.const "/v2/email/suppression/addresses"++instance Data.ToQuery PutSuppressedDestination where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newPutSuppressedDestinationResponse' smart constructor.+data PutSuppressedDestinationResponse = PutSuppressedDestinationResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutSuppressedDestinationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putSuppressedDestinationResponse_httpStatus' - The response's http status code.+newPutSuppressedDestinationResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ PutSuppressedDestinationResponse+newPutSuppressedDestinationResponse pHttpStatus_ =+ PutSuppressedDestinationResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+putSuppressedDestinationResponse_httpStatus :: Lens.Lens' PutSuppressedDestinationResponse Prelude.Int+putSuppressedDestinationResponse_httpStatus = Lens.lens (\PutSuppressedDestinationResponse' {httpStatus} -> httpStatus) (\s@PutSuppressedDestinationResponse' {} a -> s {httpStatus = a} :: PutSuppressedDestinationResponse)++instance+ Prelude.NFData+ PutSuppressedDestinationResponse+ where+ rnf PutSuppressedDestinationResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/SendBulkEmail.hs view
@@ -0,0 +1,395 @@+{-# 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.SESV2.SendBulkEmail+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Composes an email message to multiple destinations.+module Amazonka.SESV2.SendBulkEmail+ ( -- * Creating a Request+ SendBulkEmail (..),+ newSendBulkEmail,++ -- * Request Lenses+ sendBulkEmail_configurationSetName,+ sendBulkEmail_defaultEmailTags,+ sendBulkEmail_feedbackForwardingEmailAddress,+ sendBulkEmail_feedbackForwardingEmailAddressIdentityArn,+ sendBulkEmail_fromEmailAddress,+ sendBulkEmail_fromEmailAddressIdentityArn,+ sendBulkEmail_replyToAddresses,+ sendBulkEmail_defaultContent,+ sendBulkEmail_bulkEmailEntries,++ -- * Destructuring the Response+ SendBulkEmailResponse (..),+ newSendBulkEmailResponse,++ -- * Response Lenses+ sendBulkEmailResponse_httpStatus,+ sendBulkEmailResponse_bulkEmailEntryResults,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | Represents a request to send email messages to multiple destinations+-- using Amazon SES. For more information, see the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-personalized-email-api.html Amazon SES Developer Guide>.+--+-- /See:/ 'newSendBulkEmail' smart constructor.+data SendBulkEmail = SendBulkEmail'+ { -- | The name of the configuration set to use when sending the email.+ configurationSetName :: Prelude.Maybe Prelude.Text,+ -- | A list of tags, in the form of name\/value pairs, to apply to an email+ -- that you send using the @SendEmail@ operation. Tags correspond to+ -- characteristics of the email that you define, so that you can publish+ -- email sending events.+ defaultEmailTags :: Prelude.Maybe [MessageTag],+ -- | The address that you want bounce and complaint notifications to be sent+ -- to.+ feedbackForwardingEmailAddress :: Prelude.Maybe Prelude.Text,+ -- | This parameter is used only for sending authorization. It is the ARN of+ -- the identity that is associated with the sending authorization policy+ -- that permits you to use the email address specified in the+ -- @FeedbackForwardingEmailAddress@ parameter.+ --+ -- For example, if the owner of example.com (which has ARN+ -- arn:aws:ses:us-east-1:123456789012:identity\/example.com) attaches a+ -- policy to it that authorizes you to use feedback\@example.com, then you+ -- would specify the @FeedbackForwardingEmailAddressIdentityArn@ to be+ -- arn:aws:ses:us-east-1:123456789012:identity\/example.com, and the+ -- @FeedbackForwardingEmailAddress@ to be feedback\@example.com.+ --+ -- For more information about sending authorization, see the+ -- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html Amazon SES Developer Guide>.+ feedbackForwardingEmailAddressIdentityArn :: Prelude.Maybe Prelude.Text,+ -- | The email address to use as the \"From\" address for the email. The+ -- address that you specify has to be verified.+ fromEmailAddress :: Prelude.Maybe Prelude.Text,+ -- | This parameter is used only for sending authorization. It is the ARN of+ -- the identity that is associated with the sending authorization policy+ -- that permits you to use the email address specified in the+ -- @FromEmailAddress@ parameter.+ --+ -- For example, if the owner of example.com (which has ARN+ -- arn:aws:ses:us-east-1:123456789012:identity\/example.com) attaches a+ -- policy to it that authorizes you to use sender\@example.com, then you+ -- would specify the @FromEmailAddressIdentityArn@ to be+ -- arn:aws:ses:us-east-1:123456789012:identity\/example.com, and the+ -- @FromEmailAddress@ to be sender\@example.com.+ --+ -- For more information about sending authorization, see the+ -- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html Amazon SES Developer Guide>.+ fromEmailAddressIdentityArn :: Prelude.Maybe Prelude.Text,+ -- | The \"Reply-to\" email addresses for the message. When the recipient+ -- replies to the message, each Reply-to address receives the reply.+ replyToAddresses :: Prelude.Maybe [Prelude.Text],+ -- | An object that contains the body of the message. You can specify a+ -- template message.+ defaultContent :: BulkEmailContent,+ -- | The list of bulk email entry objects.+ bulkEmailEntries :: [BulkEmailEntry]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SendBulkEmail' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configurationSetName', 'sendBulkEmail_configurationSetName' - The name of the configuration set to use when sending the email.+--+-- 'defaultEmailTags', 'sendBulkEmail_defaultEmailTags' - A list of tags, in the form of name\/value pairs, to apply to an email+-- that you send using the @SendEmail@ operation. Tags correspond to+-- characteristics of the email that you define, so that you can publish+-- email sending events.+--+-- 'feedbackForwardingEmailAddress', 'sendBulkEmail_feedbackForwardingEmailAddress' - The address that you want bounce and complaint notifications to be sent+-- to.+--+-- 'feedbackForwardingEmailAddressIdentityArn', 'sendBulkEmail_feedbackForwardingEmailAddressIdentityArn' - This parameter is used only for sending authorization. It is the ARN of+-- the identity that is associated with the sending authorization policy+-- that permits you to use the email address specified in the+-- @FeedbackForwardingEmailAddress@ parameter.+--+-- For example, if the owner of example.com (which has ARN+-- arn:aws:ses:us-east-1:123456789012:identity\/example.com) attaches a+-- policy to it that authorizes you to use feedback\@example.com, then you+-- would specify the @FeedbackForwardingEmailAddressIdentityArn@ to be+-- arn:aws:ses:us-east-1:123456789012:identity\/example.com, and the+-- @FeedbackForwardingEmailAddress@ to be feedback\@example.com.+--+-- For more information about sending authorization, see the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html Amazon SES Developer Guide>.+--+-- 'fromEmailAddress', 'sendBulkEmail_fromEmailAddress' - The email address to use as the \"From\" address for the email. The+-- address that you specify has to be verified.+--+-- 'fromEmailAddressIdentityArn', 'sendBulkEmail_fromEmailAddressIdentityArn' - This parameter is used only for sending authorization. It is the ARN of+-- the identity that is associated with the sending authorization policy+-- that permits you to use the email address specified in the+-- @FromEmailAddress@ parameter.+--+-- For example, if the owner of example.com (which has ARN+-- arn:aws:ses:us-east-1:123456789012:identity\/example.com) attaches a+-- policy to it that authorizes you to use sender\@example.com, then you+-- would specify the @FromEmailAddressIdentityArn@ to be+-- arn:aws:ses:us-east-1:123456789012:identity\/example.com, and the+-- @FromEmailAddress@ to be sender\@example.com.+--+-- For more information about sending authorization, see the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html Amazon SES Developer Guide>.+--+-- 'replyToAddresses', 'sendBulkEmail_replyToAddresses' - The \"Reply-to\" email addresses for the message. When the recipient+-- replies to the message, each Reply-to address receives the reply.+--+-- 'defaultContent', 'sendBulkEmail_defaultContent' - An object that contains the body of the message. You can specify a+-- template message.+--+-- 'bulkEmailEntries', 'sendBulkEmail_bulkEmailEntries' - The list of bulk email entry objects.+newSendBulkEmail ::+ -- | 'defaultContent'+ BulkEmailContent ->+ SendBulkEmail+newSendBulkEmail pDefaultContent_ =+ SendBulkEmail'+ { configurationSetName =+ Prelude.Nothing,+ defaultEmailTags = Prelude.Nothing,+ feedbackForwardingEmailAddress = Prelude.Nothing,+ feedbackForwardingEmailAddressIdentityArn =+ Prelude.Nothing,+ fromEmailAddress = Prelude.Nothing,+ fromEmailAddressIdentityArn = Prelude.Nothing,+ replyToAddresses = Prelude.Nothing,+ defaultContent = pDefaultContent_,+ bulkEmailEntries = Prelude.mempty+ }++-- | The name of the configuration set to use when sending the email.+sendBulkEmail_configurationSetName :: Lens.Lens' SendBulkEmail (Prelude.Maybe Prelude.Text)+sendBulkEmail_configurationSetName = Lens.lens (\SendBulkEmail' {configurationSetName} -> configurationSetName) (\s@SendBulkEmail' {} a -> s {configurationSetName = a} :: SendBulkEmail)++-- | A list of tags, in the form of name\/value pairs, to apply to an email+-- that you send using the @SendEmail@ operation. Tags correspond to+-- characteristics of the email that you define, so that you can publish+-- email sending events.+sendBulkEmail_defaultEmailTags :: Lens.Lens' SendBulkEmail (Prelude.Maybe [MessageTag])+sendBulkEmail_defaultEmailTags = Lens.lens (\SendBulkEmail' {defaultEmailTags} -> defaultEmailTags) (\s@SendBulkEmail' {} a -> s {defaultEmailTags = a} :: SendBulkEmail) Prelude.. Lens.mapping Lens.coerced++-- | The address that you want bounce and complaint notifications to be sent+-- to.+sendBulkEmail_feedbackForwardingEmailAddress :: Lens.Lens' SendBulkEmail (Prelude.Maybe Prelude.Text)+sendBulkEmail_feedbackForwardingEmailAddress = Lens.lens (\SendBulkEmail' {feedbackForwardingEmailAddress} -> feedbackForwardingEmailAddress) (\s@SendBulkEmail' {} a -> s {feedbackForwardingEmailAddress = a} :: SendBulkEmail)++-- | This parameter is used only for sending authorization. It is the ARN of+-- the identity that is associated with the sending authorization policy+-- that permits you to use the email address specified in the+-- @FeedbackForwardingEmailAddress@ parameter.+--+-- For example, if the owner of example.com (which has ARN+-- arn:aws:ses:us-east-1:123456789012:identity\/example.com) attaches a+-- policy to it that authorizes you to use feedback\@example.com, then you+-- would specify the @FeedbackForwardingEmailAddressIdentityArn@ to be+-- arn:aws:ses:us-east-1:123456789012:identity\/example.com, and the+-- @FeedbackForwardingEmailAddress@ to be feedback\@example.com.+--+-- For more information about sending authorization, see the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html Amazon SES Developer Guide>.+sendBulkEmail_feedbackForwardingEmailAddressIdentityArn :: Lens.Lens' SendBulkEmail (Prelude.Maybe Prelude.Text)+sendBulkEmail_feedbackForwardingEmailAddressIdentityArn = Lens.lens (\SendBulkEmail' {feedbackForwardingEmailAddressIdentityArn} -> feedbackForwardingEmailAddressIdentityArn) (\s@SendBulkEmail' {} a -> s {feedbackForwardingEmailAddressIdentityArn = a} :: SendBulkEmail)++-- | The email address to use as the \"From\" address for the email. The+-- address that you specify has to be verified.+sendBulkEmail_fromEmailAddress :: Lens.Lens' SendBulkEmail (Prelude.Maybe Prelude.Text)+sendBulkEmail_fromEmailAddress = Lens.lens (\SendBulkEmail' {fromEmailAddress} -> fromEmailAddress) (\s@SendBulkEmail' {} a -> s {fromEmailAddress = a} :: SendBulkEmail)++-- | This parameter is used only for sending authorization. It is the ARN of+-- the identity that is associated with the sending authorization policy+-- that permits you to use the email address specified in the+-- @FromEmailAddress@ parameter.+--+-- For example, if the owner of example.com (which has ARN+-- arn:aws:ses:us-east-1:123456789012:identity\/example.com) attaches a+-- policy to it that authorizes you to use sender\@example.com, then you+-- would specify the @FromEmailAddressIdentityArn@ to be+-- arn:aws:ses:us-east-1:123456789012:identity\/example.com, and the+-- @FromEmailAddress@ to be sender\@example.com.+--+-- For more information about sending authorization, see the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html Amazon SES Developer Guide>.+sendBulkEmail_fromEmailAddressIdentityArn :: Lens.Lens' SendBulkEmail (Prelude.Maybe Prelude.Text)+sendBulkEmail_fromEmailAddressIdentityArn = Lens.lens (\SendBulkEmail' {fromEmailAddressIdentityArn} -> fromEmailAddressIdentityArn) (\s@SendBulkEmail' {} a -> s {fromEmailAddressIdentityArn = a} :: SendBulkEmail)++-- | The \"Reply-to\" email addresses for the message. When the recipient+-- replies to the message, each Reply-to address receives the reply.+sendBulkEmail_replyToAddresses :: Lens.Lens' SendBulkEmail (Prelude.Maybe [Prelude.Text])+sendBulkEmail_replyToAddresses = Lens.lens (\SendBulkEmail' {replyToAddresses} -> replyToAddresses) (\s@SendBulkEmail' {} a -> s {replyToAddresses = a} :: SendBulkEmail) Prelude.. Lens.mapping Lens.coerced++-- | An object that contains the body of the message. You can specify a+-- template message.+sendBulkEmail_defaultContent :: Lens.Lens' SendBulkEmail BulkEmailContent+sendBulkEmail_defaultContent = Lens.lens (\SendBulkEmail' {defaultContent} -> defaultContent) (\s@SendBulkEmail' {} a -> s {defaultContent = a} :: SendBulkEmail)++-- | The list of bulk email entry objects.+sendBulkEmail_bulkEmailEntries :: Lens.Lens' SendBulkEmail [BulkEmailEntry]+sendBulkEmail_bulkEmailEntries = Lens.lens (\SendBulkEmail' {bulkEmailEntries} -> bulkEmailEntries) (\s@SendBulkEmail' {} a -> s {bulkEmailEntries = a} :: SendBulkEmail) Prelude.. Lens.coerced++instance Core.AWSRequest SendBulkEmail where+ type+ AWSResponse SendBulkEmail =+ SendBulkEmailResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ SendBulkEmailResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> ( x+ Data..?> "BulkEmailEntryResults"+ Core..!@ Prelude.mempty+ )+ )++instance Prelude.Hashable SendBulkEmail where+ hashWithSalt _salt SendBulkEmail' {..} =+ _salt+ `Prelude.hashWithSalt` configurationSetName+ `Prelude.hashWithSalt` defaultEmailTags+ `Prelude.hashWithSalt` feedbackForwardingEmailAddress+ `Prelude.hashWithSalt` feedbackForwardingEmailAddressIdentityArn+ `Prelude.hashWithSalt` fromEmailAddress+ `Prelude.hashWithSalt` fromEmailAddressIdentityArn+ `Prelude.hashWithSalt` replyToAddresses+ `Prelude.hashWithSalt` defaultContent+ `Prelude.hashWithSalt` bulkEmailEntries++instance Prelude.NFData SendBulkEmail where+ rnf SendBulkEmail' {..} =+ Prelude.rnf configurationSetName+ `Prelude.seq` Prelude.rnf defaultEmailTags+ `Prelude.seq` Prelude.rnf feedbackForwardingEmailAddress+ `Prelude.seq` Prelude.rnf feedbackForwardingEmailAddressIdentityArn+ `Prelude.seq` Prelude.rnf fromEmailAddress+ `Prelude.seq` Prelude.rnf fromEmailAddressIdentityArn+ `Prelude.seq` Prelude.rnf replyToAddresses+ `Prelude.seq` Prelude.rnf defaultContent+ `Prelude.seq` Prelude.rnf bulkEmailEntries++instance Data.ToHeaders SendBulkEmail where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON SendBulkEmail where+ toJSON SendBulkEmail' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ConfigurationSetName" Data..=)+ Prelude.<$> configurationSetName,+ ("DefaultEmailTags" Data..=)+ Prelude.<$> defaultEmailTags,+ ("FeedbackForwardingEmailAddress" Data..=)+ Prelude.<$> feedbackForwardingEmailAddress,+ ("FeedbackForwardingEmailAddressIdentityArn" Data..=)+ Prelude.<$> feedbackForwardingEmailAddressIdentityArn,+ ("FromEmailAddress" Data..=)+ Prelude.<$> fromEmailAddress,+ ("FromEmailAddressIdentityArn" Data..=)+ Prelude.<$> fromEmailAddressIdentityArn,+ ("ReplyToAddresses" Data..=)+ Prelude.<$> replyToAddresses,+ Prelude.Just+ ("DefaultContent" Data..= defaultContent),+ Prelude.Just+ ("BulkEmailEntries" Data..= bulkEmailEntries)+ ]+ )++instance Data.ToPath SendBulkEmail where+ toPath =+ Prelude.const "/v2/email/outbound-bulk-emails"++instance Data.ToQuery SendBulkEmail where+ toQuery = Prelude.const Prelude.mempty++-- | The following data is returned in JSON format by the service.+--+-- /See:/ 'newSendBulkEmailResponse' smart constructor.+data SendBulkEmailResponse = SendBulkEmailResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | One object per intended recipient. Check each response object and retry+ -- any messages with a failure status.+ bulkEmailEntryResults :: [BulkEmailEntryResult]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SendBulkEmailResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'sendBulkEmailResponse_httpStatus' - The response's http status code.+--+-- 'bulkEmailEntryResults', 'sendBulkEmailResponse_bulkEmailEntryResults' - One object per intended recipient. Check each response object and retry+-- any messages with a failure status.+newSendBulkEmailResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ SendBulkEmailResponse+newSendBulkEmailResponse pHttpStatus_ =+ SendBulkEmailResponse'+ { httpStatus = pHttpStatus_,+ bulkEmailEntryResults = Prelude.mempty+ }++-- | The response's http status code.+sendBulkEmailResponse_httpStatus :: Lens.Lens' SendBulkEmailResponse Prelude.Int+sendBulkEmailResponse_httpStatus = Lens.lens (\SendBulkEmailResponse' {httpStatus} -> httpStatus) (\s@SendBulkEmailResponse' {} a -> s {httpStatus = a} :: SendBulkEmailResponse)++-- | One object per intended recipient. Check each response object and retry+-- any messages with a failure status.+sendBulkEmailResponse_bulkEmailEntryResults :: Lens.Lens' SendBulkEmailResponse [BulkEmailEntryResult]+sendBulkEmailResponse_bulkEmailEntryResults = Lens.lens (\SendBulkEmailResponse' {bulkEmailEntryResults} -> bulkEmailEntryResults) (\s@SendBulkEmailResponse' {} a -> s {bulkEmailEntryResults = a} :: SendBulkEmailResponse) Prelude.. Lens.coerced++instance Prelude.NFData SendBulkEmailResponse where+ rnf SendBulkEmailResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf bulkEmailEntryResults
+ gen/Amazonka/SESV2/SendCustomVerificationEmail.hs view
@@ -0,0 +1,228 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.SendCustomVerificationEmail+-- 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 email address to the list of identities for your Amazon SES+-- account in the current Amazon Web Services Region and attempts to verify+-- it. As a result of executing this operation, a customized verification+-- email is sent to the specified address.+--+-- To use this operation, you must first create a custom verification email+-- template. For more information about creating and using custom+-- verification email templates, see+-- <https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#send-email-verify-address-custom Using custom verification email templates>+-- in the /Amazon SES Developer Guide/.+--+-- You can execute this operation no more than once per second.+module Amazonka.SESV2.SendCustomVerificationEmail+ ( -- * Creating a Request+ SendCustomVerificationEmail (..),+ newSendCustomVerificationEmail,++ -- * Request Lenses+ sendCustomVerificationEmail_configurationSetName,+ sendCustomVerificationEmail_emailAddress,+ sendCustomVerificationEmail_templateName,++ -- * Destructuring the Response+ SendCustomVerificationEmailResponse (..),+ newSendCustomVerificationEmailResponse,++ -- * Response Lenses+ sendCustomVerificationEmailResponse_messageId,+ sendCustomVerificationEmailResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | Represents a request to send a custom verification email to a specified+-- recipient.+--+-- /See:/ 'newSendCustomVerificationEmail' smart constructor.+data SendCustomVerificationEmail = SendCustomVerificationEmail'+ { -- | Name of a configuration set to use when sending the verification email.+ configurationSetName :: Prelude.Maybe Prelude.Text,+ -- | The email address to verify.+ emailAddress :: Prelude.Text,+ -- | The name of the custom verification email template to use when sending+ -- the verification email.+ templateName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SendCustomVerificationEmail' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configurationSetName', 'sendCustomVerificationEmail_configurationSetName' - Name of a configuration set to use when sending the verification email.+--+-- 'emailAddress', 'sendCustomVerificationEmail_emailAddress' - The email address to verify.+--+-- 'templateName', 'sendCustomVerificationEmail_templateName' - The name of the custom verification email template to use when sending+-- the verification email.+newSendCustomVerificationEmail ::+ -- | 'emailAddress'+ Prelude.Text ->+ -- | 'templateName'+ Prelude.Text ->+ SendCustomVerificationEmail+newSendCustomVerificationEmail+ pEmailAddress_+ pTemplateName_ =+ SendCustomVerificationEmail'+ { configurationSetName =+ Prelude.Nothing,+ emailAddress = pEmailAddress_,+ templateName = pTemplateName_+ }++-- | Name of a configuration set to use when sending the verification email.+sendCustomVerificationEmail_configurationSetName :: Lens.Lens' SendCustomVerificationEmail (Prelude.Maybe Prelude.Text)+sendCustomVerificationEmail_configurationSetName = Lens.lens (\SendCustomVerificationEmail' {configurationSetName} -> configurationSetName) (\s@SendCustomVerificationEmail' {} a -> s {configurationSetName = a} :: SendCustomVerificationEmail)++-- | The email address to verify.+sendCustomVerificationEmail_emailAddress :: Lens.Lens' SendCustomVerificationEmail Prelude.Text+sendCustomVerificationEmail_emailAddress = Lens.lens (\SendCustomVerificationEmail' {emailAddress} -> emailAddress) (\s@SendCustomVerificationEmail' {} a -> s {emailAddress = a} :: SendCustomVerificationEmail)++-- | The name of the custom verification email template to use when sending+-- the verification email.+sendCustomVerificationEmail_templateName :: Lens.Lens' SendCustomVerificationEmail Prelude.Text+sendCustomVerificationEmail_templateName = Lens.lens (\SendCustomVerificationEmail' {templateName} -> templateName) (\s@SendCustomVerificationEmail' {} a -> s {templateName = a} :: SendCustomVerificationEmail)++instance Core.AWSRequest SendCustomVerificationEmail where+ type+ AWSResponse SendCustomVerificationEmail =+ SendCustomVerificationEmailResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ SendCustomVerificationEmailResponse'+ Prelude.<$> (x Data..?> "MessageId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable SendCustomVerificationEmail where+ hashWithSalt _salt SendCustomVerificationEmail' {..} =+ _salt+ `Prelude.hashWithSalt` configurationSetName+ `Prelude.hashWithSalt` emailAddress+ `Prelude.hashWithSalt` templateName++instance Prelude.NFData SendCustomVerificationEmail where+ rnf SendCustomVerificationEmail' {..} =+ Prelude.rnf configurationSetName+ `Prelude.seq` Prelude.rnf emailAddress+ `Prelude.seq` Prelude.rnf templateName++instance Data.ToHeaders SendCustomVerificationEmail where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON SendCustomVerificationEmail where+ toJSON SendCustomVerificationEmail' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ConfigurationSetName" Data..=)+ Prelude.<$> configurationSetName,+ Prelude.Just ("EmailAddress" Data..= emailAddress),+ Prelude.Just ("TemplateName" Data..= templateName)+ ]+ )++instance Data.ToPath SendCustomVerificationEmail where+ toPath =+ Prelude.const+ "/v2/email/outbound-custom-verification-emails"++instance Data.ToQuery SendCustomVerificationEmail where+ toQuery = Prelude.const Prelude.mempty++-- | The following element is returned by the service.+--+-- /See:/ 'newSendCustomVerificationEmailResponse' smart constructor.+data SendCustomVerificationEmailResponse = SendCustomVerificationEmailResponse'+ { -- | The unique message identifier returned from the+ -- @SendCustomVerificationEmail@ operation.+ messageId :: 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 'SendCustomVerificationEmailResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'messageId', 'sendCustomVerificationEmailResponse_messageId' - The unique message identifier returned from the+-- @SendCustomVerificationEmail@ operation.+--+-- 'httpStatus', 'sendCustomVerificationEmailResponse_httpStatus' - The response's http status code.+newSendCustomVerificationEmailResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ SendCustomVerificationEmailResponse+newSendCustomVerificationEmailResponse pHttpStatus_ =+ SendCustomVerificationEmailResponse'+ { messageId =+ Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The unique message identifier returned from the+-- @SendCustomVerificationEmail@ operation.+sendCustomVerificationEmailResponse_messageId :: Lens.Lens' SendCustomVerificationEmailResponse (Prelude.Maybe Prelude.Text)+sendCustomVerificationEmailResponse_messageId = Lens.lens (\SendCustomVerificationEmailResponse' {messageId} -> messageId) (\s@SendCustomVerificationEmailResponse' {} a -> s {messageId = a} :: SendCustomVerificationEmailResponse)++-- | The response's http status code.+sendCustomVerificationEmailResponse_httpStatus :: Lens.Lens' SendCustomVerificationEmailResponse Prelude.Int+sendCustomVerificationEmailResponse_httpStatus = Lens.lens (\SendCustomVerificationEmailResponse' {httpStatus} -> httpStatus) (\s@SendCustomVerificationEmailResponse' {} a -> s {httpStatus = a} :: SendCustomVerificationEmailResponse)++instance+ Prelude.NFData+ SendCustomVerificationEmailResponse+ where+ rnf SendCustomVerificationEmailResponse' {..} =+ Prelude.rnf messageId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/SendEmail.hs view
@@ -0,0 +1,445 @@+{-# 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.SESV2.SendEmail+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Sends an email message. You can use the Amazon SES API v2 to send the+-- following types of messages:+--+-- - __Simple__ – A standard email message. When you create this type of+-- message, you specify the sender, the recipient, and the message+-- body, and Amazon SES assembles the message for you.+--+-- - __Raw__ – A raw, MIME-formatted email message. When you send this+-- type of email, you have to specify all of the message headers, as+-- well as the message body. You can use this message type to send+-- messages that contain attachments. The message that you specify has+-- to be a valid MIME message.+--+-- - __Templated__ – A message that contains personalization tags. When+-- you send this type of email, Amazon SES API v2 automatically+-- replaces the tags with values that you specify.+module Amazonka.SESV2.SendEmail+ ( -- * Creating a Request+ SendEmail (..),+ newSendEmail,++ -- * Request Lenses+ sendEmail_configurationSetName,+ sendEmail_destination,+ sendEmail_emailTags,+ sendEmail_feedbackForwardingEmailAddress,+ sendEmail_feedbackForwardingEmailAddressIdentityArn,+ sendEmail_fromEmailAddress,+ sendEmail_fromEmailAddressIdentityArn,+ sendEmail_listManagementOptions,+ sendEmail_replyToAddresses,+ sendEmail_content,++ -- * Destructuring the Response+ SendEmailResponse (..),+ newSendEmailResponse,++ -- * Response Lenses+ sendEmailResponse_messageId,+ sendEmailResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | Represents a request to send a single formatted email using Amazon SES.+-- For more information, see the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-formatted.html Amazon SES Developer Guide>.+--+-- /See:/ 'newSendEmail' smart constructor.+data SendEmail = SendEmail'+ { -- | The name of the configuration set to use when sending the email.+ configurationSetName :: Prelude.Maybe Prelude.Text,+ -- | An object that contains the recipients of the email message.+ destination :: Prelude.Maybe Destination,+ -- | A list of tags, in the form of name\/value pairs, to apply to an email+ -- that you send using the @SendEmail@ operation. Tags correspond to+ -- characteristics of the email that you define, so that you can publish+ -- email sending events.+ emailTags :: Prelude.Maybe [MessageTag],+ -- | The address that you want bounce and complaint notifications to be sent+ -- to.+ feedbackForwardingEmailAddress :: Prelude.Maybe Prelude.Text,+ -- | This parameter is used only for sending authorization. It is the ARN of+ -- the identity that is associated with the sending authorization policy+ -- that permits you to use the email address specified in the+ -- @FeedbackForwardingEmailAddress@ parameter.+ --+ -- For example, if the owner of example.com (which has ARN+ -- arn:aws:ses:us-east-1:123456789012:identity\/example.com) attaches a+ -- policy to it that authorizes you to use feedback\@example.com, then you+ -- would specify the @FeedbackForwardingEmailAddressIdentityArn@ to be+ -- arn:aws:ses:us-east-1:123456789012:identity\/example.com, and the+ -- @FeedbackForwardingEmailAddress@ to be feedback\@example.com.+ --+ -- For more information about sending authorization, see the+ -- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html Amazon SES Developer Guide>.+ feedbackForwardingEmailAddressIdentityArn :: Prelude.Maybe Prelude.Text,+ -- | The email address to use as the \"From\" address for the email. The+ -- address that you specify has to be verified.+ fromEmailAddress :: Prelude.Maybe Prelude.Text,+ -- | This parameter is used only for sending authorization. It is the ARN of+ -- the identity that is associated with the sending authorization policy+ -- that permits you to use the email address specified in the+ -- @FromEmailAddress@ parameter.+ --+ -- For example, if the owner of example.com (which has ARN+ -- arn:aws:ses:us-east-1:123456789012:identity\/example.com) attaches a+ -- policy to it that authorizes you to use sender\@example.com, then you+ -- would specify the @FromEmailAddressIdentityArn@ to be+ -- arn:aws:ses:us-east-1:123456789012:identity\/example.com, and the+ -- @FromEmailAddress@ to be sender\@example.com.+ --+ -- For more information about sending authorization, see the+ -- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html Amazon SES Developer Guide>.+ --+ -- For Raw emails, the @FromEmailAddressIdentityArn@ value overrides the+ -- X-SES-SOURCE-ARN and X-SES-FROM-ARN headers specified in raw email+ -- message content.+ fromEmailAddressIdentityArn :: Prelude.Maybe Prelude.Text,+ -- | An object used to specify a list or topic to which an email belongs,+ -- which will be used when a contact chooses to unsubscribe.+ listManagementOptions :: Prelude.Maybe ListManagementOptions,+ -- | The \"Reply-to\" email addresses for the message. When the recipient+ -- replies to the message, each Reply-to address receives the reply.+ replyToAddresses :: Prelude.Maybe [Prelude.Text],+ -- | An object that contains the body of the message. You can send either a+ -- Simple message Raw message or a template Message.+ content :: EmailContent+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SendEmail' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configurationSetName', 'sendEmail_configurationSetName' - The name of the configuration set to use when sending the email.+--+-- 'destination', 'sendEmail_destination' - An object that contains the recipients of the email message.+--+-- 'emailTags', 'sendEmail_emailTags' - A list of tags, in the form of name\/value pairs, to apply to an email+-- that you send using the @SendEmail@ operation. Tags correspond to+-- characteristics of the email that you define, so that you can publish+-- email sending events.+--+-- 'feedbackForwardingEmailAddress', 'sendEmail_feedbackForwardingEmailAddress' - The address that you want bounce and complaint notifications to be sent+-- to.+--+-- 'feedbackForwardingEmailAddressIdentityArn', 'sendEmail_feedbackForwardingEmailAddressIdentityArn' - This parameter is used only for sending authorization. It is the ARN of+-- the identity that is associated with the sending authorization policy+-- that permits you to use the email address specified in the+-- @FeedbackForwardingEmailAddress@ parameter.+--+-- For example, if the owner of example.com (which has ARN+-- arn:aws:ses:us-east-1:123456789012:identity\/example.com) attaches a+-- policy to it that authorizes you to use feedback\@example.com, then you+-- would specify the @FeedbackForwardingEmailAddressIdentityArn@ to be+-- arn:aws:ses:us-east-1:123456789012:identity\/example.com, and the+-- @FeedbackForwardingEmailAddress@ to be feedback\@example.com.+--+-- For more information about sending authorization, see the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html Amazon SES Developer Guide>.+--+-- 'fromEmailAddress', 'sendEmail_fromEmailAddress' - The email address to use as the \"From\" address for the email. The+-- address that you specify has to be verified.+--+-- 'fromEmailAddressIdentityArn', 'sendEmail_fromEmailAddressIdentityArn' - This parameter is used only for sending authorization. It is the ARN of+-- the identity that is associated with the sending authorization policy+-- that permits you to use the email address specified in the+-- @FromEmailAddress@ parameter.+--+-- For example, if the owner of example.com (which has ARN+-- arn:aws:ses:us-east-1:123456789012:identity\/example.com) attaches a+-- policy to it that authorizes you to use sender\@example.com, then you+-- would specify the @FromEmailAddressIdentityArn@ to be+-- arn:aws:ses:us-east-1:123456789012:identity\/example.com, and the+-- @FromEmailAddress@ to be sender\@example.com.+--+-- For more information about sending authorization, see the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html Amazon SES Developer Guide>.+--+-- For Raw emails, the @FromEmailAddressIdentityArn@ value overrides the+-- X-SES-SOURCE-ARN and X-SES-FROM-ARN headers specified in raw email+-- message content.+--+-- 'listManagementOptions', 'sendEmail_listManagementOptions' - An object used to specify a list or topic to which an email belongs,+-- which will be used when a contact chooses to unsubscribe.+--+-- 'replyToAddresses', 'sendEmail_replyToAddresses' - The \"Reply-to\" email addresses for the message. When the recipient+-- replies to the message, each Reply-to address receives the reply.+--+-- 'content', 'sendEmail_content' - An object that contains the body of the message. You can send either a+-- Simple message Raw message or a template Message.+newSendEmail ::+ -- | 'content'+ EmailContent ->+ SendEmail+newSendEmail pContent_ =+ SendEmail'+ { configurationSetName = Prelude.Nothing,+ destination = Prelude.Nothing,+ emailTags = Prelude.Nothing,+ feedbackForwardingEmailAddress = Prelude.Nothing,+ feedbackForwardingEmailAddressIdentityArn =+ Prelude.Nothing,+ fromEmailAddress = Prelude.Nothing,+ fromEmailAddressIdentityArn = Prelude.Nothing,+ listManagementOptions = Prelude.Nothing,+ replyToAddresses = Prelude.Nothing,+ content = pContent_+ }++-- | The name of the configuration set to use when sending the email.+sendEmail_configurationSetName :: Lens.Lens' SendEmail (Prelude.Maybe Prelude.Text)+sendEmail_configurationSetName = Lens.lens (\SendEmail' {configurationSetName} -> configurationSetName) (\s@SendEmail' {} a -> s {configurationSetName = a} :: SendEmail)++-- | An object that contains the recipients of the email message.+sendEmail_destination :: Lens.Lens' SendEmail (Prelude.Maybe Destination)+sendEmail_destination = Lens.lens (\SendEmail' {destination} -> destination) (\s@SendEmail' {} a -> s {destination = a} :: SendEmail)++-- | A list of tags, in the form of name\/value pairs, to apply to an email+-- that you send using the @SendEmail@ operation. Tags correspond to+-- characteristics of the email that you define, so that you can publish+-- email sending events.+sendEmail_emailTags :: Lens.Lens' SendEmail (Prelude.Maybe [MessageTag])+sendEmail_emailTags = Lens.lens (\SendEmail' {emailTags} -> emailTags) (\s@SendEmail' {} a -> s {emailTags = a} :: SendEmail) Prelude.. Lens.mapping Lens.coerced++-- | The address that you want bounce and complaint notifications to be sent+-- to.+sendEmail_feedbackForwardingEmailAddress :: Lens.Lens' SendEmail (Prelude.Maybe Prelude.Text)+sendEmail_feedbackForwardingEmailAddress = Lens.lens (\SendEmail' {feedbackForwardingEmailAddress} -> feedbackForwardingEmailAddress) (\s@SendEmail' {} a -> s {feedbackForwardingEmailAddress = a} :: SendEmail)++-- | This parameter is used only for sending authorization. It is the ARN of+-- the identity that is associated with the sending authorization policy+-- that permits you to use the email address specified in the+-- @FeedbackForwardingEmailAddress@ parameter.+--+-- For example, if the owner of example.com (which has ARN+-- arn:aws:ses:us-east-1:123456789012:identity\/example.com) attaches a+-- policy to it that authorizes you to use feedback\@example.com, then you+-- would specify the @FeedbackForwardingEmailAddressIdentityArn@ to be+-- arn:aws:ses:us-east-1:123456789012:identity\/example.com, and the+-- @FeedbackForwardingEmailAddress@ to be feedback\@example.com.+--+-- For more information about sending authorization, see the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html Amazon SES Developer Guide>.+sendEmail_feedbackForwardingEmailAddressIdentityArn :: Lens.Lens' SendEmail (Prelude.Maybe Prelude.Text)+sendEmail_feedbackForwardingEmailAddressIdentityArn = Lens.lens (\SendEmail' {feedbackForwardingEmailAddressIdentityArn} -> feedbackForwardingEmailAddressIdentityArn) (\s@SendEmail' {} a -> s {feedbackForwardingEmailAddressIdentityArn = a} :: SendEmail)++-- | The email address to use as the \"From\" address for the email. The+-- address that you specify has to be verified.+sendEmail_fromEmailAddress :: Lens.Lens' SendEmail (Prelude.Maybe Prelude.Text)+sendEmail_fromEmailAddress = Lens.lens (\SendEmail' {fromEmailAddress} -> fromEmailAddress) (\s@SendEmail' {} a -> s {fromEmailAddress = a} :: SendEmail)++-- | This parameter is used only for sending authorization. It is the ARN of+-- the identity that is associated with the sending authorization policy+-- that permits you to use the email address specified in the+-- @FromEmailAddress@ parameter.+--+-- For example, if the owner of example.com (which has ARN+-- arn:aws:ses:us-east-1:123456789012:identity\/example.com) attaches a+-- policy to it that authorizes you to use sender\@example.com, then you+-- would specify the @FromEmailAddressIdentityArn@ to be+-- arn:aws:ses:us-east-1:123456789012:identity\/example.com, and the+-- @FromEmailAddress@ to be sender\@example.com.+--+-- For more information about sending authorization, see the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html Amazon SES Developer Guide>.+--+-- For Raw emails, the @FromEmailAddressIdentityArn@ value overrides the+-- X-SES-SOURCE-ARN and X-SES-FROM-ARN headers specified in raw email+-- message content.+sendEmail_fromEmailAddressIdentityArn :: Lens.Lens' SendEmail (Prelude.Maybe Prelude.Text)+sendEmail_fromEmailAddressIdentityArn = Lens.lens (\SendEmail' {fromEmailAddressIdentityArn} -> fromEmailAddressIdentityArn) (\s@SendEmail' {} a -> s {fromEmailAddressIdentityArn = a} :: SendEmail)++-- | An object used to specify a list or topic to which an email belongs,+-- which will be used when a contact chooses to unsubscribe.+sendEmail_listManagementOptions :: Lens.Lens' SendEmail (Prelude.Maybe ListManagementOptions)+sendEmail_listManagementOptions = Lens.lens (\SendEmail' {listManagementOptions} -> listManagementOptions) (\s@SendEmail' {} a -> s {listManagementOptions = a} :: SendEmail)++-- | The \"Reply-to\" email addresses for the message. When the recipient+-- replies to the message, each Reply-to address receives the reply.+sendEmail_replyToAddresses :: Lens.Lens' SendEmail (Prelude.Maybe [Prelude.Text])+sendEmail_replyToAddresses = Lens.lens (\SendEmail' {replyToAddresses} -> replyToAddresses) (\s@SendEmail' {} a -> s {replyToAddresses = a} :: SendEmail) Prelude.. Lens.mapping Lens.coerced++-- | An object that contains the body of the message. You can send either a+-- Simple message Raw message or a template Message.+sendEmail_content :: Lens.Lens' SendEmail EmailContent+sendEmail_content = Lens.lens (\SendEmail' {content} -> content) (\s@SendEmail' {} a -> s {content = a} :: SendEmail)++instance Core.AWSRequest SendEmail where+ type AWSResponse SendEmail = SendEmailResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ SendEmailResponse'+ Prelude.<$> (x Data..?> "MessageId")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable SendEmail where+ hashWithSalt _salt SendEmail' {..} =+ _salt+ `Prelude.hashWithSalt` configurationSetName+ `Prelude.hashWithSalt` destination+ `Prelude.hashWithSalt` emailTags+ `Prelude.hashWithSalt` feedbackForwardingEmailAddress+ `Prelude.hashWithSalt` feedbackForwardingEmailAddressIdentityArn+ `Prelude.hashWithSalt` fromEmailAddress+ `Prelude.hashWithSalt` fromEmailAddressIdentityArn+ `Prelude.hashWithSalt` listManagementOptions+ `Prelude.hashWithSalt` replyToAddresses+ `Prelude.hashWithSalt` content++instance Prelude.NFData SendEmail where+ rnf SendEmail' {..} =+ Prelude.rnf configurationSetName+ `Prelude.seq` Prelude.rnf destination+ `Prelude.seq` Prelude.rnf emailTags+ `Prelude.seq` Prelude.rnf feedbackForwardingEmailAddress+ `Prelude.seq` Prelude.rnf feedbackForwardingEmailAddressIdentityArn+ `Prelude.seq` Prelude.rnf fromEmailAddress+ `Prelude.seq` Prelude.rnf fromEmailAddressIdentityArn+ `Prelude.seq` Prelude.rnf listManagementOptions+ `Prelude.seq` Prelude.rnf replyToAddresses+ `Prelude.seq` Prelude.rnf content++instance Data.ToHeaders SendEmail where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON SendEmail where+ toJSON SendEmail' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ConfigurationSetName" Data..=)+ Prelude.<$> configurationSetName,+ ("Destination" Data..=) Prelude.<$> destination,+ ("EmailTags" Data..=) Prelude.<$> emailTags,+ ("FeedbackForwardingEmailAddress" Data..=)+ Prelude.<$> feedbackForwardingEmailAddress,+ ("FeedbackForwardingEmailAddressIdentityArn" Data..=)+ Prelude.<$> feedbackForwardingEmailAddressIdentityArn,+ ("FromEmailAddress" Data..=)+ Prelude.<$> fromEmailAddress,+ ("FromEmailAddressIdentityArn" Data..=)+ Prelude.<$> fromEmailAddressIdentityArn,+ ("ListManagementOptions" Data..=)+ Prelude.<$> listManagementOptions,+ ("ReplyToAddresses" Data..=)+ Prelude.<$> replyToAddresses,+ Prelude.Just ("Content" Data..= content)+ ]+ )++instance Data.ToPath SendEmail where+ toPath = Prelude.const "/v2/email/outbound-emails"++instance Data.ToQuery SendEmail where+ toQuery = Prelude.const Prelude.mempty++-- | A unique message ID that you receive when an email is accepted for+-- sending.+--+-- /See:/ 'newSendEmailResponse' smart constructor.+data SendEmailResponse = SendEmailResponse'+ { -- | A unique identifier for the message that is generated when the message+ -- is accepted.+ --+ -- It\'s possible for Amazon SES to accept a message without sending it.+ -- This can happen when the message that you\'re trying to send has an+ -- attachment contains a virus, or when you send a templated email that+ -- contains invalid personalization content, for example.+ messageId :: 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 'SendEmailResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'messageId', 'sendEmailResponse_messageId' - A unique identifier for the message that is generated when the message+-- is accepted.+--+-- It\'s possible for Amazon SES to accept a message without sending it.+-- This can happen when the message that you\'re trying to send has an+-- attachment contains a virus, or when you send a templated email that+-- contains invalid personalization content, for example.+--+-- 'httpStatus', 'sendEmailResponse_httpStatus' - The response's http status code.+newSendEmailResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ SendEmailResponse+newSendEmailResponse pHttpStatus_ =+ SendEmailResponse'+ { messageId = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | A unique identifier for the message that is generated when the message+-- is accepted.+--+-- It\'s possible for Amazon SES to accept a message without sending it.+-- This can happen when the message that you\'re trying to send has an+-- attachment contains a virus, or when you send a templated email that+-- contains invalid personalization content, for example.+sendEmailResponse_messageId :: Lens.Lens' SendEmailResponse (Prelude.Maybe Prelude.Text)+sendEmailResponse_messageId = Lens.lens (\SendEmailResponse' {messageId} -> messageId) (\s@SendEmailResponse' {} a -> s {messageId = a} :: SendEmailResponse)++-- | The response's http status code.+sendEmailResponse_httpStatus :: Lens.Lens' SendEmailResponse Prelude.Int+sendEmailResponse_httpStatus = Lens.lens (\SendEmailResponse' {httpStatus} -> httpStatus) (\s@SendEmailResponse' {} a -> s {httpStatus = a} :: SendEmailResponse)++instance Prelude.NFData SendEmailResponse where+ rnf SendEmailResponse' {..} =+ Prelude.rnf messageId+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/TagResource.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.SESV2.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)+--+-- Add one or more tags (keys and values) to a specified resource. A+-- /tag/ is a label that you optionally define and associate with a+-- resource. Tags can help you categorize and manage resources in different+-- ways, such as by purpose, owner, environment, or other criteria. A+-- resource can have as many as 50 tags.+--+-- Each tag consists of a required /tag key/ and an associated /tag value/,+-- both of which you define. A tag key is a general label that acts as a+-- category for more specific tag values. A tag value acts as a descriptor+-- within a tag key.+module Amazonka.SESV2.TagResource+ ( -- * Creating a Request+ TagResource (..),+ newTagResource,++ -- * Request Lenses+ tagResource_resourceArn,+ tagResource_tags,++ -- * Destructuring the Response+ TagResourceResponse (..),+ newTagResourceResponse,++ -- * Response Lenses+ tagResourceResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+ { -- | The Amazon Resource Name (ARN) of the resource that you want to add one+ -- or more tags to.+ resourceArn :: Prelude.Text,+ -- | A list of the tags that you want to add to the resource. A tag consists+ -- of a required tag key (@Key@) and an associated tag value (@Value@). The+ -- maximum length of a tag key is 128 characters. The maximum length of a+ -- tag value is 256 characters.+ tags :: [Tag]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'tagResource_resourceArn' - The Amazon Resource Name (ARN) of the resource that you want to add one+-- or more tags to.+--+-- 'tags', 'tagResource_tags' - A list of the tags that you want to add to the resource. A tag consists+-- of a required tag key (@Key@) and an associated tag value (@Value@). The+-- maximum length of a tag key is 128 characters. The maximum length of a+-- tag value is 256 characters.+newTagResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ TagResource+newTagResource pResourceArn_ =+ TagResource'+ { resourceArn = pResourceArn_,+ tags = Prelude.mempty+ }++-- | The Amazon Resource Name (ARN) of the resource that you want to add one+-- or more tags to.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | A list of the tags that you want to add to the resource. A tag consists+-- of a required tag key (@Key@) and an associated tag value (@Value@). The+-- maximum length of a tag key is 128 characters. The maximum length of a+-- tag value is 256 characters.+tagResource_tags :: Lens.Lens' TagResource [Tag]+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 ("ResourceArn" Data..= resourceArn),+ Prelude.Just ("Tags" Data..= tags)+ ]+ )++instance Data.ToPath TagResource where+ toPath = Prelude.const "/v2/email/tags"++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/SESV2/TestRenderEmailTemplate.hs view
@@ -0,0 +1,217 @@+{-# 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.SESV2.TestRenderEmailTemplate+-- 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 preview of the MIME content of an email when provided with a+-- template and a set of replacement data.+--+-- You can execute this operation no more than once per second.+module Amazonka.SESV2.TestRenderEmailTemplate+ ( -- * Creating a Request+ TestRenderEmailTemplate (..),+ newTestRenderEmailTemplate,++ -- * Request Lenses+ testRenderEmailTemplate_templateName,+ testRenderEmailTemplate_templateData,++ -- * Destructuring the Response+ TestRenderEmailTemplateResponse (..),+ newTestRenderEmailTemplateResponse,++ -- * Response Lenses+ testRenderEmailTemplateResponse_httpStatus,+ testRenderEmailTemplateResponse_renderedTemplate,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | >Represents a request to create a preview of the MIME content of an+-- email when provided with a template and a set of replacement data.+--+-- /See:/ 'newTestRenderEmailTemplate' smart constructor.+data TestRenderEmailTemplate = TestRenderEmailTemplate'+ { -- | The name of the template.+ templateName :: Prelude.Text,+ -- | A list of replacement values to apply to the template. This parameter is+ -- a JSON object, typically consisting of key-value pairs in which the keys+ -- correspond to replacement tags in the email template.+ templateData :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TestRenderEmailTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'templateName', 'testRenderEmailTemplate_templateName' - The name of the template.+--+-- 'templateData', 'testRenderEmailTemplate_templateData' - A list of replacement values to apply to the template. This parameter is+-- a JSON object, typically consisting of key-value pairs in which the keys+-- correspond to replacement tags in the email template.+newTestRenderEmailTemplate ::+ -- | 'templateName'+ Prelude.Text ->+ -- | 'templateData'+ Prelude.Text ->+ TestRenderEmailTemplate+newTestRenderEmailTemplate+ pTemplateName_+ pTemplateData_ =+ TestRenderEmailTemplate'+ { templateName =+ pTemplateName_,+ templateData = pTemplateData_+ }++-- | The name of the template.+testRenderEmailTemplate_templateName :: Lens.Lens' TestRenderEmailTemplate Prelude.Text+testRenderEmailTemplate_templateName = Lens.lens (\TestRenderEmailTemplate' {templateName} -> templateName) (\s@TestRenderEmailTemplate' {} a -> s {templateName = a} :: TestRenderEmailTemplate)++-- | A list of replacement values to apply to the template. This parameter is+-- a JSON object, typically consisting of key-value pairs in which the keys+-- correspond to replacement tags in the email template.+testRenderEmailTemplate_templateData :: Lens.Lens' TestRenderEmailTemplate Prelude.Text+testRenderEmailTemplate_templateData = Lens.lens (\TestRenderEmailTemplate' {templateData} -> templateData) (\s@TestRenderEmailTemplate' {} a -> s {templateData = a} :: TestRenderEmailTemplate)++instance Core.AWSRequest TestRenderEmailTemplate where+ type+ AWSResponse TestRenderEmailTemplate =+ TestRenderEmailTemplateResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ TestRenderEmailTemplateResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ Prelude.<*> (x Data..:> "RenderedTemplate")+ )++instance Prelude.Hashable TestRenderEmailTemplate where+ hashWithSalt _salt TestRenderEmailTemplate' {..} =+ _salt+ `Prelude.hashWithSalt` templateName+ `Prelude.hashWithSalt` templateData++instance Prelude.NFData TestRenderEmailTemplate where+ rnf TestRenderEmailTemplate' {..} =+ Prelude.rnf templateName+ `Prelude.seq` Prelude.rnf templateData++instance Data.ToHeaders TestRenderEmailTemplate where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON TestRenderEmailTemplate where+ toJSON TestRenderEmailTemplate' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("TemplateData" Data..= templateData)]+ )++instance Data.ToPath TestRenderEmailTemplate where+ toPath TestRenderEmailTemplate' {..} =+ Prelude.mconcat+ [ "/v2/email/templates/",+ Data.toBS templateName,+ "/render"+ ]++instance Data.ToQuery TestRenderEmailTemplate where+ toQuery = Prelude.const Prelude.mempty++-- | The following element is returned by the service.+--+-- /See:/ 'newTestRenderEmailTemplateResponse' smart constructor.+data TestRenderEmailTemplateResponse = TestRenderEmailTemplateResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int,+ -- | The complete MIME message rendered by applying the data in the+ -- @TemplateData@ parameter to the template specified in the TemplateName+ -- parameter.+ renderedTemplate :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TestRenderEmailTemplateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'testRenderEmailTemplateResponse_httpStatus' - The response's http status code.+--+-- 'renderedTemplate', 'testRenderEmailTemplateResponse_renderedTemplate' - The complete MIME message rendered by applying the data in the+-- @TemplateData@ parameter to the template specified in the TemplateName+-- parameter.+newTestRenderEmailTemplateResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ -- | 'renderedTemplate'+ Prelude.Text ->+ TestRenderEmailTemplateResponse+newTestRenderEmailTemplateResponse+ pHttpStatus_+ pRenderedTemplate_ =+ TestRenderEmailTemplateResponse'+ { httpStatus =+ pHttpStatus_,+ renderedTemplate = pRenderedTemplate_+ }++-- | The response's http status code.+testRenderEmailTemplateResponse_httpStatus :: Lens.Lens' TestRenderEmailTemplateResponse Prelude.Int+testRenderEmailTemplateResponse_httpStatus = Lens.lens (\TestRenderEmailTemplateResponse' {httpStatus} -> httpStatus) (\s@TestRenderEmailTemplateResponse' {} a -> s {httpStatus = a} :: TestRenderEmailTemplateResponse)++-- | The complete MIME message rendered by applying the data in the+-- @TemplateData@ parameter to the template specified in the TemplateName+-- parameter.+testRenderEmailTemplateResponse_renderedTemplate :: Lens.Lens' TestRenderEmailTemplateResponse Prelude.Text+testRenderEmailTemplateResponse_renderedTemplate = Lens.lens (\TestRenderEmailTemplateResponse' {renderedTemplate} -> renderedTemplate) (\s@TestRenderEmailTemplateResponse' {} a -> s {renderedTemplate = a} :: TestRenderEmailTemplateResponse)++instance+ Prelude.NFData+ TestRenderEmailTemplateResponse+ where+ rnf TestRenderEmailTemplateResponse' {..} =+ Prelude.rnf httpStatus+ `Prelude.seq` Prelude.rnf renderedTemplate
+ gen/Amazonka/SESV2/Types.hs view
@@ -0,0 +1,956 @@+{-# 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.SESV2.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.SESV2.Types+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ _AccountSuspendedException,+ _AlreadyExistsException,+ _BadRequestException,+ _ConcurrentModificationException,+ _ConflictException,+ _InternalServiceErrorException,+ _InvalidNextTokenException,+ _LimitExceededException,+ _MailFromDomainNotVerifiedException,+ _MessageRejected,+ _NotFoundException,+ _SendingPausedException,+ _TooManyRequestsException,++ -- * BehaviorOnMxFailure+ BehaviorOnMxFailure (..),++ -- * BulkEmailStatus+ BulkEmailStatus (..),++ -- * ContactLanguage+ ContactLanguage (..),++ -- * ContactListImportAction+ ContactListImportAction (..),++ -- * DataFormat+ DataFormat (..),++ -- * DeliverabilityDashboardAccountStatus+ DeliverabilityDashboardAccountStatus (..),++ -- * DeliverabilityTestStatus+ DeliverabilityTestStatus (..),++ -- * DimensionValueSource+ DimensionValueSource (..),++ -- * DkimSigningAttributesOrigin+ DkimSigningAttributesOrigin (..),++ -- * DkimSigningKeyLength+ DkimSigningKeyLength (..),++ -- * DkimStatus+ DkimStatus (..),++ -- * EventType+ EventType (..),++ -- * FeatureStatus+ FeatureStatus (..),++ -- * IdentityType+ IdentityType (..),++ -- * ImportDestinationType+ ImportDestinationType (..),++ -- * JobStatus+ JobStatus (..),++ -- * ListRecommendationsFilterKey+ ListRecommendationsFilterKey (..),++ -- * MailFromDomainStatus+ MailFromDomainStatus (..),++ -- * MailType+ MailType (..),++ -- * Metric+ Metric (..),++ -- * MetricDimensionName+ MetricDimensionName (..),++ -- * MetricNamespace+ MetricNamespace (..),++ -- * QueryErrorCode+ QueryErrorCode (..),++ -- * RecommendationImpact+ RecommendationImpact (..),++ -- * RecommendationStatus+ RecommendationStatus (..),++ -- * RecommendationType+ RecommendationType (..),++ -- * ReviewStatus+ ReviewStatus (..),++ -- * ScalingMode+ ScalingMode (..),++ -- * SubscriptionStatus+ SubscriptionStatus (..),++ -- * SuppressionListImportAction+ SuppressionListImportAction (..),++ -- * SuppressionListReason+ SuppressionListReason (..),++ -- * TlsPolicy+ TlsPolicy (..),++ -- * VerificationStatus+ VerificationStatus (..),++ -- * WarmupStatus+ WarmupStatus (..),++ -- * AccountDetails+ AccountDetails (..),+ newAccountDetails,+ accountDetails_additionalContactEmailAddresses,+ accountDetails_contactLanguage,+ accountDetails_mailType,+ accountDetails_reviewDetails,+ accountDetails_useCaseDescription,+ accountDetails_websiteURL,++ -- * BatchGetMetricDataQuery+ BatchGetMetricDataQuery (..),+ newBatchGetMetricDataQuery,+ batchGetMetricDataQuery_dimensions,+ batchGetMetricDataQuery_id,+ batchGetMetricDataQuery_namespace,+ batchGetMetricDataQuery_metric,+ batchGetMetricDataQuery_startDate,+ batchGetMetricDataQuery_endDate,++ -- * BlacklistEntry+ BlacklistEntry (..),+ newBlacklistEntry,+ blacklistEntry_description,+ blacklistEntry_listingTime,+ blacklistEntry_rblName,++ -- * Body+ Body (..),+ newBody,+ body_html,+ body_text,++ -- * BulkEmailContent+ BulkEmailContent (..),+ newBulkEmailContent,+ bulkEmailContent_template,++ -- * BulkEmailEntry+ BulkEmailEntry (..),+ newBulkEmailEntry,+ bulkEmailEntry_replacementEmailContent,+ bulkEmailEntry_replacementTags,+ bulkEmailEntry_destination,++ -- * BulkEmailEntryResult+ BulkEmailEntryResult (..),+ newBulkEmailEntryResult,+ bulkEmailEntryResult_error,+ bulkEmailEntryResult_messageId,+ bulkEmailEntryResult_status,++ -- * CloudWatchDestination+ CloudWatchDestination (..),+ newCloudWatchDestination,+ cloudWatchDestination_dimensionConfigurations,++ -- * CloudWatchDimensionConfiguration+ CloudWatchDimensionConfiguration (..),+ newCloudWatchDimensionConfiguration,+ cloudWatchDimensionConfiguration_dimensionName,+ cloudWatchDimensionConfiguration_dimensionValueSource,+ cloudWatchDimensionConfiguration_defaultDimensionValue,++ -- * Contact+ Contact (..),+ newContact,+ contact_emailAddress,+ contact_lastUpdatedTimestamp,+ contact_topicDefaultPreferences,+ contact_topicPreferences,+ contact_unsubscribeAll,++ -- * ContactList+ ContactList (..),+ newContactList,+ contactList_contactListName,+ contactList_lastUpdatedTimestamp,++ -- * ContactListDestination+ ContactListDestination (..),+ newContactListDestination,+ contactListDestination_contactListName,+ contactListDestination_contactListImportAction,++ -- * Content+ Content (..),+ newContent,+ content_charset,+ content_data,++ -- * CustomVerificationEmailTemplateMetadata+ CustomVerificationEmailTemplateMetadata (..),+ newCustomVerificationEmailTemplateMetadata,+ customVerificationEmailTemplateMetadata_failureRedirectionURL,+ customVerificationEmailTemplateMetadata_fromEmailAddress,+ customVerificationEmailTemplateMetadata_successRedirectionURL,+ customVerificationEmailTemplateMetadata_templateName,+ customVerificationEmailTemplateMetadata_templateSubject,++ -- * DailyVolume+ DailyVolume (..),+ newDailyVolume,+ dailyVolume_domainIspPlacements,+ dailyVolume_startDate,+ dailyVolume_volumeStatistics,++ -- * DashboardAttributes+ DashboardAttributes (..),+ newDashboardAttributes,+ dashboardAttributes_engagementMetrics,++ -- * DashboardOptions+ DashboardOptions (..),+ newDashboardOptions,+ dashboardOptions_engagementMetrics,++ -- * DedicatedIp+ DedicatedIp (..),+ newDedicatedIp,+ dedicatedIp_poolName,+ dedicatedIp_ip,+ dedicatedIp_warmupStatus,+ dedicatedIp_warmupPercentage,++ -- * DedicatedIpPool+ DedicatedIpPool (..),+ newDedicatedIpPool,+ dedicatedIpPool_poolName,+ dedicatedIpPool_scalingMode,++ -- * DeliverabilityTestReport+ DeliverabilityTestReport (..),+ newDeliverabilityTestReport,+ deliverabilityTestReport_createDate,+ deliverabilityTestReport_deliverabilityTestStatus,+ deliverabilityTestReport_fromEmailAddress,+ deliverabilityTestReport_reportId,+ deliverabilityTestReport_reportName,+ deliverabilityTestReport_subject,++ -- * DeliveryOptions+ DeliveryOptions (..),+ newDeliveryOptions,+ deliveryOptions_sendingPoolName,+ deliveryOptions_tlsPolicy,++ -- * Destination+ Destination (..),+ newDestination,+ destination_bccAddresses,+ destination_ccAddresses,+ destination_toAddresses,++ -- * DkimAttributes+ DkimAttributes (..),+ newDkimAttributes,+ dkimAttributes_currentSigningKeyLength,+ dkimAttributes_lastKeyGenerationTimestamp,+ dkimAttributes_nextSigningKeyLength,+ dkimAttributes_signingAttributesOrigin,+ dkimAttributes_signingEnabled,+ dkimAttributes_status,+ dkimAttributes_tokens,++ -- * DkimSigningAttributes+ DkimSigningAttributes (..),+ newDkimSigningAttributes,+ dkimSigningAttributes_domainSigningPrivateKey,+ dkimSigningAttributes_domainSigningSelector,+ dkimSigningAttributes_nextSigningKeyLength,++ -- * DomainDeliverabilityCampaign+ DomainDeliverabilityCampaign (..),+ newDomainDeliverabilityCampaign,+ domainDeliverabilityCampaign_campaignId,+ domainDeliverabilityCampaign_deleteRate,+ domainDeliverabilityCampaign_esps,+ domainDeliverabilityCampaign_firstSeenDateTime,+ domainDeliverabilityCampaign_fromAddress,+ domainDeliverabilityCampaign_imageUrl,+ domainDeliverabilityCampaign_inboxCount,+ domainDeliverabilityCampaign_lastSeenDateTime,+ domainDeliverabilityCampaign_projectedVolume,+ domainDeliverabilityCampaign_readDeleteRate,+ domainDeliverabilityCampaign_readRate,+ domainDeliverabilityCampaign_sendingIps,+ domainDeliverabilityCampaign_spamCount,+ domainDeliverabilityCampaign_subject,++ -- * DomainDeliverabilityTrackingOption+ DomainDeliverabilityTrackingOption (..),+ newDomainDeliverabilityTrackingOption,+ domainDeliverabilityTrackingOption_domain,+ domainDeliverabilityTrackingOption_inboxPlacementTrackingOption,+ domainDeliverabilityTrackingOption_subscriptionStartDate,++ -- * DomainIspPlacement+ DomainIspPlacement (..),+ newDomainIspPlacement,+ domainIspPlacement_inboxPercentage,+ domainIspPlacement_inboxRawCount,+ domainIspPlacement_ispName,+ domainIspPlacement_spamPercentage,+ domainIspPlacement_spamRawCount,++ -- * EmailContent+ EmailContent (..),+ newEmailContent,+ emailContent_raw,+ emailContent_simple,+ emailContent_template,++ -- * EmailTemplateContent+ EmailTemplateContent (..),+ newEmailTemplateContent,+ emailTemplateContent_html,+ emailTemplateContent_subject,+ emailTemplateContent_text,++ -- * EmailTemplateMetadata+ EmailTemplateMetadata (..),+ newEmailTemplateMetadata,+ emailTemplateMetadata_createdTimestamp,+ emailTemplateMetadata_templateName,++ -- * EventDestination+ EventDestination (..),+ newEventDestination,+ eventDestination_cloudWatchDestination,+ eventDestination_enabled,+ eventDestination_kinesisFirehoseDestination,+ eventDestination_pinpointDestination,+ eventDestination_snsDestination,+ eventDestination_name,+ eventDestination_matchingEventTypes,++ -- * EventDestinationDefinition+ EventDestinationDefinition (..),+ newEventDestinationDefinition,+ eventDestinationDefinition_cloudWatchDestination,+ eventDestinationDefinition_enabled,+ eventDestinationDefinition_kinesisFirehoseDestination,+ eventDestinationDefinition_matchingEventTypes,+ eventDestinationDefinition_pinpointDestination,+ eventDestinationDefinition_snsDestination,++ -- * FailureInfo+ FailureInfo (..),+ newFailureInfo,+ failureInfo_errorMessage,+ failureInfo_failedRecordsS3Url,++ -- * GuardianAttributes+ GuardianAttributes (..),+ newGuardianAttributes,+ guardianAttributes_optimizedSharedDelivery,++ -- * GuardianOptions+ GuardianOptions (..),+ newGuardianOptions,+ guardianOptions_optimizedSharedDelivery,++ -- * IdentityInfo+ IdentityInfo (..),+ newIdentityInfo,+ identityInfo_identityName,+ identityInfo_identityType,+ identityInfo_sendingEnabled,+ identityInfo_verificationStatus,++ -- * ImportDataSource+ ImportDataSource (..),+ newImportDataSource,+ importDataSource_s3Url,+ importDataSource_dataFormat,++ -- * ImportDestination+ ImportDestination (..),+ newImportDestination,+ importDestination_contactListDestination,+ importDestination_suppressionListDestination,++ -- * ImportJobSummary+ ImportJobSummary (..),+ newImportJobSummary,+ importJobSummary_createdTimestamp,+ importJobSummary_failedRecordsCount,+ importJobSummary_importDestination,+ importJobSummary_jobId,+ importJobSummary_jobStatus,+ importJobSummary_processedRecordsCount,++ -- * InboxPlacementTrackingOption+ InboxPlacementTrackingOption (..),+ newInboxPlacementTrackingOption,+ inboxPlacementTrackingOption_global,+ inboxPlacementTrackingOption_trackedIsps,++ -- * IspPlacement+ IspPlacement (..),+ newIspPlacement,+ ispPlacement_ispName,+ ispPlacement_placementStatistics,++ -- * KinesisFirehoseDestination+ KinesisFirehoseDestination (..),+ newKinesisFirehoseDestination,+ kinesisFirehoseDestination_iamRoleArn,+ kinesisFirehoseDestination_deliveryStreamArn,++ -- * ListContactsFilter+ ListContactsFilter (..),+ newListContactsFilter,+ listContactsFilter_filteredStatus,+ listContactsFilter_topicFilter,++ -- * ListManagementOptions+ ListManagementOptions (..),+ newListManagementOptions,+ listManagementOptions_topicName,+ listManagementOptions_contactListName,++ -- * MailFromAttributes+ MailFromAttributes (..),+ newMailFromAttributes,+ mailFromAttributes_mailFromDomain,+ mailFromAttributes_mailFromDomainStatus,+ mailFromAttributes_behaviorOnMxFailure,++ -- * Message+ Message (..),+ newMessage,+ message_subject,+ message_body,++ -- * MessageTag+ MessageTag (..),+ newMessageTag,+ messageTag_name,+ messageTag_value,++ -- * MetricDataError+ MetricDataError (..),+ newMetricDataError,+ metricDataError_code,+ metricDataError_id,+ metricDataError_message,++ -- * MetricDataResult+ MetricDataResult (..),+ newMetricDataResult,+ metricDataResult_id,+ metricDataResult_timestamps,+ metricDataResult_values,++ -- * OverallVolume+ OverallVolume (..),+ newOverallVolume,+ overallVolume_domainIspPlacements,+ overallVolume_readRatePercent,+ overallVolume_volumeStatistics,++ -- * PinpointDestination+ PinpointDestination (..),+ newPinpointDestination,+ pinpointDestination_applicationArn,++ -- * PlacementStatistics+ PlacementStatistics (..),+ newPlacementStatistics,+ placementStatistics_dkimPercentage,+ placementStatistics_inboxPercentage,+ placementStatistics_missingPercentage,+ placementStatistics_spamPercentage,+ placementStatistics_spfPercentage,++ -- * RawMessage+ RawMessage (..),+ newRawMessage,+ rawMessage_data,++ -- * Recommendation+ Recommendation (..),+ newRecommendation,+ recommendation_createdTimestamp,+ recommendation_description,+ recommendation_impact,+ recommendation_lastUpdatedTimestamp,+ recommendation_resourceArn,+ recommendation_status,+ recommendation_type,++ -- * ReplacementEmailContent+ ReplacementEmailContent (..),+ newReplacementEmailContent,+ replacementEmailContent_replacementTemplate,++ -- * ReplacementTemplate+ ReplacementTemplate (..),+ newReplacementTemplate,+ replacementTemplate_replacementTemplateData,++ -- * ReputationOptions+ ReputationOptions (..),+ newReputationOptions,+ reputationOptions_lastFreshStart,+ reputationOptions_reputationMetricsEnabled,++ -- * ReviewDetails+ ReviewDetails (..),+ newReviewDetails,+ reviewDetails_caseId,+ reviewDetails_status,++ -- * SendQuota+ SendQuota (..),+ newSendQuota,+ sendQuota_max24HourSend,+ sendQuota_maxSendRate,+ sendQuota_sentLast24Hours,++ -- * SendingOptions+ SendingOptions (..),+ newSendingOptions,+ sendingOptions_sendingEnabled,++ -- * SnsDestination+ SnsDestination (..),+ newSnsDestination,+ snsDestination_topicArn,++ -- * SuppressedDestination+ SuppressedDestination (..),+ newSuppressedDestination,+ suppressedDestination_attributes,+ suppressedDestination_emailAddress,+ suppressedDestination_reason,+ suppressedDestination_lastUpdateTime,++ -- * SuppressedDestinationAttributes+ SuppressedDestinationAttributes (..),+ newSuppressedDestinationAttributes,+ suppressedDestinationAttributes_feedbackId,+ suppressedDestinationAttributes_messageId,++ -- * SuppressedDestinationSummary+ SuppressedDestinationSummary (..),+ newSuppressedDestinationSummary,+ suppressedDestinationSummary_emailAddress,+ suppressedDestinationSummary_reason,+ suppressedDestinationSummary_lastUpdateTime,++ -- * SuppressionAttributes+ SuppressionAttributes (..),+ newSuppressionAttributes,+ suppressionAttributes_suppressedReasons,++ -- * SuppressionListDestination+ SuppressionListDestination (..),+ newSuppressionListDestination,+ suppressionListDestination_suppressionListImportAction,++ -- * SuppressionOptions+ SuppressionOptions (..),+ newSuppressionOptions,+ suppressionOptions_suppressedReasons,++ -- * Tag+ Tag (..),+ newTag,+ tag_key,+ tag_value,++ -- * Template+ Template (..),+ newTemplate,+ template_templateArn,+ template_templateData,+ template_templateName,++ -- * Topic+ Topic (..),+ newTopic,+ topic_description,+ topic_topicName,+ topic_displayName,+ topic_defaultSubscriptionStatus,++ -- * TopicFilter+ TopicFilter (..),+ newTopicFilter,+ topicFilter_topicName,+ topicFilter_useDefaultIfPreferenceUnavailable,++ -- * TopicPreference+ TopicPreference (..),+ newTopicPreference,+ topicPreference_topicName,+ topicPreference_subscriptionStatus,++ -- * TrackingOptions+ TrackingOptions (..),+ newTrackingOptions,+ trackingOptions_customRedirectDomain,++ -- * VdmAttributes+ VdmAttributes (..),+ newVdmAttributes,+ vdmAttributes_dashboardAttributes,+ vdmAttributes_guardianAttributes,+ vdmAttributes_vdmEnabled,++ -- * VdmOptions+ VdmOptions (..),+ newVdmOptions,+ vdmOptions_dashboardOptions,+ vdmOptions_guardianOptions,++ -- * VolumeStatistics+ VolumeStatistics (..),+ newVolumeStatistics,+ volumeStatistics_inboxRawCount,+ volumeStatistics_projectedInbox,+ volumeStatistics_projectedSpam,+ volumeStatistics_spamRawCount,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.AccountDetails+import Amazonka.SESV2.Types.BatchGetMetricDataQuery+import Amazonka.SESV2.Types.BehaviorOnMxFailure+import Amazonka.SESV2.Types.BlacklistEntry+import Amazonka.SESV2.Types.Body+import Amazonka.SESV2.Types.BulkEmailContent+import Amazonka.SESV2.Types.BulkEmailEntry+import Amazonka.SESV2.Types.BulkEmailEntryResult+import Amazonka.SESV2.Types.BulkEmailStatus+import Amazonka.SESV2.Types.CloudWatchDestination+import Amazonka.SESV2.Types.CloudWatchDimensionConfiguration+import Amazonka.SESV2.Types.Contact+import Amazonka.SESV2.Types.ContactLanguage+import Amazonka.SESV2.Types.ContactList+import Amazonka.SESV2.Types.ContactListDestination+import Amazonka.SESV2.Types.ContactListImportAction+import Amazonka.SESV2.Types.Content+import Amazonka.SESV2.Types.CustomVerificationEmailTemplateMetadata+import Amazonka.SESV2.Types.DailyVolume+import Amazonka.SESV2.Types.DashboardAttributes+import Amazonka.SESV2.Types.DashboardOptions+import Amazonka.SESV2.Types.DataFormat+import Amazonka.SESV2.Types.DedicatedIp+import Amazonka.SESV2.Types.DedicatedIpPool+import Amazonka.SESV2.Types.DeliverabilityDashboardAccountStatus+import Amazonka.SESV2.Types.DeliverabilityTestReport+import Amazonka.SESV2.Types.DeliverabilityTestStatus+import Amazonka.SESV2.Types.DeliveryOptions+import Amazonka.SESV2.Types.Destination+import Amazonka.SESV2.Types.DimensionValueSource+import Amazonka.SESV2.Types.DkimAttributes+import Amazonka.SESV2.Types.DkimSigningAttributes+import Amazonka.SESV2.Types.DkimSigningAttributesOrigin+import Amazonka.SESV2.Types.DkimSigningKeyLength+import Amazonka.SESV2.Types.DkimStatus+import Amazonka.SESV2.Types.DomainDeliverabilityCampaign+import Amazonka.SESV2.Types.DomainDeliverabilityTrackingOption+import Amazonka.SESV2.Types.DomainIspPlacement+import Amazonka.SESV2.Types.EmailContent+import Amazonka.SESV2.Types.EmailTemplateContent+import Amazonka.SESV2.Types.EmailTemplateMetadata+import Amazonka.SESV2.Types.EventDestination+import Amazonka.SESV2.Types.EventDestinationDefinition+import Amazonka.SESV2.Types.EventType+import Amazonka.SESV2.Types.FailureInfo+import Amazonka.SESV2.Types.FeatureStatus+import Amazonka.SESV2.Types.GuardianAttributes+import Amazonka.SESV2.Types.GuardianOptions+import Amazonka.SESV2.Types.IdentityInfo+import Amazonka.SESV2.Types.IdentityType+import Amazonka.SESV2.Types.ImportDataSource+import Amazonka.SESV2.Types.ImportDestination+import Amazonka.SESV2.Types.ImportDestinationType+import Amazonka.SESV2.Types.ImportJobSummary+import Amazonka.SESV2.Types.InboxPlacementTrackingOption+import Amazonka.SESV2.Types.IspPlacement+import Amazonka.SESV2.Types.JobStatus+import Amazonka.SESV2.Types.KinesisFirehoseDestination+import Amazonka.SESV2.Types.ListContactsFilter+import Amazonka.SESV2.Types.ListManagementOptions+import Amazonka.SESV2.Types.ListRecommendationsFilterKey+import Amazonka.SESV2.Types.MailFromAttributes+import Amazonka.SESV2.Types.MailFromDomainStatus+import Amazonka.SESV2.Types.MailType+import Amazonka.SESV2.Types.Message+import Amazonka.SESV2.Types.MessageTag+import Amazonka.SESV2.Types.Metric+import Amazonka.SESV2.Types.MetricDataError+import Amazonka.SESV2.Types.MetricDataResult+import Amazonka.SESV2.Types.MetricDimensionName+import Amazonka.SESV2.Types.MetricNamespace+import Amazonka.SESV2.Types.OverallVolume+import Amazonka.SESV2.Types.PinpointDestination+import Amazonka.SESV2.Types.PlacementStatistics+import Amazonka.SESV2.Types.QueryErrorCode+import Amazonka.SESV2.Types.RawMessage+import Amazonka.SESV2.Types.Recommendation+import Amazonka.SESV2.Types.RecommendationImpact+import Amazonka.SESV2.Types.RecommendationStatus+import Amazonka.SESV2.Types.RecommendationType+import Amazonka.SESV2.Types.ReplacementEmailContent+import Amazonka.SESV2.Types.ReplacementTemplate+import Amazonka.SESV2.Types.ReputationOptions+import Amazonka.SESV2.Types.ReviewDetails+import Amazonka.SESV2.Types.ReviewStatus+import Amazonka.SESV2.Types.ScalingMode+import Amazonka.SESV2.Types.SendQuota+import Amazonka.SESV2.Types.SendingOptions+import Amazonka.SESV2.Types.SnsDestination+import Amazonka.SESV2.Types.SubscriptionStatus+import Amazonka.SESV2.Types.SuppressedDestination+import Amazonka.SESV2.Types.SuppressedDestinationAttributes+import Amazonka.SESV2.Types.SuppressedDestinationSummary+import Amazonka.SESV2.Types.SuppressionAttributes+import Amazonka.SESV2.Types.SuppressionListDestination+import Amazonka.SESV2.Types.SuppressionListImportAction+import Amazonka.SESV2.Types.SuppressionListReason+import Amazonka.SESV2.Types.SuppressionOptions+import Amazonka.SESV2.Types.Tag+import Amazonka.SESV2.Types.Template+import Amazonka.SESV2.Types.TlsPolicy+import Amazonka.SESV2.Types.Topic+import Amazonka.SESV2.Types.TopicFilter+import Amazonka.SESV2.Types.TopicPreference+import Amazonka.SESV2.Types.TrackingOptions+import Amazonka.SESV2.Types.VdmAttributes+import Amazonka.SESV2.Types.VdmOptions+import Amazonka.SESV2.Types.VerificationStatus+import Amazonka.SESV2.Types.VolumeStatistics+import Amazonka.SESV2.Types.WarmupStatus+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2019-09-27@ of the Amazon Simple Email Service SDK configuration.+defaultService :: Core.Service+defaultService =+ Core.Service+ { Core.abbrev = "SESV2",+ Core.signer = Sign.v4,+ Core.endpointPrefix = "email",+ Core.signingName = "ses",+ Core.version = "2019-09-27",+ Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+ Core.endpoint = Core.defaultEndpoint defaultService,+ Core.timeout = Prelude.Just 70,+ Core.check = Core.statusSuccess,+ Core.error = Core.parseJSONError "SESV2",+ 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++-- | The message can\'t be sent because the account\'s ability to send email+-- has been permanently restricted.+_AccountSuspendedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccountSuspendedException =+ Core._MatchServiceError+ defaultService+ "AccountSuspendedException"+ Prelude.. Core.hasStatus 400++-- | The resource specified in your request already exists.+_AlreadyExistsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AlreadyExistsException =+ Core._MatchServiceError+ defaultService+ "AlreadyExistsException"+ Prelude.. Core.hasStatus 400++-- | The input you provided is invalid.+_BadRequestException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_BadRequestException =+ Core._MatchServiceError+ defaultService+ "BadRequestException"+ Prelude.. Core.hasStatus 400++-- | The resource is being modified by another operation or thread.+_ConcurrentModificationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConcurrentModificationException =+ Core._MatchServiceError+ defaultService+ "ConcurrentModificationException"+ Prelude.. Core.hasStatus 500++-- | If there is already an ongoing account details update under review.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+ Core._MatchServiceError+ defaultService+ "ConflictException"+ Prelude.. Core.hasStatus 409++-- | The request couldn\'t be processed because an error occurred with the+-- Amazon SES API v2.+_InternalServiceErrorException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServiceErrorException =+ Core._MatchServiceError+ defaultService+ "InternalServiceErrorException"+ Prelude.. Core.hasStatus 500++-- | The specified request includes an invalid or expired token.+_InvalidNextTokenException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidNextTokenException =+ Core._MatchServiceError+ defaultService+ "InvalidNextTokenException"+ Prelude.. Core.hasStatus 400++-- | There are too many instances of the specified resource type.+_LimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_LimitExceededException =+ Core._MatchServiceError+ defaultService+ "LimitExceededException"+ Prelude.. Core.hasStatus 400++-- | The message can\'t be sent because the sending domain isn\'t verified.+_MailFromDomainNotVerifiedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_MailFromDomainNotVerifiedException =+ Core._MatchServiceError+ defaultService+ "MailFromDomainNotVerifiedException"+ Prelude.. Core.hasStatus 400++-- | The message can\'t be sent because it contains invalid content.+_MessageRejected :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_MessageRejected =+ Core._MatchServiceError+ defaultService+ "MessageRejected"+ Prelude.. Core.hasStatus 400++-- | The resource you attempted to access doesn\'t exist.+_NotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_NotFoundException =+ Core._MatchServiceError+ defaultService+ "NotFoundException"+ Prelude.. Core.hasStatus 404++-- | The message can\'t be sent because the account\'s ability to send email+-- is currently paused.+_SendingPausedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_SendingPausedException =+ Core._MatchServiceError+ defaultService+ "SendingPausedException"+ Prelude.. Core.hasStatus 400++-- | Too many requests have been made to the operation.+_TooManyRequestsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_TooManyRequestsException =+ Core._MatchServiceError+ defaultService+ "TooManyRequestsException"+ Prelude.. Core.hasStatus 429
+ gen/Amazonka/SESV2/Types/AccountDetails.hs view
@@ -0,0 +1,166 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.Types.AccountDetails+-- 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.SESV2.Types.AccountDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.ContactLanguage+import Amazonka.SESV2.Types.MailType+import Amazonka.SESV2.Types.ReviewDetails++-- | An object that contains information about your account details.+--+-- /See:/ 'newAccountDetails' smart constructor.+data AccountDetails = AccountDetails'+ { -- | Additional email addresses where updates are sent about your account+ -- review process.+ additionalContactEmailAddresses :: Prelude.Maybe (Data.Sensitive (Prelude.NonEmpty (Data.Sensitive Prelude.Text))),+ -- | The language you would prefer for the case. The contact language can be+ -- one of @ENGLISH@ or @JAPANESE@.+ contactLanguage :: Prelude.Maybe ContactLanguage,+ -- | The type of email your account is sending. The mail type can be one of+ -- the following:+ --+ -- - @MARKETING@ – Most of your sending traffic is to keep your customers+ -- informed of your latest offering.+ --+ -- - @TRANSACTIONAL@ – Most of your sending traffic is to communicate+ -- during a transaction with a customer.+ mailType :: Prelude.Maybe MailType,+ -- | Information about the review of the latest details you submitted.+ reviewDetails :: Prelude.Maybe ReviewDetails,+ -- | A description of the types of email that you plan to send.+ useCaseDescription :: Prelude.Maybe (Data.Sensitive Prelude.Text),+ -- | The URL of your website. This information helps us better understand the+ -- type of content that you plan to send.+ websiteURL :: Prelude.Maybe (Data.Sensitive Prelude.Text)+ }+ deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AccountDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'additionalContactEmailAddresses', 'accountDetails_additionalContactEmailAddresses' - Additional email addresses where updates are sent about your account+-- review process.+--+-- 'contactLanguage', 'accountDetails_contactLanguage' - The language you would prefer for the case. The contact language can be+-- one of @ENGLISH@ or @JAPANESE@.+--+-- 'mailType', 'accountDetails_mailType' - The type of email your account is sending. The mail type can be one of+-- the following:+--+-- - @MARKETING@ – Most of your sending traffic is to keep your customers+-- informed of your latest offering.+--+-- - @TRANSACTIONAL@ – Most of your sending traffic is to communicate+-- during a transaction with a customer.+--+-- 'reviewDetails', 'accountDetails_reviewDetails' - Information about the review of the latest details you submitted.+--+-- 'useCaseDescription', 'accountDetails_useCaseDescription' - A description of the types of email that you plan to send.+--+-- 'websiteURL', 'accountDetails_websiteURL' - The URL of your website. This information helps us better understand the+-- type of content that you plan to send.+newAccountDetails ::+ AccountDetails+newAccountDetails =+ AccountDetails'+ { additionalContactEmailAddresses =+ Prelude.Nothing,+ contactLanguage = Prelude.Nothing,+ mailType = Prelude.Nothing,+ reviewDetails = Prelude.Nothing,+ useCaseDescription = Prelude.Nothing,+ websiteURL = Prelude.Nothing+ }++-- | Additional email addresses where updates are sent about your account+-- review process.+accountDetails_additionalContactEmailAddresses :: Lens.Lens' AccountDetails (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+accountDetails_additionalContactEmailAddresses = Lens.lens (\AccountDetails' {additionalContactEmailAddresses} -> additionalContactEmailAddresses) (\s@AccountDetails' {} a -> s {additionalContactEmailAddresses = a} :: AccountDetails) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | The language you would prefer for the case. The contact language can be+-- one of @ENGLISH@ or @JAPANESE@.+accountDetails_contactLanguage :: Lens.Lens' AccountDetails (Prelude.Maybe ContactLanguage)+accountDetails_contactLanguage = Lens.lens (\AccountDetails' {contactLanguage} -> contactLanguage) (\s@AccountDetails' {} a -> s {contactLanguage = a} :: AccountDetails)++-- | The type of email your account is sending. The mail type can be one of+-- the following:+--+-- - @MARKETING@ – Most of your sending traffic is to keep your customers+-- informed of your latest offering.+--+-- - @TRANSACTIONAL@ – Most of your sending traffic is to communicate+-- during a transaction with a customer.+accountDetails_mailType :: Lens.Lens' AccountDetails (Prelude.Maybe MailType)+accountDetails_mailType = Lens.lens (\AccountDetails' {mailType} -> mailType) (\s@AccountDetails' {} a -> s {mailType = a} :: AccountDetails)++-- | Information about the review of the latest details you submitted.+accountDetails_reviewDetails :: Lens.Lens' AccountDetails (Prelude.Maybe ReviewDetails)+accountDetails_reviewDetails = Lens.lens (\AccountDetails' {reviewDetails} -> reviewDetails) (\s@AccountDetails' {} a -> s {reviewDetails = a} :: AccountDetails)++-- | A description of the types of email that you plan to send.+accountDetails_useCaseDescription :: Lens.Lens' AccountDetails (Prelude.Maybe Prelude.Text)+accountDetails_useCaseDescription = Lens.lens (\AccountDetails' {useCaseDescription} -> useCaseDescription) (\s@AccountDetails' {} a -> s {useCaseDescription = a} :: AccountDetails) Prelude.. Lens.mapping Data._Sensitive++-- | The URL of your website. This information helps us better understand the+-- type of content that you plan to send.+accountDetails_websiteURL :: Lens.Lens' AccountDetails (Prelude.Maybe Prelude.Text)+accountDetails_websiteURL = Lens.lens (\AccountDetails' {websiteURL} -> websiteURL) (\s@AccountDetails' {} a -> s {websiteURL = a} :: AccountDetails) Prelude.. Lens.mapping Data._Sensitive++instance Data.FromJSON AccountDetails where+ parseJSON =+ Data.withObject+ "AccountDetails"+ ( \x ->+ AccountDetails'+ Prelude.<$> (x Data..:? "AdditionalContactEmailAddresses")+ Prelude.<*> (x Data..:? "ContactLanguage")+ Prelude.<*> (x Data..:? "MailType")+ Prelude.<*> (x Data..:? "ReviewDetails")+ Prelude.<*> (x Data..:? "UseCaseDescription")+ Prelude.<*> (x Data..:? "WebsiteURL")+ )++instance Prelude.Hashable AccountDetails where+ hashWithSalt _salt AccountDetails' {..} =+ _salt+ `Prelude.hashWithSalt` additionalContactEmailAddresses+ `Prelude.hashWithSalt` contactLanguage+ `Prelude.hashWithSalt` mailType+ `Prelude.hashWithSalt` reviewDetails+ `Prelude.hashWithSalt` useCaseDescription+ `Prelude.hashWithSalt` websiteURL++instance Prelude.NFData AccountDetails where+ rnf AccountDetails' {..} =+ Prelude.rnf additionalContactEmailAddresses+ `Prelude.seq` Prelude.rnf contactLanguage+ `Prelude.seq` Prelude.rnf mailType+ `Prelude.seq` Prelude.rnf reviewDetails+ `Prelude.seq` Prelude.rnf useCaseDescription+ `Prelude.seq` Prelude.rnf websiteURL
+ gen/Amazonka/SESV2/Types/BatchGetMetricDataQuery.hs view
@@ -0,0 +1,285 @@+{-# 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.SESV2.Types.BatchGetMetricDataQuery+-- 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.SESV2.Types.BatchGetMetricDataQuery where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.Metric+import Amazonka.SESV2.Types.MetricDimensionName+import Amazonka.SESV2.Types.MetricNamespace++-- | Represents a single metric data query to include in a batch.+--+-- /See:/ 'newBatchGetMetricDataQuery' smart constructor.+data BatchGetMetricDataQuery = BatchGetMetricDataQuery'+ { -- | An object that contains mapping between @MetricDimensionName@ and+ -- @MetricDimensionValue@ to filter metrics by.+ dimensions :: Prelude.Maybe (Prelude.HashMap MetricDimensionName Prelude.Text),+ -- | The query identifier.+ id :: Prelude.Text,+ -- | The query namespace - e.g. @VDM@+ namespace :: MetricNamespace,+ -- | The queried metric. This can be one of the following:+ --+ -- - @SEND@ – Emails sent eligible for tracking in the VDM dashboard.+ -- This excludes emails sent to the mailbox simulator and emails+ -- addressed to more than one recipient.+ --+ -- - @COMPLAINT@ – Complaints received for your account. This excludes+ -- complaints from the mailbox simulator, those originating from your+ -- account-level suppression list (if enabled), and those for emails+ -- addressed to more than one recipient+ --+ -- - @PERMANENT_BOUNCE@ – Permanent bounces - i.e. feedback received for+ -- emails sent to non-existent mailboxes. Excludes bounces from the+ -- mailbox simulator, those originating from your account-level+ -- suppression list (if enabled), and those for emails addressed to+ -- more than one recipient.+ --+ -- - @TRANSIENT_BOUNCE@ – Transient bounces - i.e. feedback received for+ -- delivery failures excluding issues with non-existent mailboxes.+ -- Excludes bounces from the mailbox simulator, and those for emails+ -- addressed to more than one recipient.+ --+ -- - @OPEN@ – Unique open events for emails including open trackers.+ -- Excludes opens for emails addressed to more than one recipient.+ --+ -- - @CLICK@ – Unique click events for emails including wrapped links.+ -- Excludes clicks for emails addressed to more than one recipient.+ --+ -- - @DELIVERY@ – Successful deliveries for email sending attempts.+ -- Excludes deliveries to the mailbox simulator and for emails+ -- addressed to more than one recipient.+ --+ -- - @DELIVERY_OPEN@ – Successful deliveries for email sending attempts.+ -- Excludes deliveries to the mailbox simulator, for emails addressed+ -- to more than one recipient, and emails without open trackers.+ --+ -- - @DELIVERY_CLICK@ – Successful deliveries for email sending attempts.+ -- Excludes deliveries to the mailbox simulator, for emails addressed+ -- to more than one recipient, and emails without click trackers.+ --+ -- - @DELIVERY_COMPLAINT@ – Successful deliveries for email sending+ -- attempts. Excludes deliveries to the mailbox simulator, for emails+ -- addressed to more than one recipient, and emails addressed to+ -- recipients hosted by ISPs with which Amazon SES does not have a+ -- feedback loop agreement.+ metric :: Metric,+ -- | Represents the start date for the query interval.+ startDate :: Data.POSIX,+ -- | Represents the end date for the query interval.+ endDate :: Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchGetMetricDataQuery' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dimensions', 'batchGetMetricDataQuery_dimensions' - An object that contains mapping between @MetricDimensionName@ and+-- @MetricDimensionValue@ to filter metrics by.+--+-- 'id', 'batchGetMetricDataQuery_id' - The query identifier.+--+-- 'namespace', 'batchGetMetricDataQuery_namespace' - The query namespace - e.g. @VDM@+--+-- 'metric', 'batchGetMetricDataQuery_metric' - The queried metric. This can be one of the following:+--+-- - @SEND@ – Emails sent eligible for tracking in the VDM dashboard.+-- This excludes emails sent to the mailbox simulator and emails+-- addressed to more than one recipient.+--+-- - @COMPLAINT@ – Complaints received for your account. This excludes+-- complaints from the mailbox simulator, those originating from your+-- account-level suppression list (if enabled), and those for emails+-- addressed to more than one recipient+--+-- - @PERMANENT_BOUNCE@ – Permanent bounces - i.e. feedback received for+-- emails sent to non-existent mailboxes. Excludes bounces from the+-- mailbox simulator, those originating from your account-level+-- suppression list (if enabled), and those for emails addressed to+-- more than one recipient.+--+-- - @TRANSIENT_BOUNCE@ – Transient bounces - i.e. feedback received for+-- delivery failures excluding issues with non-existent mailboxes.+-- Excludes bounces from the mailbox simulator, and those for emails+-- addressed to more than one recipient.+--+-- - @OPEN@ – Unique open events for emails including open trackers.+-- Excludes opens for emails addressed to more than one recipient.+--+-- - @CLICK@ – Unique click events for emails including wrapped links.+-- Excludes clicks for emails addressed to more than one recipient.+--+-- - @DELIVERY@ – Successful deliveries for email sending attempts.+-- Excludes deliveries to the mailbox simulator and for emails+-- addressed to more than one recipient.+--+-- - @DELIVERY_OPEN@ – Successful deliveries for email sending attempts.+-- Excludes deliveries to the mailbox simulator, for emails addressed+-- to more than one recipient, and emails without open trackers.+--+-- - @DELIVERY_CLICK@ – Successful deliveries for email sending attempts.+-- Excludes deliveries to the mailbox simulator, for emails addressed+-- to more than one recipient, and emails without click trackers.+--+-- - @DELIVERY_COMPLAINT@ – Successful deliveries for email sending+-- attempts. Excludes deliveries to the mailbox simulator, for emails+-- addressed to more than one recipient, and emails addressed to+-- recipients hosted by ISPs with which Amazon SES does not have a+-- feedback loop agreement.+--+-- 'startDate', 'batchGetMetricDataQuery_startDate' - Represents the start date for the query interval.+--+-- 'endDate', 'batchGetMetricDataQuery_endDate' - Represents the end date for the query interval.+newBatchGetMetricDataQuery ::+ -- | 'id'+ Prelude.Text ->+ -- | 'namespace'+ MetricNamespace ->+ -- | 'metric'+ Metric ->+ -- | 'startDate'+ Prelude.UTCTime ->+ -- | 'endDate'+ Prelude.UTCTime ->+ BatchGetMetricDataQuery+newBatchGetMetricDataQuery+ pId_+ pNamespace_+ pMetric_+ pStartDate_+ pEndDate_ =+ BatchGetMetricDataQuery'+ { dimensions =+ Prelude.Nothing,+ id = pId_,+ namespace = pNamespace_,+ metric = pMetric_,+ startDate = Data._Time Lens.# pStartDate_,+ endDate = Data._Time Lens.# pEndDate_+ }++-- | An object that contains mapping between @MetricDimensionName@ and+-- @MetricDimensionValue@ to filter metrics by.+batchGetMetricDataQuery_dimensions :: Lens.Lens' BatchGetMetricDataQuery (Prelude.Maybe (Prelude.HashMap MetricDimensionName Prelude.Text))+batchGetMetricDataQuery_dimensions = Lens.lens (\BatchGetMetricDataQuery' {dimensions} -> dimensions) (\s@BatchGetMetricDataQuery' {} a -> s {dimensions = a} :: BatchGetMetricDataQuery) Prelude.. Lens.mapping Lens.coerced++-- | The query identifier.+batchGetMetricDataQuery_id :: Lens.Lens' BatchGetMetricDataQuery Prelude.Text+batchGetMetricDataQuery_id = Lens.lens (\BatchGetMetricDataQuery' {id} -> id) (\s@BatchGetMetricDataQuery' {} a -> s {id = a} :: BatchGetMetricDataQuery)++-- | The query namespace - e.g. @VDM@+batchGetMetricDataQuery_namespace :: Lens.Lens' BatchGetMetricDataQuery MetricNamespace+batchGetMetricDataQuery_namespace = Lens.lens (\BatchGetMetricDataQuery' {namespace} -> namespace) (\s@BatchGetMetricDataQuery' {} a -> s {namespace = a} :: BatchGetMetricDataQuery)++-- | The queried metric. This can be one of the following:+--+-- - @SEND@ – Emails sent eligible for tracking in the VDM dashboard.+-- This excludes emails sent to the mailbox simulator and emails+-- addressed to more than one recipient.+--+-- - @COMPLAINT@ – Complaints received for your account. This excludes+-- complaints from the mailbox simulator, those originating from your+-- account-level suppression list (if enabled), and those for emails+-- addressed to more than one recipient+--+-- - @PERMANENT_BOUNCE@ – Permanent bounces - i.e. feedback received for+-- emails sent to non-existent mailboxes. Excludes bounces from the+-- mailbox simulator, those originating from your account-level+-- suppression list (if enabled), and those for emails addressed to+-- more than one recipient.+--+-- - @TRANSIENT_BOUNCE@ – Transient bounces - i.e. feedback received for+-- delivery failures excluding issues with non-existent mailboxes.+-- Excludes bounces from the mailbox simulator, and those for emails+-- addressed to more than one recipient.+--+-- - @OPEN@ – Unique open events for emails including open trackers.+-- Excludes opens for emails addressed to more than one recipient.+--+-- - @CLICK@ – Unique click events for emails including wrapped links.+-- Excludes clicks for emails addressed to more than one recipient.+--+-- - @DELIVERY@ – Successful deliveries for email sending attempts.+-- Excludes deliveries to the mailbox simulator and for emails+-- addressed to more than one recipient.+--+-- - @DELIVERY_OPEN@ – Successful deliveries for email sending attempts.+-- Excludes deliveries to the mailbox simulator, for emails addressed+-- to more than one recipient, and emails without open trackers.+--+-- - @DELIVERY_CLICK@ – Successful deliveries for email sending attempts.+-- Excludes deliveries to the mailbox simulator, for emails addressed+-- to more than one recipient, and emails without click trackers.+--+-- - @DELIVERY_COMPLAINT@ – Successful deliveries for email sending+-- attempts. Excludes deliveries to the mailbox simulator, for emails+-- addressed to more than one recipient, and emails addressed to+-- recipients hosted by ISPs with which Amazon SES does not have a+-- feedback loop agreement.+batchGetMetricDataQuery_metric :: Lens.Lens' BatchGetMetricDataQuery Metric+batchGetMetricDataQuery_metric = Lens.lens (\BatchGetMetricDataQuery' {metric} -> metric) (\s@BatchGetMetricDataQuery' {} a -> s {metric = a} :: BatchGetMetricDataQuery)++-- | Represents the start date for the query interval.+batchGetMetricDataQuery_startDate :: Lens.Lens' BatchGetMetricDataQuery Prelude.UTCTime+batchGetMetricDataQuery_startDate = Lens.lens (\BatchGetMetricDataQuery' {startDate} -> startDate) (\s@BatchGetMetricDataQuery' {} a -> s {startDate = a} :: BatchGetMetricDataQuery) Prelude.. Data._Time++-- | Represents the end date for the query interval.+batchGetMetricDataQuery_endDate :: Lens.Lens' BatchGetMetricDataQuery Prelude.UTCTime+batchGetMetricDataQuery_endDate = Lens.lens (\BatchGetMetricDataQuery' {endDate} -> endDate) (\s@BatchGetMetricDataQuery' {} a -> s {endDate = a} :: BatchGetMetricDataQuery) Prelude.. Data._Time++instance Prelude.Hashable BatchGetMetricDataQuery where+ hashWithSalt _salt BatchGetMetricDataQuery' {..} =+ _salt+ `Prelude.hashWithSalt` dimensions+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` namespace+ `Prelude.hashWithSalt` metric+ `Prelude.hashWithSalt` startDate+ `Prelude.hashWithSalt` endDate++instance Prelude.NFData BatchGetMetricDataQuery where+ rnf BatchGetMetricDataQuery' {..} =+ Prelude.rnf dimensions+ `Prelude.seq` Prelude.rnf id+ `Prelude.seq` Prelude.rnf namespace+ `Prelude.seq` Prelude.rnf metric+ `Prelude.seq` Prelude.rnf startDate+ `Prelude.seq` Prelude.rnf endDate++instance Data.ToJSON BatchGetMetricDataQuery where+ toJSON BatchGetMetricDataQuery' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Dimensions" Data..=) Prelude.<$> dimensions,+ Prelude.Just ("Id" Data..= id),+ Prelude.Just ("Namespace" Data..= namespace),+ Prelude.Just ("Metric" Data..= metric),+ Prelude.Just ("StartDate" Data..= startDate),+ Prelude.Just ("EndDate" Data..= endDate)+ ]+ )
+ gen/Amazonka/SESV2/Types/BehaviorOnMxFailure.hs view
@@ -0,0 +1,80 @@+{-# 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.SESV2.Types.BehaviorOnMxFailure+-- 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.SESV2.Types.BehaviorOnMxFailure+ ( BehaviorOnMxFailure+ ( ..,+ BehaviorOnMxFailure_REJECT_MESSAGE,+ BehaviorOnMxFailure_USE_DEFAULT_VALUE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The action to take if the required MX record can\'t be found when you+-- send an email. When you set this value to @UseDefaultValue@, the mail is+-- sent using /amazonses.com/ as the MAIL FROM domain. When you set this+-- value to @RejectMessage@, the Amazon SES API v2 returns a+-- @MailFromDomainNotVerified@ error, and doesn\'t attempt to deliver the+-- email.+--+-- These behaviors are taken when the custom MAIL FROM domain configuration+-- is in the @Pending@, @Failed@, and @TemporaryFailure@ states.+newtype BehaviorOnMxFailure = BehaviorOnMxFailure'+ { fromBehaviorOnMxFailure ::+ 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 BehaviorOnMxFailure_REJECT_MESSAGE :: BehaviorOnMxFailure+pattern BehaviorOnMxFailure_REJECT_MESSAGE = BehaviorOnMxFailure' "REJECT_MESSAGE"++pattern BehaviorOnMxFailure_USE_DEFAULT_VALUE :: BehaviorOnMxFailure+pattern BehaviorOnMxFailure_USE_DEFAULT_VALUE = BehaviorOnMxFailure' "USE_DEFAULT_VALUE"++{-# COMPLETE+ BehaviorOnMxFailure_REJECT_MESSAGE,+ BehaviorOnMxFailure_USE_DEFAULT_VALUE,+ BehaviorOnMxFailure'+ #-}
+ gen/Amazonka/SESV2/Types/BlacklistEntry.hs view
@@ -0,0 +1,101 @@+{-# 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.SESV2.Types.BlacklistEntry+-- 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.SESV2.Types.BlacklistEntry 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 that contains information about a blacklisting event that+-- impacts one of the dedicated IP addresses that is associated with your+-- account.+--+-- /See:/ 'newBlacklistEntry' smart constructor.+data BlacklistEntry = BlacklistEntry'+ { -- | Additional information about the blacklisting event, as provided by the+ -- blacklist maintainer.+ description :: Prelude.Maybe Prelude.Text,+ -- | The time when the blacklisting event occurred.+ listingTime :: Prelude.Maybe Data.POSIX,+ -- | The name of the blacklist that the IP address appears on.+ rblName :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BlacklistEntry' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'blacklistEntry_description' - Additional information about the blacklisting event, as provided by the+-- blacklist maintainer.+--+-- 'listingTime', 'blacklistEntry_listingTime' - The time when the blacklisting event occurred.+--+-- 'rblName', 'blacklistEntry_rblName' - The name of the blacklist that the IP address appears on.+newBlacklistEntry ::+ BlacklistEntry+newBlacklistEntry =+ BlacklistEntry'+ { description = Prelude.Nothing,+ listingTime = Prelude.Nothing,+ rblName = Prelude.Nothing+ }++-- | Additional information about the blacklisting event, as provided by the+-- blacklist maintainer.+blacklistEntry_description :: Lens.Lens' BlacklistEntry (Prelude.Maybe Prelude.Text)+blacklistEntry_description = Lens.lens (\BlacklistEntry' {description} -> description) (\s@BlacklistEntry' {} a -> s {description = a} :: BlacklistEntry)++-- | The time when the blacklisting event occurred.+blacklistEntry_listingTime :: Lens.Lens' BlacklistEntry (Prelude.Maybe Prelude.UTCTime)+blacklistEntry_listingTime = Lens.lens (\BlacklistEntry' {listingTime} -> listingTime) (\s@BlacklistEntry' {} a -> s {listingTime = a} :: BlacklistEntry) Prelude.. Lens.mapping Data._Time++-- | The name of the blacklist that the IP address appears on.+blacklistEntry_rblName :: Lens.Lens' BlacklistEntry (Prelude.Maybe Prelude.Text)+blacklistEntry_rblName = Lens.lens (\BlacklistEntry' {rblName} -> rblName) (\s@BlacklistEntry' {} a -> s {rblName = a} :: BlacklistEntry)++instance Data.FromJSON BlacklistEntry where+ parseJSON =+ Data.withObject+ "BlacklistEntry"+ ( \x ->+ BlacklistEntry'+ Prelude.<$> (x Data..:? "Description")+ Prelude.<*> (x Data..:? "ListingTime")+ Prelude.<*> (x Data..:? "RblName")+ )++instance Prelude.Hashable BlacklistEntry where+ hashWithSalt _salt BlacklistEntry' {..} =+ _salt+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` listingTime+ `Prelude.hashWithSalt` rblName++instance Prelude.NFData BlacklistEntry where+ rnf BlacklistEntry' {..} =+ Prelude.rnf description+ `Prelude.seq` Prelude.rnf listingTime+ `Prelude.seq` Prelude.rnf rblName
+ gen/Amazonka/SESV2/Types/Body.hs view
@@ -0,0 +1,95 @@+{-# 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.SESV2.Types.Body+-- 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.SESV2.Types.Body where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.Content++-- | Represents the body of the email message.+--+-- /See:/ 'newBody' smart constructor.+data Body = Body'+ { -- | An object that represents the version of the message that is displayed+ -- in email clients that support HTML. HTML messages can include formatted+ -- text, hyperlinks, images, and more.+ html :: Prelude.Maybe Content,+ -- | An object that represents the version of the message that is displayed+ -- in email clients that don\'t support HTML, or clients where the+ -- recipient has disabled HTML rendering.+ text :: Prelude.Maybe Content+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Body' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'html', 'body_html' - An object that represents the version of the message that is displayed+-- in email clients that support HTML. HTML messages can include formatted+-- text, hyperlinks, images, and more.+--+-- 'text', 'body_text' - An object that represents the version of the message that is displayed+-- in email clients that don\'t support HTML, or clients where the+-- recipient has disabled HTML rendering.+newBody ::+ Body+newBody =+ Body'+ { html = Prelude.Nothing,+ text = Prelude.Nothing+ }++-- | An object that represents the version of the message that is displayed+-- in email clients that support HTML. HTML messages can include formatted+-- text, hyperlinks, images, and more.+body_html :: Lens.Lens' Body (Prelude.Maybe Content)+body_html = Lens.lens (\Body' {html} -> html) (\s@Body' {} a -> s {html = a} :: Body)++-- | An object that represents the version of the message that is displayed+-- in email clients that don\'t support HTML, or clients where the+-- recipient has disabled HTML rendering.+body_text :: Lens.Lens' Body (Prelude.Maybe Content)+body_text = Lens.lens (\Body' {text} -> text) (\s@Body' {} a -> s {text = a} :: Body)++instance Prelude.Hashable Body where+ hashWithSalt _salt Body' {..} =+ _salt+ `Prelude.hashWithSalt` html+ `Prelude.hashWithSalt` text++instance Prelude.NFData Body where+ rnf Body' {..} =+ Prelude.rnf html `Prelude.seq` Prelude.rnf text++instance Data.ToJSON Body where+ toJSON Body' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Html" Data..=) Prelude.<$> html,+ ("Text" Data..=) Prelude.<$> text+ ]+ )
+ gen/Amazonka/SESV2/Types/BulkEmailContent.hs view
@@ -0,0 +1,68 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.Types.BulkEmailContent+-- 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.SESV2.Types.BulkEmailContent where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.Template++-- | An object that contains the body of the message. You can specify a+-- template message.+--+-- /See:/ 'newBulkEmailContent' smart constructor.+data BulkEmailContent = BulkEmailContent'+ { -- | The template to use for the bulk email message.+ template :: Prelude.Maybe Template+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BulkEmailContent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'template', 'bulkEmailContent_template' - The template to use for the bulk email message.+newBulkEmailContent ::+ BulkEmailContent+newBulkEmailContent =+ BulkEmailContent' {template = Prelude.Nothing}++-- | The template to use for the bulk email message.+bulkEmailContent_template :: Lens.Lens' BulkEmailContent (Prelude.Maybe Template)+bulkEmailContent_template = Lens.lens (\BulkEmailContent' {template} -> template) (\s@BulkEmailContent' {} a -> s {template = a} :: BulkEmailContent)++instance Prelude.Hashable BulkEmailContent where+ hashWithSalt _salt BulkEmailContent' {..} =+ _salt `Prelude.hashWithSalt` template++instance Prelude.NFData BulkEmailContent where+ rnf BulkEmailContent' {..} = Prelude.rnf template++instance Data.ToJSON BulkEmailContent where+ toJSON BulkEmailContent' {..} =+ Data.object+ ( Prelude.catMaybes+ [("Template" Data..=) Prelude.<$> template]+ )
+ gen/Amazonka/SESV2/Types/BulkEmailEntry.hs view
@@ -0,0 +1,140 @@+{-# 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.SESV2.Types.BulkEmailEntry+-- 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.SESV2.Types.BulkEmailEntry where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.Destination+import Amazonka.SESV2.Types.MessageTag+import Amazonka.SESV2.Types.ReplacementEmailContent++-- | /See:/ 'newBulkEmailEntry' smart constructor.+data BulkEmailEntry = BulkEmailEntry'+ { -- | The @ReplacementEmailContent@ associated with a @BulkEmailEntry@.+ replacementEmailContent :: Prelude.Maybe ReplacementEmailContent,+ -- | A list of tags, in the form of name\/value pairs, to apply to an email+ -- that you send using the @SendBulkTemplatedEmail@ operation. Tags+ -- correspond to characteristics of the email that you define, so that you+ -- can publish email sending events.+ replacementTags :: Prelude.Maybe [MessageTag],+ -- | Represents the destination of the message, consisting of To:, CC:, and+ -- BCC: fields.+ --+ -- Amazon SES does not support the SMTPUTF8 extension, as described in+ -- <https://tools.ietf.org/html/rfc6531 RFC6531>. For this reason, the+ -- local part of a destination email address (the part of the email address+ -- that precedes the \@ sign) may only contain+ -- <https://en.wikipedia.org/wiki/Email_address#Local-part 7-bit ASCII characters>.+ -- If the domain part of an address (the part after the \@ sign) contains+ -- non-ASCII characters, they must be encoded using Punycode, as described+ -- in <https://tools.ietf.org/html/rfc3492.html RFC3492>.+ destination :: Destination+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BulkEmailEntry' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'replacementEmailContent', 'bulkEmailEntry_replacementEmailContent' - The @ReplacementEmailContent@ associated with a @BulkEmailEntry@.+--+-- 'replacementTags', 'bulkEmailEntry_replacementTags' - A list of tags, in the form of name\/value pairs, to apply to an email+-- that you send using the @SendBulkTemplatedEmail@ operation. Tags+-- correspond to characteristics of the email that you define, so that you+-- can publish email sending events.+--+-- 'destination', 'bulkEmailEntry_destination' - Represents the destination of the message, consisting of To:, CC:, and+-- BCC: fields.+--+-- Amazon SES does not support the SMTPUTF8 extension, as described in+-- <https://tools.ietf.org/html/rfc6531 RFC6531>. For this reason, the+-- local part of a destination email address (the part of the email address+-- that precedes the \@ sign) may only contain+-- <https://en.wikipedia.org/wiki/Email_address#Local-part 7-bit ASCII characters>.+-- If the domain part of an address (the part after the \@ sign) contains+-- non-ASCII characters, they must be encoded using Punycode, as described+-- in <https://tools.ietf.org/html/rfc3492.html RFC3492>.+newBulkEmailEntry ::+ -- | 'destination'+ Destination ->+ BulkEmailEntry+newBulkEmailEntry pDestination_ =+ BulkEmailEntry'+ { replacementEmailContent =+ Prelude.Nothing,+ replacementTags = Prelude.Nothing,+ destination = pDestination_+ }++-- | The @ReplacementEmailContent@ associated with a @BulkEmailEntry@.+bulkEmailEntry_replacementEmailContent :: Lens.Lens' BulkEmailEntry (Prelude.Maybe ReplacementEmailContent)+bulkEmailEntry_replacementEmailContent = Lens.lens (\BulkEmailEntry' {replacementEmailContent} -> replacementEmailContent) (\s@BulkEmailEntry' {} a -> s {replacementEmailContent = a} :: BulkEmailEntry)++-- | A list of tags, in the form of name\/value pairs, to apply to an email+-- that you send using the @SendBulkTemplatedEmail@ operation. Tags+-- correspond to characteristics of the email that you define, so that you+-- can publish email sending events.+bulkEmailEntry_replacementTags :: Lens.Lens' BulkEmailEntry (Prelude.Maybe [MessageTag])+bulkEmailEntry_replacementTags = Lens.lens (\BulkEmailEntry' {replacementTags} -> replacementTags) (\s@BulkEmailEntry' {} a -> s {replacementTags = a} :: BulkEmailEntry) Prelude.. Lens.mapping Lens.coerced++-- | Represents the destination of the message, consisting of To:, CC:, and+-- BCC: fields.+--+-- Amazon SES does not support the SMTPUTF8 extension, as described in+-- <https://tools.ietf.org/html/rfc6531 RFC6531>. For this reason, the+-- local part of a destination email address (the part of the email address+-- that precedes the \@ sign) may only contain+-- <https://en.wikipedia.org/wiki/Email_address#Local-part 7-bit ASCII characters>.+-- If the domain part of an address (the part after the \@ sign) contains+-- non-ASCII characters, they must be encoded using Punycode, as described+-- in <https://tools.ietf.org/html/rfc3492.html RFC3492>.+bulkEmailEntry_destination :: Lens.Lens' BulkEmailEntry Destination+bulkEmailEntry_destination = Lens.lens (\BulkEmailEntry' {destination} -> destination) (\s@BulkEmailEntry' {} a -> s {destination = a} :: BulkEmailEntry)++instance Prelude.Hashable BulkEmailEntry where+ hashWithSalt _salt BulkEmailEntry' {..} =+ _salt+ `Prelude.hashWithSalt` replacementEmailContent+ `Prelude.hashWithSalt` replacementTags+ `Prelude.hashWithSalt` destination++instance Prelude.NFData BulkEmailEntry where+ rnf BulkEmailEntry' {..} =+ Prelude.rnf replacementEmailContent+ `Prelude.seq` Prelude.rnf replacementTags+ `Prelude.seq` Prelude.rnf destination++instance Data.ToJSON BulkEmailEntry where+ toJSON BulkEmailEntry' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ReplacementEmailContent" Data..=)+ Prelude.<$> replacementEmailContent,+ ("ReplacementTags" Data..=)+ Prelude.<$> replacementTags,+ Prelude.Just ("Destination" Data..= destination)+ ]+ )
+ gen/Amazonka/SESV2/Types/BulkEmailEntryResult.hs view
@@ -0,0 +1,257 @@+{-# 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.SESV2.Types.BulkEmailEntryResult+-- 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.SESV2.Types.BulkEmailEntryResult where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.BulkEmailStatus++-- | The result of the @SendBulkEmail@ operation of each specified+-- @BulkEmailEntry@.+--+-- /See:/ 'newBulkEmailEntryResult' smart constructor.+data BulkEmailEntryResult = BulkEmailEntryResult'+ { -- | A description of an error that prevented a message being sent using the+ -- @SendBulkTemplatedEmail@ operation.+ error :: Prelude.Maybe Prelude.Text,+ -- | The unique message identifier returned from the @SendBulkTemplatedEmail@+ -- operation.+ messageId :: Prelude.Maybe Prelude.Text,+ -- | The status of a message sent using the @SendBulkTemplatedEmail@+ -- operation.+ --+ -- Possible values for this parameter include:+ --+ -- - SUCCESS: Amazon SES accepted the message, and will attempt to+ -- deliver it to the recipients.+ --+ -- - MESSAGE_REJECTED: The message was rejected because it contained a+ -- virus.+ --+ -- - MAIL_FROM_DOMAIN_NOT_VERIFIED: The sender\'s email address or domain+ -- was not verified.+ --+ -- - CONFIGURATION_SET_DOES_NOT_EXIST: The configuration set you+ -- specified does not exist.+ --+ -- - TEMPLATE_DOES_NOT_EXIST: The template you specified does not exist.+ --+ -- - ACCOUNT_SUSPENDED: Your account has been shut down because of issues+ -- related to your email sending practices.+ --+ -- - ACCOUNT_THROTTLED: The number of emails you can send has been+ -- reduced because your account has exceeded its allocated sending+ -- limit.+ --+ -- - ACCOUNT_DAILY_QUOTA_EXCEEDED: You have reached or exceeded the+ -- maximum number of emails you can send from your account in a 24-hour+ -- period.+ --+ -- - INVALID_SENDING_POOL_NAME: The configuration set you specified+ -- refers to an IP pool that does not exist.+ --+ -- - ACCOUNT_SENDING_PAUSED: Email sending for the Amazon SES account was+ -- disabled using the+ -- <https://docs.aws.amazon.com/ses/latest/APIReference/API_UpdateAccountSendingEnabled.html UpdateAccountSendingEnabled>+ -- operation.+ --+ -- - CONFIGURATION_SET_SENDING_PAUSED: Email sending for this+ -- configuration set was disabled using the+ -- <https://docs.aws.amazon.com/ses/latest/APIReference/API_UpdateConfigurationSetSendingEnabled.html UpdateConfigurationSetSendingEnabled>+ -- operation.+ --+ -- - INVALID_PARAMETER_VALUE: One or more of the parameters you specified+ -- when calling this operation was invalid. See the error message for+ -- additional information.+ --+ -- - TRANSIENT_FAILURE: Amazon SES was unable to process your request+ -- because of a temporary issue.+ --+ -- - FAILED: Amazon SES was unable to process your request. See the error+ -- message for additional information.+ status :: Prelude.Maybe BulkEmailStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BulkEmailEntryResult' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'error', 'bulkEmailEntryResult_error' - A description of an error that prevented a message being sent using the+-- @SendBulkTemplatedEmail@ operation.+--+-- 'messageId', 'bulkEmailEntryResult_messageId' - The unique message identifier returned from the @SendBulkTemplatedEmail@+-- operation.+--+-- 'status', 'bulkEmailEntryResult_status' - The status of a message sent using the @SendBulkTemplatedEmail@+-- operation.+--+-- Possible values for this parameter include:+--+-- - SUCCESS: Amazon SES accepted the message, and will attempt to+-- deliver it to the recipients.+--+-- - MESSAGE_REJECTED: The message was rejected because it contained a+-- virus.+--+-- - MAIL_FROM_DOMAIN_NOT_VERIFIED: The sender\'s email address or domain+-- was not verified.+--+-- - CONFIGURATION_SET_DOES_NOT_EXIST: The configuration set you+-- specified does not exist.+--+-- - TEMPLATE_DOES_NOT_EXIST: The template you specified does not exist.+--+-- - ACCOUNT_SUSPENDED: Your account has been shut down because of issues+-- related to your email sending practices.+--+-- - ACCOUNT_THROTTLED: The number of emails you can send has been+-- reduced because your account has exceeded its allocated sending+-- limit.+--+-- - ACCOUNT_DAILY_QUOTA_EXCEEDED: You have reached or exceeded the+-- maximum number of emails you can send from your account in a 24-hour+-- period.+--+-- - INVALID_SENDING_POOL_NAME: The configuration set you specified+-- refers to an IP pool that does not exist.+--+-- - ACCOUNT_SENDING_PAUSED: Email sending for the Amazon SES account was+-- disabled using the+-- <https://docs.aws.amazon.com/ses/latest/APIReference/API_UpdateAccountSendingEnabled.html UpdateAccountSendingEnabled>+-- operation.+--+-- - CONFIGURATION_SET_SENDING_PAUSED: Email sending for this+-- configuration set was disabled using the+-- <https://docs.aws.amazon.com/ses/latest/APIReference/API_UpdateConfigurationSetSendingEnabled.html UpdateConfigurationSetSendingEnabled>+-- operation.+--+-- - INVALID_PARAMETER_VALUE: One or more of the parameters you specified+-- when calling this operation was invalid. See the error message for+-- additional information.+--+-- - TRANSIENT_FAILURE: Amazon SES was unable to process your request+-- because of a temporary issue.+--+-- - FAILED: Amazon SES was unable to process your request. See the error+-- message for additional information.+newBulkEmailEntryResult ::+ BulkEmailEntryResult+newBulkEmailEntryResult =+ BulkEmailEntryResult'+ { error = Prelude.Nothing,+ messageId = Prelude.Nothing,+ status = Prelude.Nothing+ }++-- | A description of an error that prevented a message being sent using the+-- @SendBulkTemplatedEmail@ operation.+bulkEmailEntryResult_error :: Lens.Lens' BulkEmailEntryResult (Prelude.Maybe Prelude.Text)+bulkEmailEntryResult_error = Lens.lens (\BulkEmailEntryResult' {error} -> error) (\s@BulkEmailEntryResult' {} a -> s {error = a} :: BulkEmailEntryResult)++-- | The unique message identifier returned from the @SendBulkTemplatedEmail@+-- operation.+bulkEmailEntryResult_messageId :: Lens.Lens' BulkEmailEntryResult (Prelude.Maybe Prelude.Text)+bulkEmailEntryResult_messageId = Lens.lens (\BulkEmailEntryResult' {messageId} -> messageId) (\s@BulkEmailEntryResult' {} a -> s {messageId = a} :: BulkEmailEntryResult)++-- | The status of a message sent using the @SendBulkTemplatedEmail@+-- operation.+--+-- Possible values for this parameter include:+--+-- - SUCCESS: Amazon SES accepted the message, and will attempt to+-- deliver it to the recipients.+--+-- - MESSAGE_REJECTED: The message was rejected because it contained a+-- virus.+--+-- - MAIL_FROM_DOMAIN_NOT_VERIFIED: The sender\'s email address or domain+-- was not verified.+--+-- - CONFIGURATION_SET_DOES_NOT_EXIST: The configuration set you+-- specified does not exist.+--+-- - TEMPLATE_DOES_NOT_EXIST: The template you specified does not exist.+--+-- - ACCOUNT_SUSPENDED: Your account has been shut down because of issues+-- related to your email sending practices.+--+-- - ACCOUNT_THROTTLED: The number of emails you can send has been+-- reduced because your account has exceeded its allocated sending+-- limit.+--+-- - ACCOUNT_DAILY_QUOTA_EXCEEDED: You have reached or exceeded the+-- maximum number of emails you can send from your account in a 24-hour+-- period.+--+-- - INVALID_SENDING_POOL_NAME: The configuration set you specified+-- refers to an IP pool that does not exist.+--+-- - ACCOUNT_SENDING_PAUSED: Email sending for the Amazon SES account was+-- disabled using the+-- <https://docs.aws.amazon.com/ses/latest/APIReference/API_UpdateAccountSendingEnabled.html UpdateAccountSendingEnabled>+-- operation.+--+-- - CONFIGURATION_SET_SENDING_PAUSED: Email sending for this+-- configuration set was disabled using the+-- <https://docs.aws.amazon.com/ses/latest/APIReference/API_UpdateConfigurationSetSendingEnabled.html UpdateConfigurationSetSendingEnabled>+-- operation.+--+-- - INVALID_PARAMETER_VALUE: One or more of the parameters you specified+-- when calling this operation was invalid. See the error message for+-- additional information.+--+-- - TRANSIENT_FAILURE: Amazon SES was unable to process your request+-- because of a temporary issue.+--+-- - FAILED: Amazon SES was unable to process your request. See the error+-- message for additional information.+bulkEmailEntryResult_status :: Lens.Lens' BulkEmailEntryResult (Prelude.Maybe BulkEmailStatus)+bulkEmailEntryResult_status = Lens.lens (\BulkEmailEntryResult' {status} -> status) (\s@BulkEmailEntryResult' {} a -> s {status = a} :: BulkEmailEntryResult)++instance Data.FromJSON BulkEmailEntryResult where+ parseJSON =+ Data.withObject+ "BulkEmailEntryResult"+ ( \x ->+ BulkEmailEntryResult'+ Prelude.<$> (x Data..:? "Error")+ Prelude.<*> (x Data..:? "MessageId")+ Prelude.<*> (x Data..:? "Status")+ )++instance Prelude.Hashable BulkEmailEntryResult where+ hashWithSalt _salt BulkEmailEntryResult' {..} =+ _salt+ `Prelude.hashWithSalt` error+ `Prelude.hashWithSalt` messageId+ `Prelude.hashWithSalt` status++instance Prelude.NFData BulkEmailEntryResult where+ rnf BulkEmailEntryResult' {..} =+ Prelude.rnf error+ `Prelude.seq` Prelude.rnf messageId+ `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/SESV2/Types/BulkEmailStatus.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.SESV2.Types.BulkEmailStatus+-- 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.SESV2.Types.BulkEmailStatus+ ( BulkEmailStatus+ ( ..,+ BulkEmailStatus_ACCOUNT_DAILY_QUOTA_EXCEEDED,+ BulkEmailStatus_ACCOUNT_SENDING_PAUSED,+ BulkEmailStatus_ACCOUNT_SUSPENDED,+ BulkEmailStatus_ACCOUNT_THROTTLED,+ BulkEmailStatus_CONFIGURATION_SET_NOT_FOUND,+ BulkEmailStatus_CONFIGURATION_SET_SENDING_PAUSED,+ BulkEmailStatus_FAILED,+ BulkEmailStatus_INVALID_PARAMETER,+ BulkEmailStatus_INVALID_SENDING_POOL_NAME,+ BulkEmailStatus_MAIL_FROM_DOMAIN_NOT_VERIFIED,+ BulkEmailStatus_MESSAGE_REJECTED,+ BulkEmailStatus_SUCCESS,+ BulkEmailStatus_TEMPLATE_NOT_FOUND,+ BulkEmailStatus_TRANSIENT_FAILURE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype BulkEmailStatus = BulkEmailStatus'+ { fromBulkEmailStatus ::+ 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 BulkEmailStatus_ACCOUNT_DAILY_QUOTA_EXCEEDED :: BulkEmailStatus+pattern BulkEmailStatus_ACCOUNT_DAILY_QUOTA_EXCEEDED = BulkEmailStatus' "ACCOUNT_DAILY_QUOTA_EXCEEDED"++pattern BulkEmailStatus_ACCOUNT_SENDING_PAUSED :: BulkEmailStatus+pattern BulkEmailStatus_ACCOUNT_SENDING_PAUSED = BulkEmailStatus' "ACCOUNT_SENDING_PAUSED"++pattern BulkEmailStatus_ACCOUNT_SUSPENDED :: BulkEmailStatus+pattern BulkEmailStatus_ACCOUNT_SUSPENDED = BulkEmailStatus' "ACCOUNT_SUSPENDED"++pattern BulkEmailStatus_ACCOUNT_THROTTLED :: BulkEmailStatus+pattern BulkEmailStatus_ACCOUNT_THROTTLED = BulkEmailStatus' "ACCOUNT_THROTTLED"++pattern BulkEmailStatus_CONFIGURATION_SET_NOT_FOUND :: BulkEmailStatus+pattern BulkEmailStatus_CONFIGURATION_SET_NOT_FOUND = BulkEmailStatus' "CONFIGURATION_SET_NOT_FOUND"++pattern BulkEmailStatus_CONFIGURATION_SET_SENDING_PAUSED :: BulkEmailStatus+pattern BulkEmailStatus_CONFIGURATION_SET_SENDING_PAUSED = BulkEmailStatus' "CONFIGURATION_SET_SENDING_PAUSED"++pattern BulkEmailStatus_FAILED :: BulkEmailStatus+pattern BulkEmailStatus_FAILED = BulkEmailStatus' "FAILED"++pattern BulkEmailStatus_INVALID_PARAMETER :: BulkEmailStatus+pattern BulkEmailStatus_INVALID_PARAMETER = BulkEmailStatus' "INVALID_PARAMETER"++pattern BulkEmailStatus_INVALID_SENDING_POOL_NAME :: BulkEmailStatus+pattern BulkEmailStatus_INVALID_SENDING_POOL_NAME = BulkEmailStatus' "INVALID_SENDING_POOL_NAME"++pattern BulkEmailStatus_MAIL_FROM_DOMAIN_NOT_VERIFIED :: BulkEmailStatus+pattern BulkEmailStatus_MAIL_FROM_DOMAIN_NOT_VERIFIED = BulkEmailStatus' "MAIL_FROM_DOMAIN_NOT_VERIFIED"++pattern BulkEmailStatus_MESSAGE_REJECTED :: BulkEmailStatus+pattern BulkEmailStatus_MESSAGE_REJECTED = BulkEmailStatus' "MESSAGE_REJECTED"++pattern BulkEmailStatus_SUCCESS :: BulkEmailStatus+pattern BulkEmailStatus_SUCCESS = BulkEmailStatus' "SUCCESS"++pattern BulkEmailStatus_TEMPLATE_NOT_FOUND :: BulkEmailStatus+pattern BulkEmailStatus_TEMPLATE_NOT_FOUND = BulkEmailStatus' "TEMPLATE_NOT_FOUND"++pattern BulkEmailStatus_TRANSIENT_FAILURE :: BulkEmailStatus+pattern BulkEmailStatus_TRANSIENT_FAILURE = BulkEmailStatus' "TRANSIENT_FAILURE"++{-# COMPLETE+ BulkEmailStatus_ACCOUNT_DAILY_QUOTA_EXCEEDED,+ BulkEmailStatus_ACCOUNT_SENDING_PAUSED,+ BulkEmailStatus_ACCOUNT_SUSPENDED,+ BulkEmailStatus_ACCOUNT_THROTTLED,+ BulkEmailStatus_CONFIGURATION_SET_NOT_FOUND,+ BulkEmailStatus_CONFIGURATION_SET_SENDING_PAUSED,+ BulkEmailStatus_FAILED,+ BulkEmailStatus_INVALID_PARAMETER,+ BulkEmailStatus_INVALID_SENDING_POOL_NAME,+ BulkEmailStatus_MAIL_FROM_DOMAIN_NOT_VERIFIED,+ BulkEmailStatus_MESSAGE_REJECTED,+ BulkEmailStatus_SUCCESS,+ BulkEmailStatus_TEMPLATE_NOT_FOUND,+ BulkEmailStatus_TRANSIENT_FAILURE,+ BulkEmailStatus'+ #-}
+ gen/Amazonka/SESV2/Types/CloudWatchDestination.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.Types.CloudWatchDestination+-- 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.SESV2.Types.CloudWatchDestination where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.CloudWatchDimensionConfiguration++-- | An object that defines an Amazon CloudWatch destination for email+-- events. You can use Amazon CloudWatch to monitor and gain insights on+-- your email sending metrics.+--+-- /See:/ 'newCloudWatchDestination' smart constructor.+data CloudWatchDestination = CloudWatchDestination'+ { -- | An array of objects that define the dimensions to use when you send+ -- email events to Amazon CloudWatch.+ dimensionConfigurations :: [CloudWatchDimensionConfiguration]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CloudWatchDestination' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dimensionConfigurations', 'cloudWatchDestination_dimensionConfigurations' - An array of objects that define the dimensions to use when you send+-- email events to Amazon CloudWatch.+newCloudWatchDestination ::+ CloudWatchDestination+newCloudWatchDestination =+ CloudWatchDestination'+ { dimensionConfigurations =+ Prelude.mempty+ }++-- | An array of objects that define the dimensions to use when you send+-- email events to Amazon CloudWatch.+cloudWatchDestination_dimensionConfigurations :: Lens.Lens' CloudWatchDestination [CloudWatchDimensionConfiguration]+cloudWatchDestination_dimensionConfigurations = Lens.lens (\CloudWatchDestination' {dimensionConfigurations} -> dimensionConfigurations) (\s@CloudWatchDestination' {} a -> s {dimensionConfigurations = a} :: CloudWatchDestination) Prelude.. Lens.coerced++instance Data.FromJSON CloudWatchDestination where+ parseJSON =+ Data.withObject+ "CloudWatchDestination"+ ( \x ->+ CloudWatchDestination'+ Prelude.<$> ( x+ Data..:? "DimensionConfigurations"+ Data..!= Prelude.mempty+ )+ )++instance Prelude.Hashable CloudWatchDestination where+ hashWithSalt _salt CloudWatchDestination' {..} =+ _salt+ `Prelude.hashWithSalt` dimensionConfigurations++instance Prelude.NFData CloudWatchDestination where+ rnf CloudWatchDestination' {..} =+ Prelude.rnf dimensionConfigurations++instance Data.ToJSON CloudWatchDestination where+ toJSON CloudWatchDestination' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ( "DimensionConfigurations"+ Data..= dimensionConfigurations+ )+ ]+ )
+ gen/Amazonka/SESV2/Types/CloudWatchDimensionConfiguration.hs view
@@ -0,0 +1,192 @@+{-# 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.SESV2.Types.CloudWatchDimensionConfiguration+-- 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.SESV2.Types.CloudWatchDimensionConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.DimensionValueSource++-- | An object that defines the dimension configuration to use when you send+-- email events to Amazon CloudWatch.+--+-- /See:/ 'newCloudWatchDimensionConfiguration' smart constructor.+data CloudWatchDimensionConfiguration = CloudWatchDimensionConfiguration'+ { -- | The name of an Amazon CloudWatch dimension associated with an email+ -- sending metric. The name has to meet the following criteria:+ --+ -- - It can only contain ASCII letters (a–z, A–Z), numbers (0–9),+ -- underscores (_), or dashes (-).+ --+ -- - It can contain no more than 256 characters.+ dimensionName :: Prelude.Text,+ -- | The location where the Amazon SES API v2 finds the value of a dimension+ -- to publish to Amazon CloudWatch. To use the message tags that you+ -- specify using an @X-SES-MESSAGE-TAGS@ header or a parameter to the+ -- @SendEmail@ or @SendRawEmail@ API, choose @messageTag@. To use your own+ -- email headers, choose @emailHeader@. To use link tags, choose+ -- @linkTags@.+ dimensionValueSource :: DimensionValueSource,+ -- | The default value of the dimension that is published to Amazon+ -- CloudWatch if you don\'t provide the value of the dimension when you+ -- send an email. This value has to meet the following criteria:+ --+ -- - Can only contain ASCII letters (a–z, A–Z), numbers (0–9),+ -- underscores (_), or dashes (-), at signs (\@), and periods (.).+ --+ -- - It can contain no more than 256 characters.+ defaultDimensionValue :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CloudWatchDimensionConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dimensionName', 'cloudWatchDimensionConfiguration_dimensionName' - The name of an Amazon CloudWatch dimension associated with an email+-- sending metric. The name has to meet the following criteria:+--+-- - It can only contain ASCII letters (a–z, A–Z), numbers (0–9),+-- underscores (_), or dashes (-).+--+-- - It can contain no more than 256 characters.+--+-- 'dimensionValueSource', 'cloudWatchDimensionConfiguration_dimensionValueSource' - The location where the Amazon SES API v2 finds the value of a dimension+-- to publish to Amazon CloudWatch. To use the message tags that you+-- specify using an @X-SES-MESSAGE-TAGS@ header or a parameter to the+-- @SendEmail@ or @SendRawEmail@ API, choose @messageTag@. To use your own+-- email headers, choose @emailHeader@. To use link tags, choose+-- @linkTags@.+--+-- 'defaultDimensionValue', 'cloudWatchDimensionConfiguration_defaultDimensionValue' - The default value of the dimension that is published to Amazon+-- CloudWatch if you don\'t provide the value of the dimension when you+-- send an email. This value has to meet the following criteria:+--+-- - Can only contain ASCII letters (a–z, A–Z), numbers (0–9),+-- underscores (_), or dashes (-), at signs (\@), and periods (.).+--+-- - It can contain no more than 256 characters.+newCloudWatchDimensionConfiguration ::+ -- | 'dimensionName'+ Prelude.Text ->+ -- | 'dimensionValueSource'+ DimensionValueSource ->+ -- | 'defaultDimensionValue'+ Prelude.Text ->+ CloudWatchDimensionConfiguration+newCloudWatchDimensionConfiguration+ pDimensionName_+ pDimensionValueSource_+ pDefaultDimensionValue_ =+ CloudWatchDimensionConfiguration'+ { dimensionName =+ pDimensionName_,+ dimensionValueSource =+ pDimensionValueSource_,+ defaultDimensionValue =+ pDefaultDimensionValue_+ }++-- | The name of an Amazon CloudWatch dimension associated with an email+-- sending metric. The name has to meet the following criteria:+--+-- - It can only contain ASCII letters (a–z, A–Z), numbers (0–9),+-- underscores (_), or dashes (-).+--+-- - It can contain no more than 256 characters.+cloudWatchDimensionConfiguration_dimensionName :: Lens.Lens' CloudWatchDimensionConfiguration Prelude.Text+cloudWatchDimensionConfiguration_dimensionName = Lens.lens (\CloudWatchDimensionConfiguration' {dimensionName} -> dimensionName) (\s@CloudWatchDimensionConfiguration' {} a -> s {dimensionName = a} :: CloudWatchDimensionConfiguration)++-- | The location where the Amazon SES API v2 finds the value of a dimension+-- to publish to Amazon CloudWatch. To use the message tags that you+-- specify using an @X-SES-MESSAGE-TAGS@ header or a parameter to the+-- @SendEmail@ or @SendRawEmail@ API, choose @messageTag@. To use your own+-- email headers, choose @emailHeader@. To use link tags, choose+-- @linkTags@.+cloudWatchDimensionConfiguration_dimensionValueSource :: Lens.Lens' CloudWatchDimensionConfiguration DimensionValueSource+cloudWatchDimensionConfiguration_dimensionValueSource = Lens.lens (\CloudWatchDimensionConfiguration' {dimensionValueSource} -> dimensionValueSource) (\s@CloudWatchDimensionConfiguration' {} a -> s {dimensionValueSource = a} :: CloudWatchDimensionConfiguration)++-- | The default value of the dimension that is published to Amazon+-- CloudWatch if you don\'t provide the value of the dimension when you+-- send an email. This value has to meet the following criteria:+--+-- - Can only contain ASCII letters (a–z, A–Z), numbers (0–9),+-- underscores (_), or dashes (-), at signs (\@), and periods (.).+--+-- - It can contain no more than 256 characters.+cloudWatchDimensionConfiguration_defaultDimensionValue :: Lens.Lens' CloudWatchDimensionConfiguration Prelude.Text+cloudWatchDimensionConfiguration_defaultDimensionValue = Lens.lens (\CloudWatchDimensionConfiguration' {defaultDimensionValue} -> defaultDimensionValue) (\s@CloudWatchDimensionConfiguration' {} a -> s {defaultDimensionValue = a} :: CloudWatchDimensionConfiguration)++instance+ Data.FromJSON+ CloudWatchDimensionConfiguration+ where+ parseJSON =+ Data.withObject+ "CloudWatchDimensionConfiguration"+ ( \x ->+ CloudWatchDimensionConfiguration'+ Prelude.<$> (x Data..: "DimensionName")+ Prelude.<*> (x Data..: "DimensionValueSource")+ Prelude.<*> (x Data..: "DefaultDimensionValue")+ )++instance+ Prelude.Hashable+ CloudWatchDimensionConfiguration+ where+ hashWithSalt+ _salt+ CloudWatchDimensionConfiguration' {..} =+ _salt+ `Prelude.hashWithSalt` dimensionName+ `Prelude.hashWithSalt` dimensionValueSource+ `Prelude.hashWithSalt` defaultDimensionValue++instance+ Prelude.NFData+ CloudWatchDimensionConfiguration+ where+ rnf CloudWatchDimensionConfiguration' {..} =+ Prelude.rnf dimensionName+ `Prelude.seq` Prelude.rnf dimensionValueSource+ `Prelude.seq` Prelude.rnf defaultDimensionValue++instance Data.ToJSON CloudWatchDimensionConfiguration where+ toJSON CloudWatchDimensionConfiguration' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("DimensionName" Data..= dimensionName),+ Prelude.Just+ ( "DimensionValueSource"+ Data..= dimensionValueSource+ ),+ Prelude.Just+ ( "DefaultDimensionValue"+ Data..= defaultDimensionValue+ )+ ]+ )
+ gen/Amazonka/SESV2/Types/Contact.hs view
@@ -0,0 +1,130 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.Types.Contact+-- 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.SESV2.Types.Contact where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.TopicPreference++-- | A contact is the end-user who is receiving the email.+--+-- /See:/ 'newContact' smart constructor.+data Contact = Contact'+ { -- | The contact\'s email address.+ emailAddress :: Prelude.Maybe Prelude.Text,+ -- | A timestamp noting the last time the contact\'s information was updated.+ lastUpdatedTimestamp :: Prelude.Maybe Data.POSIX,+ -- | The default topic preferences applied to the contact.+ topicDefaultPreferences :: Prelude.Maybe [TopicPreference],+ -- | The contact\'s preference for being opted-in to or opted-out of a topic.+ topicPreferences :: Prelude.Maybe [TopicPreference],+ -- | A boolean value status noting if the contact is unsubscribed from all+ -- contact list topics.+ unsubscribeAll :: Prelude.Maybe Prelude.Bool+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Contact' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'emailAddress', 'contact_emailAddress' - The contact\'s email address.+--+-- 'lastUpdatedTimestamp', 'contact_lastUpdatedTimestamp' - A timestamp noting the last time the contact\'s information was updated.+--+-- 'topicDefaultPreferences', 'contact_topicDefaultPreferences' - The default topic preferences applied to the contact.+--+-- 'topicPreferences', 'contact_topicPreferences' - The contact\'s preference for being opted-in to or opted-out of a topic.+--+-- 'unsubscribeAll', 'contact_unsubscribeAll' - A boolean value status noting if the contact is unsubscribed from all+-- contact list topics.+newContact ::+ Contact+newContact =+ Contact'+ { emailAddress = Prelude.Nothing,+ lastUpdatedTimestamp = Prelude.Nothing,+ topicDefaultPreferences = Prelude.Nothing,+ topicPreferences = Prelude.Nothing,+ unsubscribeAll = Prelude.Nothing+ }++-- | The contact\'s email address.+contact_emailAddress :: Lens.Lens' Contact (Prelude.Maybe Prelude.Text)+contact_emailAddress = Lens.lens (\Contact' {emailAddress} -> emailAddress) (\s@Contact' {} a -> s {emailAddress = a} :: Contact)++-- | A timestamp noting the last time the contact\'s information was updated.+contact_lastUpdatedTimestamp :: Lens.Lens' Contact (Prelude.Maybe Prelude.UTCTime)+contact_lastUpdatedTimestamp = Lens.lens (\Contact' {lastUpdatedTimestamp} -> lastUpdatedTimestamp) (\s@Contact' {} a -> s {lastUpdatedTimestamp = a} :: Contact) Prelude.. Lens.mapping Data._Time++-- | The default topic preferences applied to the contact.+contact_topicDefaultPreferences :: Lens.Lens' Contact (Prelude.Maybe [TopicPreference])+contact_topicDefaultPreferences = Lens.lens (\Contact' {topicDefaultPreferences} -> topicDefaultPreferences) (\s@Contact' {} a -> s {topicDefaultPreferences = a} :: Contact) Prelude.. Lens.mapping Lens.coerced++-- | The contact\'s preference for being opted-in to or opted-out of a topic.+contact_topicPreferences :: Lens.Lens' Contact (Prelude.Maybe [TopicPreference])+contact_topicPreferences = Lens.lens (\Contact' {topicPreferences} -> topicPreferences) (\s@Contact' {} a -> s {topicPreferences = a} :: Contact) Prelude.. Lens.mapping Lens.coerced++-- | A boolean value status noting if the contact is unsubscribed from all+-- contact list topics.+contact_unsubscribeAll :: Lens.Lens' Contact (Prelude.Maybe Prelude.Bool)+contact_unsubscribeAll = Lens.lens (\Contact' {unsubscribeAll} -> unsubscribeAll) (\s@Contact' {} a -> s {unsubscribeAll = a} :: Contact)++instance Data.FromJSON Contact where+ parseJSON =+ Data.withObject+ "Contact"+ ( \x ->+ Contact'+ Prelude.<$> (x Data..:? "EmailAddress")+ Prelude.<*> (x Data..:? "LastUpdatedTimestamp")+ Prelude.<*> ( x+ Data..:? "TopicDefaultPreferences"+ Data..!= Prelude.mempty+ )+ Prelude.<*> ( x+ Data..:? "TopicPreferences"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "UnsubscribeAll")+ )++instance Prelude.Hashable Contact where+ hashWithSalt _salt Contact' {..} =+ _salt+ `Prelude.hashWithSalt` emailAddress+ `Prelude.hashWithSalt` lastUpdatedTimestamp+ `Prelude.hashWithSalt` topicDefaultPreferences+ `Prelude.hashWithSalt` topicPreferences+ `Prelude.hashWithSalt` unsubscribeAll++instance Prelude.NFData Contact where+ rnf Contact' {..} =+ Prelude.rnf emailAddress+ `Prelude.seq` Prelude.rnf lastUpdatedTimestamp+ `Prelude.seq` Prelude.rnf topicDefaultPreferences+ `Prelude.seq` Prelude.rnf topicPreferences+ `Prelude.seq` Prelude.rnf unsubscribeAll
+ gen/Amazonka/SESV2/Types/ContactLanguage.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.SESV2.Types.ContactLanguage+-- 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.SESV2.Types.ContactLanguage+ ( ContactLanguage+ ( ..,+ ContactLanguage_EN,+ ContactLanguage_JA+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ContactLanguage = ContactLanguage'+ { fromContactLanguage ::+ 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 ContactLanguage_EN :: ContactLanguage+pattern ContactLanguage_EN = ContactLanguage' "EN"++pattern ContactLanguage_JA :: ContactLanguage+pattern ContactLanguage_JA = ContactLanguage' "JA"++{-# COMPLETE+ ContactLanguage_EN,+ ContactLanguage_JA,+ ContactLanguage'+ #-}
+ gen/Amazonka/SESV2/Types/ContactList.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.SESV2.Types.ContactList+-- 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.SESV2.Types.ContactList 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 list that contains contacts that have subscribed to a particular topic+-- or topics.+--+-- /See:/ 'newContactList' smart constructor.+data ContactList = ContactList'+ { -- | The name of the contact list.+ contactListName :: Prelude.Maybe Prelude.Text,+ -- | A timestamp noting the last time the contact list was updated.+ lastUpdatedTimestamp :: Prelude.Maybe Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ContactList' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contactListName', 'contactList_contactListName' - The name of the contact list.+--+-- 'lastUpdatedTimestamp', 'contactList_lastUpdatedTimestamp' - A timestamp noting the last time the contact list was updated.+newContactList ::+ ContactList+newContactList =+ ContactList'+ { contactListName = Prelude.Nothing,+ lastUpdatedTimestamp = Prelude.Nothing+ }++-- | The name of the contact list.+contactList_contactListName :: Lens.Lens' ContactList (Prelude.Maybe Prelude.Text)+contactList_contactListName = Lens.lens (\ContactList' {contactListName} -> contactListName) (\s@ContactList' {} a -> s {contactListName = a} :: ContactList)++-- | A timestamp noting the last time the contact list was updated.+contactList_lastUpdatedTimestamp :: Lens.Lens' ContactList (Prelude.Maybe Prelude.UTCTime)+contactList_lastUpdatedTimestamp = Lens.lens (\ContactList' {lastUpdatedTimestamp} -> lastUpdatedTimestamp) (\s@ContactList' {} a -> s {lastUpdatedTimestamp = a} :: ContactList) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON ContactList where+ parseJSON =+ Data.withObject+ "ContactList"+ ( \x ->+ ContactList'+ Prelude.<$> (x Data..:? "ContactListName")+ Prelude.<*> (x Data..:? "LastUpdatedTimestamp")+ )++instance Prelude.Hashable ContactList where+ hashWithSalt _salt ContactList' {..} =+ _salt+ `Prelude.hashWithSalt` contactListName+ `Prelude.hashWithSalt` lastUpdatedTimestamp++instance Prelude.NFData ContactList where+ rnf ContactList' {..} =+ Prelude.rnf contactListName+ `Prelude.seq` Prelude.rnf lastUpdatedTimestamp
+ gen/Amazonka/SESV2/Types/ContactListDestination.hs view
@@ -0,0 +1,123 @@+{-# 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.SESV2.Types.ContactListDestination+-- 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.SESV2.Types.ContactListDestination where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.ContactListImportAction++-- | An object that contains details about the action of a contact list.+--+-- /See:/ 'newContactListDestination' smart constructor.+data ContactListDestination = ContactListDestination'+ { -- | The name of the contact list.+ contactListName :: Prelude.Text,+ -- | >The type of action to perform on the addresses. The following are the+ -- possible values:+ --+ -- - PUT: add the addresses to the contact list. If the record already+ -- exists, it will override it with the new value.+ --+ -- - DELETE: remove the addresses from the contact list.+ contactListImportAction :: ContactListImportAction+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ContactListDestination' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contactListName', 'contactListDestination_contactListName' - The name of the contact list.+--+-- 'contactListImportAction', 'contactListDestination_contactListImportAction' - >The type of action to perform on the addresses. The following are the+-- possible values:+--+-- - PUT: add the addresses to the contact list. If the record already+-- exists, it will override it with the new value.+--+-- - DELETE: remove the addresses from the contact list.+newContactListDestination ::+ -- | 'contactListName'+ Prelude.Text ->+ -- | 'contactListImportAction'+ ContactListImportAction ->+ ContactListDestination+newContactListDestination+ pContactListName_+ pContactListImportAction_ =+ ContactListDestination'+ { contactListName =+ pContactListName_,+ contactListImportAction = pContactListImportAction_+ }++-- | The name of the contact list.+contactListDestination_contactListName :: Lens.Lens' ContactListDestination Prelude.Text+contactListDestination_contactListName = Lens.lens (\ContactListDestination' {contactListName} -> contactListName) (\s@ContactListDestination' {} a -> s {contactListName = a} :: ContactListDestination)++-- | >The type of action to perform on the addresses. The following are the+-- possible values:+--+-- - PUT: add the addresses to the contact list. If the record already+-- exists, it will override it with the new value.+--+-- - DELETE: remove the addresses from the contact list.+contactListDestination_contactListImportAction :: Lens.Lens' ContactListDestination ContactListImportAction+contactListDestination_contactListImportAction = Lens.lens (\ContactListDestination' {contactListImportAction} -> contactListImportAction) (\s@ContactListDestination' {} a -> s {contactListImportAction = a} :: ContactListDestination)++instance Data.FromJSON ContactListDestination where+ parseJSON =+ Data.withObject+ "ContactListDestination"+ ( \x ->+ ContactListDestination'+ Prelude.<$> (x Data..: "ContactListName")+ Prelude.<*> (x Data..: "ContactListImportAction")+ )++instance Prelude.Hashable ContactListDestination where+ hashWithSalt _salt ContactListDestination' {..} =+ _salt+ `Prelude.hashWithSalt` contactListName+ `Prelude.hashWithSalt` contactListImportAction++instance Prelude.NFData ContactListDestination where+ rnf ContactListDestination' {..} =+ Prelude.rnf contactListName+ `Prelude.seq` Prelude.rnf contactListImportAction++instance Data.ToJSON ContactListDestination where+ toJSON ContactListDestination' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("ContactListName" Data..= contactListName),+ Prelude.Just+ ( "ContactListImportAction"+ Data..= contactListImportAction+ )+ ]+ )
+ gen/Amazonka/SESV2/Types/ContactListImportAction.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.SESV2.Types.ContactListImportAction+-- 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.SESV2.Types.ContactListImportAction+ ( ContactListImportAction+ ( ..,+ ContactListImportAction_DELETE,+ ContactListImportAction_PUT+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ContactListImportAction = ContactListImportAction'+ { fromContactListImportAction ::+ 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 ContactListImportAction_DELETE :: ContactListImportAction+pattern ContactListImportAction_DELETE = ContactListImportAction' "DELETE"++pattern ContactListImportAction_PUT :: ContactListImportAction+pattern ContactListImportAction_PUT = ContactListImportAction' "PUT"++{-# COMPLETE+ ContactListImportAction_DELETE,+ ContactListImportAction_PUT,+ ContactListImportAction'+ #-}
+ gen/Amazonka/SESV2/Types/Content.hs view
@@ -0,0 +1,94 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.Types.Content+-- 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.SESV2.Types.Content 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 that represents the content of the email, and optionally a+-- character set specification.+--+-- /See:/ 'newContent' smart constructor.+data Content = Content'+ { -- | The character set for the content. Because of the constraints of the+ -- SMTP protocol, Amazon SES uses 7-bit ASCII by default. If the text+ -- includes characters outside of the ASCII range, you have to specify a+ -- character set. For example, you could specify @UTF-8@, @ISO-8859-1@, or+ -- @Shift_JIS@.+ charset :: Prelude.Maybe Prelude.Text,+ -- | The content of the message itself.+ data' :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Content' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'charset', 'content_charset' - The character set for the content. Because of the constraints of the+-- SMTP protocol, Amazon SES uses 7-bit ASCII by default. If the text+-- includes characters outside of the ASCII range, you have to specify a+-- character set. For example, you could specify @UTF-8@, @ISO-8859-1@, or+-- @Shift_JIS@.+--+-- 'data'', 'content_data' - The content of the message itself.+newContent ::+ -- | 'data''+ Prelude.Text ->+ Content+newContent pData_ =+ Content' {charset = Prelude.Nothing, data' = pData_}++-- | The character set for the content. Because of the constraints of the+-- SMTP protocol, Amazon SES uses 7-bit ASCII by default. If the text+-- includes characters outside of the ASCII range, you have to specify a+-- character set. For example, you could specify @UTF-8@, @ISO-8859-1@, or+-- @Shift_JIS@.+content_charset :: Lens.Lens' Content (Prelude.Maybe Prelude.Text)+content_charset = Lens.lens (\Content' {charset} -> charset) (\s@Content' {} a -> s {charset = a} :: Content)++-- | The content of the message itself.+content_data :: Lens.Lens' Content Prelude.Text+content_data = Lens.lens (\Content' {data'} -> data') (\s@Content' {} a -> s {data' = a} :: Content)++instance Prelude.Hashable Content where+ hashWithSalt _salt Content' {..} =+ _salt+ `Prelude.hashWithSalt` charset+ `Prelude.hashWithSalt` data'++instance Prelude.NFData Content where+ rnf Content' {..} =+ Prelude.rnf charset `Prelude.seq` Prelude.rnf data'++instance Data.ToJSON Content where+ toJSON Content' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Charset" Data..=) Prelude.<$> charset,+ Prelude.Just ("Data" Data..= data')+ ]+ )
+ gen/Amazonka/SESV2/Types/CustomVerificationEmailTemplateMetadata.hs view
@@ -0,0 +1,139 @@+{-# 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.SESV2.Types.CustomVerificationEmailTemplateMetadata+-- 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.SESV2.Types.CustomVerificationEmailTemplateMetadata 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++-- | Contains information about a custom verification email template.+--+-- /See:/ 'newCustomVerificationEmailTemplateMetadata' smart constructor.+data CustomVerificationEmailTemplateMetadata = CustomVerificationEmailTemplateMetadata'+ { -- | The URL that the recipient of the verification email is sent to if his+ -- or her address is not successfully verified.+ failureRedirectionURL :: Prelude.Maybe Prelude.Text,+ -- | The email address that the custom verification email is sent from.+ fromEmailAddress :: Prelude.Maybe Prelude.Text,+ -- | The URL that the recipient of the verification email is sent to if his+ -- or her address is successfully verified.+ successRedirectionURL :: Prelude.Maybe Prelude.Text,+ -- | The name of the custom verification email template.+ templateName :: Prelude.Maybe Prelude.Text,+ -- | The subject line of the custom verification email.+ templateSubject :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CustomVerificationEmailTemplateMetadata' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'failureRedirectionURL', 'customVerificationEmailTemplateMetadata_failureRedirectionURL' - The URL that the recipient of the verification email is sent to if his+-- or her address is not successfully verified.+--+-- 'fromEmailAddress', 'customVerificationEmailTemplateMetadata_fromEmailAddress' - The email address that the custom verification email is sent from.+--+-- 'successRedirectionURL', 'customVerificationEmailTemplateMetadata_successRedirectionURL' - The URL that the recipient of the verification email is sent to if his+-- or her address is successfully verified.+--+-- 'templateName', 'customVerificationEmailTemplateMetadata_templateName' - The name of the custom verification email template.+--+-- 'templateSubject', 'customVerificationEmailTemplateMetadata_templateSubject' - The subject line of the custom verification email.+newCustomVerificationEmailTemplateMetadata ::+ CustomVerificationEmailTemplateMetadata+newCustomVerificationEmailTemplateMetadata =+ CustomVerificationEmailTemplateMetadata'+ { failureRedirectionURL =+ Prelude.Nothing,+ fromEmailAddress = Prelude.Nothing,+ successRedirectionURL =+ Prelude.Nothing,+ templateName = Prelude.Nothing,+ templateSubject = Prelude.Nothing+ }++-- | The URL that the recipient of the verification email is sent to if his+-- or her address is not successfully verified.+customVerificationEmailTemplateMetadata_failureRedirectionURL :: Lens.Lens' CustomVerificationEmailTemplateMetadata (Prelude.Maybe Prelude.Text)+customVerificationEmailTemplateMetadata_failureRedirectionURL = Lens.lens (\CustomVerificationEmailTemplateMetadata' {failureRedirectionURL} -> failureRedirectionURL) (\s@CustomVerificationEmailTemplateMetadata' {} a -> s {failureRedirectionURL = a} :: CustomVerificationEmailTemplateMetadata)++-- | The email address that the custom verification email is sent from.+customVerificationEmailTemplateMetadata_fromEmailAddress :: Lens.Lens' CustomVerificationEmailTemplateMetadata (Prelude.Maybe Prelude.Text)+customVerificationEmailTemplateMetadata_fromEmailAddress = Lens.lens (\CustomVerificationEmailTemplateMetadata' {fromEmailAddress} -> fromEmailAddress) (\s@CustomVerificationEmailTemplateMetadata' {} a -> s {fromEmailAddress = a} :: CustomVerificationEmailTemplateMetadata)++-- | The URL that the recipient of the verification email is sent to if his+-- or her address is successfully verified.+customVerificationEmailTemplateMetadata_successRedirectionURL :: Lens.Lens' CustomVerificationEmailTemplateMetadata (Prelude.Maybe Prelude.Text)+customVerificationEmailTemplateMetadata_successRedirectionURL = Lens.lens (\CustomVerificationEmailTemplateMetadata' {successRedirectionURL} -> successRedirectionURL) (\s@CustomVerificationEmailTemplateMetadata' {} a -> s {successRedirectionURL = a} :: CustomVerificationEmailTemplateMetadata)++-- | The name of the custom verification email template.+customVerificationEmailTemplateMetadata_templateName :: Lens.Lens' CustomVerificationEmailTemplateMetadata (Prelude.Maybe Prelude.Text)+customVerificationEmailTemplateMetadata_templateName = Lens.lens (\CustomVerificationEmailTemplateMetadata' {templateName} -> templateName) (\s@CustomVerificationEmailTemplateMetadata' {} a -> s {templateName = a} :: CustomVerificationEmailTemplateMetadata)++-- | The subject line of the custom verification email.+customVerificationEmailTemplateMetadata_templateSubject :: Lens.Lens' CustomVerificationEmailTemplateMetadata (Prelude.Maybe Prelude.Text)+customVerificationEmailTemplateMetadata_templateSubject = Lens.lens (\CustomVerificationEmailTemplateMetadata' {templateSubject} -> templateSubject) (\s@CustomVerificationEmailTemplateMetadata' {} a -> s {templateSubject = a} :: CustomVerificationEmailTemplateMetadata)++instance+ Data.FromJSON+ CustomVerificationEmailTemplateMetadata+ where+ parseJSON =+ Data.withObject+ "CustomVerificationEmailTemplateMetadata"+ ( \x ->+ CustomVerificationEmailTemplateMetadata'+ Prelude.<$> (x Data..:? "FailureRedirectionURL")+ Prelude.<*> (x Data..:? "FromEmailAddress")+ Prelude.<*> (x Data..:? "SuccessRedirectionURL")+ Prelude.<*> (x Data..:? "TemplateName")+ Prelude.<*> (x Data..:? "TemplateSubject")+ )++instance+ Prelude.Hashable+ CustomVerificationEmailTemplateMetadata+ where+ hashWithSalt+ _salt+ CustomVerificationEmailTemplateMetadata' {..} =+ _salt+ `Prelude.hashWithSalt` failureRedirectionURL+ `Prelude.hashWithSalt` fromEmailAddress+ `Prelude.hashWithSalt` successRedirectionURL+ `Prelude.hashWithSalt` templateName+ `Prelude.hashWithSalt` templateSubject++instance+ Prelude.NFData+ CustomVerificationEmailTemplateMetadata+ where+ rnf CustomVerificationEmailTemplateMetadata' {..} =+ Prelude.rnf failureRedirectionURL+ `Prelude.seq` Prelude.rnf fromEmailAddress+ `Prelude.seq` Prelude.rnf successRedirectionURL+ `Prelude.seq` Prelude.rnf templateName+ `Prelude.seq` Prelude.rnf templateSubject
+ gen/Amazonka/SESV2/Types/DailyVolume.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.SESV2.Types.DailyVolume+-- 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.SESV2.Types.DailyVolume where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.DomainIspPlacement+import Amazonka.SESV2.Types.VolumeStatistics++-- | An object that contains information about the volume of email sent on+-- each day of the analysis period.+--+-- /See:/ 'newDailyVolume' smart constructor.+data DailyVolume = DailyVolume'+ { -- | An object that contains inbox placement metrics for a specified day in+ -- the analysis period, broken out by the recipient\'s email provider.+ domainIspPlacements :: Prelude.Maybe [DomainIspPlacement],+ -- | The date that the DailyVolume metrics apply to, in Unix time.+ startDate :: Prelude.Maybe Data.POSIX,+ -- | An object that contains inbox placement metrics for a specific day in+ -- the analysis period.+ volumeStatistics :: Prelude.Maybe VolumeStatistics+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DailyVolume' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'domainIspPlacements', 'dailyVolume_domainIspPlacements' - An object that contains inbox placement metrics for a specified day in+-- the analysis period, broken out by the recipient\'s email provider.+--+-- 'startDate', 'dailyVolume_startDate' - The date that the DailyVolume metrics apply to, in Unix time.+--+-- 'volumeStatistics', 'dailyVolume_volumeStatistics' - An object that contains inbox placement metrics for a specific day in+-- the analysis period.+newDailyVolume ::+ DailyVolume+newDailyVolume =+ DailyVolume'+ { domainIspPlacements = Prelude.Nothing,+ startDate = Prelude.Nothing,+ volumeStatistics = Prelude.Nothing+ }++-- | An object that contains inbox placement metrics for a specified day in+-- the analysis period, broken out by the recipient\'s email provider.+dailyVolume_domainIspPlacements :: Lens.Lens' DailyVolume (Prelude.Maybe [DomainIspPlacement])+dailyVolume_domainIspPlacements = Lens.lens (\DailyVolume' {domainIspPlacements} -> domainIspPlacements) (\s@DailyVolume' {} a -> s {domainIspPlacements = a} :: DailyVolume) Prelude.. Lens.mapping Lens.coerced++-- | The date that the DailyVolume metrics apply to, in Unix time.+dailyVolume_startDate :: Lens.Lens' DailyVolume (Prelude.Maybe Prelude.UTCTime)+dailyVolume_startDate = Lens.lens (\DailyVolume' {startDate} -> startDate) (\s@DailyVolume' {} a -> s {startDate = a} :: DailyVolume) Prelude.. Lens.mapping Data._Time++-- | An object that contains inbox placement metrics for a specific day in+-- the analysis period.+dailyVolume_volumeStatistics :: Lens.Lens' DailyVolume (Prelude.Maybe VolumeStatistics)+dailyVolume_volumeStatistics = Lens.lens (\DailyVolume' {volumeStatistics} -> volumeStatistics) (\s@DailyVolume' {} a -> s {volumeStatistics = a} :: DailyVolume)++instance Data.FromJSON DailyVolume where+ parseJSON =+ Data.withObject+ "DailyVolume"+ ( \x ->+ DailyVolume'+ Prelude.<$> ( x+ Data..:? "DomainIspPlacements"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "StartDate")+ Prelude.<*> (x Data..:? "VolumeStatistics")+ )++instance Prelude.Hashable DailyVolume where+ hashWithSalt _salt DailyVolume' {..} =+ _salt+ `Prelude.hashWithSalt` domainIspPlacements+ `Prelude.hashWithSalt` startDate+ `Prelude.hashWithSalt` volumeStatistics++instance Prelude.NFData DailyVolume where+ rnf DailyVolume' {..} =+ Prelude.rnf domainIspPlacements+ `Prelude.seq` Prelude.rnf startDate+ `Prelude.seq` Prelude.rnf volumeStatistics
+ gen/Amazonka/SESV2/Types/DashboardAttributes.hs view
@@ -0,0 +1,101 @@+{-# 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.SESV2.Types.DashboardAttributes+-- 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.SESV2.Types.DashboardAttributes where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.FeatureStatus++-- | An object containing additional settings for your VDM configuration as+-- applicable to the Dashboard.+--+-- /See:/ 'newDashboardAttributes' smart constructor.+data DashboardAttributes = DashboardAttributes'+ { -- | Specifies the status of your VDM engagement metrics collection. Can be+ -- one of the following:+ --+ -- - @ENABLED@ – Amazon SES enables engagement metrics for your account.+ --+ -- - @DISABLED@ – Amazon SES disables engagement metrics for your+ -- account.+ engagementMetrics :: Prelude.Maybe FeatureStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DashboardAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'engagementMetrics', 'dashboardAttributes_engagementMetrics' - Specifies the status of your VDM engagement metrics collection. Can be+-- one of the following:+--+-- - @ENABLED@ – Amazon SES enables engagement metrics for your account.+--+-- - @DISABLED@ – Amazon SES disables engagement metrics for your+-- account.+newDashboardAttributes ::+ DashboardAttributes+newDashboardAttributes =+ DashboardAttributes'+ { engagementMetrics =+ Prelude.Nothing+ }++-- | Specifies the status of your VDM engagement metrics collection. Can be+-- one of the following:+--+-- - @ENABLED@ – Amazon SES enables engagement metrics for your account.+--+-- - @DISABLED@ – Amazon SES disables engagement metrics for your+-- account.+dashboardAttributes_engagementMetrics :: Lens.Lens' DashboardAttributes (Prelude.Maybe FeatureStatus)+dashboardAttributes_engagementMetrics = Lens.lens (\DashboardAttributes' {engagementMetrics} -> engagementMetrics) (\s@DashboardAttributes' {} a -> s {engagementMetrics = a} :: DashboardAttributes)++instance Data.FromJSON DashboardAttributes where+ parseJSON =+ Data.withObject+ "DashboardAttributes"+ ( \x ->+ DashboardAttributes'+ Prelude.<$> (x Data..:? "EngagementMetrics")+ )++instance Prelude.Hashable DashboardAttributes where+ hashWithSalt _salt DashboardAttributes' {..} =+ _salt `Prelude.hashWithSalt` engagementMetrics++instance Prelude.NFData DashboardAttributes where+ rnf DashboardAttributes' {..} =+ Prelude.rnf engagementMetrics++instance Data.ToJSON DashboardAttributes where+ toJSON DashboardAttributes' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("EngagementMetrics" Data..=)+ Prelude.<$> engagementMetrics+ ]+ )
+ gen/Amazonka/SESV2/Types/DashboardOptions.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.SESV2.Types.DashboardOptions+-- 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.SESV2.Types.DashboardOptions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.FeatureStatus++-- | An object containing additional settings for your VDM configuration as+-- applicable to the Dashboard.+--+-- /See:/ 'newDashboardOptions' smart constructor.+data DashboardOptions = DashboardOptions'+ { -- | Specifies the status of your VDM engagement metrics collection. Can be+ -- one of the following:+ --+ -- - @ENABLED@ – Amazon SES enables engagement metrics for the+ -- configuration set.+ --+ -- - @DISABLED@ – Amazon SES disables engagement metrics for the+ -- configuration set.+ engagementMetrics :: Prelude.Maybe FeatureStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DashboardOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'engagementMetrics', 'dashboardOptions_engagementMetrics' - Specifies the status of your VDM engagement metrics collection. Can be+-- one of the following:+--+-- - @ENABLED@ – Amazon SES enables engagement metrics for the+-- configuration set.+--+-- - @DISABLED@ – Amazon SES disables engagement metrics for the+-- configuration set.+newDashboardOptions ::+ DashboardOptions+newDashboardOptions =+ DashboardOptions'+ { engagementMetrics =+ Prelude.Nothing+ }++-- | Specifies the status of your VDM engagement metrics collection. Can be+-- one of the following:+--+-- - @ENABLED@ – Amazon SES enables engagement metrics for the+-- configuration set.+--+-- - @DISABLED@ – Amazon SES disables engagement metrics for the+-- configuration set.+dashboardOptions_engagementMetrics :: Lens.Lens' DashboardOptions (Prelude.Maybe FeatureStatus)+dashboardOptions_engagementMetrics = Lens.lens (\DashboardOptions' {engagementMetrics} -> engagementMetrics) (\s@DashboardOptions' {} a -> s {engagementMetrics = a} :: DashboardOptions)++instance Data.FromJSON DashboardOptions where+ parseJSON =+ Data.withObject+ "DashboardOptions"+ ( \x ->+ DashboardOptions'+ Prelude.<$> (x Data..:? "EngagementMetrics")+ )++instance Prelude.Hashable DashboardOptions where+ hashWithSalt _salt DashboardOptions' {..} =+ _salt `Prelude.hashWithSalt` engagementMetrics++instance Prelude.NFData DashboardOptions where+ rnf DashboardOptions' {..} =+ Prelude.rnf engagementMetrics++instance Data.ToJSON DashboardOptions where+ toJSON DashboardOptions' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("EngagementMetrics" Data..=)+ Prelude.<$> engagementMetrics+ ]+ )
+ gen/Amazonka/SESV2/Types/DataFormat.hs view
@@ -0,0 +1,72 @@+{-# 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.SESV2.Types.DataFormat+-- 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.SESV2.Types.DataFormat+ ( DataFormat+ ( ..,+ DataFormat_CSV,+ DataFormat_JSON+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The data format of the import job\'s data source.+newtype DataFormat = DataFormat'+ { fromDataFormat ::+ 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 DataFormat_CSV :: DataFormat+pattern DataFormat_CSV = DataFormat' "CSV"++pattern DataFormat_JSON :: DataFormat+pattern DataFormat_JSON = DataFormat' "JSON"++{-# COMPLETE+ DataFormat_CSV,+ DataFormat_JSON,+ DataFormat'+ #-}
+ gen/Amazonka/SESV2/Types/DedicatedIp.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.SESV2.Types.DedicatedIp+-- 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.SESV2.Types.DedicatedIp where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.WarmupStatus++-- | Contains information about a dedicated IP address that is associated+-- with your Amazon SES account.+--+-- To learn more about requesting dedicated IP addresses, see+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/dedicated-ip-case.html Requesting and Relinquishing Dedicated IP Addresses>+-- in the /Amazon SES Developer Guide/.+--+-- /See:/ 'newDedicatedIp' smart constructor.+data DedicatedIp = DedicatedIp'+ { -- | The name of the dedicated IP pool that the IP address is associated+ -- with.+ poolName :: Prelude.Maybe Prelude.Text,+ -- | An IPv4 address.+ ip :: Prelude.Text,+ -- | The warm-up status of a dedicated IP address. The status can have one of+ -- the following values:+ --+ -- - @IN_PROGRESS@ – The IP address isn\'t ready to use because the+ -- dedicated IP warm-up process is ongoing.+ --+ -- - @DONE@ – The dedicated IP warm-up process is complete, and the IP+ -- address is ready to use.+ warmupStatus :: WarmupStatus,+ -- | Indicates how complete the dedicated IP warm-up process is. When this+ -- value equals 1, the address has completed the warm-up process and is+ -- ready for use.+ warmupPercentage :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DedicatedIp' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'poolName', 'dedicatedIp_poolName' - The name of the dedicated IP pool that the IP address is associated+-- with.+--+-- 'ip', 'dedicatedIp_ip' - An IPv4 address.+--+-- 'warmupStatus', 'dedicatedIp_warmupStatus' - The warm-up status of a dedicated IP address. The status can have one of+-- the following values:+--+-- - @IN_PROGRESS@ – The IP address isn\'t ready to use because the+-- dedicated IP warm-up process is ongoing.+--+-- - @DONE@ – The dedicated IP warm-up process is complete, and the IP+-- address is ready to use.+--+-- 'warmupPercentage', 'dedicatedIp_warmupPercentage' - Indicates how complete the dedicated IP warm-up process is. When this+-- value equals 1, the address has completed the warm-up process and is+-- ready for use.+newDedicatedIp ::+ -- | 'ip'+ Prelude.Text ->+ -- | 'warmupStatus'+ WarmupStatus ->+ -- | 'warmupPercentage'+ Prelude.Int ->+ DedicatedIp+newDedicatedIp pIp_ pWarmupStatus_ pWarmupPercentage_ =+ DedicatedIp'+ { poolName = Prelude.Nothing,+ ip = pIp_,+ warmupStatus = pWarmupStatus_,+ warmupPercentage = pWarmupPercentage_+ }++-- | The name of the dedicated IP pool that the IP address is associated+-- with.+dedicatedIp_poolName :: Lens.Lens' DedicatedIp (Prelude.Maybe Prelude.Text)+dedicatedIp_poolName = Lens.lens (\DedicatedIp' {poolName} -> poolName) (\s@DedicatedIp' {} a -> s {poolName = a} :: DedicatedIp)++-- | An IPv4 address.+dedicatedIp_ip :: Lens.Lens' DedicatedIp Prelude.Text+dedicatedIp_ip = Lens.lens (\DedicatedIp' {ip} -> ip) (\s@DedicatedIp' {} a -> s {ip = a} :: DedicatedIp)++-- | The warm-up status of a dedicated IP address. The status can have one of+-- the following values:+--+-- - @IN_PROGRESS@ – The IP address isn\'t ready to use because the+-- dedicated IP warm-up process is ongoing.+--+-- - @DONE@ – The dedicated IP warm-up process is complete, and the IP+-- address is ready to use.+dedicatedIp_warmupStatus :: Lens.Lens' DedicatedIp WarmupStatus+dedicatedIp_warmupStatus = Lens.lens (\DedicatedIp' {warmupStatus} -> warmupStatus) (\s@DedicatedIp' {} a -> s {warmupStatus = a} :: DedicatedIp)++-- | Indicates how complete the dedicated IP warm-up process is. When this+-- value equals 1, the address has completed the warm-up process and is+-- ready for use.+dedicatedIp_warmupPercentage :: Lens.Lens' DedicatedIp Prelude.Int+dedicatedIp_warmupPercentage = Lens.lens (\DedicatedIp' {warmupPercentage} -> warmupPercentage) (\s@DedicatedIp' {} a -> s {warmupPercentage = a} :: DedicatedIp)++instance Data.FromJSON DedicatedIp where+ parseJSON =+ Data.withObject+ "DedicatedIp"+ ( \x ->+ DedicatedIp'+ Prelude.<$> (x Data..:? "PoolName")+ Prelude.<*> (x Data..: "Ip")+ Prelude.<*> (x Data..: "WarmupStatus")+ Prelude.<*> (x Data..: "WarmupPercentage")+ )++instance Prelude.Hashable DedicatedIp where+ hashWithSalt _salt DedicatedIp' {..} =+ _salt+ `Prelude.hashWithSalt` poolName+ `Prelude.hashWithSalt` ip+ `Prelude.hashWithSalt` warmupStatus+ `Prelude.hashWithSalt` warmupPercentage++instance Prelude.NFData DedicatedIp where+ rnf DedicatedIp' {..} =+ Prelude.rnf poolName+ `Prelude.seq` Prelude.rnf ip+ `Prelude.seq` Prelude.rnf warmupStatus+ `Prelude.seq` Prelude.rnf warmupPercentage
+ gen/Amazonka/SESV2/Types/DedicatedIpPool.hs view
@@ -0,0 +1,107 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.Types.DedicatedIpPool+-- 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.SESV2.Types.DedicatedIpPool where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.ScalingMode++-- | Contains information about a dedicated IP pool.+--+-- /See:/ 'newDedicatedIpPool' smart constructor.+data DedicatedIpPool = DedicatedIpPool'+ { -- | The name of the dedicated IP pool.+ poolName :: Prelude.Text,+ -- | The type of the dedicated IP pool.+ --+ -- - @STANDARD@ – A dedicated IP pool where the customer can control+ -- which IPs are part of the pool.+ --+ -- - @MANAGED@ – A dedicated IP pool where the reputation and number of+ -- IPs is automatically managed by Amazon SES.+ scalingMode :: ScalingMode+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DedicatedIpPool' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'poolName', 'dedicatedIpPool_poolName' - The name of the dedicated IP pool.+--+-- 'scalingMode', 'dedicatedIpPool_scalingMode' - The type of the dedicated IP pool.+--+-- - @STANDARD@ – A dedicated IP pool where the customer can control+-- which IPs are part of the pool.+--+-- - @MANAGED@ – A dedicated IP pool where the reputation and number of+-- IPs is automatically managed by Amazon SES.+newDedicatedIpPool ::+ -- | 'poolName'+ Prelude.Text ->+ -- | 'scalingMode'+ ScalingMode ->+ DedicatedIpPool+newDedicatedIpPool pPoolName_ pScalingMode_ =+ DedicatedIpPool'+ { poolName = pPoolName_,+ scalingMode = pScalingMode_+ }++-- | The name of the dedicated IP pool.+dedicatedIpPool_poolName :: Lens.Lens' DedicatedIpPool Prelude.Text+dedicatedIpPool_poolName = Lens.lens (\DedicatedIpPool' {poolName} -> poolName) (\s@DedicatedIpPool' {} a -> s {poolName = a} :: DedicatedIpPool)++-- | The type of the dedicated IP pool.+--+-- - @STANDARD@ – A dedicated IP pool where the customer can control+-- which IPs are part of the pool.+--+-- - @MANAGED@ – A dedicated IP pool where the reputation and number of+-- IPs is automatically managed by Amazon SES.+dedicatedIpPool_scalingMode :: Lens.Lens' DedicatedIpPool ScalingMode+dedicatedIpPool_scalingMode = Lens.lens (\DedicatedIpPool' {scalingMode} -> scalingMode) (\s@DedicatedIpPool' {} a -> s {scalingMode = a} :: DedicatedIpPool)++instance Data.FromJSON DedicatedIpPool where+ parseJSON =+ Data.withObject+ "DedicatedIpPool"+ ( \x ->+ DedicatedIpPool'+ Prelude.<$> (x Data..: "PoolName")+ Prelude.<*> (x Data..: "ScalingMode")+ )++instance Prelude.Hashable DedicatedIpPool where+ hashWithSalt _salt DedicatedIpPool' {..} =+ _salt+ `Prelude.hashWithSalt` poolName+ `Prelude.hashWithSalt` scalingMode++instance Prelude.NFData DedicatedIpPool where+ rnf DedicatedIpPool' {..} =+ Prelude.rnf poolName+ `Prelude.seq` Prelude.rnf scalingMode
+ gen/Amazonka/SESV2/Types/DeliverabilityDashboardAccountStatus.hs view
@@ -0,0 +1,79 @@+{-# 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.SESV2.Types.DeliverabilityDashboardAccountStatus+-- 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.SESV2.Types.DeliverabilityDashboardAccountStatus+ ( DeliverabilityDashboardAccountStatus+ ( ..,+ DeliverabilityDashboardAccountStatus_ACTIVE,+ DeliverabilityDashboardAccountStatus_DISABLED,+ DeliverabilityDashboardAccountStatus_PENDING_EXPIRATION+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The current status of your Deliverability dashboard subscription. If+-- this value is @PENDING_EXPIRATION@, your subscription is scheduled to+-- expire at the end of the current calendar month.+newtype DeliverabilityDashboardAccountStatus = DeliverabilityDashboardAccountStatus'+ { fromDeliverabilityDashboardAccountStatus ::+ 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 DeliverabilityDashboardAccountStatus_ACTIVE :: DeliverabilityDashboardAccountStatus+pattern DeliverabilityDashboardAccountStatus_ACTIVE = DeliverabilityDashboardAccountStatus' "ACTIVE"++pattern DeliverabilityDashboardAccountStatus_DISABLED :: DeliverabilityDashboardAccountStatus+pattern DeliverabilityDashboardAccountStatus_DISABLED = DeliverabilityDashboardAccountStatus' "DISABLED"++pattern DeliverabilityDashboardAccountStatus_PENDING_EXPIRATION :: DeliverabilityDashboardAccountStatus+pattern DeliverabilityDashboardAccountStatus_PENDING_EXPIRATION = DeliverabilityDashboardAccountStatus' "PENDING_EXPIRATION"++{-# COMPLETE+ DeliverabilityDashboardAccountStatus_ACTIVE,+ DeliverabilityDashboardAccountStatus_DISABLED,+ DeliverabilityDashboardAccountStatus_PENDING_EXPIRATION,+ DeliverabilityDashboardAccountStatus'+ #-}
+ gen/Amazonka/SESV2/Types/DeliverabilityTestReport.hs view
@@ -0,0 +1,156 @@+{-# 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.SESV2.Types.DeliverabilityTestReport+-- 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.SESV2.Types.DeliverabilityTestReport where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.DeliverabilityTestStatus++-- | An object that contains metadata related to a predictive inbox placement+-- test.+--+-- /See:/ 'newDeliverabilityTestReport' smart constructor.+data DeliverabilityTestReport = DeliverabilityTestReport'+ { -- | The date and time when the predictive inbox placement test was created.+ createDate :: Prelude.Maybe Data.POSIX,+ -- | The status of the predictive inbox placement test. If the status is+ -- @IN_PROGRESS@, then the predictive inbox placement test is currently+ -- running. Predictive inbox placement tests are usually complete within 24+ -- hours of creating the test. If the status is @COMPLETE@, then the test+ -- is finished, and you can use the @GetDeliverabilityTestReport@ to view+ -- the results of the test.+ deliverabilityTestStatus :: Prelude.Maybe DeliverabilityTestStatus,+ -- | The sender address that you specified for the predictive inbox placement+ -- test.+ fromEmailAddress :: Prelude.Maybe Prelude.Text,+ -- | A unique string that identifies the predictive inbox placement test.+ reportId :: Prelude.Maybe Prelude.Text,+ -- | A name that helps you identify a predictive inbox placement test report.+ reportName :: Prelude.Maybe Prelude.Text,+ -- | The subject line for an email that you submitted in a predictive inbox+ -- placement test.+ subject :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeliverabilityTestReport' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createDate', 'deliverabilityTestReport_createDate' - The date and time when the predictive inbox placement test was created.+--+-- 'deliverabilityTestStatus', 'deliverabilityTestReport_deliverabilityTestStatus' - The status of the predictive inbox placement test. If the status is+-- @IN_PROGRESS@, then the predictive inbox placement test is currently+-- running. Predictive inbox placement tests are usually complete within 24+-- hours of creating the test. If the status is @COMPLETE@, then the test+-- is finished, and you can use the @GetDeliverabilityTestReport@ to view+-- the results of the test.+--+-- 'fromEmailAddress', 'deliverabilityTestReport_fromEmailAddress' - The sender address that you specified for the predictive inbox placement+-- test.+--+-- 'reportId', 'deliverabilityTestReport_reportId' - A unique string that identifies the predictive inbox placement test.+--+-- 'reportName', 'deliverabilityTestReport_reportName' - A name that helps you identify a predictive inbox placement test report.+--+-- 'subject', 'deliverabilityTestReport_subject' - The subject line for an email that you submitted in a predictive inbox+-- placement test.+newDeliverabilityTestReport ::+ DeliverabilityTestReport+newDeliverabilityTestReport =+ DeliverabilityTestReport'+ { createDate =+ Prelude.Nothing,+ deliverabilityTestStatus = Prelude.Nothing,+ fromEmailAddress = Prelude.Nothing,+ reportId = Prelude.Nothing,+ reportName = Prelude.Nothing,+ subject = Prelude.Nothing+ }++-- | The date and time when the predictive inbox placement test was created.+deliverabilityTestReport_createDate :: Lens.Lens' DeliverabilityTestReport (Prelude.Maybe Prelude.UTCTime)+deliverabilityTestReport_createDate = Lens.lens (\DeliverabilityTestReport' {createDate} -> createDate) (\s@DeliverabilityTestReport' {} a -> s {createDate = a} :: DeliverabilityTestReport) Prelude.. Lens.mapping Data._Time++-- | The status of the predictive inbox placement test. If the status is+-- @IN_PROGRESS@, then the predictive inbox placement test is currently+-- running. Predictive inbox placement tests are usually complete within 24+-- hours of creating the test. If the status is @COMPLETE@, then the test+-- is finished, and you can use the @GetDeliverabilityTestReport@ to view+-- the results of the test.+deliverabilityTestReport_deliverabilityTestStatus :: Lens.Lens' DeliverabilityTestReport (Prelude.Maybe DeliverabilityTestStatus)+deliverabilityTestReport_deliverabilityTestStatus = Lens.lens (\DeliverabilityTestReport' {deliverabilityTestStatus} -> deliverabilityTestStatus) (\s@DeliverabilityTestReport' {} a -> s {deliverabilityTestStatus = a} :: DeliverabilityTestReport)++-- | The sender address that you specified for the predictive inbox placement+-- test.+deliverabilityTestReport_fromEmailAddress :: Lens.Lens' DeliverabilityTestReport (Prelude.Maybe Prelude.Text)+deliverabilityTestReport_fromEmailAddress = Lens.lens (\DeliverabilityTestReport' {fromEmailAddress} -> fromEmailAddress) (\s@DeliverabilityTestReport' {} a -> s {fromEmailAddress = a} :: DeliverabilityTestReport)++-- | A unique string that identifies the predictive inbox placement test.+deliverabilityTestReport_reportId :: Lens.Lens' DeliverabilityTestReport (Prelude.Maybe Prelude.Text)+deliverabilityTestReport_reportId = Lens.lens (\DeliverabilityTestReport' {reportId} -> reportId) (\s@DeliverabilityTestReport' {} a -> s {reportId = a} :: DeliverabilityTestReport)++-- | A name that helps you identify a predictive inbox placement test report.+deliverabilityTestReport_reportName :: Lens.Lens' DeliverabilityTestReport (Prelude.Maybe Prelude.Text)+deliverabilityTestReport_reportName = Lens.lens (\DeliverabilityTestReport' {reportName} -> reportName) (\s@DeliverabilityTestReport' {} a -> s {reportName = a} :: DeliverabilityTestReport)++-- | The subject line for an email that you submitted in a predictive inbox+-- placement test.+deliverabilityTestReport_subject :: Lens.Lens' DeliverabilityTestReport (Prelude.Maybe Prelude.Text)+deliverabilityTestReport_subject = Lens.lens (\DeliverabilityTestReport' {subject} -> subject) (\s@DeliverabilityTestReport' {} a -> s {subject = a} :: DeliverabilityTestReport)++instance Data.FromJSON DeliverabilityTestReport where+ parseJSON =+ Data.withObject+ "DeliverabilityTestReport"+ ( \x ->+ DeliverabilityTestReport'+ Prelude.<$> (x Data..:? "CreateDate")+ Prelude.<*> (x Data..:? "DeliverabilityTestStatus")+ Prelude.<*> (x Data..:? "FromEmailAddress")+ Prelude.<*> (x Data..:? "ReportId")+ Prelude.<*> (x Data..:? "ReportName")+ Prelude.<*> (x Data..:? "Subject")+ )++instance Prelude.Hashable DeliverabilityTestReport where+ hashWithSalt _salt DeliverabilityTestReport' {..} =+ _salt+ `Prelude.hashWithSalt` createDate+ `Prelude.hashWithSalt` deliverabilityTestStatus+ `Prelude.hashWithSalt` fromEmailAddress+ `Prelude.hashWithSalt` reportId+ `Prelude.hashWithSalt` reportName+ `Prelude.hashWithSalt` subject++instance Prelude.NFData DeliverabilityTestReport where+ rnf DeliverabilityTestReport' {..} =+ Prelude.rnf createDate+ `Prelude.seq` Prelude.rnf deliverabilityTestStatus+ `Prelude.seq` Prelude.rnf fromEmailAddress+ `Prelude.seq` Prelude.rnf reportId+ `Prelude.seq` Prelude.rnf reportName+ `Prelude.seq` Prelude.rnf subject
+ gen/Amazonka/SESV2/Types/DeliverabilityTestStatus.hs view
@@ -0,0 +1,77 @@+{-# 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.SESV2.Types.DeliverabilityTestStatus+-- 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.SESV2.Types.DeliverabilityTestStatus+ ( DeliverabilityTestStatus+ ( ..,+ DeliverabilityTestStatus_COMPLETED,+ DeliverabilityTestStatus_IN_PROGRESS+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The status of a predictive inbox placement test. If the status is+-- @IN_PROGRESS@, then the predictive inbox placement test is currently+-- running. Predictive inbox placement tests are usually complete within 24+-- hours of creating the test. If the status is @COMPLETE@, then the test+-- is finished, and you can use the @GetDeliverabilityTestReport@ operation+-- to view the results of the test.+newtype DeliverabilityTestStatus = DeliverabilityTestStatus'+ { fromDeliverabilityTestStatus ::+ 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 DeliverabilityTestStatus_COMPLETED :: DeliverabilityTestStatus+pattern DeliverabilityTestStatus_COMPLETED = DeliverabilityTestStatus' "COMPLETED"++pattern DeliverabilityTestStatus_IN_PROGRESS :: DeliverabilityTestStatus+pattern DeliverabilityTestStatus_IN_PROGRESS = DeliverabilityTestStatus' "IN_PROGRESS"++{-# COMPLETE+ DeliverabilityTestStatus_COMPLETED,+ DeliverabilityTestStatus_IN_PROGRESS,+ DeliverabilityTestStatus'+ #-}
+ gen/Amazonka/SESV2/Types/DeliveryOptions.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.Types.DeliveryOptions+-- 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.SESV2.Types.DeliveryOptions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.TlsPolicy++-- | Used to associate a configuration set with a dedicated IP pool.+--+-- /See:/ 'newDeliveryOptions' smart constructor.+data DeliveryOptions = DeliveryOptions'+ { -- | The name of the dedicated IP pool to associate with the configuration+ -- set.+ sendingPoolName :: Prelude.Maybe Prelude.Text,+ -- | Specifies whether messages that use the configuration set are required+ -- to use Transport Layer Security (TLS). If the value is @Require@,+ -- messages are only delivered if a TLS connection can be established. If+ -- the value is @Optional@, messages can be delivered in plain text if a+ -- TLS connection can\'t be established.+ tlsPolicy :: Prelude.Maybe TlsPolicy+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeliveryOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sendingPoolName', 'deliveryOptions_sendingPoolName' - The name of the dedicated IP pool to associate with the configuration+-- set.+--+-- 'tlsPolicy', 'deliveryOptions_tlsPolicy' - Specifies whether messages that use the configuration set are required+-- to use Transport Layer Security (TLS). If the value is @Require@,+-- messages are only delivered if a TLS connection can be established. If+-- the value is @Optional@, messages can be delivered in plain text if a+-- TLS connection can\'t be established.+newDeliveryOptions ::+ DeliveryOptions+newDeliveryOptions =+ DeliveryOptions'+ { sendingPoolName = Prelude.Nothing,+ tlsPolicy = Prelude.Nothing+ }++-- | The name of the dedicated IP pool to associate with the configuration+-- set.+deliveryOptions_sendingPoolName :: Lens.Lens' DeliveryOptions (Prelude.Maybe Prelude.Text)+deliveryOptions_sendingPoolName = Lens.lens (\DeliveryOptions' {sendingPoolName} -> sendingPoolName) (\s@DeliveryOptions' {} a -> s {sendingPoolName = a} :: DeliveryOptions)++-- | Specifies whether messages that use the configuration set are required+-- to use Transport Layer Security (TLS). If the value is @Require@,+-- messages are only delivered if a TLS connection can be established. If+-- the value is @Optional@, messages can be delivered in plain text if a+-- TLS connection can\'t be established.+deliveryOptions_tlsPolicy :: Lens.Lens' DeliveryOptions (Prelude.Maybe TlsPolicy)+deliveryOptions_tlsPolicy = Lens.lens (\DeliveryOptions' {tlsPolicy} -> tlsPolicy) (\s@DeliveryOptions' {} a -> s {tlsPolicy = a} :: DeliveryOptions)++instance Data.FromJSON DeliveryOptions where+ parseJSON =+ Data.withObject+ "DeliveryOptions"+ ( \x ->+ DeliveryOptions'+ Prelude.<$> (x Data..:? "SendingPoolName")+ Prelude.<*> (x Data..:? "TlsPolicy")+ )++instance Prelude.Hashable DeliveryOptions where+ hashWithSalt _salt DeliveryOptions' {..} =+ _salt+ `Prelude.hashWithSalt` sendingPoolName+ `Prelude.hashWithSalt` tlsPolicy++instance Prelude.NFData DeliveryOptions where+ rnf DeliveryOptions' {..} =+ Prelude.rnf sendingPoolName+ `Prelude.seq` Prelude.rnf tlsPolicy++instance Data.ToJSON DeliveryOptions where+ toJSON DeliveryOptions' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("SendingPoolName" Data..=)+ Prelude.<$> sendingPoolName,+ ("TlsPolicy" Data..=) Prelude.<$> tlsPolicy+ ]+ )
+ gen/Amazonka/SESV2/Types/Destination.hs view
@@ -0,0 +1,113 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.Types.Destination+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.SESV2.Types.Destination 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 that describes the recipients for an email.+--+-- Amazon SES does not support the SMTPUTF8 extension, as described in+-- <https://tools.ietf.org/html/rfc6531 RFC6531>. For this reason, the+-- /local part/ of a destination email address (the part of the email+-- address that precedes the \@ sign) may only contain+-- <https://en.wikipedia.org/wiki/Email_address#Local-part 7-bit ASCII characters>.+-- If the /domain part/ of an address (the part after the \@ sign) contains+-- non-ASCII characters, they must be encoded using Punycode, as described+-- in <https://tools.ietf.org/html/rfc3492.html RFC3492>.+--+-- /See:/ 'newDestination' smart constructor.+data Destination = Destination'+ { -- | An array that contains the email addresses of the \"BCC\" (blind carbon+ -- copy) recipients for the email.+ bccAddresses :: Prelude.Maybe [Prelude.Text],+ -- | An array that contains the email addresses of the \"CC\" (carbon copy)+ -- recipients for the email.+ ccAddresses :: Prelude.Maybe [Prelude.Text],+ -- | An array that contains the email addresses of the \"To\" recipients for+ -- the email.+ toAddresses :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Destination' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bccAddresses', 'destination_bccAddresses' - An array that contains the email addresses of the \"BCC\" (blind carbon+-- copy) recipients for the email.+--+-- 'ccAddresses', 'destination_ccAddresses' - An array that contains the email addresses of the \"CC\" (carbon copy)+-- recipients for the email.+--+-- 'toAddresses', 'destination_toAddresses' - An array that contains the email addresses of the \"To\" recipients for+-- the email.+newDestination ::+ Destination+newDestination =+ Destination'+ { bccAddresses = Prelude.Nothing,+ ccAddresses = Prelude.Nothing,+ toAddresses = Prelude.Nothing+ }++-- | An array that contains the email addresses of the \"BCC\" (blind carbon+-- copy) recipients for the email.+destination_bccAddresses :: Lens.Lens' Destination (Prelude.Maybe [Prelude.Text])+destination_bccAddresses = Lens.lens (\Destination' {bccAddresses} -> bccAddresses) (\s@Destination' {} a -> s {bccAddresses = a} :: Destination) Prelude.. Lens.mapping Lens.coerced++-- | An array that contains the email addresses of the \"CC\" (carbon copy)+-- recipients for the email.+destination_ccAddresses :: Lens.Lens' Destination (Prelude.Maybe [Prelude.Text])+destination_ccAddresses = Lens.lens (\Destination' {ccAddresses} -> ccAddresses) (\s@Destination' {} a -> s {ccAddresses = a} :: Destination) Prelude.. Lens.mapping Lens.coerced++-- | An array that contains the email addresses of the \"To\" recipients for+-- the email.+destination_toAddresses :: Lens.Lens' Destination (Prelude.Maybe [Prelude.Text])+destination_toAddresses = Lens.lens (\Destination' {toAddresses} -> toAddresses) (\s@Destination' {} a -> s {toAddresses = a} :: Destination) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable Destination where+ hashWithSalt _salt Destination' {..} =+ _salt+ `Prelude.hashWithSalt` bccAddresses+ `Prelude.hashWithSalt` ccAddresses+ `Prelude.hashWithSalt` toAddresses++instance Prelude.NFData Destination where+ rnf Destination' {..} =+ Prelude.rnf bccAddresses+ `Prelude.seq` Prelude.rnf ccAddresses+ `Prelude.seq` Prelude.rnf toAddresses++instance Data.ToJSON Destination where+ toJSON Destination' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("BccAddresses" Data..=) Prelude.<$> bccAddresses,+ ("CcAddresses" Data..=) Prelude.<$> ccAddresses,+ ("ToAddresses" Data..=) Prelude.<$> toAddresses+ ]+ )
+ gen/Amazonka/SESV2/Types/DimensionValueSource.hs view
@@ -0,0 +1,82 @@+{-# 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.SESV2.Types.DimensionValueSource+-- 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.SESV2.Types.DimensionValueSource+ ( DimensionValueSource+ ( ..,+ DimensionValueSource_EMAIL_HEADER,+ DimensionValueSource_LINK_TAG,+ DimensionValueSource_MESSAGE_TAG+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The location where the Amazon SES API v2 finds the value of a dimension+-- to publish to Amazon CloudWatch. To use the message tags that you+-- specify using an @X-SES-MESSAGE-TAGS@ header or a parameter to the+-- @SendEmail@ or @SendRawEmail@ API, choose @messageTag@. To use your own+-- email headers, choose @emailHeader@. To use link tags, choose+-- @linkTags@.+newtype DimensionValueSource = DimensionValueSource'+ { fromDimensionValueSource ::+ 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 DimensionValueSource_EMAIL_HEADER :: DimensionValueSource+pattern DimensionValueSource_EMAIL_HEADER = DimensionValueSource' "EMAIL_HEADER"++pattern DimensionValueSource_LINK_TAG :: DimensionValueSource+pattern DimensionValueSource_LINK_TAG = DimensionValueSource' "LINK_TAG"++pattern DimensionValueSource_MESSAGE_TAG :: DimensionValueSource+pattern DimensionValueSource_MESSAGE_TAG = DimensionValueSource' "MESSAGE_TAG"++{-# COMPLETE+ DimensionValueSource_EMAIL_HEADER,+ DimensionValueSource_LINK_TAG,+ DimensionValueSource_MESSAGE_TAG,+ DimensionValueSource'+ #-}
+ gen/Amazonka/SESV2/Types/DkimAttributes.hs view
@@ -0,0 +1,288 @@+{-# 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.SESV2.Types.DkimAttributes+-- 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.SESV2.Types.DkimAttributes where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.DkimSigningAttributesOrigin+import Amazonka.SESV2.Types.DkimSigningKeyLength+import Amazonka.SESV2.Types.DkimStatus++-- | An object that contains information about the DKIM authentication status+-- for an email identity.+--+-- Amazon SES determines the authentication status by searching for+-- specific records in the DNS configuration for the domain. If you used+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>+-- to set up DKIM authentication, Amazon SES tries to find three unique+-- CNAME records in the DNS configuration for your domain. If you provided+-- a public key to perform DKIM authentication, Amazon SES tries to find a+-- TXT record that uses the selector that you specified. The value of the+-- TXT record must be a public key that\'s paired with the private key that+-- you specified in the process of creating the identity+--+-- /See:/ 'newDkimAttributes' smart constructor.+data DkimAttributes = DkimAttributes'+ { -- | [Easy DKIM] The key length of the DKIM key pair in use.+ currentSigningKeyLength :: Prelude.Maybe DkimSigningKeyLength,+ -- | [Easy DKIM] The last time a key pair was generated for this identity.+ lastKeyGenerationTimestamp :: Prelude.Maybe Data.POSIX,+ -- | [Easy DKIM] The key length of the future DKIM key pair to be generated.+ -- This can be changed at most once per day.+ nextSigningKeyLength :: Prelude.Maybe DkimSigningKeyLength,+ -- | A string that indicates how DKIM was configured for the identity. These+ -- are the possible values:+ --+ -- - @AWS_SES@ – Indicates that DKIM was configured for the identity by+ -- using+ -- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>.+ --+ -- - @EXTERNAL@ – Indicates that DKIM was configured for the identity by+ -- using Bring Your Own DKIM (BYODKIM).+ signingAttributesOrigin :: Prelude.Maybe DkimSigningAttributesOrigin,+ -- | If the value is @true@, then the messages that you send from the+ -- identity are signed using DKIM. If the value is @false@, then the+ -- messages that you send from the identity aren\'t DKIM-signed.+ signingEnabled :: Prelude.Maybe Prelude.Bool,+ -- | Describes whether or not Amazon SES has successfully located the DKIM+ -- records in the DNS records for the domain. The status can be one of the+ -- following:+ --+ -- - @PENDING@ – The verification process was initiated, but Amazon SES+ -- hasn\'t yet detected the DKIM records in the DNS configuration for+ -- the domain.+ --+ -- - @SUCCESS@ – The verification process completed successfully.+ --+ -- - @FAILED@ – The verification process failed. This typically occurs+ -- when Amazon SES fails to find the DKIM records in the DNS+ -- configuration of the domain.+ --+ -- - @TEMPORARY_FAILURE@ – A temporary issue is preventing Amazon SES+ -- from determining the DKIM authentication status of the domain.+ --+ -- - @NOT_STARTED@ – The DKIM verification process hasn\'t been initiated+ -- for the domain.+ status :: Prelude.Maybe DkimStatus,+ -- | If you used+ -- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>+ -- to configure DKIM authentication for the domain, then this object+ -- contains a set of unique strings that you use to create a set of CNAME+ -- records that you add to the DNS configuration for your domain. When+ -- Amazon SES detects these records in the DNS configuration for your+ -- domain, the DKIM authentication process is complete.+ --+ -- If you configured DKIM authentication for the domain by providing your+ -- own public-private key pair, then this object contains the selector for+ -- the public key.+ --+ -- Regardless of the DKIM authentication method you use, Amazon SES+ -- searches for the appropriate records in the DNS configuration of the+ -- domain for up to 72 hours.+ tokens :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DkimAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'currentSigningKeyLength', 'dkimAttributes_currentSigningKeyLength' - [Easy DKIM] The key length of the DKIM key pair in use.+--+-- 'lastKeyGenerationTimestamp', 'dkimAttributes_lastKeyGenerationTimestamp' - [Easy DKIM] The last time a key pair was generated for this identity.+--+-- 'nextSigningKeyLength', 'dkimAttributes_nextSigningKeyLength' - [Easy DKIM] The key length of the future DKIM key pair to be generated.+-- This can be changed at most once per day.+--+-- 'signingAttributesOrigin', 'dkimAttributes_signingAttributesOrigin' - A string that indicates how DKIM was configured for the identity. These+-- are the possible values:+--+-- - @AWS_SES@ – Indicates that DKIM was configured for the identity by+-- using+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>.+--+-- - @EXTERNAL@ – Indicates that DKIM was configured for the identity by+-- using Bring Your Own DKIM (BYODKIM).+--+-- 'signingEnabled', 'dkimAttributes_signingEnabled' - If the value is @true@, then the messages that you send from the+-- identity are signed using DKIM. If the value is @false@, then the+-- messages that you send from the identity aren\'t DKIM-signed.+--+-- 'status', 'dkimAttributes_status' - Describes whether or not Amazon SES has successfully located the DKIM+-- records in the DNS records for the domain. The status can be one of the+-- following:+--+-- - @PENDING@ – The verification process was initiated, but Amazon SES+-- hasn\'t yet detected the DKIM records in the DNS configuration for+-- the domain.+--+-- - @SUCCESS@ – The verification process completed successfully.+--+-- - @FAILED@ – The verification process failed. This typically occurs+-- when Amazon SES fails to find the DKIM records in the DNS+-- configuration of the domain.+--+-- - @TEMPORARY_FAILURE@ – A temporary issue is preventing Amazon SES+-- from determining the DKIM authentication status of the domain.+--+-- - @NOT_STARTED@ – The DKIM verification process hasn\'t been initiated+-- for the domain.+--+-- 'tokens', 'dkimAttributes_tokens' - If you used+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>+-- to configure DKIM authentication for the domain, then this object+-- contains a set of unique strings that you use to create a set of CNAME+-- records that you add to the DNS configuration for your domain. When+-- Amazon SES detects these records in the DNS configuration for your+-- domain, the DKIM authentication process is complete.+--+-- If you configured DKIM authentication for the domain by providing your+-- own public-private key pair, then this object contains the selector for+-- the public key.+--+-- Regardless of the DKIM authentication method you use, Amazon SES+-- searches for the appropriate records in the DNS configuration of the+-- domain for up to 72 hours.+newDkimAttributes ::+ DkimAttributes+newDkimAttributes =+ DkimAttributes'+ { currentSigningKeyLength =+ Prelude.Nothing,+ lastKeyGenerationTimestamp = Prelude.Nothing,+ nextSigningKeyLength = Prelude.Nothing,+ signingAttributesOrigin = Prelude.Nothing,+ signingEnabled = Prelude.Nothing,+ status = Prelude.Nothing,+ tokens = Prelude.Nothing+ }++-- | [Easy DKIM] The key length of the DKIM key pair in use.+dkimAttributes_currentSigningKeyLength :: Lens.Lens' DkimAttributes (Prelude.Maybe DkimSigningKeyLength)+dkimAttributes_currentSigningKeyLength = Lens.lens (\DkimAttributes' {currentSigningKeyLength} -> currentSigningKeyLength) (\s@DkimAttributes' {} a -> s {currentSigningKeyLength = a} :: DkimAttributes)++-- | [Easy DKIM] The last time a key pair was generated for this identity.+dkimAttributes_lastKeyGenerationTimestamp :: Lens.Lens' DkimAttributes (Prelude.Maybe Prelude.UTCTime)+dkimAttributes_lastKeyGenerationTimestamp = Lens.lens (\DkimAttributes' {lastKeyGenerationTimestamp} -> lastKeyGenerationTimestamp) (\s@DkimAttributes' {} a -> s {lastKeyGenerationTimestamp = a} :: DkimAttributes) Prelude.. Lens.mapping Data._Time++-- | [Easy DKIM] The key length of the future DKIM key pair to be generated.+-- This can be changed at most once per day.+dkimAttributes_nextSigningKeyLength :: Lens.Lens' DkimAttributes (Prelude.Maybe DkimSigningKeyLength)+dkimAttributes_nextSigningKeyLength = Lens.lens (\DkimAttributes' {nextSigningKeyLength} -> nextSigningKeyLength) (\s@DkimAttributes' {} a -> s {nextSigningKeyLength = a} :: DkimAttributes)++-- | A string that indicates how DKIM was configured for the identity. These+-- are the possible values:+--+-- - @AWS_SES@ – Indicates that DKIM was configured for the identity by+-- using+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>.+--+-- - @EXTERNAL@ – Indicates that DKIM was configured for the identity by+-- using Bring Your Own DKIM (BYODKIM).+dkimAttributes_signingAttributesOrigin :: Lens.Lens' DkimAttributes (Prelude.Maybe DkimSigningAttributesOrigin)+dkimAttributes_signingAttributesOrigin = Lens.lens (\DkimAttributes' {signingAttributesOrigin} -> signingAttributesOrigin) (\s@DkimAttributes' {} a -> s {signingAttributesOrigin = a} :: DkimAttributes)++-- | If the value is @true@, then the messages that you send from the+-- identity are signed using DKIM. If the value is @false@, then the+-- messages that you send from the identity aren\'t DKIM-signed.+dkimAttributes_signingEnabled :: Lens.Lens' DkimAttributes (Prelude.Maybe Prelude.Bool)+dkimAttributes_signingEnabled = Lens.lens (\DkimAttributes' {signingEnabled} -> signingEnabled) (\s@DkimAttributes' {} a -> s {signingEnabled = a} :: DkimAttributes)++-- | Describes whether or not Amazon SES has successfully located the DKIM+-- records in the DNS records for the domain. The status can be one of the+-- following:+--+-- - @PENDING@ – The verification process was initiated, but Amazon SES+-- hasn\'t yet detected the DKIM records in the DNS configuration for+-- the domain.+--+-- - @SUCCESS@ – The verification process completed successfully.+--+-- - @FAILED@ – The verification process failed. This typically occurs+-- when Amazon SES fails to find the DKIM records in the DNS+-- configuration of the domain.+--+-- - @TEMPORARY_FAILURE@ – A temporary issue is preventing Amazon SES+-- from determining the DKIM authentication status of the domain.+--+-- - @NOT_STARTED@ – The DKIM verification process hasn\'t been initiated+-- for the domain.+dkimAttributes_status :: Lens.Lens' DkimAttributes (Prelude.Maybe DkimStatus)+dkimAttributes_status = Lens.lens (\DkimAttributes' {status} -> status) (\s@DkimAttributes' {} a -> s {status = a} :: DkimAttributes)++-- | If you used+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html Easy DKIM>+-- to configure DKIM authentication for the domain, then this object+-- contains a set of unique strings that you use to create a set of CNAME+-- records that you add to the DNS configuration for your domain. When+-- Amazon SES detects these records in the DNS configuration for your+-- domain, the DKIM authentication process is complete.+--+-- If you configured DKIM authentication for the domain by providing your+-- own public-private key pair, then this object contains the selector for+-- the public key.+--+-- Regardless of the DKIM authentication method you use, Amazon SES+-- searches for the appropriate records in the DNS configuration of the+-- domain for up to 72 hours.+dkimAttributes_tokens :: Lens.Lens' DkimAttributes (Prelude.Maybe [Prelude.Text])+dkimAttributes_tokens = Lens.lens (\DkimAttributes' {tokens} -> tokens) (\s@DkimAttributes' {} a -> s {tokens = a} :: DkimAttributes) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON DkimAttributes where+ parseJSON =+ Data.withObject+ "DkimAttributes"+ ( \x ->+ DkimAttributes'+ Prelude.<$> (x Data..:? "CurrentSigningKeyLength")+ Prelude.<*> (x Data..:? "LastKeyGenerationTimestamp")+ Prelude.<*> (x Data..:? "NextSigningKeyLength")+ Prelude.<*> (x Data..:? "SigningAttributesOrigin")+ Prelude.<*> (x Data..:? "SigningEnabled")+ Prelude.<*> (x Data..:? "Status")+ Prelude.<*> (x Data..:? "Tokens" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable DkimAttributes where+ hashWithSalt _salt DkimAttributes' {..} =+ _salt+ `Prelude.hashWithSalt` currentSigningKeyLength+ `Prelude.hashWithSalt` lastKeyGenerationTimestamp+ `Prelude.hashWithSalt` nextSigningKeyLength+ `Prelude.hashWithSalt` signingAttributesOrigin+ `Prelude.hashWithSalt` signingEnabled+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` tokens++instance Prelude.NFData DkimAttributes where+ rnf DkimAttributes' {..} =+ Prelude.rnf currentSigningKeyLength+ `Prelude.seq` Prelude.rnf lastKeyGenerationTimestamp+ `Prelude.seq` Prelude.rnf nextSigningKeyLength+ `Prelude.seq` Prelude.rnf signingAttributesOrigin+ `Prelude.seq` Prelude.rnf signingEnabled+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf tokens
+ gen/Amazonka/SESV2/Types/DkimSigningAttributes.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.SESV2.Types.DkimSigningAttributes+-- 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.SESV2.Types.DkimSigningAttributes where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.DkimSigningKeyLength++-- | An object that contains configuration for Bring Your Own DKIM (BYODKIM),+-- or, for Easy DKIM+--+-- /See:/ 'newDkimSigningAttributes' smart constructor.+data DkimSigningAttributes = DkimSigningAttributes'+ { -- | [Bring Your Own DKIM] A private key that\'s used to generate a DKIM+ -- signature.+ --+ -- The private key must use 1024 or 2048-bit RSA encryption, and must be+ -- encoded using base64 encoding.+ domainSigningPrivateKey :: Prelude.Maybe (Data.Sensitive Prelude.Text),+ -- | [Bring Your Own DKIM] A string that\'s used to identify a public key in+ -- the DNS configuration for a domain.+ domainSigningSelector :: Prelude.Maybe Prelude.Text,+ -- | [Easy DKIM] The key length of the future DKIM key pair to be generated.+ -- This can be changed at most once per day.+ nextSigningKeyLength :: Prelude.Maybe DkimSigningKeyLength+ }+ deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DkimSigningAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'domainSigningPrivateKey', 'dkimSigningAttributes_domainSigningPrivateKey' - [Bring Your Own DKIM] A private key that\'s used to generate a DKIM+-- signature.+--+-- The private key must use 1024 or 2048-bit RSA encryption, and must be+-- encoded using base64 encoding.+--+-- 'domainSigningSelector', 'dkimSigningAttributes_domainSigningSelector' - [Bring Your Own DKIM] A string that\'s used to identify a public key in+-- the DNS configuration for a domain.+--+-- 'nextSigningKeyLength', 'dkimSigningAttributes_nextSigningKeyLength' - [Easy DKIM] The key length of the future DKIM key pair to be generated.+-- This can be changed at most once per day.+newDkimSigningAttributes ::+ DkimSigningAttributes+newDkimSigningAttributes =+ DkimSigningAttributes'+ { domainSigningPrivateKey =+ Prelude.Nothing,+ domainSigningSelector = Prelude.Nothing,+ nextSigningKeyLength = Prelude.Nothing+ }++-- | [Bring Your Own DKIM] A private key that\'s used to generate a DKIM+-- signature.+--+-- The private key must use 1024 or 2048-bit RSA encryption, and must be+-- encoded using base64 encoding.+dkimSigningAttributes_domainSigningPrivateKey :: Lens.Lens' DkimSigningAttributes (Prelude.Maybe Prelude.Text)+dkimSigningAttributes_domainSigningPrivateKey = Lens.lens (\DkimSigningAttributes' {domainSigningPrivateKey} -> domainSigningPrivateKey) (\s@DkimSigningAttributes' {} a -> s {domainSigningPrivateKey = a} :: DkimSigningAttributes) Prelude.. Lens.mapping Data._Sensitive++-- | [Bring Your Own DKIM] A string that\'s used to identify a public key in+-- the DNS configuration for a domain.+dkimSigningAttributes_domainSigningSelector :: Lens.Lens' DkimSigningAttributes (Prelude.Maybe Prelude.Text)+dkimSigningAttributes_domainSigningSelector = Lens.lens (\DkimSigningAttributes' {domainSigningSelector} -> domainSigningSelector) (\s@DkimSigningAttributes' {} a -> s {domainSigningSelector = a} :: DkimSigningAttributes)++-- | [Easy DKIM] The key length of the future DKIM key pair to be generated.+-- This can be changed at most once per day.+dkimSigningAttributes_nextSigningKeyLength :: Lens.Lens' DkimSigningAttributes (Prelude.Maybe DkimSigningKeyLength)+dkimSigningAttributes_nextSigningKeyLength = Lens.lens (\DkimSigningAttributes' {nextSigningKeyLength} -> nextSigningKeyLength) (\s@DkimSigningAttributes' {} a -> s {nextSigningKeyLength = a} :: DkimSigningAttributes)++instance Prelude.Hashable DkimSigningAttributes where+ hashWithSalt _salt DkimSigningAttributes' {..} =+ _salt+ `Prelude.hashWithSalt` domainSigningPrivateKey+ `Prelude.hashWithSalt` domainSigningSelector+ `Prelude.hashWithSalt` nextSigningKeyLength++instance Prelude.NFData DkimSigningAttributes where+ rnf DkimSigningAttributes' {..} =+ Prelude.rnf domainSigningPrivateKey+ `Prelude.seq` Prelude.rnf domainSigningSelector+ `Prelude.seq` Prelude.rnf nextSigningKeyLength++instance Data.ToJSON DkimSigningAttributes where+ toJSON DkimSigningAttributes' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("DomainSigningPrivateKey" Data..=)+ Prelude.<$> domainSigningPrivateKey,+ ("DomainSigningSelector" Data..=)+ Prelude.<$> domainSigningSelector,+ ("NextSigningKeyLength" Data..=)+ Prelude.<$> nextSigningKeyLength+ ]+ )
+ gen/Amazonka/SESV2/Types/DkimSigningAttributesOrigin.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.SESV2.Types.DkimSigningAttributesOrigin+-- 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.SESV2.Types.DkimSigningAttributesOrigin+ ( DkimSigningAttributesOrigin+ ( ..,+ DkimSigningAttributesOrigin_AWS_SES,+ DkimSigningAttributesOrigin_EXTERNAL+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DkimSigningAttributesOrigin = DkimSigningAttributesOrigin'+ { fromDkimSigningAttributesOrigin ::+ 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 DkimSigningAttributesOrigin_AWS_SES :: DkimSigningAttributesOrigin+pattern DkimSigningAttributesOrigin_AWS_SES = DkimSigningAttributesOrigin' "AWS_SES"++pattern DkimSigningAttributesOrigin_EXTERNAL :: DkimSigningAttributesOrigin+pattern DkimSigningAttributesOrigin_EXTERNAL = DkimSigningAttributesOrigin' "EXTERNAL"++{-# COMPLETE+ DkimSigningAttributesOrigin_AWS_SES,+ DkimSigningAttributesOrigin_EXTERNAL,+ DkimSigningAttributesOrigin'+ #-}
+ gen/Amazonka/SESV2/Types/DkimSigningKeyLength.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.SESV2.Types.DkimSigningKeyLength+-- 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.SESV2.Types.DkimSigningKeyLength+ ( DkimSigningKeyLength+ ( ..,+ DkimSigningKeyLength_RSA_1024_BIT,+ DkimSigningKeyLength_RSA_2048_BIT+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DkimSigningKeyLength = DkimSigningKeyLength'+ { fromDkimSigningKeyLength ::+ 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 DkimSigningKeyLength_RSA_1024_BIT :: DkimSigningKeyLength+pattern DkimSigningKeyLength_RSA_1024_BIT = DkimSigningKeyLength' "RSA_1024_BIT"++pattern DkimSigningKeyLength_RSA_2048_BIT :: DkimSigningKeyLength+pattern DkimSigningKeyLength_RSA_2048_BIT = DkimSigningKeyLength' "RSA_2048_BIT"++{-# COMPLETE+ DkimSigningKeyLength_RSA_1024_BIT,+ DkimSigningKeyLength_RSA_2048_BIT,+ DkimSigningKeyLength'+ #-}
+ gen/Amazonka/SESV2/Types/DkimStatus.hs view
@@ -0,0 +1,104 @@+{-# 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.SESV2.Types.DkimStatus+-- 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.SESV2.Types.DkimStatus+ ( DkimStatus+ ( ..,+ DkimStatus_FAILED,+ DkimStatus_NOT_STARTED,+ DkimStatus_PENDING,+ DkimStatus_SUCCESS,+ DkimStatus_TEMPORARY_FAILURE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The DKIM authentication status of the identity. The status can be one of+-- the following:+--+-- - @PENDING@ – The verification process was initiated, but Amazon SES+-- hasn\'t yet detected the DKIM records in the DNS configuration for+-- the domain.+--+-- - @SUCCESS@ – The verification process completed successfully.+--+-- - @FAILED@ – The verification process failed. This typically occurs+-- when Amazon SES fails to find the DKIM records in the DNS+-- configuration of the domain.+--+-- - @TEMPORARY_FAILURE@ – A temporary issue is preventing Amazon SES+-- from determining the DKIM authentication status of the domain.+--+-- - @NOT_STARTED@ – The DKIM verification process hasn\'t been initiated+-- for the domain.+newtype DkimStatus = DkimStatus'+ { fromDkimStatus ::+ 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 DkimStatus_FAILED :: DkimStatus+pattern DkimStatus_FAILED = DkimStatus' "FAILED"++pattern DkimStatus_NOT_STARTED :: DkimStatus+pattern DkimStatus_NOT_STARTED = DkimStatus' "NOT_STARTED"++pattern DkimStatus_PENDING :: DkimStatus+pattern DkimStatus_PENDING = DkimStatus' "PENDING"++pattern DkimStatus_SUCCESS :: DkimStatus+pattern DkimStatus_SUCCESS = DkimStatus' "SUCCESS"++pattern DkimStatus_TEMPORARY_FAILURE :: DkimStatus+pattern DkimStatus_TEMPORARY_FAILURE = DkimStatus' "TEMPORARY_FAILURE"++{-# COMPLETE+ DkimStatus_FAILED,+ DkimStatus_NOT_STARTED,+ DkimStatus_PENDING,+ DkimStatus_SUCCESS,+ DkimStatus_TEMPORARY_FAILURE,+ DkimStatus'+ #-}
+ gen/Amazonka/SESV2/Types/DomainDeliverabilityCampaign.hs view
@@ -0,0 +1,280 @@+{-# 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.SESV2.Types.DomainDeliverabilityCampaign+-- 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.SESV2.Types.DomainDeliverabilityCampaign 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 that contains the deliverability data for a specific campaign.+-- This data is available for a campaign only if the campaign sent email by+-- using a domain that the Deliverability dashboard is enabled for+-- (@PutDeliverabilityDashboardOption@ operation).+--+-- /See:/ 'newDomainDeliverabilityCampaign' smart constructor.+data DomainDeliverabilityCampaign = DomainDeliverabilityCampaign'+ { -- | The unique identifier for the campaign. The Deliverability dashboard+ -- automatically generates and assigns this identifier to a campaign.+ campaignId :: Prelude.Maybe Prelude.Text,+ -- | The percentage of email messages that were deleted by recipients,+ -- without being opened first. Due to technical limitations, this value+ -- only includes recipients who opened the message by using an email client+ -- that supports images.+ deleteRate :: Prelude.Maybe Prelude.Double,+ -- | The major email providers who handled the email message.+ esps :: Prelude.Maybe [Prelude.Text],+ -- | The first time when the email message was delivered to any recipient\'s+ -- inbox. This value can help you determine how long it took for a campaign+ -- to deliver an email message.+ firstSeenDateTime :: Prelude.Maybe Data.POSIX,+ -- | The verified email address that the email message was sent from.+ fromAddress :: Prelude.Maybe Prelude.Text,+ -- | The URL of an image that contains a snapshot of the email message that+ -- was sent.+ imageUrl :: Prelude.Maybe Prelude.Text,+ -- | The number of email messages that were delivered to recipients’ inboxes.+ inboxCount :: Prelude.Maybe Prelude.Integer,+ -- | The last time when the email message was delivered to any recipient\'s+ -- inbox. This value can help you determine how long it took for a campaign+ -- to deliver an email message.+ lastSeenDateTime :: Prelude.Maybe Data.POSIX,+ -- | The projected number of recipients that the email message was sent to.+ projectedVolume :: Prelude.Maybe Prelude.Integer,+ -- | The percentage of email messages that were opened and then deleted by+ -- recipients. Due to technical limitations, this value only includes+ -- recipients who opened the message by using an email client that supports+ -- images.+ readDeleteRate :: Prelude.Maybe Prelude.Double,+ -- | The percentage of email messages that were opened by recipients. Due to+ -- technical limitations, this value only includes recipients who opened+ -- the message by using an email client that supports images.+ readRate :: Prelude.Maybe Prelude.Double,+ -- | The IP addresses that were used to send the email message.+ sendingIps :: Prelude.Maybe [Prelude.Text],+ -- | The number of email messages that were delivered to recipients\' spam or+ -- junk mail folders.+ spamCount :: Prelude.Maybe Prelude.Integer,+ -- | The subject line, or title, of the email message.+ subject :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DomainDeliverabilityCampaign' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'campaignId', 'domainDeliverabilityCampaign_campaignId' - The unique identifier for the campaign. The Deliverability dashboard+-- automatically generates and assigns this identifier to a campaign.+--+-- 'deleteRate', 'domainDeliverabilityCampaign_deleteRate' - The percentage of email messages that were deleted by recipients,+-- without being opened first. Due to technical limitations, this value+-- only includes recipients who opened the message by using an email client+-- that supports images.+--+-- 'esps', 'domainDeliverabilityCampaign_esps' - The major email providers who handled the email message.+--+-- 'firstSeenDateTime', 'domainDeliverabilityCampaign_firstSeenDateTime' - The first time when the email message was delivered to any recipient\'s+-- inbox. This value can help you determine how long it took for a campaign+-- to deliver an email message.+--+-- 'fromAddress', 'domainDeliverabilityCampaign_fromAddress' - The verified email address that the email message was sent from.+--+-- 'imageUrl', 'domainDeliverabilityCampaign_imageUrl' - The URL of an image that contains a snapshot of the email message that+-- was sent.+--+-- 'inboxCount', 'domainDeliverabilityCampaign_inboxCount' - The number of email messages that were delivered to recipients’ inboxes.+--+-- 'lastSeenDateTime', 'domainDeliverabilityCampaign_lastSeenDateTime' - The last time when the email message was delivered to any recipient\'s+-- inbox. This value can help you determine how long it took for a campaign+-- to deliver an email message.+--+-- 'projectedVolume', 'domainDeliverabilityCampaign_projectedVolume' - The projected number of recipients that the email message was sent to.+--+-- 'readDeleteRate', 'domainDeliverabilityCampaign_readDeleteRate' - The percentage of email messages that were opened and then deleted by+-- recipients. Due to technical limitations, this value only includes+-- recipients who opened the message by using an email client that supports+-- images.+--+-- 'readRate', 'domainDeliverabilityCampaign_readRate' - The percentage of email messages that were opened by recipients. Due to+-- technical limitations, this value only includes recipients who opened+-- the message by using an email client that supports images.+--+-- 'sendingIps', 'domainDeliverabilityCampaign_sendingIps' - The IP addresses that were used to send the email message.+--+-- 'spamCount', 'domainDeliverabilityCampaign_spamCount' - The number of email messages that were delivered to recipients\' spam or+-- junk mail folders.+--+-- 'subject', 'domainDeliverabilityCampaign_subject' - The subject line, or title, of the email message.+newDomainDeliverabilityCampaign ::+ DomainDeliverabilityCampaign+newDomainDeliverabilityCampaign =+ DomainDeliverabilityCampaign'+ { campaignId =+ Prelude.Nothing,+ deleteRate = Prelude.Nothing,+ esps = Prelude.Nothing,+ firstSeenDateTime = Prelude.Nothing,+ fromAddress = Prelude.Nothing,+ imageUrl = Prelude.Nothing,+ inboxCount = Prelude.Nothing,+ lastSeenDateTime = Prelude.Nothing,+ projectedVolume = Prelude.Nothing,+ readDeleteRate = Prelude.Nothing,+ readRate = Prelude.Nothing,+ sendingIps = Prelude.Nothing,+ spamCount = Prelude.Nothing,+ subject = Prelude.Nothing+ }++-- | The unique identifier for the campaign. The Deliverability dashboard+-- automatically generates and assigns this identifier to a campaign.+domainDeliverabilityCampaign_campaignId :: Lens.Lens' DomainDeliverabilityCampaign (Prelude.Maybe Prelude.Text)+domainDeliverabilityCampaign_campaignId = Lens.lens (\DomainDeliverabilityCampaign' {campaignId} -> campaignId) (\s@DomainDeliverabilityCampaign' {} a -> s {campaignId = a} :: DomainDeliverabilityCampaign)++-- | The percentage of email messages that were deleted by recipients,+-- without being opened first. Due to technical limitations, this value+-- only includes recipients who opened the message by using an email client+-- that supports images.+domainDeliverabilityCampaign_deleteRate :: Lens.Lens' DomainDeliverabilityCampaign (Prelude.Maybe Prelude.Double)+domainDeliverabilityCampaign_deleteRate = Lens.lens (\DomainDeliverabilityCampaign' {deleteRate} -> deleteRate) (\s@DomainDeliverabilityCampaign' {} a -> s {deleteRate = a} :: DomainDeliverabilityCampaign)++-- | The major email providers who handled the email message.+domainDeliverabilityCampaign_esps :: Lens.Lens' DomainDeliverabilityCampaign (Prelude.Maybe [Prelude.Text])+domainDeliverabilityCampaign_esps = Lens.lens (\DomainDeliverabilityCampaign' {esps} -> esps) (\s@DomainDeliverabilityCampaign' {} a -> s {esps = a} :: DomainDeliverabilityCampaign) Prelude.. Lens.mapping Lens.coerced++-- | The first time when the email message was delivered to any recipient\'s+-- inbox. This value can help you determine how long it took for a campaign+-- to deliver an email message.+domainDeliverabilityCampaign_firstSeenDateTime :: Lens.Lens' DomainDeliverabilityCampaign (Prelude.Maybe Prelude.UTCTime)+domainDeliverabilityCampaign_firstSeenDateTime = Lens.lens (\DomainDeliverabilityCampaign' {firstSeenDateTime} -> firstSeenDateTime) (\s@DomainDeliverabilityCampaign' {} a -> s {firstSeenDateTime = a} :: DomainDeliverabilityCampaign) Prelude.. Lens.mapping Data._Time++-- | The verified email address that the email message was sent from.+domainDeliverabilityCampaign_fromAddress :: Lens.Lens' DomainDeliverabilityCampaign (Prelude.Maybe Prelude.Text)+domainDeliverabilityCampaign_fromAddress = Lens.lens (\DomainDeliverabilityCampaign' {fromAddress} -> fromAddress) (\s@DomainDeliverabilityCampaign' {} a -> s {fromAddress = a} :: DomainDeliverabilityCampaign)++-- | The URL of an image that contains a snapshot of the email message that+-- was sent.+domainDeliverabilityCampaign_imageUrl :: Lens.Lens' DomainDeliverabilityCampaign (Prelude.Maybe Prelude.Text)+domainDeliverabilityCampaign_imageUrl = Lens.lens (\DomainDeliverabilityCampaign' {imageUrl} -> imageUrl) (\s@DomainDeliverabilityCampaign' {} a -> s {imageUrl = a} :: DomainDeliverabilityCampaign)++-- | The number of email messages that were delivered to recipients’ inboxes.+domainDeliverabilityCampaign_inboxCount :: Lens.Lens' DomainDeliverabilityCampaign (Prelude.Maybe Prelude.Integer)+domainDeliverabilityCampaign_inboxCount = Lens.lens (\DomainDeliverabilityCampaign' {inboxCount} -> inboxCount) (\s@DomainDeliverabilityCampaign' {} a -> s {inboxCount = a} :: DomainDeliverabilityCampaign)++-- | The last time when the email message was delivered to any recipient\'s+-- inbox. This value can help you determine how long it took for a campaign+-- to deliver an email message.+domainDeliverabilityCampaign_lastSeenDateTime :: Lens.Lens' DomainDeliverabilityCampaign (Prelude.Maybe Prelude.UTCTime)+domainDeliverabilityCampaign_lastSeenDateTime = Lens.lens (\DomainDeliverabilityCampaign' {lastSeenDateTime} -> lastSeenDateTime) (\s@DomainDeliverabilityCampaign' {} a -> s {lastSeenDateTime = a} :: DomainDeliverabilityCampaign) Prelude.. Lens.mapping Data._Time++-- | The projected number of recipients that the email message was sent to.+domainDeliverabilityCampaign_projectedVolume :: Lens.Lens' DomainDeliverabilityCampaign (Prelude.Maybe Prelude.Integer)+domainDeliverabilityCampaign_projectedVolume = Lens.lens (\DomainDeliverabilityCampaign' {projectedVolume} -> projectedVolume) (\s@DomainDeliverabilityCampaign' {} a -> s {projectedVolume = a} :: DomainDeliverabilityCampaign)++-- | The percentage of email messages that were opened and then deleted by+-- recipients. Due to technical limitations, this value only includes+-- recipients who opened the message by using an email client that supports+-- images.+domainDeliverabilityCampaign_readDeleteRate :: Lens.Lens' DomainDeliverabilityCampaign (Prelude.Maybe Prelude.Double)+domainDeliverabilityCampaign_readDeleteRate = Lens.lens (\DomainDeliverabilityCampaign' {readDeleteRate} -> readDeleteRate) (\s@DomainDeliverabilityCampaign' {} a -> s {readDeleteRate = a} :: DomainDeliverabilityCampaign)++-- | The percentage of email messages that were opened by recipients. Due to+-- technical limitations, this value only includes recipients who opened+-- the message by using an email client that supports images.+domainDeliverabilityCampaign_readRate :: Lens.Lens' DomainDeliverabilityCampaign (Prelude.Maybe Prelude.Double)+domainDeliverabilityCampaign_readRate = Lens.lens (\DomainDeliverabilityCampaign' {readRate} -> readRate) (\s@DomainDeliverabilityCampaign' {} a -> s {readRate = a} :: DomainDeliverabilityCampaign)++-- | The IP addresses that were used to send the email message.+domainDeliverabilityCampaign_sendingIps :: Lens.Lens' DomainDeliverabilityCampaign (Prelude.Maybe [Prelude.Text])+domainDeliverabilityCampaign_sendingIps = Lens.lens (\DomainDeliverabilityCampaign' {sendingIps} -> sendingIps) (\s@DomainDeliverabilityCampaign' {} a -> s {sendingIps = a} :: DomainDeliverabilityCampaign) Prelude.. Lens.mapping Lens.coerced++-- | The number of email messages that were delivered to recipients\' spam or+-- junk mail folders.+domainDeliverabilityCampaign_spamCount :: Lens.Lens' DomainDeliverabilityCampaign (Prelude.Maybe Prelude.Integer)+domainDeliverabilityCampaign_spamCount = Lens.lens (\DomainDeliverabilityCampaign' {spamCount} -> spamCount) (\s@DomainDeliverabilityCampaign' {} a -> s {spamCount = a} :: DomainDeliverabilityCampaign)++-- | The subject line, or title, of the email message.+domainDeliverabilityCampaign_subject :: Lens.Lens' DomainDeliverabilityCampaign (Prelude.Maybe Prelude.Text)+domainDeliverabilityCampaign_subject = Lens.lens (\DomainDeliverabilityCampaign' {subject} -> subject) (\s@DomainDeliverabilityCampaign' {} a -> s {subject = a} :: DomainDeliverabilityCampaign)++instance Data.FromJSON DomainDeliverabilityCampaign where+ parseJSON =+ Data.withObject+ "DomainDeliverabilityCampaign"+ ( \x ->+ DomainDeliverabilityCampaign'+ Prelude.<$> (x Data..:? "CampaignId")+ Prelude.<*> (x Data..:? "DeleteRate")+ Prelude.<*> (x Data..:? "Esps" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "FirstSeenDateTime")+ Prelude.<*> (x Data..:? "FromAddress")+ Prelude.<*> (x Data..:? "ImageUrl")+ Prelude.<*> (x Data..:? "InboxCount")+ Prelude.<*> (x Data..:? "LastSeenDateTime")+ Prelude.<*> (x Data..:? "ProjectedVolume")+ Prelude.<*> (x Data..:? "ReadDeleteRate")+ Prelude.<*> (x Data..:? "ReadRate")+ Prelude.<*> (x Data..:? "SendingIps" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "SpamCount")+ Prelude.<*> (x Data..:? "Subject")+ )++instance+ Prelude.Hashable+ DomainDeliverabilityCampaign+ where+ hashWithSalt _salt DomainDeliverabilityCampaign' {..} =+ _salt+ `Prelude.hashWithSalt` campaignId+ `Prelude.hashWithSalt` deleteRate+ `Prelude.hashWithSalt` esps+ `Prelude.hashWithSalt` firstSeenDateTime+ `Prelude.hashWithSalt` fromAddress+ `Prelude.hashWithSalt` imageUrl+ `Prelude.hashWithSalt` inboxCount+ `Prelude.hashWithSalt` lastSeenDateTime+ `Prelude.hashWithSalt` projectedVolume+ `Prelude.hashWithSalt` readDeleteRate+ `Prelude.hashWithSalt` readRate+ `Prelude.hashWithSalt` sendingIps+ `Prelude.hashWithSalt` spamCount+ `Prelude.hashWithSalt` subject++instance Prelude.NFData DomainDeliverabilityCampaign where+ rnf DomainDeliverabilityCampaign' {..} =+ Prelude.rnf campaignId+ `Prelude.seq` Prelude.rnf deleteRate+ `Prelude.seq` Prelude.rnf esps+ `Prelude.seq` Prelude.rnf firstSeenDateTime+ `Prelude.seq` Prelude.rnf fromAddress+ `Prelude.seq` Prelude.rnf imageUrl+ `Prelude.seq` Prelude.rnf inboxCount+ `Prelude.seq` Prelude.rnf lastSeenDateTime+ `Prelude.seq` Prelude.rnf projectedVolume+ `Prelude.seq` Prelude.rnf readDeleteRate+ `Prelude.seq` Prelude.rnf readRate+ `Prelude.seq` Prelude.rnf sendingIps+ `Prelude.seq` Prelude.rnf spamCount+ `Prelude.seq` Prelude.rnf subject
+ gen/Amazonka/SESV2/Types/DomainDeliverabilityTrackingOption.hs view
@@ -0,0 +1,138 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.Types.DomainDeliverabilityTrackingOption+-- 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.SESV2.Types.DomainDeliverabilityTrackingOption where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.InboxPlacementTrackingOption++-- | An object that contains information about the Deliverability dashboard+-- subscription for a verified domain that you use to send email and+-- currently has an active Deliverability dashboard subscription. If a+-- Deliverability dashboard subscription is active for a domain, you gain+-- access to reputation, inbox placement, and other metrics for the domain.+--+-- /See:/ 'newDomainDeliverabilityTrackingOption' smart constructor.+data DomainDeliverabilityTrackingOption = DomainDeliverabilityTrackingOption'+ { -- | A verified domain that’s associated with your Amazon Web Services+ -- account and currently has an active Deliverability dashboard+ -- subscription.+ domain :: Prelude.Maybe Prelude.Text,+ -- | An object that contains information about the inbox placement data+ -- settings for the domain.+ inboxPlacementTrackingOption :: Prelude.Maybe InboxPlacementTrackingOption,+ -- | The date when you enabled the Deliverability dashboard for the domain.+ subscriptionStartDate :: Prelude.Maybe Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DomainDeliverabilityTrackingOption' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'domain', 'domainDeliverabilityTrackingOption_domain' - A verified domain that’s associated with your Amazon Web Services+-- account and currently has an active Deliverability dashboard+-- subscription.+--+-- 'inboxPlacementTrackingOption', 'domainDeliverabilityTrackingOption_inboxPlacementTrackingOption' - An object that contains information about the inbox placement data+-- settings for the domain.+--+-- 'subscriptionStartDate', 'domainDeliverabilityTrackingOption_subscriptionStartDate' - The date when you enabled the Deliverability dashboard for the domain.+newDomainDeliverabilityTrackingOption ::+ DomainDeliverabilityTrackingOption+newDomainDeliverabilityTrackingOption =+ DomainDeliverabilityTrackingOption'+ { domain =+ Prelude.Nothing,+ inboxPlacementTrackingOption =+ Prelude.Nothing,+ subscriptionStartDate = Prelude.Nothing+ }++-- | A verified domain that’s associated with your Amazon Web Services+-- account and currently has an active Deliverability dashboard+-- subscription.+domainDeliverabilityTrackingOption_domain :: Lens.Lens' DomainDeliverabilityTrackingOption (Prelude.Maybe Prelude.Text)+domainDeliverabilityTrackingOption_domain = Lens.lens (\DomainDeliverabilityTrackingOption' {domain} -> domain) (\s@DomainDeliverabilityTrackingOption' {} a -> s {domain = a} :: DomainDeliverabilityTrackingOption)++-- | An object that contains information about the inbox placement data+-- settings for the domain.+domainDeliverabilityTrackingOption_inboxPlacementTrackingOption :: Lens.Lens' DomainDeliverabilityTrackingOption (Prelude.Maybe InboxPlacementTrackingOption)+domainDeliverabilityTrackingOption_inboxPlacementTrackingOption = Lens.lens (\DomainDeliverabilityTrackingOption' {inboxPlacementTrackingOption} -> inboxPlacementTrackingOption) (\s@DomainDeliverabilityTrackingOption' {} a -> s {inboxPlacementTrackingOption = a} :: DomainDeliverabilityTrackingOption)++-- | The date when you enabled the Deliverability dashboard for the domain.+domainDeliverabilityTrackingOption_subscriptionStartDate :: Lens.Lens' DomainDeliverabilityTrackingOption (Prelude.Maybe Prelude.UTCTime)+domainDeliverabilityTrackingOption_subscriptionStartDate = Lens.lens (\DomainDeliverabilityTrackingOption' {subscriptionStartDate} -> subscriptionStartDate) (\s@DomainDeliverabilityTrackingOption' {} a -> s {subscriptionStartDate = a} :: DomainDeliverabilityTrackingOption) Prelude.. Lens.mapping Data._Time++instance+ Data.FromJSON+ DomainDeliverabilityTrackingOption+ where+ parseJSON =+ Data.withObject+ "DomainDeliverabilityTrackingOption"+ ( \x ->+ DomainDeliverabilityTrackingOption'+ Prelude.<$> (x Data..:? "Domain")+ Prelude.<*> (x Data..:? "InboxPlacementTrackingOption")+ Prelude.<*> (x Data..:? "SubscriptionStartDate")+ )++instance+ Prelude.Hashable+ DomainDeliverabilityTrackingOption+ where+ hashWithSalt+ _salt+ DomainDeliverabilityTrackingOption' {..} =+ _salt+ `Prelude.hashWithSalt` domain+ `Prelude.hashWithSalt` inboxPlacementTrackingOption+ `Prelude.hashWithSalt` subscriptionStartDate++instance+ Prelude.NFData+ DomainDeliverabilityTrackingOption+ where+ rnf DomainDeliverabilityTrackingOption' {..} =+ Prelude.rnf domain+ `Prelude.seq` Prelude.rnf inboxPlacementTrackingOption+ `Prelude.seq` Prelude.rnf subscriptionStartDate++instance+ Data.ToJSON+ DomainDeliverabilityTrackingOption+ where+ toJSON DomainDeliverabilityTrackingOption' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Domain" Data..=) Prelude.<$> domain,+ ("InboxPlacementTrackingOption" Data..=)+ Prelude.<$> inboxPlacementTrackingOption,+ ("SubscriptionStartDate" Data..=)+ Prelude.<$> subscriptionStartDate+ ]+ )
+ gen/Amazonka/SESV2/Types/DomainIspPlacement.hs view
@@ -0,0 +1,140 @@+{-# 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.SESV2.Types.DomainIspPlacement+-- 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.SESV2.Types.DomainIspPlacement 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 that contains inbox placement data for email sent from one of+-- your email domains to a specific email provider.+--+-- /See:/ 'newDomainIspPlacement' smart constructor.+data DomainIspPlacement = DomainIspPlacement'+ { -- | The percentage of messages that were sent from the selected domain to+ -- the specified email provider that arrived in recipients\' inboxes.+ inboxPercentage :: Prelude.Maybe Prelude.Double,+ -- | The total number of messages that were sent from the selected domain to+ -- the specified email provider that arrived in recipients\' inboxes.+ inboxRawCount :: Prelude.Maybe Prelude.Integer,+ -- | The name of the email provider that the inbox placement data applies to.+ ispName :: Prelude.Maybe Prelude.Text,+ -- | The percentage of messages that were sent from the selected domain to+ -- the specified email provider that arrived in recipients\' spam or junk+ -- mail folders.+ spamPercentage :: Prelude.Maybe Prelude.Double,+ -- | The total number of messages that were sent from the selected domain to+ -- the specified email provider that arrived in recipients\' spam or junk+ -- mail folders.+ spamRawCount :: Prelude.Maybe Prelude.Integer+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DomainIspPlacement' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'inboxPercentage', 'domainIspPlacement_inboxPercentage' - The percentage of messages that were sent from the selected domain to+-- the specified email provider that arrived in recipients\' inboxes.+--+-- 'inboxRawCount', 'domainIspPlacement_inboxRawCount' - The total number of messages that were sent from the selected domain to+-- the specified email provider that arrived in recipients\' inboxes.+--+-- 'ispName', 'domainIspPlacement_ispName' - The name of the email provider that the inbox placement data applies to.+--+-- 'spamPercentage', 'domainIspPlacement_spamPercentage' - The percentage of messages that were sent from the selected domain to+-- the specified email provider that arrived in recipients\' spam or junk+-- mail folders.+--+-- 'spamRawCount', 'domainIspPlacement_spamRawCount' - The total number of messages that were sent from the selected domain to+-- the specified email provider that arrived in recipients\' spam or junk+-- mail folders.+newDomainIspPlacement ::+ DomainIspPlacement+newDomainIspPlacement =+ DomainIspPlacement'+ { inboxPercentage =+ Prelude.Nothing,+ inboxRawCount = Prelude.Nothing,+ ispName = Prelude.Nothing,+ spamPercentage = Prelude.Nothing,+ spamRawCount = Prelude.Nothing+ }++-- | The percentage of messages that were sent from the selected domain to+-- the specified email provider that arrived in recipients\' inboxes.+domainIspPlacement_inboxPercentage :: Lens.Lens' DomainIspPlacement (Prelude.Maybe Prelude.Double)+domainIspPlacement_inboxPercentage = Lens.lens (\DomainIspPlacement' {inboxPercentage} -> inboxPercentage) (\s@DomainIspPlacement' {} a -> s {inboxPercentage = a} :: DomainIspPlacement)++-- | The total number of messages that were sent from the selected domain to+-- the specified email provider that arrived in recipients\' inboxes.+domainIspPlacement_inboxRawCount :: Lens.Lens' DomainIspPlacement (Prelude.Maybe Prelude.Integer)+domainIspPlacement_inboxRawCount = Lens.lens (\DomainIspPlacement' {inboxRawCount} -> inboxRawCount) (\s@DomainIspPlacement' {} a -> s {inboxRawCount = a} :: DomainIspPlacement)++-- | The name of the email provider that the inbox placement data applies to.+domainIspPlacement_ispName :: Lens.Lens' DomainIspPlacement (Prelude.Maybe Prelude.Text)+domainIspPlacement_ispName = Lens.lens (\DomainIspPlacement' {ispName} -> ispName) (\s@DomainIspPlacement' {} a -> s {ispName = a} :: DomainIspPlacement)++-- | The percentage of messages that were sent from the selected domain to+-- the specified email provider that arrived in recipients\' spam or junk+-- mail folders.+domainIspPlacement_spamPercentage :: Lens.Lens' DomainIspPlacement (Prelude.Maybe Prelude.Double)+domainIspPlacement_spamPercentage = Lens.lens (\DomainIspPlacement' {spamPercentage} -> spamPercentage) (\s@DomainIspPlacement' {} a -> s {spamPercentage = a} :: DomainIspPlacement)++-- | The total number of messages that were sent from the selected domain to+-- the specified email provider that arrived in recipients\' spam or junk+-- mail folders.+domainIspPlacement_spamRawCount :: Lens.Lens' DomainIspPlacement (Prelude.Maybe Prelude.Integer)+domainIspPlacement_spamRawCount = Lens.lens (\DomainIspPlacement' {spamRawCount} -> spamRawCount) (\s@DomainIspPlacement' {} a -> s {spamRawCount = a} :: DomainIspPlacement)++instance Data.FromJSON DomainIspPlacement where+ parseJSON =+ Data.withObject+ "DomainIspPlacement"+ ( \x ->+ DomainIspPlacement'+ Prelude.<$> (x Data..:? "InboxPercentage")+ Prelude.<*> (x Data..:? "InboxRawCount")+ Prelude.<*> (x Data..:? "IspName")+ Prelude.<*> (x Data..:? "SpamPercentage")+ Prelude.<*> (x Data..:? "SpamRawCount")+ )++instance Prelude.Hashable DomainIspPlacement where+ hashWithSalt _salt DomainIspPlacement' {..} =+ _salt+ `Prelude.hashWithSalt` inboxPercentage+ `Prelude.hashWithSalt` inboxRawCount+ `Prelude.hashWithSalt` ispName+ `Prelude.hashWithSalt` spamPercentage+ `Prelude.hashWithSalt` spamRawCount++instance Prelude.NFData DomainIspPlacement where+ rnf DomainIspPlacement' {..} =+ Prelude.rnf inboxPercentage+ `Prelude.seq` Prelude.rnf inboxRawCount+ `Prelude.seq` Prelude.rnf ispName+ `Prelude.seq` Prelude.rnf spamPercentage+ `Prelude.seq` Prelude.rnf spamRawCount
+ gen/Amazonka/SESV2/Types/EmailContent.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.SESV2.Types.EmailContent+-- 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.SESV2.Types.EmailContent where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.Message+import Amazonka.SESV2.Types.RawMessage+import Amazonka.SESV2.Types.Template++-- | An object that defines the entire content of the email, including the+-- message headers and the body content. You can create a simple email+-- message, in which you specify the subject and the text and HTML versions+-- of the message body. You can also create raw messages, in which you+-- specify a complete MIME-formatted message. Raw messages can include+-- attachments and custom headers.+--+-- /See:/ 'newEmailContent' smart constructor.+data EmailContent = EmailContent'+ { -- | The raw email message. The message has to meet the following criteria:+ --+ -- - The message has to contain a header and a body, separated by one+ -- blank line.+ --+ -- - All of the required header fields must be present in the message.+ --+ -- - Each part of a multipart MIME message must be formatted properly.+ --+ -- - If you include attachments, they must be in a file format that the+ -- Amazon SES API v2 supports.+ --+ -- - The entire message must be Base64 encoded.+ --+ -- - If any of the MIME parts in your message contain content that is+ -- outside of the 7-bit ASCII character range, you should encode that+ -- content to ensure that recipients\' email clients render the message+ -- properly.+ --+ -- - The length of any single line of text in the message can\'t exceed+ -- 1,000 characters. This restriction is defined in+ -- <https://tools.ietf.org/html/rfc5321 RFC 5321>.+ raw :: Prelude.Maybe RawMessage,+ -- | The simple email message. The message consists of a subject and a+ -- message body.+ simple :: Prelude.Maybe Message,+ -- | The template to use for the email message.+ template :: Prelude.Maybe Template+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EmailContent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'raw', 'emailContent_raw' - The raw email message. The message has to meet the following criteria:+--+-- - The message has to contain a header and a body, separated by one+-- blank line.+--+-- - All of the required header fields must be present in the message.+--+-- - Each part of a multipart MIME message must be formatted properly.+--+-- - If you include attachments, they must be in a file format that the+-- Amazon SES API v2 supports.+--+-- - The entire message must be Base64 encoded.+--+-- - If any of the MIME parts in your message contain content that is+-- outside of the 7-bit ASCII character range, you should encode that+-- content to ensure that recipients\' email clients render the message+-- properly.+--+-- - The length of any single line of text in the message can\'t exceed+-- 1,000 characters. This restriction is defined in+-- <https://tools.ietf.org/html/rfc5321 RFC 5321>.+--+-- 'simple', 'emailContent_simple' - The simple email message. The message consists of a subject and a+-- message body.+--+-- 'template', 'emailContent_template' - The template to use for the email message.+newEmailContent ::+ EmailContent+newEmailContent =+ EmailContent'+ { raw = Prelude.Nothing,+ simple = Prelude.Nothing,+ template = Prelude.Nothing+ }++-- | The raw email message. The message has to meet the following criteria:+--+-- - The message has to contain a header and a body, separated by one+-- blank line.+--+-- - All of the required header fields must be present in the message.+--+-- - Each part of a multipart MIME message must be formatted properly.+--+-- - If you include attachments, they must be in a file format that the+-- Amazon SES API v2 supports.+--+-- - The entire message must be Base64 encoded.+--+-- - If any of the MIME parts in your message contain content that is+-- outside of the 7-bit ASCII character range, you should encode that+-- content to ensure that recipients\' email clients render the message+-- properly.+--+-- - The length of any single line of text in the message can\'t exceed+-- 1,000 characters. This restriction is defined in+-- <https://tools.ietf.org/html/rfc5321 RFC 5321>.+emailContent_raw :: Lens.Lens' EmailContent (Prelude.Maybe RawMessage)+emailContent_raw = Lens.lens (\EmailContent' {raw} -> raw) (\s@EmailContent' {} a -> s {raw = a} :: EmailContent)++-- | The simple email message. The message consists of a subject and a+-- message body.+emailContent_simple :: Lens.Lens' EmailContent (Prelude.Maybe Message)+emailContent_simple = Lens.lens (\EmailContent' {simple} -> simple) (\s@EmailContent' {} a -> s {simple = a} :: EmailContent)++-- | The template to use for the email message.+emailContent_template :: Lens.Lens' EmailContent (Prelude.Maybe Template)+emailContent_template = Lens.lens (\EmailContent' {template} -> template) (\s@EmailContent' {} a -> s {template = a} :: EmailContent)++instance Prelude.Hashable EmailContent where+ hashWithSalt _salt EmailContent' {..} =+ _salt+ `Prelude.hashWithSalt` raw+ `Prelude.hashWithSalt` simple+ `Prelude.hashWithSalt` template++instance Prelude.NFData EmailContent where+ rnf EmailContent' {..} =+ Prelude.rnf raw+ `Prelude.seq` Prelude.rnf simple+ `Prelude.seq` Prelude.rnf template++instance Data.ToJSON EmailContent where+ toJSON EmailContent' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Raw" Data..=) Prelude.<$> raw,+ ("Simple" Data..=) Prelude.<$> simple,+ ("Template" Data..=) Prelude.<$> template+ ]+ )
+ gen/Amazonka/SESV2/Types/EmailTemplateContent.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.Types.EmailTemplateContent+-- 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.SESV2.Types.EmailTemplateContent 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 content of the email, composed of a subject line, an HTML part, and+-- a text-only part.+--+-- /See:/ 'newEmailTemplateContent' smart constructor.+data EmailTemplateContent = EmailTemplateContent'+ { -- | The HTML body of the email.+ html :: Prelude.Maybe Prelude.Text,+ -- | The subject line of the email.+ subject :: Prelude.Maybe Prelude.Text,+ -- | The email body that will be visible to recipients whose email clients do+ -- not display HTML.+ text :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EmailTemplateContent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'html', 'emailTemplateContent_html' - The HTML body of the email.+--+-- 'subject', 'emailTemplateContent_subject' - The subject line of the email.+--+-- 'text', 'emailTemplateContent_text' - The email body that will be visible to recipients whose email clients do+-- not display HTML.+newEmailTemplateContent ::+ EmailTemplateContent+newEmailTemplateContent =+ EmailTemplateContent'+ { html = Prelude.Nothing,+ subject = Prelude.Nothing,+ text = Prelude.Nothing+ }++-- | The HTML body of the email.+emailTemplateContent_html :: Lens.Lens' EmailTemplateContent (Prelude.Maybe Prelude.Text)+emailTemplateContent_html = Lens.lens (\EmailTemplateContent' {html} -> html) (\s@EmailTemplateContent' {} a -> s {html = a} :: EmailTemplateContent)++-- | The subject line of the email.+emailTemplateContent_subject :: Lens.Lens' EmailTemplateContent (Prelude.Maybe Prelude.Text)+emailTemplateContent_subject = Lens.lens (\EmailTemplateContent' {subject} -> subject) (\s@EmailTemplateContent' {} a -> s {subject = a} :: EmailTemplateContent)++-- | The email body that will be visible to recipients whose email clients do+-- not display HTML.+emailTemplateContent_text :: Lens.Lens' EmailTemplateContent (Prelude.Maybe Prelude.Text)+emailTemplateContent_text = Lens.lens (\EmailTemplateContent' {text} -> text) (\s@EmailTemplateContent' {} a -> s {text = a} :: EmailTemplateContent)++instance Data.FromJSON EmailTemplateContent where+ parseJSON =+ Data.withObject+ "EmailTemplateContent"+ ( \x ->+ EmailTemplateContent'+ Prelude.<$> (x Data..:? "Html")+ Prelude.<*> (x Data..:? "Subject")+ Prelude.<*> (x Data..:? "Text")+ )++instance Prelude.Hashable EmailTemplateContent where+ hashWithSalt _salt EmailTemplateContent' {..} =+ _salt+ `Prelude.hashWithSalt` html+ `Prelude.hashWithSalt` subject+ `Prelude.hashWithSalt` text++instance Prelude.NFData EmailTemplateContent where+ rnf EmailTemplateContent' {..} =+ Prelude.rnf html+ `Prelude.seq` Prelude.rnf subject+ `Prelude.seq` Prelude.rnf text++instance Data.ToJSON EmailTemplateContent where+ toJSON EmailTemplateContent' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Html" Data..=) Prelude.<$> html,+ ("Subject" Data..=) Prelude.<$> subject,+ ("Text" Data..=) Prelude.<$> text+ ]+ )
+ gen/Amazonka/SESV2/Types/EmailTemplateMetadata.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.SESV2.Types.EmailTemplateMetadata+-- 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.SESV2.Types.EmailTemplateMetadata 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++-- | Contains information about an email template.+--+-- /See:/ 'newEmailTemplateMetadata' smart constructor.+data EmailTemplateMetadata = EmailTemplateMetadata'+ { -- | The time and date the template was created.+ createdTimestamp :: Prelude.Maybe Data.POSIX,+ -- | The name of the template.+ templateName :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EmailTemplateMetadata' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createdTimestamp', 'emailTemplateMetadata_createdTimestamp' - The time and date the template was created.+--+-- 'templateName', 'emailTemplateMetadata_templateName' - The name of the template.+newEmailTemplateMetadata ::+ EmailTemplateMetadata+newEmailTemplateMetadata =+ EmailTemplateMetadata'+ { createdTimestamp =+ Prelude.Nothing,+ templateName = Prelude.Nothing+ }++-- | The time and date the template was created.+emailTemplateMetadata_createdTimestamp :: Lens.Lens' EmailTemplateMetadata (Prelude.Maybe Prelude.UTCTime)+emailTemplateMetadata_createdTimestamp = Lens.lens (\EmailTemplateMetadata' {createdTimestamp} -> createdTimestamp) (\s@EmailTemplateMetadata' {} a -> s {createdTimestamp = a} :: EmailTemplateMetadata) Prelude.. Lens.mapping Data._Time++-- | The name of the template.+emailTemplateMetadata_templateName :: Lens.Lens' EmailTemplateMetadata (Prelude.Maybe Prelude.Text)+emailTemplateMetadata_templateName = Lens.lens (\EmailTemplateMetadata' {templateName} -> templateName) (\s@EmailTemplateMetadata' {} a -> s {templateName = a} :: EmailTemplateMetadata)++instance Data.FromJSON EmailTemplateMetadata where+ parseJSON =+ Data.withObject+ "EmailTemplateMetadata"+ ( \x ->+ EmailTemplateMetadata'+ Prelude.<$> (x Data..:? "CreatedTimestamp")+ Prelude.<*> (x Data..:? "TemplateName")+ )++instance Prelude.Hashable EmailTemplateMetadata where+ hashWithSalt _salt EmailTemplateMetadata' {..} =+ _salt+ `Prelude.hashWithSalt` createdTimestamp+ `Prelude.hashWithSalt` templateName++instance Prelude.NFData EmailTemplateMetadata where+ rnf EmailTemplateMetadata' {..} =+ Prelude.rnf createdTimestamp+ `Prelude.seq` Prelude.rnf templateName
+ gen/Amazonka/SESV2/Types/EventDestination.hs view
@@ -0,0 +1,212 @@+{-# 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.SESV2.Types.EventDestination+-- 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.SESV2.Types.EventDestination where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.CloudWatchDestination+import Amazonka.SESV2.Types.EventType+import Amazonka.SESV2.Types.KinesisFirehoseDestination+import Amazonka.SESV2.Types.PinpointDestination+import Amazonka.SESV2.Types.SnsDestination++-- | In the Amazon SES API v2, /events/ include message sends, deliveries,+-- opens, clicks, bounces, complaints and delivery delays. /Event+-- destinations/ are places that you can send information about these+-- events to. For example, you can send event data to Amazon SNS to receive+-- notifications when you receive bounces or complaints, or you can use+-- Amazon Kinesis Data Firehose to stream data to Amazon S3 for long-term+-- storage.+--+-- /See:/ 'newEventDestination' smart constructor.+data EventDestination = EventDestination'+ { -- | An object that defines an Amazon CloudWatch destination for email+ -- events. You can use Amazon CloudWatch to monitor and gain insights on+ -- your email sending metrics.+ cloudWatchDestination :: Prelude.Maybe CloudWatchDestination,+ -- | If @true@, the event destination is enabled. When the event destination+ -- is enabled, the specified event types are sent to the destinations in+ -- this @EventDestinationDefinition@.+ --+ -- If @false@, the event destination is disabled. When the event+ -- destination is disabled, events aren\'t sent to the specified+ -- destinations.+ enabled :: Prelude.Maybe Prelude.Bool,+ -- | An object that defines an Amazon Kinesis Data Firehose destination for+ -- email events. You can use Amazon Kinesis Data Firehose to stream data to+ -- other services, such as Amazon S3 and Amazon Redshift.+ kinesisFirehoseDestination :: Prelude.Maybe KinesisFirehoseDestination,+ -- | An object that defines an Amazon Pinpoint project destination for email+ -- events. You can send email event data to a Amazon Pinpoint project to+ -- view metrics using the Transactional Messaging dashboards that are built+ -- in to Amazon Pinpoint. For more information, see+ -- <https://docs.aws.amazon.com/pinpoint/latest/userguide/analytics-transactional-messages.html Transactional Messaging Charts>+ -- in the /Amazon Pinpoint User Guide/.+ pinpointDestination :: Prelude.Maybe PinpointDestination,+ -- | An object that defines an Amazon SNS destination for email events. You+ -- can use Amazon SNS to send notification when certain email events occur.+ snsDestination :: Prelude.Maybe SnsDestination,+ -- | A name that identifies the event destination.+ name :: Prelude.Text,+ -- | The types of events that Amazon SES sends to the specified event+ -- destinations.+ matchingEventTypes :: [EventType]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EventDestination' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cloudWatchDestination', 'eventDestination_cloudWatchDestination' - An object that defines an Amazon CloudWatch destination for email+-- events. You can use Amazon CloudWatch to monitor and gain insights on+-- your email sending metrics.+--+-- 'enabled', 'eventDestination_enabled' - If @true@, the event destination is enabled. When the event destination+-- is enabled, the specified event types are sent to the destinations in+-- this @EventDestinationDefinition@.+--+-- If @false@, the event destination is disabled. When the event+-- destination is disabled, events aren\'t sent to the specified+-- destinations.+--+-- 'kinesisFirehoseDestination', 'eventDestination_kinesisFirehoseDestination' - An object that defines an Amazon Kinesis Data Firehose destination for+-- email events. You can use Amazon Kinesis Data Firehose to stream data to+-- other services, such as Amazon S3 and Amazon Redshift.+--+-- 'pinpointDestination', 'eventDestination_pinpointDestination' - An object that defines an Amazon Pinpoint project destination for email+-- events. You can send email event data to a Amazon Pinpoint project to+-- view metrics using the Transactional Messaging dashboards that are built+-- in to Amazon Pinpoint. For more information, see+-- <https://docs.aws.amazon.com/pinpoint/latest/userguide/analytics-transactional-messages.html Transactional Messaging Charts>+-- in the /Amazon Pinpoint User Guide/.+--+-- 'snsDestination', 'eventDestination_snsDestination' - An object that defines an Amazon SNS destination for email events. You+-- can use Amazon SNS to send notification when certain email events occur.+--+-- 'name', 'eventDestination_name' - A name that identifies the event destination.+--+-- 'matchingEventTypes', 'eventDestination_matchingEventTypes' - The types of events that Amazon SES sends to the specified event+-- destinations.+newEventDestination ::+ -- | 'name'+ Prelude.Text ->+ EventDestination+newEventDestination pName_ =+ EventDestination'+ { cloudWatchDestination =+ Prelude.Nothing,+ enabled = Prelude.Nothing,+ kinesisFirehoseDestination = Prelude.Nothing,+ pinpointDestination = Prelude.Nothing,+ snsDestination = Prelude.Nothing,+ name = pName_,+ matchingEventTypes = Prelude.mempty+ }++-- | An object that defines an Amazon CloudWatch destination for email+-- events. You can use Amazon CloudWatch to monitor and gain insights on+-- your email sending metrics.+eventDestination_cloudWatchDestination :: Lens.Lens' EventDestination (Prelude.Maybe CloudWatchDestination)+eventDestination_cloudWatchDestination = Lens.lens (\EventDestination' {cloudWatchDestination} -> cloudWatchDestination) (\s@EventDestination' {} a -> s {cloudWatchDestination = a} :: EventDestination)++-- | If @true@, the event destination is enabled. When the event destination+-- is enabled, the specified event types are sent to the destinations in+-- this @EventDestinationDefinition@.+--+-- If @false@, the event destination is disabled. When the event+-- destination is disabled, events aren\'t sent to the specified+-- destinations.+eventDestination_enabled :: Lens.Lens' EventDestination (Prelude.Maybe Prelude.Bool)+eventDestination_enabled = Lens.lens (\EventDestination' {enabled} -> enabled) (\s@EventDestination' {} a -> s {enabled = a} :: EventDestination)++-- | An object that defines an Amazon Kinesis Data Firehose destination for+-- email events. You can use Amazon Kinesis Data Firehose to stream data to+-- other services, such as Amazon S3 and Amazon Redshift.+eventDestination_kinesisFirehoseDestination :: Lens.Lens' EventDestination (Prelude.Maybe KinesisFirehoseDestination)+eventDestination_kinesisFirehoseDestination = Lens.lens (\EventDestination' {kinesisFirehoseDestination} -> kinesisFirehoseDestination) (\s@EventDestination' {} a -> s {kinesisFirehoseDestination = a} :: EventDestination)++-- | An object that defines an Amazon Pinpoint project destination for email+-- events. You can send email event data to a Amazon Pinpoint project to+-- view metrics using the Transactional Messaging dashboards that are built+-- in to Amazon Pinpoint. For more information, see+-- <https://docs.aws.amazon.com/pinpoint/latest/userguide/analytics-transactional-messages.html Transactional Messaging Charts>+-- in the /Amazon Pinpoint User Guide/.+eventDestination_pinpointDestination :: Lens.Lens' EventDestination (Prelude.Maybe PinpointDestination)+eventDestination_pinpointDestination = Lens.lens (\EventDestination' {pinpointDestination} -> pinpointDestination) (\s@EventDestination' {} a -> s {pinpointDestination = a} :: EventDestination)++-- | An object that defines an Amazon SNS destination for email events. You+-- can use Amazon SNS to send notification when certain email events occur.+eventDestination_snsDestination :: Lens.Lens' EventDestination (Prelude.Maybe SnsDestination)+eventDestination_snsDestination = Lens.lens (\EventDestination' {snsDestination} -> snsDestination) (\s@EventDestination' {} a -> s {snsDestination = a} :: EventDestination)++-- | A name that identifies the event destination.+eventDestination_name :: Lens.Lens' EventDestination Prelude.Text+eventDestination_name = Lens.lens (\EventDestination' {name} -> name) (\s@EventDestination' {} a -> s {name = a} :: EventDestination)++-- | The types of events that Amazon SES sends to the specified event+-- destinations.+eventDestination_matchingEventTypes :: Lens.Lens' EventDestination [EventType]+eventDestination_matchingEventTypes = Lens.lens (\EventDestination' {matchingEventTypes} -> matchingEventTypes) (\s@EventDestination' {} a -> s {matchingEventTypes = a} :: EventDestination) Prelude.. Lens.coerced++instance Data.FromJSON EventDestination where+ parseJSON =+ Data.withObject+ "EventDestination"+ ( \x ->+ EventDestination'+ Prelude.<$> (x Data..:? "CloudWatchDestination")+ Prelude.<*> (x Data..:? "Enabled")+ Prelude.<*> (x Data..:? "KinesisFirehoseDestination")+ Prelude.<*> (x Data..:? "PinpointDestination")+ Prelude.<*> (x Data..:? "SnsDestination")+ Prelude.<*> (x Data..: "Name")+ Prelude.<*> ( x+ Data..:? "MatchingEventTypes"+ Data..!= Prelude.mempty+ )+ )++instance Prelude.Hashable EventDestination where+ hashWithSalt _salt EventDestination' {..} =+ _salt+ `Prelude.hashWithSalt` cloudWatchDestination+ `Prelude.hashWithSalt` enabled+ `Prelude.hashWithSalt` kinesisFirehoseDestination+ `Prelude.hashWithSalt` pinpointDestination+ `Prelude.hashWithSalt` snsDestination+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` matchingEventTypes++instance Prelude.NFData EventDestination where+ rnf EventDestination' {..} =+ Prelude.rnf cloudWatchDestination+ `Prelude.seq` Prelude.rnf enabled+ `Prelude.seq` Prelude.rnf kinesisFirehoseDestination+ `Prelude.seq` Prelude.rnf pinpointDestination+ `Prelude.seq` Prelude.rnf snsDestination+ `Prelude.seq` Prelude.rnf name+ `Prelude.seq` Prelude.rnf matchingEventTypes
+ gen/Amazonka/SESV2/Types/EventDestinationDefinition.hs view
@@ -0,0 +1,196 @@+{-# 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.SESV2.Types.EventDestinationDefinition+-- 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.SESV2.Types.EventDestinationDefinition where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.CloudWatchDestination+import Amazonka.SESV2.Types.EventType+import Amazonka.SESV2.Types.KinesisFirehoseDestination+import Amazonka.SESV2.Types.PinpointDestination+import Amazonka.SESV2.Types.SnsDestination++-- | An object that defines the event destination. Specifically, it defines+-- which services receive events from emails sent using the configuration+-- set that the event destination is associated with. Also defines the+-- types of events that are sent to the event destination.+--+-- /See:/ 'newEventDestinationDefinition' smart constructor.+data EventDestinationDefinition = EventDestinationDefinition'+ { -- | An object that defines an Amazon CloudWatch destination for email+ -- events. You can use Amazon CloudWatch to monitor and gain insights on+ -- your email sending metrics.+ cloudWatchDestination :: Prelude.Maybe CloudWatchDestination,+ -- | If @true@, the event destination is enabled. When the event destination+ -- is enabled, the specified event types are sent to the destinations in+ -- this @EventDestinationDefinition@.+ --+ -- If @false@, the event destination is disabled. When the event+ -- destination is disabled, events aren\'t sent to the specified+ -- destinations.+ enabled :: Prelude.Maybe Prelude.Bool,+ -- | An object that defines an Amazon Kinesis Data Firehose destination for+ -- email events. You can use Amazon Kinesis Data Firehose to stream data to+ -- other services, such as Amazon S3 and Amazon Redshift.+ kinesisFirehoseDestination :: Prelude.Maybe KinesisFirehoseDestination,+ -- | An array that specifies which events the Amazon SES API v2 should send+ -- to the destinations in this @EventDestinationDefinition@.+ matchingEventTypes :: Prelude.Maybe [EventType],+ -- | An object that defines an Amazon Pinpoint project destination for email+ -- events. You can send email event data to a Amazon Pinpoint project to+ -- view metrics using the Transactional Messaging dashboards that are built+ -- in to Amazon Pinpoint. For more information, see+ -- <https://docs.aws.amazon.com/pinpoint/latest/userguide/analytics-transactional-messages.html Transactional Messaging Charts>+ -- in the /Amazon Pinpoint User Guide/.+ pinpointDestination :: Prelude.Maybe PinpointDestination,+ -- | An object that defines an Amazon SNS destination for email events. You+ -- can use Amazon SNS to send notification when certain email events occur.+ snsDestination :: Prelude.Maybe SnsDestination+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EventDestinationDefinition' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cloudWatchDestination', 'eventDestinationDefinition_cloudWatchDestination' - An object that defines an Amazon CloudWatch destination for email+-- events. You can use Amazon CloudWatch to monitor and gain insights on+-- your email sending metrics.+--+-- 'enabled', 'eventDestinationDefinition_enabled' - If @true@, the event destination is enabled. When the event destination+-- is enabled, the specified event types are sent to the destinations in+-- this @EventDestinationDefinition@.+--+-- If @false@, the event destination is disabled. When the event+-- destination is disabled, events aren\'t sent to the specified+-- destinations.+--+-- 'kinesisFirehoseDestination', 'eventDestinationDefinition_kinesisFirehoseDestination' - An object that defines an Amazon Kinesis Data Firehose destination for+-- email events. You can use Amazon Kinesis Data Firehose to stream data to+-- other services, such as Amazon S3 and Amazon Redshift.+--+-- 'matchingEventTypes', 'eventDestinationDefinition_matchingEventTypes' - An array that specifies which events the Amazon SES API v2 should send+-- to the destinations in this @EventDestinationDefinition@.+--+-- 'pinpointDestination', 'eventDestinationDefinition_pinpointDestination' - An object that defines an Amazon Pinpoint project destination for email+-- events. You can send email event data to a Amazon Pinpoint project to+-- view metrics using the Transactional Messaging dashboards that are built+-- in to Amazon Pinpoint. For more information, see+-- <https://docs.aws.amazon.com/pinpoint/latest/userguide/analytics-transactional-messages.html Transactional Messaging Charts>+-- in the /Amazon Pinpoint User Guide/.+--+-- 'snsDestination', 'eventDestinationDefinition_snsDestination' - An object that defines an Amazon SNS destination for email events. You+-- can use Amazon SNS to send notification when certain email events occur.+newEventDestinationDefinition ::+ EventDestinationDefinition+newEventDestinationDefinition =+ EventDestinationDefinition'+ { cloudWatchDestination =+ Prelude.Nothing,+ enabled = Prelude.Nothing,+ kinesisFirehoseDestination = Prelude.Nothing,+ matchingEventTypes = Prelude.Nothing,+ pinpointDestination = Prelude.Nothing,+ snsDestination = Prelude.Nothing+ }++-- | An object that defines an Amazon CloudWatch destination for email+-- events. You can use Amazon CloudWatch to monitor and gain insights on+-- your email sending metrics.+eventDestinationDefinition_cloudWatchDestination :: Lens.Lens' EventDestinationDefinition (Prelude.Maybe CloudWatchDestination)+eventDestinationDefinition_cloudWatchDestination = Lens.lens (\EventDestinationDefinition' {cloudWatchDestination} -> cloudWatchDestination) (\s@EventDestinationDefinition' {} a -> s {cloudWatchDestination = a} :: EventDestinationDefinition)++-- | If @true@, the event destination is enabled. When the event destination+-- is enabled, the specified event types are sent to the destinations in+-- this @EventDestinationDefinition@.+--+-- If @false@, the event destination is disabled. When the event+-- destination is disabled, events aren\'t sent to the specified+-- destinations.+eventDestinationDefinition_enabled :: Lens.Lens' EventDestinationDefinition (Prelude.Maybe Prelude.Bool)+eventDestinationDefinition_enabled = Lens.lens (\EventDestinationDefinition' {enabled} -> enabled) (\s@EventDestinationDefinition' {} a -> s {enabled = a} :: EventDestinationDefinition)++-- | An object that defines an Amazon Kinesis Data Firehose destination for+-- email events. You can use Amazon Kinesis Data Firehose to stream data to+-- other services, such as Amazon S3 and Amazon Redshift.+eventDestinationDefinition_kinesisFirehoseDestination :: Lens.Lens' EventDestinationDefinition (Prelude.Maybe KinesisFirehoseDestination)+eventDestinationDefinition_kinesisFirehoseDestination = Lens.lens (\EventDestinationDefinition' {kinesisFirehoseDestination} -> kinesisFirehoseDestination) (\s@EventDestinationDefinition' {} a -> s {kinesisFirehoseDestination = a} :: EventDestinationDefinition)++-- | An array that specifies which events the Amazon SES API v2 should send+-- to the destinations in this @EventDestinationDefinition@.+eventDestinationDefinition_matchingEventTypes :: Lens.Lens' EventDestinationDefinition (Prelude.Maybe [EventType])+eventDestinationDefinition_matchingEventTypes = Lens.lens (\EventDestinationDefinition' {matchingEventTypes} -> matchingEventTypes) (\s@EventDestinationDefinition' {} a -> s {matchingEventTypes = a} :: EventDestinationDefinition) Prelude.. Lens.mapping Lens.coerced++-- | An object that defines an Amazon Pinpoint project destination for email+-- events. You can send email event data to a Amazon Pinpoint project to+-- view metrics using the Transactional Messaging dashboards that are built+-- in to Amazon Pinpoint. For more information, see+-- <https://docs.aws.amazon.com/pinpoint/latest/userguide/analytics-transactional-messages.html Transactional Messaging Charts>+-- in the /Amazon Pinpoint User Guide/.+eventDestinationDefinition_pinpointDestination :: Lens.Lens' EventDestinationDefinition (Prelude.Maybe PinpointDestination)+eventDestinationDefinition_pinpointDestination = Lens.lens (\EventDestinationDefinition' {pinpointDestination} -> pinpointDestination) (\s@EventDestinationDefinition' {} a -> s {pinpointDestination = a} :: EventDestinationDefinition)++-- | An object that defines an Amazon SNS destination for email events. You+-- can use Amazon SNS to send notification when certain email events occur.+eventDestinationDefinition_snsDestination :: Lens.Lens' EventDestinationDefinition (Prelude.Maybe SnsDestination)+eventDestinationDefinition_snsDestination = Lens.lens (\EventDestinationDefinition' {snsDestination} -> snsDestination) (\s@EventDestinationDefinition' {} a -> s {snsDestination = a} :: EventDestinationDefinition)++instance Prelude.Hashable EventDestinationDefinition where+ hashWithSalt _salt EventDestinationDefinition' {..} =+ _salt+ `Prelude.hashWithSalt` cloudWatchDestination+ `Prelude.hashWithSalt` enabled+ `Prelude.hashWithSalt` kinesisFirehoseDestination+ `Prelude.hashWithSalt` matchingEventTypes+ `Prelude.hashWithSalt` pinpointDestination+ `Prelude.hashWithSalt` snsDestination++instance Prelude.NFData EventDestinationDefinition where+ rnf EventDestinationDefinition' {..} =+ Prelude.rnf cloudWatchDestination+ `Prelude.seq` Prelude.rnf enabled+ `Prelude.seq` Prelude.rnf kinesisFirehoseDestination+ `Prelude.seq` Prelude.rnf matchingEventTypes+ `Prelude.seq` Prelude.rnf pinpointDestination+ `Prelude.seq` Prelude.rnf snsDestination++instance Data.ToJSON EventDestinationDefinition where+ toJSON EventDestinationDefinition' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("CloudWatchDestination" Data..=)+ Prelude.<$> cloudWatchDestination,+ ("Enabled" Data..=) Prelude.<$> enabled,+ ("KinesisFirehoseDestination" Data..=)+ Prelude.<$> kinesisFirehoseDestination,+ ("MatchingEventTypes" Data..=)+ Prelude.<$> matchingEventTypes,+ ("PinpointDestination" Data..=)+ Prelude.<$> pinpointDestination,+ ("SnsDestination" Data..=)+ Prelude.<$> snsDestination+ ]+ )
+ gen/Amazonka/SESV2/Types/EventType.hs view
@@ -0,0 +1,113 @@+{-# 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.SESV2.Types.EventType+-- 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.SESV2.Types.EventType+ ( EventType+ ( ..,+ EventType_BOUNCE,+ EventType_CLICK,+ EventType_COMPLAINT,+ EventType_DELIVERY,+ EventType_DELIVERY_DELAY,+ EventType_OPEN,+ EventType_REJECT,+ EventType_RENDERING_FAILURE,+ EventType_SEND,+ EventType_SUBSCRIPTION+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | An email sending event type. For example, email sends, opens, and+-- bounces are all email events.+newtype EventType = EventType'+ { fromEventType ::+ 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 EventType_BOUNCE :: EventType+pattern EventType_BOUNCE = EventType' "BOUNCE"++pattern EventType_CLICK :: EventType+pattern EventType_CLICK = EventType' "CLICK"++pattern EventType_COMPLAINT :: EventType+pattern EventType_COMPLAINT = EventType' "COMPLAINT"++pattern EventType_DELIVERY :: EventType+pattern EventType_DELIVERY = EventType' "DELIVERY"++pattern EventType_DELIVERY_DELAY :: EventType+pattern EventType_DELIVERY_DELAY = EventType' "DELIVERY_DELAY"++pattern EventType_OPEN :: EventType+pattern EventType_OPEN = EventType' "OPEN"++pattern EventType_REJECT :: EventType+pattern EventType_REJECT = EventType' "REJECT"++pattern EventType_RENDERING_FAILURE :: EventType+pattern EventType_RENDERING_FAILURE = EventType' "RENDERING_FAILURE"++pattern EventType_SEND :: EventType+pattern EventType_SEND = EventType' "SEND"++pattern EventType_SUBSCRIPTION :: EventType+pattern EventType_SUBSCRIPTION = EventType' "SUBSCRIPTION"++{-# COMPLETE+ EventType_BOUNCE,+ EventType_CLICK,+ EventType_COMPLAINT,+ EventType_DELIVERY,+ EventType_DELIVERY_DELAY,+ EventType_OPEN,+ EventType_REJECT,+ EventType_RENDERING_FAILURE,+ EventType_SEND,+ EventType_SUBSCRIPTION,+ EventType'+ #-}
+ gen/Amazonka/SESV2/Types/FailureInfo.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.SESV2.Types.FailureInfo+-- 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.SESV2.Types.FailureInfo 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 that contains the failure details about an import job.+--+-- /See:/ 'newFailureInfo' smart constructor.+data FailureInfo = FailureInfo'+ { -- | A message about why the import job failed.+ errorMessage :: Prelude.Maybe Prelude.Text,+ -- | An Amazon S3 presigned URL that contains all the failed records and+ -- related information.+ failedRecordsS3Url :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FailureInfo' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'errorMessage', 'failureInfo_errorMessage' - A message about why the import job failed.+--+-- 'failedRecordsS3Url', 'failureInfo_failedRecordsS3Url' - An Amazon S3 presigned URL that contains all the failed records and+-- related information.+newFailureInfo ::+ FailureInfo+newFailureInfo =+ FailureInfo'+ { errorMessage = Prelude.Nothing,+ failedRecordsS3Url = Prelude.Nothing+ }++-- | A message about why the import job failed.+failureInfo_errorMessage :: Lens.Lens' FailureInfo (Prelude.Maybe Prelude.Text)+failureInfo_errorMessage = Lens.lens (\FailureInfo' {errorMessage} -> errorMessage) (\s@FailureInfo' {} a -> s {errorMessage = a} :: FailureInfo)++-- | An Amazon S3 presigned URL that contains all the failed records and+-- related information.+failureInfo_failedRecordsS3Url :: Lens.Lens' FailureInfo (Prelude.Maybe Prelude.Text)+failureInfo_failedRecordsS3Url = Lens.lens (\FailureInfo' {failedRecordsS3Url} -> failedRecordsS3Url) (\s@FailureInfo' {} a -> s {failedRecordsS3Url = a} :: FailureInfo)++instance Data.FromJSON FailureInfo where+ parseJSON =+ Data.withObject+ "FailureInfo"+ ( \x ->+ FailureInfo'+ Prelude.<$> (x Data..:? "ErrorMessage")+ Prelude.<*> (x Data..:? "FailedRecordsS3Url")+ )++instance Prelude.Hashable FailureInfo where+ hashWithSalt _salt FailureInfo' {..} =+ _salt+ `Prelude.hashWithSalt` errorMessage+ `Prelude.hashWithSalt` failedRecordsS3Url++instance Prelude.NFData FailureInfo where+ rnf FailureInfo' {..} =+ Prelude.rnf errorMessage+ `Prelude.seq` Prelude.rnf failedRecordsS3Url
+ gen/Amazonka/SESV2/Types/FeatureStatus.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.SESV2.Types.FeatureStatus+-- 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.SESV2.Types.FeatureStatus+ ( FeatureStatus+ ( ..,+ FeatureStatus_DISABLED,+ FeatureStatus_ENABLED+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype FeatureStatus = FeatureStatus'+ { fromFeatureStatus ::+ 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 FeatureStatus_DISABLED :: FeatureStatus+pattern FeatureStatus_DISABLED = FeatureStatus' "DISABLED"++pattern FeatureStatus_ENABLED :: FeatureStatus+pattern FeatureStatus_ENABLED = FeatureStatus' "ENABLED"++{-# COMPLETE+ FeatureStatus_DISABLED,+ FeatureStatus_ENABLED,+ FeatureStatus'+ #-}
+ gen/Amazonka/SESV2/Types/GuardianAttributes.hs view
@@ -0,0 +1,105 @@+{-# 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.SESV2.Types.GuardianAttributes+-- 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.SESV2.Types.GuardianAttributes where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.FeatureStatus++-- | An object containing additional settings for your VDM configuration as+-- applicable to the Guardian.+--+-- /See:/ 'newGuardianAttributes' smart constructor.+data GuardianAttributes = GuardianAttributes'+ { -- | Specifies the status of your VDM optimized shared delivery. Can be one+ -- of the following:+ --+ -- - @ENABLED@ – Amazon SES enables optimized shared delivery for your+ -- account.+ --+ -- - @DISABLED@ – Amazon SES disables optimized shared delivery for your+ -- account.+ optimizedSharedDelivery :: Prelude.Maybe FeatureStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GuardianAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'optimizedSharedDelivery', 'guardianAttributes_optimizedSharedDelivery' - Specifies the status of your VDM optimized shared delivery. Can be one+-- of the following:+--+-- - @ENABLED@ – Amazon SES enables optimized shared delivery for your+-- account.+--+-- - @DISABLED@ – Amazon SES disables optimized shared delivery for your+-- account.+newGuardianAttributes ::+ GuardianAttributes+newGuardianAttributes =+ GuardianAttributes'+ { optimizedSharedDelivery =+ Prelude.Nothing+ }++-- | Specifies the status of your VDM optimized shared delivery. Can be one+-- of the following:+--+-- - @ENABLED@ – Amazon SES enables optimized shared delivery for your+-- account.+--+-- - @DISABLED@ – Amazon SES disables optimized shared delivery for your+-- account.+guardianAttributes_optimizedSharedDelivery :: Lens.Lens' GuardianAttributes (Prelude.Maybe FeatureStatus)+guardianAttributes_optimizedSharedDelivery = Lens.lens (\GuardianAttributes' {optimizedSharedDelivery} -> optimizedSharedDelivery) (\s@GuardianAttributes' {} a -> s {optimizedSharedDelivery = a} :: GuardianAttributes)++instance Data.FromJSON GuardianAttributes where+ parseJSON =+ Data.withObject+ "GuardianAttributes"+ ( \x ->+ GuardianAttributes'+ Prelude.<$> (x Data..:? "OptimizedSharedDelivery")+ )++instance Prelude.Hashable GuardianAttributes where+ hashWithSalt _salt GuardianAttributes' {..} =+ _salt+ `Prelude.hashWithSalt` optimizedSharedDelivery++instance Prelude.NFData GuardianAttributes where+ rnf GuardianAttributes' {..} =+ Prelude.rnf optimizedSharedDelivery++instance Data.ToJSON GuardianAttributes where+ toJSON GuardianAttributes' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("OptimizedSharedDelivery" Data..=)+ Prelude.<$> optimizedSharedDelivery+ ]+ )
+ gen/Amazonka/SESV2/Types/GuardianOptions.hs view
@@ -0,0 +1,105 @@+{-# 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.SESV2.Types.GuardianOptions+-- 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.SESV2.Types.GuardianOptions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.FeatureStatus++-- | An object containing additional settings for your VDM configuration as+-- applicable to the Guardian.+--+-- /See:/ 'newGuardianOptions' smart constructor.+data GuardianOptions = GuardianOptions'+ { -- | Specifies the status of your VDM optimized shared delivery. Can be one+ -- of the following:+ --+ -- - @ENABLED@ – Amazon SES enables optimized shared delivery for the+ -- configuration set.+ --+ -- - @DISABLED@ – Amazon SES disables optimized shared delivery for the+ -- configuration set.+ optimizedSharedDelivery :: Prelude.Maybe FeatureStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GuardianOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'optimizedSharedDelivery', 'guardianOptions_optimizedSharedDelivery' - Specifies the status of your VDM optimized shared delivery. Can be one+-- of the following:+--+-- - @ENABLED@ – Amazon SES enables optimized shared delivery for the+-- configuration set.+--+-- - @DISABLED@ – Amazon SES disables optimized shared delivery for the+-- configuration set.+newGuardianOptions ::+ GuardianOptions+newGuardianOptions =+ GuardianOptions'+ { optimizedSharedDelivery =+ Prelude.Nothing+ }++-- | Specifies the status of your VDM optimized shared delivery. Can be one+-- of the following:+--+-- - @ENABLED@ – Amazon SES enables optimized shared delivery for the+-- configuration set.+--+-- - @DISABLED@ – Amazon SES disables optimized shared delivery for the+-- configuration set.+guardianOptions_optimizedSharedDelivery :: Lens.Lens' GuardianOptions (Prelude.Maybe FeatureStatus)+guardianOptions_optimizedSharedDelivery = Lens.lens (\GuardianOptions' {optimizedSharedDelivery} -> optimizedSharedDelivery) (\s@GuardianOptions' {} a -> s {optimizedSharedDelivery = a} :: GuardianOptions)++instance Data.FromJSON GuardianOptions where+ parseJSON =+ Data.withObject+ "GuardianOptions"+ ( \x ->+ GuardianOptions'+ Prelude.<$> (x Data..:? "OptimizedSharedDelivery")+ )++instance Prelude.Hashable GuardianOptions where+ hashWithSalt _salt GuardianOptions' {..} =+ _salt+ `Prelude.hashWithSalt` optimizedSharedDelivery++instance Prelude.NFData GuardianOptions where+ rnf GuardianOptions' {..} =+ Prelude.rnf optimizedSharedDelivery++instance Data.ToJSON GuardianOptions where+ toJSON GuardianOptions' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("OptimizedSharedDelivery" Data..=)+ Prelude.<$> optimizedSharedDelivery+ ]+ )
+ gen/Amazonka/SESV2/Types/IdentityInfo.hs view
@@ -0,0 +1,170 @@+{-# 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.SESV2.Types.IdentityInfo+-- 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.SESV2.Types.IdentityInfo where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.IdentityType+import Amazonka.SESV2.Types.VerificationStatus++-- | Information about an email identity.+--+-- /See:/ 'newIdentityInfo' smart constructor.+data IdentityInfo = IdentityInfo'+ { -- | The address or domain of the identity.+ identityName :: Prelude.Maybe Prelude.Text,+ -- | The email identity type. Note: the @MANAGED_DOMAIN@ type is not+ -- supported for email identity types.+ identityType :: Prelude.Maybe IdentityType,+ -- | Indicates whether or not you can send email from the identity.+ --+ -- An /identity/ is an email address or domain that you send email from.+ -- Before you can send email from an identity, you have to demostrate that+ -- you own the identity, and that you authorize Amazon SES to send email+ -- from that identity.+ sendingEnabled :: Prelude.Maybe Prelude.Bool,+ -- | The verification status of the identity. The status can be one of the+ -- following:+ --+ -- - @PENDING@ – The verification process was initiated, but Amazon SES+ -- hasn\'t yet been able to verify the identity.+ --+ -- - @SUCCESS@ – The verification process completed successfully.+ --+ -- - @FAILED@ – The verification process failed.+ --+ -- - @TEMPORARY_FAILURE@ – A temporary issue is preventing Amazon SES+ -- from determining the verification status of the identity.+ --+ -- - @NOT_STARTED@ – The verification process hasn\'t been initiated for+ -- the identity.+ verificationStatus :: Prelude.Maybe VerificationStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IdentityInfo' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'identityName', 'identityInfo_identityName' - The address or domain of the identity.+--+-- 'identityType', 'identityInfo_identityType' - The email identity type. Note: the @MANAGED_DOMAIN@ type is not+-- supported for email identity types.+--+-- 'sendingEnabled', 'identityInfo_sendingEnabled' - Indicates whether or not you can send email from the identity.+--+-- An /identity/ is an email address or domain that you send email from.+-- Before you can send email from an identity, you have to demostrate that+-- you own the identity, and that you authorize Amazon SES to send email+-- from that identity.+--+-- 'verificationStatus', 'identityInfo_verificationStatus' - The verification status of the identity. The status can be one of the+-- following:+--+-- - @PENDING@ – The verification process was initiated, but Amazon SES+-- hasn\'t yet been able to verify the identity.+--+-- - @SUCCESS@ – The verification process completed successfully.+--+-- - @FAILED@ – The verification process failed.+--+-- - @TEMPORARY_FAILURE@ – A temporary issue is preventing Amazon SES+-- from determining the verification status of the identity.+--+-- - @NOT_STARTED@ – The verification process hasn\'t been initiated for+-- the identity.+newIdentityInfo ::+ IdentityInfo+newIdentityInfo =+ IdentityInfo'+ { identityName = Prelude.Nothing,+ identityType = Prelude.Nothing,+ sendingEnabled = Prelude.Nothing,+ verificationStatus = Prelude.Nothing+ }++-- | The address or domain of the identity.+identityInfo_identityName :: Lens.Lens' IdentityInfo (Prelude.Maybe Prelude.Text)+identityInfo_identityName = Lens.lens (\IdentityInfo' {identityName} -> identityName) (\s@IdentityInfo' {} a -> s {identityName = a} :: IdentityInfo)++-- | The email identity type. Note: the @MANAGED_DOMAIN@ type is not+-- supported for email identity types.+identityInfo_identityType :: Lens.Lens' IdentityInfo (Prelude.Maybe IdentityType)+identityInfo_identityType = Lens.lens (\IdentityInfo' {identityType} -> identityType) (\s@IdentityInfo' {} a -> s {identityType = a} :: IdentityInfo)++-- | Indicates whether or not you can send email from the identity.+--+-- An /identity/ is an email address or domain that you send email from.+-- Before you can send email from an identity, you have to demostrate that+-- you own the identity, and that you authorize Amazon SES to send email+-- from that identity.+identityInfo_sendingEnabled :: Lens.Lens' IdentityInfo (Prelude.Maybe Prelude.Bool)+identityInfo_sendingEnabled = Lens.lens (\IdentityInfo' {sendingEnabled} -> sendingEnabled) (\s@IdentityInfo' {} a -> s {sendingEnabled = a} :: IdentityInfo)++-- | The verification status of the identity. The status can be one of the+-- following:+--+-- - @PENDING@ – The verification process was initiated, but Amazon SES+-- hasn\'t yet been able to verify the identity.+--+-- - @SUCCESS@ – The verification process completed successfully.+--+-- - @FAILED@ – The verification process failed.+--+-- - @TEMPORARY_FAILURE@ – A temporary issue is preventing Amazon SES+-- from determining the verification status of the identity.+--+-- - @NOT_STARTED@ – The verification process hasn\'t been initiated for+-- the identity.+identityInfo_verificationStatus :: Lens.Lens' IdentityInfo (Prelude.Maybe VerificationStatus)+identityInfo_verificationStatus = Lens.lens (\IdentityInfo' {verificationStatus} -> verificationStatus) (\s@IdentityInfo' {} a -> s {verificationStatus = a} :: IdentityInfo)++instance Data.FromJSON IdentityInfo where+ parseJSON =+ Data.withObject+ "IdentityInfo"+ ( \x ->+ IdentityInfo'+ Prelude.<$> (x Data..:? "IdentityName")+ Prelude.<*> (x Data..:? "IdentityType")+ Prelude.<*> (x Data..:? "SendingEnabled")+ Prelude.<*> (x Data..:? "VerificationStatus")+ )++instance Prelude.Hashable IdentityInfo where+ hashWithSalt _salt IdentityInfo' {..} =+ _salt+ `Prelude.hashWithSalt` identityName+ `Prelude.hashWithSalt` identityType+ `Prelude.hashWithSalt` sendingEnabled+ `Prelude.hashWithSalt` verificationStatus++instance Prelude.NFData IdentityInfo where+ rnf IdentityInfo' {..} =+ Prelude.rnf identityName+ `Prelude.seq` Prelude.rnf identityType+ `Prelude.seq` Prelude.rnf sendingEnabled+ `Prelude.seq` Prelude.rnf verificationStatus
+ gen/Amazonka/SESV2/Types/IdentityType.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.SESV2.Types.IdentityType+-- 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.SESV2.Types.IdentityType+ ( IdentityType+ ( ..,+ IdentityType_DOMAIN,+ IdentityType_EMAIL_ADDRESS,+ IdentityType_MANAGED_DOMAIN+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype IdentityType = IdentityType'+ { fromIdentityType ::+ 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 IdentityType_DOMAIN :: IdentityType+pattern IdentityType_DOMAIN = IdentityType' "DOMAIN"++pattern IdentityType_EMAIL_ADDRESS :: IdentityType+pattern IdentityType_EMAIL_ADDRESS = IdentityType' "EMAIL_ADDRESS"++pattern IdentityType_MANAGED_DOMAIN :: IdentityType+pattern IdentityType_MANAGED_DOMAIN = IdentityType' "MANAGED_DOMAIN"++{-# COMPLETE+ IdentityType_DOMAIN,+ IdentityType_EMAIL_ADDRESS,+ IdentityType_MANAGED_DOMAIN,+ IdentityType'+ #-}
+ gen/Amazonka/SESV2/Types/ImportDataSource.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.SESV2.Types.ImportDataSource+-- 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.SESV2.Types.ImportDataSource where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.DataFormat++-- | An object that contains details about the data source of the import job.+--+-- /See:/ 'newImportDataSource' smart constructor.+data ImportDataSource = ImportDataSource'+ { -- | An Amazon S3 URL in the format s3:\/\//\<bucket_name>/\//\<object>/.+ s3Url :: Prelude.Text,+ -- | The data format of the import job\'s data source.+ dataFormat :: DataFormat+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportDataSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3Url', 'importDataSource_s3Url' - An Amazon S3 URL in the format s3:\/\//\<bucket_name>/\//\<object>/.+--+-- 'dataFormat', 'importDataSource_dataFormat' - The data format of the import job\'s data source.+newImportDataSource ::+ -- | 's3Url'+ Prelude.Text ->+ -- | 'dataFormat'+ DataFormat ->+ ImportDataSource+newImportDataSource pS3Url_ pDataFormat_ =+ ImportDataSource'+ { s3Url = pS3Url_,+ dataFormat = pDataFormat_+ }++-- | An Amazon S3 URL in the format s3:\/\//\<bucket_name>/\//\<object>/.+importDataSource_s3Url :: Lens.Lens' ImportDataSource Prelude.Text+importDataSource_s3Url = Lens.lens (\ImportDataSource' {s3Url} -> s3Url) (\s@ImportDataSource' {} a -> s {s3Url = a} :: ImportDataSource)++-- | The data format of the import job\'s data source.+importDataSource_dataFormat :: Lens.Lens' ImportDataSource DataFormat+importDataSource_dataFormat = Lens.lens (\ImportDataSource' {dataFormat} -> dataFormat) (\s@ImportDataSource' {} a -> s {dataFormat = a} :: ImportDataSource)++instance Data.FromJSON ImportDataSource where+ parseJSON =+ Data.withObject+ "ImportDataSource"+ ( \x ->+ ImportDataSource'+ Prelude.<$> (x Data..: "S3Url")+ Prelude.<*> (x Data..: "DataFormat")+ )++instance Prelude.Hashable ImportDataSource where+ hashWithSalt _salt ImportDataSource' {..} =+ _salt+ `Prelude.hashWithSalt` s3Url+ `Prelude.hashWithSalt` dataFormat++instance Prelude.NFData ImportDataSource where+ rnf ImportDataSource' {..} =+ Prelude.rnf s3Url+ `Prelude.seq` Prelude.rnf dataFormat++instance Data.ToJSON ImportDataSource where+ toJSON ImportDataSource' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("S3Url" Data..= s3Url),+ Prelude.Just ("DataFormat" Data..= dataFormat)+ ]+ )
+ gen/Amazonka/SESV2/Types/ImportDestination.hs view
@@ -0,0 +1,105 @@+{-# 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.SESV2.Types.ImportDestination+-- 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.SESV2.Types.ImportDestination where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.ContactListDestination+import Amazonka.SESV2.Types.SuppressionListDestination++-- | An object that contains details about the resource destination the+-- import job is going to target.+--+-- /See:/ 'newImportDestination' smart constructor.+data ImportDestination = ImportDestination'+ { -- | An object that contains the action of the import job towards a contact+ -- list.+ contactListDestination :: Prelude.Maybe ContactListDestination,+ -- | An object that contains the action of the import job towards suppression+ -- list.+ suppressionListDestination :: Prelude.Maybe SuppressionListDestination+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportDestination' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contactListDestination', 'importDestination_contactListDestination' - An object that contains the action of the import job towards a contact+-- list.+--+-- 'suppressionListDestination', 'importDestination_suppressionListDestination' - An object that contains the action of the import job towards suppression+-- list.+newImportDestination ::+ ImportDestination+newImportDestination =+ ImportDestination'+ { contactListDestination =+ Prelude.Nothing,+ suppressionListDestination = Prelude.Nothing+ }++-- | An object that contains the action of the import job towards a contact+-- list.+importDestination_contactListDestination :: Lens.Lens' ImportDestination (Prelude.Maybe ContactListDestination)+importDestination_contactListDestination = Lens.lens (\ImportDestination' {contactListDestination} -> contactListDestination) (\s@ImportDestination' {} a -> s {contactListDestination = a} :: ImportDestination)++-- | An object that contains the action of the import job towards suppression+-- list.+importDestination_suppressionListDestination :: Lens.Lens' ImportDestination (Prelude.Maybe SuppressionListDestination)+importDestination_suppressionListDestination = Lens.lens (\ImportDestination' {suppressionListDestination} -> suppressionListDestination) (\s@ImportDestination' {} a -> s {suppressionListDestination = a} :: ImportDestination)++instance Data.FromJSON ImportDestination where+ parseJSON =+ Data.withObject+ "ImportDestination"+ ( \x ->+ ImportDestination'+ Prelude.<$> (x Data..:? "ContactListDestination")+ Prelude.<*> (x Data..:? "SuppressionListDestination")+ )++instance Prelude.Hashable ImportDestination where+ hashWithSalt _salt ImportDestination' {..} =+ _salt+ `Prelude.hashWithSalt` contactListDestination+ `Prelude.hashWithSalt` suppressionListDestination++instance Prelude.NFData ImportDestination where+ rnf ImportDestination' {..} =+ Prelude.rnf contactListDestination+ `Prelude.seq` Prelude.rnf suppressionListDestination++instance Data.ToJSON ImportDestination where+ toJSON ImportDestination' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ContactListDestination" Data..=)+ Prelude.<$> contactListDestination,+ ("SuppressionListDestination" Data..=)+ Prelude.<$> suppressionListDestination+ ]+ )
+ gen/Amazonka/SESV2/Types/ImportDestinationType.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.SESV2.Types.ImportDestinationType+-- 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.SESV2.Types.ImportDestinationType+ ( ImportDestinationType+ ( ..,+ ImportDestinationType_CONTACT_LIST,+ ImportDestinationType_SUPPRESSION_LIST+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The destination of the import job, which can be used to list import jobs+-- that have a certain @ImportDestinationType@.+newtype ImportDestinationType = ImportDestinationType'+ { fromImportDestinationType ::+ 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 ImportDestinationType_CONTACT_LIST :: ImportDestinationType+pattern ImportDestinationType_CONTACT_LIST = ImportDestinationType' "CONTACT_LIST"++pattern ImportDestinationType_SUPPRESSION_LIST :: ImportDestinationType+pattern ImportDestinationType_SUPPRESSION_LIST = ImportDestinationType' "SUPPRESSION_LIST"++{-# COMPLETE+ ImportDestinationType_CONTACT_LIST,+ ImportDestinationType_SUPPRESSION_LIST,+ ImportDestinationType'+ #-}
+ gen/Amazonka/SESV2/Types/ImportJobSummary.hs view
@@ -0,0 +1,135 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.Types.ImportJobSummary+-- 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.SESV2.Types.ImportJobSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.ImportDestination+import Amazonka.SESV2.Types.JobStatus++-- | A summary of the import job.+--+-- /See:/ 'newImportJobSummary' smart constructor.+data ImportJobSummary = ImportJobSummary'+ { -- | The date and time when the import job was created.+ createdTimestamp :: Prelude.Maybe Data.POSIX,+ -- | The number of records that failed processing because of invalid input or+ -- other reasons.+ failedRecordsCount :: Prelude.Maybe Prelude.Int,+ importDestination :: Prelude.Maybe ImportDestination,+ jobId :: Prelude.Maybe Prelude.Text,+ jobStatus :: Prelude.Maybe JobStatus,+ -- | The current number of records processed.+ processedRecordsCount :: Prelude.Maybe Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportJobSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createdTimestamp', 'importJobSummary_createdTimestamp' - The date and time when the import job was created.+--+-- 'failedRecordsCount', 'importJobSummary_failedRecordsCount' - The number of records that failed processing because of invalid input or+-- other reasons.+--+-- 'importDestination', 'importJobSummary_importDestination' - Undocumented member.+--+-- 'jobId', 'importJobSummary_jobId' - Undocumented member.+--+-- 'jobStatus', 'importJobSummary_jobStatus' - Undocumented member.+--+-- 'processedRecordsCount', 'importJobSummary_processedRecordsCount' - The current number of records processed.+newImportJobSummary ::+ ImportJobSummary+newImportJobSummary =+ ImportJobSummary'+ { createdTimestamp =+ Prelude.Nothing,+ failedRecordsCount = Prelude.Nothing,+ importDestination = Prelude.Nothing,+ jobId = Prelude.Nothing,+ jobStatus = Prelude.Nothing,+ processedRecordsCount = Prelude.Nothing+ }++-- | The date and time when the import job was created.+importJobSummary_createdTimestamp :: Lens.Lens' ImportJobSummary (Prelude.Maybe Prelude.UTCTime)+importJobSummary_createdTimestamp = Lens.lens (\ImportJobSummary' {createdTimestamp} -> createdTimestamp) (\s@ImportJobSummary' {} a -> s {createdTimestamp = a} :: ImportJobSummary) Prelude.. Lens.mapping Data._Time++-- | The number of records that failed processing because of invalid input or+-- other reasons.+importJobSummary_failedRecordsCount :: Lens.Lens' ImportJobSummary (Prelude.Maybe Prelude.Int)+importJobSummary_failedRecordsCount = Lens.lens (\ImportJobSummary' {failedRecordsCount} -> failedRecordsCount) (\s@ImportJobSummary' {} a -> s {failedRecordsCount = a} :: ImportJobSummary)++-- | Undocumented member.+importJobSummary_importDestination :: Lens.Lens' ImportJobSummary (Prelude.Maybe ImportDestination)+importJobSummary_importDestination = Lens.lens (\ImportJobSummary' {importDestination} -> importDestination) (\s@ImportJobSummary' {} a -> s {importDestination = a} :: ImportJobSummary)++-- | Undocumented member.+importJobSummary_jobId :: Lens.Lens' ImportJobSummary (Prelude.Maybe Prelude.Text)+importJobSummary_jobId = Lens.lens (\ImportJobSummary' {jobId} -> jobId) (\s@ImportJobSummary' {} a -> s {jobId = a} :: ImportJobSummary)++-- | Undocumented member.+importJobSummary_jobStatus :: Lens.Lens' ImportJobSummary (Prelude.Maybe JobStatus)+importJobSummary_jobStatus = Lens.lens (\ImportJobSummary' {jobStatus} -> jobStatus) (\s@ImportJobSummary' {} a -> s {jobStatus = a} :: ImportJobSummary)++-- | The current number of records processed.+importJobSummary_processedRecordsCount :: Lens.Lens' ImportJobSummary (Prelude.Maybe Prelude.Int)+importJobSummary_processedRecordsCount = Lens.lens (\ImportJobSummary' {processedRecordsCount} -> processedRecordsCount) (\s@ImportJobSummary' {} a -> s {processedRecordsCount = a} :: ImportJobSummary)++instance Data.FromJSON ImportJobSummary where+ parseJSON =+ Data.withObject+ "ImportJobSummary"+ ( \x ->+ ImportJobSummary'+ Prelude.<$> (x Data..:? "CreatedTimestamp")+ Prelude.<*> (x Data..:? "FailedRecordsCount")+ Prelude.<*> (x Data..:? "ImportDestination")+ Prelude.<*> (x Data..:? "JobId")+ Prelude.<*> (x Data..:? "JobStatus")+ Prelude.<*> (x Data..:? "ProcessedRecordsCount")+ )++instance Prelude.Hashable ImportJobSummary where+ hashWithSalt _salt ImportJobSummary' {..} =+ _salt+ `Prelude.hashWithSalt` createdTimestamp+ `Prelude.hashWithSalt` failedRecordsCount+ `Prelude.hashWithSalt` importDestination+ `Prelude.hashWithSalt` jobId+ `Prelude.hashWithSalt` jobStatus+ `Prelude.hashWithSalt` processedRecordsCount++instance Prelude.NFData ImportJobSummary where+ rnf ImportJobSummary' {..} =+ Prelude.rnf createdTimestamp+ `Prelude.seq` Prelude.rnf failedRecordsCount+ `Prelude.seq` Prelude.rnf importDestination+ `Prelude.seq` Prelude.rnf jobId+ `Prelude.seq` Prelude.rnf jobStatus+ `Prelude.seq` Prelude.rnf processedRecordsCount
+ gen/Amazonka/SESV2/Types/InboxPlacementTrackingOption.hs view
@@ -0,0 +1,103 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.Types.InboxPlacementTrackingOption+-- 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.SESV2.Types.InboxPlacementTrackingOption 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 that contains information about the inbox placement data+-- settings for a verified domain that’s associated with your Amazon Web+-- Services account. This data is available only if you enabled the+-- Deliverability dashboard for the domain.+--+-- /See:/ 'newInboxPlacementTrackingOption' smart constructor.+data InboxPlacementTrackingOption = InboxPlacementTrackingOption'+ { -- | Specifies whether inbox placement data is being tracked for the domain.+ global :: Prelude.Maybe Prelude.Bool,+ -- | An array of strings, one for each major email provider that the inbox+ -- placement data applies to.+ trackedIsps :: Prelude.Maybe [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InboxPlacementTrackingOption' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'global', 'inboxPlacementTrackingOption_global' - Specifies whether inbox placement data is being tracked for the domain.+--+-- 'trackedIsps', 'inboxPlacementTrackingOption_trackedIsps' - An array of strings, one for each major email provider that the inbox+-- placement data applies to.+newInboxPlacementTrackingOption ::+ InboxPlacementTrackingOption+newInboxPlacementTrackingOption =+ InboxPlacementTrackingOption'+ { global =+ Prelude.Nothing,+ trackedIsps = Prelude.Nothing+ }++-- | Specifies whether inbox placement data is being tracked for the domain.+inboxPlacementTrackingOption_global :: Lens.Lens' InboxPlacementTrackingOption (Prelude.Maybe Prelude.Bool)+inboxPlacementTrackingOption_global = Lens.lens (\InboxPlacementTrackingOption' {global} -> global) (\s@InboxPlacementTrackingOption' {} a -> s {global = a} :: InboxPlacementTrackingOption)++-- | An array of strings, one for each major email provider that the inbox+-- placement data applies to.+inboxPlacementTrackingOption_trackedIsps :: Lens.Lens' InboxPlacementTrackingOption (Prelude.Maybe [Prelude.Text])+inboxPlacementTrackingOption_trackedIsps = Lens.lens (\InboxPlacementTrackingOption' {trackedIsps} -> trackedIsps) (\s@InboxPlacementTrackingOption' {} a -> s {trackedIsps = a} :: InboxPlacementTrackingOption) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON InboxPlacementTrackingOption where+ parseJSON =+ Data.withObject+ "InboxPlacementTrackingOption"+ ( \x ->+ InboxPlacementTrackingOption'+ Prelude.<$> (x Data..:? "Global")+ Prelude.<*> (x Data..:? "TrackedIsps" Data..!= Prelude.mempty)+ )++instance+ Prelude.Hashable+ InboxPlacementTrackingOption+ where+ hashWithSalt _salt InboxPlacementTrackingOption' {..} =+ _salt+ `Prelude.hashWithSalt` global+ `Prelude.hashWithSalt` trackedIsps++instance Prelude.NFData InboxPlacementTrackingOption where+ rnf InboxPlacementTrackingOption' {..} =+ Prelude.rnf global+ `Prelude.seq` Prelude.rnf trackedIsps++instance Data.ToJSON InboxPlacementTrackingOption where+ toJSON InboxPlacementTrackingOption' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Global" Data..=) Prelude.<$> global,+ ("TrackedIsps" Data..=) Prelude.<$> trackedIsps+ ]+ )
+ gen/Amazonka/SESV2/Types/IspPlacement.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.SESV2.Types.IspPlacement+-- 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.SESV2.Types.IspPlacement where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.PlacementStatistics++-- | An object that describes how email sent during the predictive inbox+-- placement test was handled by a certain email provider.+--+-- /See:/ 'newIspPlacement' smart constructor.+data IspPlacement = IspPlacement'+ { -- | The name of the email provider that the inbox placement data applies to.+ ispName :: Prelude.Maybe Prelude.Text,+ -- | An object that contains inbox placement metrics for a specific email+ -- provider.+ placementStatistics :: Prelude.Maybe PlacementStatistics+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IspPlacement' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ispName', 'ispPlacement_ispName' - The name of the email provider that the inbox placement data applies to.+--+-- 'placementStatistics', 'ispPlacement_placementStatistics' - An object that contains inbox placement metrics for a specific email+-- provider.+newIspPlacement ::+ IspPlacement+newIspPlacement =+ IspPlacement'+ { ispName = Prelude.Nothing,+ placementStatistics = Prelude.Nothing+ }++-- | The name of the email provider that the inbox placement data applies to.+ispPlacement_ispName :: Lens.Lens' IspPlacement (Prelude.Maybe Prelude.Text)+ispPlacement_ispName = Lens.lens (\IspPlacement' {ispName} -> ispName) (\s@IspPlacement' {} a -> s {ispName = a} :: IspPlacement)++-- | An object that contains inbox placement metrics for a specific email+-- provider.+ispPlacement_placementStatistics :: Lens.Lens' IspPlacement (Prelude.Maybe PlacementStatistics)+ispPlacement_placementStatistics = Lens.lens (\IspPlacement' {placementStatistics} -> placementStatistics) (\s@IspPlacement' {} a -> s {placementStatistics = a} :: IspPlacement)++instance Data.FromJSON IspPlacement where+ parseJSON =+ Data.withObject+ "IspPlacement"+ ( \x ->+ IspPlacement'+ Prelude.<$> (x Data..:? "IspName")+ Prelude.<*> (x Data..:? "PlacementStatistics")+ )++instance Prelude.Hashable IspPlacement where+ hashWithSalt _salt IspPlacement' {..} =+ _salt+ `Prelude.hashWithSalt` ispName+ `Prelude.hashWithSalt` placementStatistics++instance Prelude.NFData IspPlacement where+ rnf IspPlacement' {..} =+ Prelude.rnf ispName+ `Prelude.seq` Prelude.rnf placementStatistics
+ gen/Amazonka/SESV2/Types/JobStatus.hs view
@@ -0,0 +1,82 @@+{-# 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.SESV2.Types.JobStatus+-- 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.SESV2.Types.JobStatus+ ( JobStatus+ ( ..,+ JobStatus_COMPLETED,+ JobStatus_CREATED,+ JobStatus_FAILED,+ JobStatus_PROCESSING+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The status of the import job.+newtype JobStatus = JobStatus'+ { fromJobStatus ::+ 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 JobStatus_COMPLETED :: JobStatus+pattern JobStatus_COMPLETED = JobStatus' "COMPLETED"++pattern JobStatus_CREATED :: JobStatus+pattern JobStatus_CREATED = JobStatus' "CREATED"++pattern JobStatus_FAILED :: JobStatus+pattern JobStatus_FAILED = JobStatus' "FAILED"++pattern JobStatus_PROCESSING :: JobStatus+pattern JobStatus_PROCESSING = JobStatus' "PROCESSING"++{-# COMPLETE+ JobStatus_COMPLETED,+ JobStatus_CREATED,+ JobStatus_FAILED,+ JobStatus_PROCESSING,+ JobStatus'+ #-}
+ gen/Amazonka/SESV2/Types/KinesisFirehoseDestination.hs view
@@ -0,0 +1,109 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.Types.KinesisFirehoseDestination+-- 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.SESV2.Types.KinesisFirehoseDestination 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 that defines an Amazon Kinesis Data Firehose destination for+-- email events. You can use Amazon Kinesis Data Firehose to stream data to+-- other services, such as Amazon S3 and Amazon Redshift.+--+-- /See:/ 'newKinesisFirehoseDestination' smart constructor.+data KinesisFirehoseDestination = KinesisFirehoseDestination'+ { -- | The Amazon Resource Name (ARN) of the IAM role that the Amazon SES API+ -- v2 uses to send email events to the Amazon Kinesis Data Firehose stream.+ iamRoleArn :: Prelude.Text,+ -- | The Amazon Resource Name (ARN) of the Amazon Kinesis Data Firehose+ -- stream that the Amazon SES API v2 sends email events to.+ deliveryStreamArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'KinesisFirehoseDestination' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'iamRoleArn', 'kinesisFirehoseDestination_iamRoleArn' - The Amazon Resource Name (ARN) of the IAM role that the Amazon SES API+-- v2 uses to send email events to the Amazon Kinesis Data Firehose stream.+--+-- 'deliveryStreamArn', 'kinesisFirehoseDestination_deliveryStreamArn' - The Amazon Resource Name (ARN) of the Amazon Kinesis Data Firehose+-- stream that the Amazon SES API v2 sends email events to.+newKinesisFirehoseDestination ::+ -- | 'iamRoleArn'+ Prelude.Text ->+ -- | 'deliveryStreamArn'+ Prelude.Text ->+ KinesisFirehoseDestination+newKinesisFirehoseDestination+ pIamRoleArn_+ pDeliveryStreamArn_ =+ KinesisFirehoseDestination'+ { iamRoleArn =+ pIamRoleArn_,+ deliveryStreamArn = pDeliveryStreamArn_+ }++-- | The Amazon Resource Name (ARN) of the IAM role that the Amazon SES API+-- v2 uses to send email events to the Amazon Kinesis Data Firehose stream.+kinesisFirehoseDestination_iamRoleArn :: Lens.Lens' KinesisFirehoseDestination Prelude.Text+kinesisFirehoseDestination_iamRoleArn = Lens.lens (\KinesisFirehoseDestination' {iamRoleArn} -> iamRoleArn) (\s@KinesisFirehoseDestination' {} a -> s {iamRoleArn = a} :: KinesisFirehoseDestination)++-- | The Amazon Resource Name (ARN) of the Amazon Kinesis Data Firehose+-- stream that the Amazon SES API v2 sends email events to.+kinesisFirehoseDestination_deliveryStreamArn :: Lens.Lens' KinesisFirehoseDestination Prelude.Text+kinesisFirehoseDestination_deliveryStreamArn = Lens.lens (\KinesisFirehoseDestination' {deliveryStreamArn} -> deliveryStreamArn) (\s@KinesisFirehoseDestination' {} a -> s {deliveryStreamArn = a} :: KinesisFirehoseDestination)++instance Data.FromJSON KinesisFirehoseDestination where+ parseJSON =+ Data.withObject+ "KinesisFirehoseDestination"+ ( \x ->+ KinesisFirehoseDestination'+ Prelude.<$> (x Data..: "IamRoleArn")+ Prelude.<*> (x Data..: "DeliveryStreamArn")+ )++instance Prelude.Hashable KinesisFirehoseDestination where+ hashWithSalt _salt KinesisFirehoseDestination' {..} =+ _salt+ `Prelude.hashWithSalt` iamRoleArn+ `Prelude.hashWithSalt` deliveryStreamArn++instance Prelude.NFData KinesisFirehoseDestination where+ rnf KinesisFirehoseDestination' {..} =+ Prelude.rnf iamRoleArn+ `Prelude.seq` Prelude.rnf deliveryStreamArn++instance Data.ToJSON KinesisFirehoseDestination where+ toJSON KinesisFirehoseDestination' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("IamRoleArn" Data..= iamRoleArn),+ Prelude.Just+ ("DeliveryStreamArn" Data..= deliveryStreamArn)+ ]+ )
+ gen/Amazonka/SESV2/Types/ListContactsFilter.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.SESV2.Types.ListContactsFilter+-- 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.SESV2.Types.ListContactsFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.SubscriptionStatus+import Amazonka.SESV2.Types.TopicFilter++-- | A filter that can be applied to a list of contacts.+--+-- /See:/ 'newListContactsFilter' smart constructor.+data ListContactsFilter = ListContactsFilter'+ { -- | The status by which you are filtering: @OPT_IN@ or @OPT_OUT@.+ filteredStatus :: Prelude.Maybe SubscriptionStatus,+ -- | Used for filtering by a specific topic preference.+ topicFilter :: Prelude.Maybe TopicFilter+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListContactsFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filteredStatus', 'listContactsFilter_filteredStatus' - The status by which you are filtering: @OPT_IN@ or @OPT_OUT@.+--+-- 'topicFilter', 'listContactsFilter_topicFilter' - Used for filtering by a specific topic preference.+newListContactsFilter ::+ ListContactsFilter+newListContactsFilter =+ ListContactsFilter'+ { filteredStatus =+ Prelude.Nothing,+ topicFilter = Prelude.Nothing+ }++-- | The status by which you are filtering: @OPT_IN@ or @OPT_OUT@.+listContactsFilter_filteredStatus :: Lens.Lens' ListContactsFilter (Prelude.Maybe SubscriptionStatus)+listContactsFilter_filteredStatus = Lens.lens (\ListContactsFilter' {filteredStatus} -> filteredStatus) (\s@ListContactsFilter' {} a -> s {filteredStatus = a} :: ListContactsFilter)++-- | Used for filtering by a specific topic preference.+listContactsFilter_topicFilter :: Lens.Lens' ListContactsFilter (Prelude.Maybe TopicFilter)+listContactsFilter_topicFilter = Lens.lens (\ListContactsFilter' {topicFilter} -> topicFilter) (\s@ListContactsFilter' {} a -> s {topicFilter = a} :: ListContactsFilter)++instance Prelude.Hashable ListContactsFilter where+ hashWithSalt _salt ListContactsFilter' {..} =+ _salt+ `Prelude.hashWithSalt` filteredStatus+ `Prelude.hashWithSalt` topicFilter++instance Prelude.NFData ListContactsFilter where+ rnf ListContactsFilter' {..} =+ Prelude.rnf filteredStatus+ `Prelude.seq` Prelude.rnf topicFilter++instance Data.ToJSON ListContactsFilter where+ toJSON ListContactsFilter' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("FilteredStatus" Data..=)+ Prelude.<$> filteredStatus,+ ("TopicFilter" Data..=) Prelude.<$> topicFilter+ ]+ )
+ gen/Amazonka/SESV2/Types/ListManagementOptions.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.SESV2.Types.ListManagementOptions+-- 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.SESV2.Types.ListManagementOptions 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 used to specify a list or topic to which an email belongs,+-- which will be used when a contact chooses to unsubscribe.+--+-- /See:/ 'newListManagementOptions' smart constructor.+data ListManagementOptions = ListManagementOptions'+ { -- | The name of the topic.+ topicName :: Prelude.Maybe Prelude.Text,+ -- | The name of the contact list.+ contactListName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListManagementOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'topicName', 'listManagementOptions_topicName' - The name of the topic.+--+-- 'contactListName', 'listManagementOptions_contactListName' - The name of the contact list.+newListManagementOptions ::+ -- | 'contactListName'+ Prelude.Text ->+ ListManagementOptions+newListManagementOptions pContactListName_ =+ ListManagementOptions'+ { topicName = Prelude.Nothing,+ contactListName = pContactListName_+ }++-- | The name of the topic.+listManagementOptions_topicName :: Lens.Lens' ListManagementOptions (Prelude.Maybe Prelude.Text)+listManagementOptions_topicName = Lens.lens (\ListManagementOptions' {topicName} -> topicName) (\s@ListManagementOptions' {} a -> s {topicName = a} :: ListManagementOptions)++-- | The name of the contact list.+listManagementOptions_contactListName :: Lens.Lens' ListManagementOptions Prelude.Text+listManagementOptions_contactListName = Lens.lens (\ListManagementOptions' {contactListName} -> contactListName) (\s@ListManagementOptions' {} a -> s {contactListName = a} :: ListManagementOptions)++instance Prelude.Hashable ListManagementOptions where+ hashWithSalt _salt ListManagementOptions' {..} =+ _salt+ `Prelude.hashWithSalt` topicName+ `Prelude.hashWithSalt` contactListName++instance Prelude.NFData ListManagementOptions where+ rnf ListManagementOptions' {..} =+ Prelude.rnf topicName+ `Prelude.seq` Prelude.rnf contactListName++instance Data.ToJSON ListManagementOptions where+ toJSON ListManagementOptions' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("TopicName" Data..=) Prelude.<$> topicName,+ Prelude.Just+ ("ContactListName" Data..= contactListName)+ ]+ )
+ gen/Amazonka/SESV2/Types/ListRecommendationsFilterKey.hs view
@@ -0,0 +1,95 @@+{-# 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.SESV2.Types.ListRecommendationsFilterKey+-- 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.SESV2.Types.ListRecommendationsFilterKey+ ( ListRecommendationsFilterKey+ ( ..,+ ListRecommendationsFilterKey_IMPACT,+ ListRecommendationsFilterKey_RESOURCE_ARN,+ ListRecommendationsFilterKey_STATUS,+ ListRecommendationsFilterKey_TYPE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The @ListRecommendations@ filter type. This can be one of the following:+--+-- - @TYPE@ – The recommendation type, with values like @DKIM@, @SPF@ or+-- @DMARC@.+--+-- - @IMPACT@ – The recommendation impact, with values like @HIGH@ or+-- @LOW@.+--+-- - @STATUS@ – The recommendation status, with values like @OPEN@ or+-- @FIXED@.+--+-- - @RESOURCE_ARN@ – The resource affected by the recommendation, with+-- values like+-- @arn:aws:ses:us-east-1:123456789012:identity\/example.com@.+newtype ListRecommendationsFilterKey = ListRecommendationsFilterKey'+ { fromListRecommendationsFilterKey ::+ 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 ListRecommendationsFilterKey_IMPACT :: ListRecommendationsFilterKey+pattern ListRecommendationsFilterKey_IMPACT = ListRecommendationsFilterKey' "IMPACT"++pattern ListRecommendationsFilterKey_RESOURCE_ARN :: ListRecommendationsFilterKey+pattern ListRecommendationsFilterKey_RESOURCE_ARN = ListRecommendationsFilterKey' "RESOURCE_ARN"++pattern ListRecommendationsFilterKey_STATUS :: ListRecommendationsFilterKey+pattern ListRecommendationsFilterKey_STATUS = ListRecommendationsFilterKey' "STATUS"++pattern ListRecommendationsFilterKey_TYPE :: ListRecommendationsFilterKey+pattern ListRecommendationsFilterKey_TYPE = ListRecommendationsFilterKey' "TYPE"++{-# COMPLETE+ ListRecommendationsFilterKey_IMPACT,+ ListRecommendationsFilterKey_RESOURCE_ARN,+ ListRecommendationsFilterKey_STATUS,+ ListRecommendationsFilterKey_TYPE,+ ListRecommendationsFilterKey'+ #-}
+ gen/Amazonka/SESV2/Types/MailFromAttributes.hs view
@@ -0,0 +1,174 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.Types.MailFromAttributes+-- 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.SESV2.Types.MailFromAttributes where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.BehaviorOnMxFailure+import Amazonka.SESV2.Types.MailFromDomainStatus++-- | A list of attributes that are associated with a MAIL FROM domain.+--+-- /See:/ 'newMailFromAttributes' smart constructor.+data MailFromAttributes = MailFromAttributes'+ { -- | The name of a domain that an email identity uses as a custom MAIL FROM+ -- domain.+ mailFromDomain :: Prelude.Text,+ -- | The status of the MAIL FROM domain. This status can have the following+ -- values:+ --+ -- - @PENDING@ – Amazon SES hasn\'t started searching for the MX record+ -- yet.+ --+ -- - @SUCCESS@ – Amazon SES detected the required MX record for the MAIL+ -- FROM domain.+ --+ -- - @FAILED@ – Amazon SES can\'t find the required MX record, or the+ -- record no longer exists.+ --+ -- - @TEMPORARY_FAILURE@ – A temporary issue occurred, which prevented+ -- Amazon SES from determining the status of the MAIL FROM domain.+ mailFromDomainStatus :: MailFromDomainStatus,+ -- | The action to take if the required MX record can\'t be found when you+ -- send an email. When you set this value to @USE_DEFAULT_VALUE@, the mail+ -- is sent using /amazonses.com/ as the MAIL FROM domain. When you set this+ -- value to @REJECT_MESSAGE@, the Amazon SES API v2 returns a+ -- @MailFromDomainNotVerified@ error, and doesn\'t attempt to deliver the+ -- email.+ --+ -- These behaviors are taken when the custom MAIL FROM domain configuration+ -- is in the @Pending@, @Failed@, and @TemporaryFailure@ states.+ behaviorOnMxFailure :: BehaviorOnMxFailure+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MailFromAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'mailFromDomain', 'mailFromAttributes_mailFromDomain' - The name of a domain that an email identity uses as a custom MAIL FROM+-- domain.+--+-- 'mailFromDomainStatus', 'mailFromAttributes_mailFromDomainStatus' - The status of the MAIL FROM domain. This status can have the following+-- values:+--+-- - @PENDING@ – Amazon SES hasn\'t started searching for the MX record+-- yet.+--+-- - @SUCCESS@ – Amazon SES detected the required MX record for the MAIL+-- FROM domain.+--+-- - @FAILED@ – Amazon SES can\'t find the required MX record, or the+-- record no longer exists.+--+-- - @TEMPORARY_FAILURE@ – A temporary issue occurred, which prevented+-- Amazon SES from determining the status of the MAIL FROM domain.+--+-- 'behaviorOnMxFailure', 'mailFromAttributes_behaviorOnMxFailure' - The action to take if the required MX record can\'t be found when you+-- send an email. When you set this value to @USE_DEFAULT_VALUE@, the mail+-- is sent using /amazonses.com/ as the MAIL FROM domain. When you set this+-- value to @REJECT_MESSAGE@, the Amazon SES API v2 returns a+-- @MailFromDomainNotVerified@ error, and doesn\'t attempt to deliver the+-- email.+--+-- These behaviors are taken when the custom MAIL FROM domain configuration+-- is in the @Pending@, @Failed@, and @TemporaryFailure@ states.+newMailFromAttributes ::+ -- | 'mailFromDomain'+ Prelude.Text ->+ -- | 'mailFromDomainStatus'+ MailFromDomainStatus ->+ -- | 'behaviorOnMxFailure'+ BehaviorOnMxFailure ->+ MailFromAttributes+newMailFromAttributes+ pMailFromDomain_+ pMailFromDomainStatus_+ pBehaviorOnMxFailure_ =+ MailFromAttributes'+ { mailFromDomain =+ pMailFromDomain_,+ mailFromDomainStatus = pMailFromDomainStatus_,+ behaviorOnMxFailure = pBehaviorOnMxFailure_+ }++-- | The name of a domain that an email identity uses as a custom MAIL FROM+-- domain.+mailFromAttributes_mailFromDomain :: Lens.Lens' MailFromAttributes Prelude.Text+mailFromAttributes_mailFromDomain = Lens.lens (\MailFromAttributes' {mailFromDomain} -> mailFromDomain) (\s@MailFromAttributes' {} a -> s {mailFromDomain = a} :: MailFromAttributes)++-- | The status of the MAIL FROM domain. This status can have the following+-- values:+--+-- - @PENDING@ – Amazon SES hasn\'t started searching for the MX record+-- yet.+--+-- - @SUCCESS@ – Amazon SES detected the required MX record for the MAIL+-- FROM domain.+--+-- - @FAILED@ – Amazon SES can\'t find the required MX record, or the+-- record no longer exists.+--+-- - @TEMPORARY_FAILURE@ – A temporary issue occurred, which prevented+-- Amazon SES from determining the status of the MAIL FROM domain.+mailFromAttributes_mailFromDomainStatus :: Lens.Lens' MailFromAttributes MailFromDomainStatus+mailFromAttributes_mailFromDomainStatus = Lens.lens (\MailFromAttributes' {mailFromDomainStatus} -> mailFromDomainStatus) (\s@MailFromAttributes' {} a -> s {mailFromDomainStatus = a} :: MailFromAttributes)++-- | The action to take if the required MX record can\'t be found when you+-- send an email. When you set this value to @USE_DEFAULT_VALUE@, the mail+-- is sent using /amazonses.com/ as the MAIL FROM domain. When you set this+-- value to @REJECT_MESSAGE@, the Amazon SES API v2 returns a+-- @MailFromDomainNotVerified@ error, and doesn\'t attempt to deliver the+-- email.+--+-- These behaviors are taken when the custom MAIL FROM domain configuration+-- is in the @Pending@, @Failed@, and @TemporaryFailure@ states.+mailFromAttributes_behaviorOnMxFailure :: Lens.Lens' MailFromAttributes BehaviorOnMxFailure+mailFromAttributes_behaviorOnMxFailure = Lens.lens (\MailFromAttributes' {behaviorOnMxFailure} -> behaviorOnMxFailure) (\s@MailFromAttributes' {} a -> s {behaviorOnMxFailure = a} :: MailFromAttributes)++instance Data.FromJSON MailFromAttributes where+ parseJSON =+ Data.withObject+ "MailFromAttributes"+ ( \x ->+ MailFromAttributes'+ Prelude.<$> (x Data..: "MailFromDomain")+ Prelude.<*> (x Data..: "MailFromDomainStatus")+ Prelude.<*> (x Data..: "BehaviorOnMxFailure")+ )++instance Prelude.Hashable MailFromAttributes where+ hashWithSalt _salt MailFromAttributes' {..} =+ _salt+ `Prelude.hashWithSalt` mailFromDomain+ `Prelude.hashWithSalt` mailFromDomainStatus+ `Prelude.hashWithSalt` behaviorOnMxFailure++instance Prelude.NFData MailFromAttributes where+ rnf MailFromAttributes' {..} =+ Prelude.rnf mailFromDomain+ `Prelude.seq` Prelude.rnf mailFromDomainStatus+ `Prelude.seq` Prelude.rnf behaviorOnMxFailure
+ gen/Amazonka/SESV2/Types/MailFromDomainStatus.hs view
@@ -0,0 +1,95 @@+{-# 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.SESV2.Types.MailFromDomainStatus+-- 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.SESV2.Types.MailFromDomainStatus+ ( MailFromDomainStatus+ ( ..,+ MailFromDomainStatus_FAILED,+ MailFromDomainStatus_PENDING,+ MailFromDomainStatus_SUCCESS,+ MailFromDomainStatus_TEMPORARY_FAILURE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The status of the MAIL FROM domain. This status can have the following+-- values:+--+-- - @PENDING@ – Amazon SES hasn\'t started searching for the MX record+-- yet.+--+-- - @SUCCESS@ – Amazon SES detected the required MX record for the MAIL+-- FROM domain.+--+-- - @FAILED@ – Amazon SES can\'t find the required MX record, or the+-- record no longer exists.+--+-- - @TEMPORARY_FAILURE@ – A temporary issue occurred, which prevented+-- Amazon SES from determining the status of the MAIL FROM domain.+newtype MailFromDomainStatus = MailFromDomainStatus'+ { fromMailFromDomainStatus ::+ 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 MailFromDomainStatus_FAILED :: MailFromDomainStatus+pattern MailFromDomainStatus_FAILED = MailFromDomainStatus' "FAILED"++pattern MailFromDomainStatus_PENDING :: MailFromDomainStatus+pattern MailFromDomainStatus_PENDING = MailFromDomainStatus' "PENDING"++pattern MailFromDomainStatus_SUCCESS :: MailFromDomainStatus+pattern MailFromDomainStatus_SUCCESS = MailFromDomainStatus' "SUCCESS"++pattern MailFromDomainStatus_TEMPORARY_FAILURE :: MailFromDomainStatus+pattern MailFromDomainStatus_TEMPORARY_FAILURE = MailFromDomainStatus' "TEMPORARY_FAILURE"++{-# COMPLETE+ MailFromDomainStatus_FAILED,+ MailFromDomainStatus_PENDING,+ MailFromDomainStatus_SUCCESS,+ MailFromDomainStatus_TEMPORARY_FAILURE,+ MailFromDomainStatus'+ #-}
+ gen/Amazonka/SESV2/Types/MailType.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.SESV2.Types.MailType+-- 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.SESV2.Types.MailType+ ( MailType+ ( ..,+ MailType_MARKETING,+ MailType_TRANSACTIONAL+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype MailType = MailType'+ { fromMailType ::+ 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 MailType_MARKETING :: MailType+pattern MailType_MARKETING = MailType' "MARKETING"++pattern MailType_TRANSACTIONAL :: MailType+pattern MailType_TRANSACTIONAL = MailType' "TRANSACTIONAL"++{-# COMPLETE+ MailType_MARKETING,+ MailType_TRANSACTIONAL,+ MailType'+ #-}
+ gen/Amazonka/SESV2/Types/Message.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.SESV2.Types.Message+-- 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.SESV2.Types.Message where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.Body+import Amazonka.SESV2.Types.Content++-- | Represents the email message that you\'re sending. The @Message@ object+-- consists of a subject line and a message body.+--+-- /See:/ 'newMessage' smart constructor.+data Message = Message'+ { -- | The subject line of the email. The subject line can only contain 7-bit+ -- ASCII characters. However, you can specify non-ASCII characters in the+ -- subject line by using encoded-word syntax, as described in+ -- <https://tools.ietf.org/html/rfc2047 RFC 2047>.+ subject :: Content,+ -- | The body of the message. You can specify an HTML version of the message,+ -- a text-only version of the message, or both.+ body :: Body+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Message' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'subject', 'message_subject' - The subject line of the email. The subject line can only contain 7-bit+-- ASCII characters. However, you can specify non-ASCII characters in the+-- subject line by using encoded-word syntax, as described in+-- <https://tools.ietf.org/html/rfc2047 RFC 2047>.+--+-- 'body', 'message_body' - The body of the message. You can specify an HTML version of the message,+-- a text-only version of the message, or both.+newMessage ::+ -- | 'subject'+ Content ->+ -- | 'body'+ Body ->+ Message+newMessage pSubject_ pBody_ =+ Message' {subject = pSubject_, body = pBody_}++-- | The subject line of the email. The subject line can only contain 7-bit+-- ASCII characters. However, you can specify non-ASCII characters in the+-- subject line by using encoded-word syntax, as described in+-- <https://tools.ietf.org/html/rfc2047 RFC 2047>.+message_subject :: Lens.Lens' Message Content+message_subject = Lens.lens (\Message' {subject} -> subject) (\s@Message' {} a -> s {subject = a} :: Message)++-- | The body of the message. You can specify an HTML version of the message,+-- a text-only version of the message, or both.+message_body :: Lens.Lens' Message Body+message_body = Lens.lens (\Message' {body} -> body) (\s@Message' {} a -> s {body = a} :: Message)++instance Prelude.Hashable Message where+ hashWithSalt _salt Message' {..} =+ _salt+ `Prelude.hashWithSalt` subject+ `Prelude.hashWithSalt` body++instance Prelude.NFData Message where+ rnf Message' {..} =+ Prelude.rnf subject `Prelude.seq` Prelude.rnf body++instance Data.ToJSON Message where+ toJSON Message' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("Subject" Data..= subject),+ Prelude.Just ("Body" Data..= body)+ ]+ )
+ gen/Amazonka/SESV2/Types/MessageTag.hs view
@@ -0,0 +1,120 @@+{-# 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.SESV2.Types.MessageTag+-- 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.SESV2.Types.MessageTag 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++-- | Contains the name and value of a tag that you apply to an email. You can+-- use message tags when you publish email sending events.+--+-- /See:/ 'newMessageTag' smart constructor.+data MessageTag = MessageTag'+ { -- | The name of the message tag. The message tag name has to meet the+ -- following criteria:+ --+ -- - It can only contain ASCII letters (a–z, A–Z), numbers (0–9),+ -- underscores (_), or dashes (-).+ --+ -- - It can contain no more than 256 characters.+ name :: Prelude.Text,+ -- | The value of the message tag. The message tag value has to meet the+ -- following criteria:+ --+ -- - It can only contain ASCII letters (a–z, A–Z), numbers (0–9),+ -- underscores (_), or dashes (-).+ --+ -- - It can contain no more than 256 characters.+ value :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MessageTag' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'messageTag_name' - The name of the message tag. The message tag name has to meet the+-- following criteria:+--+-- - It can only contain ASCII letters (a–z, A–Z), numbers (0–9),+-- underscores (_), or dashes (-).+--+-- - It can contain no more than 256 characters.+--+-- 'value', 'messageTag_value' - The value of the message tag. The message tag value has to meet the+-- following criteria:+--+-- - It can only contain ASCII letters (a–z, A–Z), numbers (0–9),+-- underscores (_), or dashes (-).+--+-- - It can contain no more than 256 characters.+newMessageTag ::+ -- | 'name'+ Prelude.Text ->+ -- | 'value'+ Prelude.Text ->+ MessageTag+newMessageTag pName_ pValue_ =+ MessageTag' {name = pName_, value = pValue_}++-- | The name of the message tag. The message tag name has to meet the+-- following criteria:+--+-- - It can only contain ASCII letters (a–z, A–Z), numbers (0–9),+-- underscores (_), or dashes (-).+--+-- - It can contain no more than 256 characters.+messageTag_name :: Lens.Lens' MessageTag Prelude.Text+messageTag_name = Lens.lens (\MessageTag' {name} -> name) (\s@MessageTag' {} a -> s {name = a} :: MessageTag)++-- | The value of the message tag. The message tag value has to meet the+-- following criteria:+--+-- - It can only contain ASCII letters (a–z, A–Z), numbers (0–9),+-- underscores (_), or dashes (-).+--+-- - It can contain no more than 256 characters.+messageTag_value :: Lens.Lens' MessageTag Prelude.Text+messageTag_value = Lens.lens (\MessageTag' {value} -> value) (\s@MessageTag' {} a -> s {value = a} :: MessageTag)++instance Prelude.Hashable MessageTag where+ hashWithSalt _salt MessageTag' {..} =+ _salt+ `Prelude.hashWithSalt` name+ `Prelude.hashWithSalt` value++instance Prelude.NFData MessageTag where+ rnf MessageTag' {..} =+ Prelude.rnf name `Prelude.seq` Prelude.rnf value++instance Data.ToJSON MessageTag where+ toJSON MessageTag' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("Name" Data..= name),+ Prelude.Just ("Value" Data..= value)+ ]+ )
+ gen/Amazonka/SESV2/Types/Metric.hs view
@@ -0,0 +1,108 @@+{-# 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.SESV2.Types.Metric+-- 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.SESV2.Types.Metric+ ( Metric+ ( ..,+ Metric_CLICK,+ Metric_COMPLAINT,+ Metric_DELIVERY,+ Metric_DELIVERY_CLICK,+ Metric_DELIVERY_COMPLAINT,+ Metric_DELIVERY_OPEN,+ Metric_OPEN,+ Metric_PERMANENT_BOUNCE,+ Metric_SEND,+ Metric_TRANSIENT_BOUNCE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Metric = Metric' {fromMetric :: 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 Metric_CLICK :: Metric+pattern Metric_CLICK = Metric' "CLICK"++pattern Metric_COMPLAINT :: Metric+pattern Metric_COMPLAINT = Metric' "COMPLAINT"++pattern Metric_DELIVERY :: Metric+pattern Metric_DELIVERY = Metric' "DELIVERY"++pattern Metric_DELIVERY_CLICK :: Metric+pattern Metric_DELIVERY_CLICK = Metric' "DELIVERY_CLICK"++pattern Metric_DELIVERY_COMPLAINT :: Metric+pattern Metric_DELIVERY_COMPLAINT = Metric' "DELIVERY_COMPLAINT"++pattern Metric_DELIVERY_OPEN :: Metric+pattern Metric_DELIVERY_OPEN = Metric' "DELIVERY_OPEN"++pattern Metric_OPEN :: Metric+pattern Metric_OPEN = Metric' "OPEN"++pattern Metric_PERMANENT_BOUNCE :: Metric+pattern Metric_PERMANENT_BOUNCE = Metric' "PERMANENT_BOUNCE"++pattern Metric_SEND :: Metric+pattern Metric_SEND = Metric' "SEND"++pattern Metric_TRANSIENT_BOUNCE :: Metric+pattern Metric_TRANSIENT_BOUNCE = Metric' "TRANSIENT_BOUNCE"++{-# COMPLETE+ Metric_CLICK,+ Metric_COMPLAINT,+ Metric_DELIVERY,+ Metric_DELIVERY_CLICK,+ Metric_DELIVERY_COMPLAINT,+ Metric_DELIVERY_OPEN,+ Metric_OPEN,+ Metric_PERMANENT_BOUNCE,+ Metric_SEND,+ Metric_TRANSIENT_BOUNCE,+ Metric'+ #-}
+ gen/Amazonka/SESV2/Types/MetricDataError.hs view
@@ -0,0 +1,116 @@+{-# 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.SESV2.Types.MetricDataError+-- 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.SESV2.Types.MetricDataError where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.QueryErrorCode++-- | An error corresponding to the unsuccessful processing of a single metric+-- data query.+--+-- /See:/ 'newMetricDataError' smart constructor.+data MetricDataError = MetricDataError'+ { -- | The query error code. Can be one of:+ --+ -- - @INTERNAL_FAILURE@ – Amazon SES has failed to process one of the+ -- queries.+ --+ -- - @ACCESS_DENIED@ – You have insufficient access to retrieve metrics+ -- based on the given query.+ code :: Prelude.Maybe QueryErrorCode,+ -- | The query identifier.+ id :: Prelude.Maybe Prelude.Text,+ -- | The error message associated with the current query error.+ message :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MetricDataError' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'code', 'metricDataError_code' - The query error code. Can be one of:+--+-- - @INTERNAL_FAILURE@ – Amazon SES has failed to process one of the+-- queries.+--+-- - @ACCESS_DENIED@ – You have insufficient access to retrieve metrics+-- based on the given query.+--+-- 'id', 'metricDataError_id' - The query identifier.+--+-- 'message', 'metricDataError_message' - The error message associated with the current query error.+newMetricDataError ::+ MetricDataError+newMetricDataError =+ MetricDataError'+ { code = Prelude.Nothing,+ id = Prelude.Nothing,+ message = Prelude.Nothing+ }++-- | The query error code. Can be one of:+--+-- - @INTERNAL_FAILURE@ – Amazon SES has failed to process one of the+-- queries.+--+-- - @ACCESS_DENIED@ – You have insufficient access to retrieve metrics+-- based on the given query.+metricDataError_code :: Lens.Lens' MetricDataError (Prelude.Maybe QueryErrorCode)+metricDataError_code = Lens.lens (\MetricDataError' {code} -> code) (\s@MetricDataError' {} a -> s {code = a} :: MetricDataError)++-- | The query identifier.+metricDataError_id :: Lens.Lens' MetricDataError (Prelude.Maybe Prelude.Text)+metricDataError_id = Lens.lens (\MetricDataError' {id} -> id) (\s@MetricDataError' {} a -> s {id = a} :: MetricDataError)++-- | The error message associated with the current query error.+metricDataError_message :: Lens.Lens' MetricDataError (Prelude.Maybe Prelude.Text)+metricDataError_message = Lens.lens (\MetricDataError' {message} -> message) (\s@MetricDataError' {} a -> s {message = a} :: MetricDataError)++instance Data.FromJSON MetricDataError where+ parseJSON =+ Data.withObject+ "MetricDataError"+ ( \x ->+ MetricDataError'+ Prelude.<$> (x Data..:? "Code")+ Prelude.<*> (x Data..:? "Id")+ Prelude.<*> (x Data..:? "Message")+ )++instance Prelude.Hashable MetricDataError where+ hashWithSalt _salt MetricDataError' {..} =+ _salt+ `Prelude.hashWithSalt` code+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` message++instance Prelude.NFData MetricDataError where+ rnf MetricDataError' {..} =+ Prelude.rnf code+ `Prelude.seq` Prelude.rnf id+ `Prelude.seq` Prelude.rnf message
+ gen/Amazonka/SESV2/Types/MetricDataResult.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.SESV2.Types.MetricDataResult+-- 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.SESV2.Types.MetricDataResult 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 result of a single metric data query.+--+-- /See:/ 'newMetricDataResult' smart constructor.+data MetricDataResult = MetricDataResult'+ { -- | The query identifier.+ id :: Prelude.Maybe Prelude.Text,+ -- | A list of timestamps for the metric data results.+ timestamps :: Prelude.Maybe [Data.POSIX],+ -- | A list of values (cumulative \/ sum) for the metric data results.+ values :: Prelude.Maybe [Prelude.Integer]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MetricDataResult' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'metricDataResult_id' - The query identifier.+--+-- 'timestamps', 'metricDataResult_timestamps' - A list of timestamps for the metric data results.+--+-- 'values', 'metricDataResult_values' - A list of values (cumulative \/ sum) for the metric data results.+newMetricDataResult ::+ MetricDataResult+newMetricDataResult =+ MetricDataResult'+ { id = Prelude.Nothing,+ timestamps = Prelude.Nothing,+ values = Prelude.Nothing+ }++-- | The query identifier.+metricDataResult_id :: Lens.Lens' MetricDataResult (Prelude.Maybe Prelude.Text)+metricDataResult_id = Lens.lens (\MetricDataResult' {id} -> id) (\s@MetricDataResult' {} a -> s {id = a} :: MetricDataResult)++-- | A list of timestamps for the metric data results.+metricDataResult_timestamps :: Lens.Lens' MetricDataResult (Prelude.Maybe [Prelude.UTCTime])+metricDataResult_timestamps = Lens.lens (\MetricDataResult' {timestamps} -> timestamps) (\s@MetricDataResult' {} a -> s {timestamps = a} :: MetricDataResult) Prelude.. Lens.mapping Lens.coerced++-- | A list of values (cumulative \/ sum) for the metric data results.+metricDataResult_values :: Lens.Lens' MetricDataResult (Prelude.Maybe [Prelude.Integer])+metricDataResult_values = Lens.lens (\MetricDataResult' {values} -> values) (\s@MetricDataResult' {} a -> s {values = a} :: MetricDataResult) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON MetricDataResult where+ parseJSON =+ Data.withObject+ "MetricDataResult"+ ( \x ->+ MetricDataResult'+ Prelude.<$> (x Data..:? "Id")+ Prelude.<*> (x Data..:? "Timestamps" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..:? "Values" Data..!= Prelude.mempty)+ )++instance Prelude.Hashable MetricDataResult where+ hashWithSalt _salt MetricDataResult' {..} =+ _salt+ `Prelude.hashWithSalt` id+ `Prelude.hashWithSalt` timestamps+ `Prelude.hashWithSalt` values++instance Prelude.NFData MetricDataResult where+ rnf MetricDataResult' {..} =+ Prelude.rnf id+ `Prelude.seq` Prelude.rnf timestamps+ `Prelude.seq` Prelude.rnf values
+ gen/Amazonka/SESV2/Types/MetricDimensionName.hs view
@@ -0,0 +1,85 @@+{-# 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.SESV2.Types.MetricDimensionName+-- 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.SESV2.Types.MetricDimensionName+ ( MetricDimensionName+ ( ..,+ MetricDimensionName_CONFIGURATION_SET,+ MetricDimensionName_EMAIL_IDENTITY,+ MetricDimensionName_ISP+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The @BatchGetMetricDataQuery@ dimension name. This can be one of the+-- following:+--+-- - @EMAIL_IDENTITY@ – The email identity used when sending messages.+--+-- - @CONFIGURATION_SET@ – The configuration set used when sending+-- messages (if one was used).+--+-- - @ISP@ – The recipient ISP (e.g. @Gmail@, @Yahoo@, etc.).+newtype MetricDimensionName = MetricDimensionName'+ { fromMetricDimensionName ::+ 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 MetricDimensionName_CONFIGURATION_SET :: MetricDimensionName+pattern MetricDimensionName_CONFIGURATION_SET = MetricDimensionName' "CONFIGURATION_SET"++pattern MetricDimensionName_EMAIL_IDENTITY :: MetricDimensionName+pattern MetricDimensionName_EMAIL_IDENTITY = MetricDimensionName' "EMAIL_IDENTITY"++pattern MetricDimensionName_ISP :: MetricDimensionName+pattern MetricDimensionName_ISP = MetricDimensionName' "ISP"++{-# COMPLETE+ MetricDimensionName_CONFIGURATION_SET,+ MetricDimensionName_EMAIL_IDENTITY,+ MetricDimensionName_ISP,+ MetricDimensionName'+ #-}
+ gen/Amazonka/SESV2/Types/MetricNamespace.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.SESV2.Types.MetricNamespace+-- 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.SESV2.Types.MetricNamespace+ ( MetricNamespace+ ( ..,+ MetricNamespace_VDM+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype MetricNamespace = MetricNamespace'+ { fromMetricNamespace ::+ 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 MetricNamespace_VDM :: MetricNamespace+pattern MetricNamespace_VDM = MetricNamespace' "VDM"++{-# COMPLETE+ MetricNamespace_VDM,+ MetricNamespace'+ #-}
+ gen/Amazonka/SESV2/Types/OverallVolume.hs view
@@ -0,0 +1,112 @@+{-# 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.SESV2.Types.OverallVolume+-- 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.SESV2.Types.OverallVolume where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.DomainIspPlacement+import Amazonka.SESV2.Types.VolumeStatistics++-- | An object that contains information about email that was sent from the+-- selected domain.+--+-- /See:/ 'newOverallVolume' smart constructor.+data OverallVolume = OverallVolume'+ { -- | An object that contains inbox and junk mail placement metrics for+ -- individual email providers.+ domainIspPlacements :: Prelude.Maybe [DomainIspPlacement],+ -- | The percentage of emails that were sent from the domain that were read+ -- by their recipients.+ readRatePercent :: Prelude.Maybe Prelude.Double,+ -- | An object that contains information about the numbers of messages that+ -- arrived in recipients\' inboxes and junk mail folders.+ volumeStatistics :: Prelude.Maybe VolumeStatistics+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OverallVolume' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'domainIspPlacements', 'overallVolume_domainIspPlacements' - An object that contains inbox and junk mail placement metrics for+-- individual email providers.+--+-- 'readRatePercent', 'overallVolume_readRatePercent' - The percentage of emails that were sent from the domain that were read+-- by their recipients.+--+-- 'volumeStatistics', 'overallVolume_volumeStatistics' - An object that contains information about the numbers of messages that+-- arrived in recipients\' inboxes and junk mail folders.+newOverallVolume ::+ OverallVolume+newOverallVolume =+ OverallVolume'+ { domainIspPlacements =+ Prelude.Nothing,+ readRatePercent = Prelude.Nothing,+ volumeStatistics = Prelude.Nothing+ }++-- | An object that contains inbox and junk mail placement metrics for+-- individual email providers.+overallVolume_domainIspPlacements :: Lens.Lens' OverallVolume (Prelude.Maybe [DomainIspPlacement])+overallVolume_domainIspPlacements = Lens.lens (\OverallVolume' {domainIspPlacements} -> domainIspPlacements) (\s@OverallVolume' {} a -> s {domainIspPlacements = a} :: OverallVolume) Prelude.. Lens.mapping Lens.coerced++-- | The percentage of emails that were sent from the domain that were read+-- by their recipients.+overallVolume_readRatePercent :: Lens.Lens' OverallVolume (Prelude.Maybe Prelude.Double)+overallVolume_readRatePercent = Lens.lens (\OverallVolume' {readRatePercent} -> readRatePercent) (\s@OverallVolume' {} a -> s {readRatePercent = a} :: OverallVolume)++-- | An object that contains information about the numbers of messages that+-- arrived in recipients\' inboxes and junk mail folders.+overallVolume_volumeStatistics :: Lens.Lens' OverallVolume (Prelude.Maybe VolumeStatistics)+overallVolume_volumeStatistics = Lens.lens (\OverallVolume' {volumeStatistics} -> volumeStatistics) (\s@OverallVolume' {} a -> s {volumeStatistics = a} :: OverallVolume)++instance Data.FromJSON OverallVolume where+ parseJSON =+ Data.withObject+ "OverallVolume"+ ( \x ->+ OverallVolume'+ Prelude.<$> ( x+ Data..:? "DomainIspPlacements"+ Data..!= Prelude.mempty+ )+ Prelude.<*> (x Data..:? "ReadRatePercent")+ Prelude.<*> (x Data..:? "VolumeStatistics")+ )++instance Prelude.Hashable OverallVolume where+ hashWithSalt _salt OverallVolume' {..} =+ _salt+ `Prelude.hashWithSalt` domainIspPlacements+ `Prelude.hashWithSalt` readRatePercent+ `Prelude.hashWithSalt` volumeStatistics++instance Prelude.NFData OverallVolume where+ rnf OverallVolume' {..} =+ Prelude.rnf domainIspPlacements+ `Prelude.seq` Prelude.rnf readRatePercent+ `Prelude.seq` Prelude.rnf volumeStatistics
+ gen/Amazonka/SESV2/Types/PinpointDestination.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.SESV2.Types.PinpointDestination+-- 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.SESV2.Types.PinpointDestination 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 that defines an Amazon Pinpoint project destination for email+-- events. You can send email event data to a Amazon Pinpoint project to+-- view metrics using the Transactional Messaging dashboards that are built+-- in to Amazon Pinpoint. For more information, see+-- <https://docs.aws.amazon.com/pinpoint/latest/userguide/analytics-transactional-messages.html Transactional Messaging Charts>+-- in the /Amazon Pinpoint User Guide/.+--+-- /See:/ 'newPinpointDestination' smart constructor.+data PinpointDestination = PinpointDestination'+ { -- | The Amazon Resource Name (ARN) of the Amazon Pinpoint project to send+ -- email events to.+ applicationArn :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PinpointDestination' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'applicationArn', 'pinpointDestination_applicationArn' - The Amazon Resource Name (ARN) of the Amazon Pinpoint project to send+-- email events to.+newPinpointDestination ::+ PinpointDestination+newPinpointDestination =+ PinpointDestination'+ { applicationArn =+ Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the Amazon Pinpoint project to send+-- email events to.+pinpointDestination_applicationArn :: Lens.Lens' PinpointDestination (Prelude.Maybe Prelude.Text)+pinpointDestination_applicationArn = Lens.lens (\PinpointDestination' {applicationArn} -> applicationArn) (\s@PinpointDestination' {} a -> s {applicationArn = a} :: PinpointDestination)++instance Data.FromJSON PinpointDestination where+ parseJSON =+ Data.withObject+ "PinpointDestination"+ ( \x ->+ PinpointDestination'+ Prelude.<$> (x Data..:? "ApplicationArn")+ )++instance Prelude.Hashable PinpointDestination where+ hashWithSalt _salt PinpointDestination' {..} =+ _salt `Prelude.hashWithSalt` applicationArn++instance Prelude.NFData PinpointDestination where+ rnf PinpointDestination' {..} =+ Prelude.rnf applicationArn++instance Data.ToJSON PinpointDestination where+ toJSON PinpointDestination' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ApplicationArn" Data..=)+ Prelude.<$> applicationArn+ ]+ )
+ gen/Amazonka/SESV2/Types/PlacementStatistics.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.SESV2.Types.PlacementStatistics+-- 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.SESV2.Types.PlacementStatistics 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 that contains inbox placement data for an email provider.+--+-- /See:/ 'newPlacementStatistics' smart constructor.+data PlacementStatistics = PlacementStatistics'+ { -- | The percentage of emails that were authenticated by using DomainKeys+ -- Identified Mail (DKIM) during the predictive inbox placement test.+ dkimPercentage :: Prelude.Maybe Prelude.Double,+ -- | The percentage of emails that arrived in recipients\' inboxes during the+ -- predictive inbox placement test.+ inboxPercentage :: Prelude.Maybe Prelude.Double,+ -- | The percentage of emails that didn\'t arrive in recipients\' inboxes at+ -- all during the predictive inbox placement test.+ missingPercentage :: Prelude.Maybe Prelude.Double,+ -- | The percentage of emails that arrived in recipients\' spam or junk mail+ -- folders during the predictive inbox placement test.+ spamPercentage :: Prelude.Maybe Prelude.Double,+ -- | The percentage of emails that were authenticated by using Sender Policy+ -- Framework (SPF) during the predictive inbox placement test.+ spfPercentage :: Prelude.Maybe Prelude.Double+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PlacementStatistics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dkimPercentage', 'placementStatistics_dkimPercentage' - The percentage of emails that were authenticated by using DomainKeys+-- Identified Mail (DKIM) during the predictive inbox placement test.+--+-- 'inboxPercentage', 'placementStatistics_inboxPercentage' - The percentage of emails that arrived in recipients\' inboxes during the+-- predictive inbox placement test.+--+-- 'missingPercentage', 'placementStatistics_missingPercentage' - The percentage of emails that didn\'t arrive in recipients\' inboxes at+-- all during the predictive inbox placement test.+--+-- 'spamPercentage', 'placementStatistics_spamPercentage' - The percentage of emails that arrived in recipients\' spam or junk mail+-- folders during the predictive inbox placement test.+--+-- 'spfPercentage', 'placementStatistics_spfPercentage' - The percentage of emails that were authenticated by using Sender Policy+-- Framework (SPF) during the predictive inbox placement test.+newPlacementStatistics ::+ PlacementStatistics+newPlacementStatistics =+ PlacementStatistics'+ { dkimPercentage =+ Prelude.Nothing,+ inboxPercentage = Prelude.Nothing,+ missingPercentage = Prelude.Nothing,+ spamPercentage = Prelude.Nothing,+ spfPercentage = Prelude.Nothing+ }++-- | The percentage of emails that were authenticated by using DomainKeys+-- Identified Mail (DKIM) during the predictive inbox placement test.+placementStatistics_dkimPercentage :: Lens.Lens' PlacementStatistics (Prelude.Maybe Prelude.Double)+placementStatistics_dkimPercentage = Lens.lens (\PlacementStatistics' {dkimPercentage} -> dkimPercentage) (\s@PlacementStatistics' {} a -> s {dkimPercentage = a} :: PlacementStatistics)++-- | The percentage of emails that arrived in recipients\' inboxes during the+-- predictive inbox placement test.+placementStatistics_inboxPercentage :: Lens.Lens' PlacementStatistics (Prelude.Maybe Prelude.Double)+placementStatistics_inboxPercentage = Lens.lens (\PlacementStatistics' {inboxPercentage} -> inboxPercentage) (\s@PlacementStatistics' {} a -> s {inboxPercentage = a} :: PlacementStatistics)++-- | The percentage of emails that didn\'t arrive in recipients\' inboxes at+-- all during the predictive inbox placement test.+placementStatistics_missingPercentage :: Lens.Lens' PlacementStatistics (Prelude.Maybe Prelude.Double)+placementStatistics_missingPercentage = Lens.lens (\PlacementStatistics' {missingPercentage} -> missingPercentage) (\s@PlacementStatistics' {} a -> s {missingPercentage = a} :: PlacementStatistics)++-- | The percentage of emails that arrived in recipients\' spam or junk mail+-- folders during the predictive inbox placement test.+placementStatistics_spamPercentage :: Lens.Lens' PlacementStatistics (Prelude.Maybe Prelude.Double)+placementStatistics_spamPercentage = Lens.lens (\PlacementStatistics' {spamPercentage} -> spamPercentage) (\s@PlacementStatistics' {} a -> s {spamPercentage = a} :: PlacementStatistics)++-- | The percentage of emails that were authenticated by using Sender Policy+-- Framework (SPF) during the predictive inbox placement test.+placementStatistics_spfPercentage :: Lens.Lens' PlacementStatistics (Prelude.Maybe Prelude.Double)+placementStatistics_spfPercentage = Lens.lens (\PlacementStatistics' {spfPercentage} -> spfPercentage) (\s@PlacementStatistics' {} a -> s {spfPercentage = a} :: PlacementStatistics)++instance Data.FromJSON PlacementStatistics where+ parseJSON =+ Data.withObject+ "PlacementStatistics"+ ( \x ->+ PlacementStatistics'+ Prelude.<$> (x Data..:? "DkimPercentage")+ Prelude.<*> (x Data..:? "InboxPercentage")+ Prelude.<*> (x Data..:? "MissingPercentage")+ Prelude.<*> (x Data..:? "SpamPercentage")+ Prelude.<*> (x Data..:? "SpfPercentage")+ )++instance Prelude.Hashable PlacementStatistics where+ hashWithSalt _salt PlacementStatistics' {..} =+ _salt+ `Prelude.hashWithSalt` dkimPercentage+ `Prelude.hashWithSalt` inboxPercentage+ `Prelude.hashWithSalt` missingPercentage+ `Prelude.hashWithSalt` spamPercentage+ `Prelude.hashWithSalt` spfPercentage++instance Prelude.NFData PlacementStatistics where+ rnf PlacementStatistics' {..} =+ Prelude.rnf dkimPercentage+ `Prelude.seq` Prelude.rnf inboxPercentage+ `Prelude.seq` Prelude.rnf missingPercentage+ `Prelude.seq` Prelude.rnf spamPercentage+ `Prelude.seq` Prelude.rnf spfPercentage
+ gen/Amazonka/SESV2/Types/QueryErrorCode.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.SESV2.Types.QueryErrorCode+-- 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.SESV2.Types.QueryErrorCode+ ( QueryErrorCode+ ( ..,+ QueryErrorCode_ACCESS_DENIED,+ QueryErrorCode_INTERNAL_FAILURE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype QueryErrorCode = QueryErrorCode'+ { fromQueryErrorCode ::+ 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 QueryErrorCode_ACCESS_DENIED :: QueryErrorCode+pattern QueryErrorCode_ACCESS_DENIED = QueryErrorCode' "ACCESS_DENIED"++pattern QueryErrorCode_INTERNAL_FAILURE :: QueryErrorCode+pattern QueryErrorCode_INTERNAL_FAILURE = QueryErrorCode' "INTERNAL_FAILURE"++{-# COMPLETE+ QueryErrorCode_ACCESS_DENIED,+ QueryErrorCode_INTERNAL_FAILURE,+ QueryErrorCode'+ #-}
+ gen/Amazonka/SESV2/Types/RawMessage.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.SESV2.Types.RawMessage+-- 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.SESV2.Types.RawMessage 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++-- | Represents the raw content of an email message.+--+-- /See:/ 'newRawMessage' smart constructor.+data RawMessage = RawMessage'+ { -- | The raw email message. The message has to meet the following criteria:+ --+ -- - The message has to contain a header and a body, separated by one+ -- blank line.+ --+ -- - All of the required header fields must be present in the message.+ --+ -- - Each part of a multipart MIME message must be formatted properly.+ --+ -- - Attachments must be in a file format that the Amazon SES supports.+ --+ -- - The entire message must be Base64 encoded.+ --+ -- - If any of the MIME parts in your message contain content that is+ -- outside of the 7-bit ASCII character range, you should encode that+ -- content to ensure that recipients\' email clients render the message+ -- properly.+ --+ -- - The length of any single line of text in the message can\'t exceed+ -- 1,000 characters. This restriction is defined in+ -- <https://tools.ietf.org/html/rfc5321 RFC 5321>.+ data' :: Data.Base64+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RawMessage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'data'', 'rawMessage_data' - The raw email message. The message has to meet the following criteria:+--+-- - The message has to contain a header and a body, separated by one+-- blank line.+--+-- - All of the required header fields must be present in the message.+--+-- - Each part of a multipart MIME message must be formatted properly.+--+-- - Attachments must be in a file format that the Amazon SES supports.+--+-- - The entire message must be Base64 encoded.+--+-- - If any of the MIME parts in your message contain content that is+-- outside of the 7-bit ASCII character range, you should encode that+-- content to ensure that recipients\' email clients render the message+-- properly.+--+-- - The length of any single line of text in the message can\'t exceed+-- 1,000 characters. This restriction is defined in+-- <https://tools.ietf.org/html/rfc5321 RFC 5321>.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+newRawMessage ::+ -- | 'data''+ Prelude.ByteString ->+ RawMessage+newRawMessage pData_ =+ RawMessage' {data' = Data._Base64 Lens.# pData_}++-- | The raw email message. The message has to meet the following criteria:+--+-- - The message has to contain a header and a body, separated by one+-- blank line.+--+-- - All of the required header fields must be present in the message.+--+-- - Each part of a multipart MIME message must be formatted properly.+--+-- - Attachments must be in a file format that the Amazon SES supports.+--+-- - The entire message must be Base64 encoded.+--+-- - If any of the MIME parts in your message contain content that is+-- outside of the 7-bit ASCII character range, you should encode that+-- content to ensure that recipients\' email clients render the message+-- properly.+--+-- - The length of any single line of text in the message can\'t exceed+-- 1,000 characters. This restriction is defined in+-- <https://tools.ietf.org/html/rfc5321 RFC 5321>.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+rawMessage_data :: Lens.Lens' RawMessage Prelude.ByteString+rawMessage_data = Lens.lens (\RawMessage' {data'} -> data') (\s@RawMessage' {} a -> s {data' = a} :: RawMessage) Prelude.. Data._Base64++instance Prelude.Hashable RawMessage where+ hashWithSalt _salt RawMessage' {..} =+ _salt `Prelude.hashWithSalt` data'++instance Prelude.NFData RawMessage where+ rnf RawMessage' {..} = Prelude.rnf data'++instance Data.ToJSON RawMessage where+ toJSON RawMessage' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("Data" Data..= data')]+ )
+ gen/Amazonka/SESV2/Types/Recommendation.hs view
@@ -0,0 +1,156 @@+{-# 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.SESV2.Types.Recommendation+-- 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.SESV2.Types.Recommendation where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.RecommendationImpact+import Amazonka.SESV2.Types.RecommendationStatus+import Amazonka.SESV2.Types.RecommendationType++-- | A recommendation generated for your account.+--+-- /See:/ 'newRecommendation' smart constructor.+data Recommendation = Recommendation'+ { -- | The first time this issue was encountered and the recommendation was+ -- generated.+ createdTimestamp :: Prelude.Maybe Data.POSIX,+ -- | The recommendation description \/ disambiguator - e.g. @DKIM1@ and+ -- @DKIM2@ are different recommendations about your DKIM setup.+ description :: Prelude.Maybe Prelude.Text,+ -- | The recommendation impact, with values like @HIGH@ or @LOW@.+ impact :: Prelude.Maybe RecommendationImpact,+ -- | The last time the recommendation was updated.+ lastUpdatedTimestamp :: Prelude.Maybe Data.POSIX,+ -- | The resource affected by the recommendation, with values like+ -- @arn:aws:ses:us-east-1:123456789012:identity\/example.com@.+ resourceArn :: Prelude.Maybe Prelude.Text,+ -- | The recommendation status, with values like @OPEN@ or @FIXED@.+ status :: Prelude.Maybe RecommendationStatus,+ -- | The recommendation type, with values like @DKIM@, @SPF@ or @DMARC@.+ type' :: Prelude.Maybe RecommendationType+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Recommendation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createdTimestamp', 'recommendation_createdTimestamp' - The first time this issue was encountered and the recommendation was+-- generated.+--+-- 'description', 'recommendation_description' - The recommendation description \/ disambiguator - e.g. @DKIM1@ and+-- @DKIM2@ are different recommendations about your DKIM setup.+--+-- 'impact', 'recommendation_impact' - The recommendation impact, with values like @HIGH@ or @LOW@.+--+-- 'lastUpdatedTimestamp', 'recommendation_lastUpdatedTimestamp' - The last time the recommendation was updated.+--+-- 'resourceArn', 'recommendation_resourceArn' - The resource affected by the recommendation, with values like+-- @arn:aws:ses:us-east-1:123456789012:identity\/example.com@.+--+-- 'status', 'recommendation_status' - The recommendation status, with values like @OPEN@ or @FIXED@.+--+-- 'type'', 'recommendation_type' - The recommendation type, with values like @DKIM@, @SPF@ or @DMARC@.+newRecommendation ::+ Recommendation+newRecommendation =+ Recommendation'+ { createdTimestamp = Prelude.Nothing,+ description = Prelude.Nothing,+ impact = Prelude.Nothing,+ lastUpdatedTimestamp = Prelude.Nothing,+ resourceArn = Prelude.Nothing,+ status = Prelude.Nothing,+ type' = Prelude.Nothing+ }++-- | The first time this issue was encountered and the recommendation was+-- generated.+recommendation_createdTimestamp :: Lens.Lens' Recommendation (Prelude.Maybe Prelude.UTCTime)+recommendation_createdTimestamp = Lens.lens (\Recommendation' {createdTimestamp} -> createdTimestamp) (\s@Recommendation' {} a -> s {createdTimestamp = a} :: Recommendation) Prelude.. Lens.mapping Data._Time++-- | The recommendation description \/ disambiguator - e.g. @DKIM1@ and+-- @DKIM2@ are different recommendations about your DKIM setup.+recommendation_description :: Lens.Lens' Recommendation (Prelude.Maybe Prelude.Text)+recommendation_description = Lens.lens (\Recommendation' {description} -> description) (\s@Recommendation' {} a -> s {description = a} :: Recommendation)++-- | The recommendation impact, with values like @HIGH@ or @LOW@.+recommendation_impact :: Lens.Lens' Recommendation (Prelude.Maybe RecommendationImpact)+recommendation_impact = Lens.lens (\Recommendation' {impact} -> impact) (\s@Recommendation' {} a -> s {impact = a} :: Recommendation)++-- | The last time the recommendation was updated.+recommendation_lastUpdatedTimestamp :: Lens.Lens' Recommendation (Prelude.Maybe Prelude.UTCTime)+recommendation_lastUpdatedTimestamp = Lens.lens (\Recommendation' {lastUpdatedTimestamp} -> lastUpdatedTimestamp) (\s@Recommendation' {} a -> s {lastUpdatedTimestamp = a} :: Recommendation) Prelude.. Lens.mapping Data._Time++-- | The resource affected by the recommendation, with values like+-- @arn:aws:ses:us-east-1:123456789012:identity\/example.com@.+recommendation_resourceArn :: Lens.Lens' Recommendation (Prelude.Maybe Prelude.Text)+recommendation_resourceArn = Lens.lens (\Recommendation' {resourceArn} -> resourceArn) (\s@Recommendation' {} a -> s {resourceArn = a} :: Recommendation)++-- | The recommendation status, with values like @OPEN@ or @FIXED@.+recommendation_status :: Lens.Lens' Recommendation (Prelude.Maybe RecommendationStatus)+recommendation_status = Lens.lens (\Recommendation' {status} -> status) (\s@Recommendation' {} a -> s {status = a} :: Recommendation)++-- | The recommendation type, with values like @DKIM@, @SPF@ or @DMARC@.+recommendation_type :: Lens.Lens' Recommendation (Prelude.Maybe RecommendationType)+recommendation_type = Lens.lens (\Recommendation' {type'} -> type') (\s@Recommendation' {} a -> s {type' = a} :: Recommendation)++instance Data.FromJSON Recommendation where+ parseJSON =+ Data.withObject+ "Recommendation"+ ( \x ->+ Recommendation'+ Prelude.<$> (x Data..:? "CreatedTimestamp")+ Prelude.<*> (x Data..:? "Description")+ Prelude.<*> (x Data..:? "Impact")+ Prelude.<*> (x Data..:? "LastUpdatedTimestamp")+ Prelude.<*> (x Data..:? "ResourceArn")+ Prelude.<*> (x Data..:? "Status")+ Prelude.<*> (x Data..:? "Type")+ )++instance Prelude.Hashable Recommendation where+ hashWithSalt _salt Recommendation' {..} =+ _salt+ `Prelude.hashWithSalt` createdTimestamp+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` impact+ `Prelude.hashWithSalt` lastUpdatedTimestamp+ `Prelude.hashWithSalt` resourceArn+ `Prelude.hashWithSalt` status+ `Prelude.hashWithSalt` type'++instance Prelude.NFData Recommendation where+ rnf Recommendation' {..} =+ Prelude.rnf createdTimestamp+ `Prelude.seq` Prelude.rnf description+ `Prelude.seq` Prelude.rnf impact+ `Prelude.seq` Prelude.rnf lastUpdatedTimestamp+ `Prelude.seq` Prelude.rnf resourceArn+ `Prelude.seq` Prelude.rnf status+ `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/SESV2/Types/RecommendationImpact.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.SESV2.Types.RecommendationImpact+-- 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.SESV2.Types.RecommendationImpact+ ( RecommendationImpact+ ( ..,+ RecommendationImpact_HIGH,+ RecommendationImpact_LOW+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype RecommendationImpact = RecommendationImpact'+ { fromRecommendationImpact ::+ 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 RecommendationImpact_HIGH :: RecommendationImpact+pattern RecommendationImpact_HIGH = RecommendationImpact' "HIGH"++pattern RecommendationImpact_LOW :: RecommendationImpact+pattern RecommendationImpact_LOW = RecommendationImpact' "LOW"++{-# COMPLETE+ RecommendationImpact_HIGH,+ RecommendationImpact_LOW,+ RecommendationImpact'+ #-}
+ gen/Amazonka/SESV2/Types/RecommendationStatus.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.SESV2.Types.RecommendationStatus+-- 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.SESV2.Types.RecommendationStatus+ ( RecommendationStatus+ ( ..,+ RecommendationStatus_FIXED,+ RecommendationStatus_OPEN+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype RecommendationStatus = RecommendationStatus'+ { fromRecommendationStatus ::+ 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 RecommendationStatus_FIXED :: RecommendationStatus+pattern RecommendationStatus_FIXED = RecommendationStatus' "FIXED"++pattern RecommendationStatus_OPEN :: RecommendationStatus+pattern RecommendationStatus_OPEN = RecommendationStatus' "OPEN"++{-# COMPLETE+ RecommendationStatus_FIXED,+ RecommendationStatus_OPEN,+ RecommendationStatus'+ #-}
+ gen/Amazonka/SESV2/Types/RecommendationType.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.SESV2.Types.RecommendationType+-- 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.SESV2.Types.RecommendationType+ ( RecommendationType+ ( ..,+ RecommendationType_DKIM,+ RecommendationType_DMARC,+ RecommendationType_SPF+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype RecommendationType = RecommendationType'+ { fromRecommendationType ::+ 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 RecommendationType_DKIM :: RecommendationType+pattern RecommendationType_DKIM = RecommendationType' "DKIM"++pattern RecommendationType_DMARC :: RecommendationType+pattern RecommendationType_DMARC = RecommendationType' "DMARC"++pattern RecommendationType_SPF :: RecommendationType+pattern RecommendationType_SPF = RecommendationType' "SPF"++{-# COMPLETE+ RecommendationType_DKIM,+ RecommendationType_DMARC,+ RecommendationType_SPF,+ RecommendationType'+ #-}
+ gen/Amazonka/SESV2/Types/ReplacementEmailContent.hs view
@@ -0,0 +1,75 @@+{-# 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.SESV2.Types.ReplacementEmailContent+-- 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.SESV2.Types.ReplacementEmailContent where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.ReplacementTemplate++-- | The @ReplaceEmailContent@ object to be used for a specific+-- @BulkEmailEntry@. The @ReplacementTemplate@ can be specified within this+-- object.+--+-- /See:/ 'newReplacementEmailContent' smart constructor.+data ReplacementEmailContent = ReplacementEmailContent'+ { -- | The @ReplacementTemplate@ associated with @ReplacementEmailContent@.+ replacementTemplate :: Prelude.Maybe ReplacementTemplate+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReplacementEmailContent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'replacementTemplate', 'replacementEmailContent_replacementTemplate' - The @ReplacementTemplate@ associated with @ReplacementEmailContent@.+newReplacementEmailContent ::+ ReplacementEmailContent+newReplacementEmailContent =+ ReplacementEmailContent'+ { replacementTemplate =+ Prelude.Nothing+ }++-- | The @ReplacementTemplate@ associated with @ReplacementEmailContent@.+replacementEmailContent_replacementTemplate :: Lens.Lens' ReplacementEmailContent (Prelude.Maybe ReplacementTemplate)+replacementEmailContent_replacementTemplate = Lens.lens (\ReplacementEmailContent' {replacementTemplate} -> replacementTemplate) (\s@ReplacementEmailContent' {} a -> s {replacementTemplate = a} :: ReplacementEmailContent)++instance Prelude.Hashable ReplacementEmailContent where+ hashWithSalt _salt ReplacementEmailContent' {..} =+ _salt `Prelude.hashWithSalt` replacementTemplate++instance Prelude.NFData ReplacementEmailContent where+ rnf ReplacementEmailContent' {..} =+ Prelude.rnf replacementTemplate++instance Data.ToJSON ReplacementEmailContent where+ toJSON ReplacementEmailContent' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ReplacementTemplate" Data..=)+ Prelude.<$> replacementTemplate+ ]+ )
+ gen/Amazonka/SESV2/Types/ReplacementTemplate.hs view
@@ -0,0 +1,80 @@+{-# 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.SESV2.Types.ReplacementTemplate+-- 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.SESV2.Types.ReplacementTemplate 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 which contains @ReplacementTemplateData@ to be used for a+-- specific @BulkEmailEntry@.+--+-- /See:/ 'newReplacementTemplate' smart constructor.+data ReplacementTemplate = ReplacementTemplate'+ { -- | A list of replacement values to apply to the template. This parameter is+ -- a JSON object, typically consisting of key-value pairs in which the keys+ -- correspond to replacement tags in the email template.+ replacementTemplateData :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReplacementTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'replacementTemplateData', 'replacementTemplate_replacementTemplateData' - A list of replacement values to apply to the template. This parameter is+-- a JSON object, typically consisting of key-value pairs in which the keys+-- correspond to replacement tags in the email template.+newReplacementTemplate ::+ ReplacementTemplate+newReplacementTemplate =+ ReplacementTemplate'+ { replacementTemplateData =+ Prelude.Nothing+ }++-- | A list of replacement values to apply to the template. This parameter is+-- a JSON object, typically consisting of key-value pairs in which the keys+-- correspond to replacement tags in the email template.+replacementTemplate_replacementTemplateData :: Lens.Lens' ReplacementTemplate (Prelude.Maybe Prelude.Text)+replacementTemplate_replacementTemplateData = Lens.lens (\ReplacementTemplate' {replacementTemplateData} -> replacementTemplateData) (\s@ReplacementTemplate' {} a -> s {replacementTemplateData = a} :: ReplacementTemplate)++instance Prelude.Hashable ReplacementTemplate where+ hashWithSalt _salt ReplacementTemplate' {..} =+ _salt+ `Prelude.hashWithSalt` replacementTemplateData++instance Prelude.NFData ReplacementTemplate where+ rnf ReplacementTemplate' {..} =+ Prelude.rnf replacementTemplateData++instance Data.ToJSON ReplacementTemplate where+ toJSON ReplacementTemplate' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("ReplacementTemplateData" Data..=)+ Prelude.<$> replacementTemplateData+ ]+ )
+ gen/Amazonka/SESV2/Types/ReputationOptions.hs view
@@ -0,0 +1,113 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.Types.ReputationOptions+-- 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.SESV2.Types.ReputationOptions 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++-- | Enable or disable collection of reputation metrics for emails that you+-- send using this configuration set in the current Amazon Web Services+-- Region.+--+-- /See:/ 'newReputationOptions' smart constructor.+data ReputationOptions = ReputationOptions'+ { -- | The date and time (in Unix time) when the reputation metrics were last+ -- given a fresh start. When your account is given a fresh start, your+ -- reputation metrics are calculated starting from the date of the fresh+ -- start.+ lastFreshStart :: Prelude.Maybe Data.POSIX,+ -- | If @true@, tracking of reputation metrics is enabled for the+ -- configuration set. If @false@, tracking of reputation metrics is+ -- disabled for the configuration set.+ reputationMetricsEnabled :: Prelude.Maybe Prelude.Bool+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReputationOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'lastFreshStart', 'reputationOptions_lastFreshStart' - The date and time (in Unix time) when the reputation metrics were last+-- given a fresh start. When your account is given a fresh start, your+-- reputation metrics are calculated starting from the date of the fresh+-- start.+--+-- 'reputationMetricsEnabled', 'reputationOptions_reputationMetricsEnabled' - If @true@, tracking of reputation metrics is enabled for the+-- configuration set. If @false@, tracking of reputation metrics is+-- disabled for the configuration set.+newReputationOptions ::+ ReputationOptions+newReputationOptions =+ ReputationOptions'+ { lastFreshStart =+ Prelude.Nothing,+ reputationMetricsEnabled = Prelude.Nothing+ }++-- | The date and time (in Unix time) when the reputation metrics were last+-- given a fresh start. When your account is given a fresh start, your+-- reputation metrics are calculated starting from the date of the fresh+-- start.+reputationOptions_lastFreshStart :: Lens.Lens' ReputationOptions (Prelude.Maybe Prelude.UTCTime)+reputationOptions_lastFreshStart = Lens.lens (\ReputationOptions' {lastFreshStart} -> lastFreshStart) (\s@ReputationOptions' {} a -> s {lastFreshStart = a} :: ReputationOptions) Prelude.. Lens.mapping Data._Time++-- | If @true@, tracking of reputation metrics is enabled for the+-- configuration set. If @false@, tracking of reputation metrics is+-- disabled for the configuration set.+reputationOptions_reputationMetricsEnabled :: Lens.Lens' ReputationOptions (Prelude.Maybe Prelude.Bool)+reputationOptions_reputationMetricsEnabled = Lens.lens (\ReputationOptions' {reputationMetricsEnabled} -> reputationMetricsEnabled) (\s@ReputationOptions' {} a -> s {reputationMetricsEnabled = a} :: ReputationOptions)++instance Data.FromJSON ReputationOptions where+ parseJSON =+ Data.withObject+ "ReputationOptions"+ ( \x ->+ ReputationOptions'+ Prelude.<$> (x Data..:? "LastFreshStart")+ Prelude.<*> (x Data..:? "ReputationMetricsEnabled")+ )++instance Prelude.Hashable ReputationOptions where+ hashWithSalt _salt ReputationOptions' {..} =+ _salt+ `Prelude.hashWithSalt` lastFreshStart+ `Prelude.hashWithSalt` reputationMetricsEnabled++instance Prelude.NFData ReputationOptions where+ rnf ReputationOptions' {..} =+ Prelude.rnf lastFreshStart+ `Prelude.seq` Prelude.rnf reputationMetricsEnabled++instance Data.ToJSON ReputationOptions where+ toJSON ReputationOptions' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("LastFreshStart" Data..=)+ Prelude.<$> lastFreshStart,+ ("ReputationMetricsEnabled" Data..=)+ Prelude.<$> reputationMetricsEnabled+ ]+ )
+ gen/Amazonka/SESV2/Types/ReviewDetails.hs view
@@ -0,0 +1,123 @@+{-# 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.SESV2.Types.ReviewDetails+-- 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.SESV2.Types.ReviewDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.ReviewStatus++-- | An object that contains information about your account details review.+--+-- /See:/ 'newReviewDetails' smart constructor.+data ReviewDetails = ReviewDetails'+ { -- | The associated support center case ID (if any).+ caseId :: Prelude.Maybe Prelude.Text,+ -- | The status of the latest review of your account. The status can be one+ -- of the following:+ --+ -- - @PENDING@ – We have received your appeal and are in the process of+ -- reviewing it.+ --+ -- - @GRANTED@ – Your appeal has been reviewed and your production access+ -- has been granted.+ --+ -- - @DENIED@ – Your appeal has been reviewed and your production access+ -- has been denied.+ --+ -- - @FAILED@ – An internal error occurred and we didn\'t receive your+ -- appeal. You can submit your appeal again.+ status :: Prelude.Maybe ReviewStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReviewDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'caseId', 'reviewDetails_caseId' - The associated support center case ID (if any).+--+-- 'status', 'reviewDetails_status' - The status of the latest review of your account. The status can be one+-- of the following:+--+-- - @PENDING@ – We have received your appeal and are in the process of+-- reviewing it.+--+-- - @GRANTED@ – Your appeal has been reviewed and your production access+-- has been granted.+--+-- - @DENIED@ – Your appeal has been reviewed and your production access+-- has been denied.+--+-- - @FAILED@ – An internal error occurred and we didn\'t receive your+-- appeal. You can submit your appeal again.+newReviewDetails ::+ ReviewDetails+newReviewDetails =+ ReviewDetails'+ { caseId = Prelude.Nothing,+ status = Prelude.Nothing+ }++-- | The associated support center case ID (if any).+reviewDetails_caseId :: Lens.Lens' ReviewDetails (Prelude.Maybe Prelude.Text)+reviewDetails_caseId = Lens.lens (\ReviewDetails' {caseId} -> caseId) (\s@ReviewDetails' {} a -> s {caseId = a} :: ReviewDetails)++-- | The status of the latest review of your account. The status can be one+-- of the following:+--+-- - @PENDING@ – We have received your appeal and are in the process of+-- reviewing it.+--+-- - @GRANTED@ – Your appeal has been reviewed and your production access+-- has been granted.+--+-- - @DENIED@ – Your appeal has been reviewed and your production access+-- has been denied.+--+-- - @FAILED@ – An internal error occurred and we didn\'t receive your+-- appeal. You can submit your appeal again.+reviewDetails_status :: Lens.Lens' ReviewDetails (Prelude.Maybe ReviewStatus)+reviewDetails_status = Lens.lens (\ReviewDetails' {status} -> status) (\s@ReviewDetails' {} a -> s {status = a} :: ReviewDetails)++instance Data.FromJSON ReviewDetails where+ parseJSON =+ Data.withObject+ "ReviewDetails"+ ( \x ->+ ReviewDetails'+ Prelude.<$> (x Data..:? "CaseId")+ Prelude.<*> (x Data..:? "Status")+ )++instance Prelude.Hashable ReviewDetails where+ hashWithSalt _salt ReviewDetails' {..} =+ _salt+ `Prelude.hashWithSalt` caseId+ `Prelude.hashWithSalt` status++instance Prelude.NFData ReviewDetails where+ rnf ReviewDetails' {..} =+ Prelude.rnf caseId `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/SESV2/Types/ReviewStatus.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.Types.ReviewStatus+-- 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.SESV2.Types.ReviewStatus+ ( ReviewStatus+ ( ..,+ ReviewStatus_DENIED,+ ReviewStatus_FAILED,+ ReviewStatus_GRANTED,+ ReviewStatus_PENDING+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ReviewStatus = ReviewStatus'+ { fromReviewStatus ::+ 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 ReviewStatus_DENIED :: ReviewStatus+pattern ReviewStatus_DENIED = ReviewStatus' "DENIED"++pattern ReviewStatus_FAILED :: ReviewStatus+pattern ReviewStatus_FAILED = ReviewStatus' "FAILED"++pattern ReviewStatus_GRANTED :: ReviewStatus+pattern ReviewStatus_GRANTED = ReviewStatus' "GRANTED"++pattern ReviewStatus_PENDING :: ReviewStatus+pattern ReviewStatus_PENDING = ReviewStatus' "PENDING"++{-# COMPLETE+ ReviewStatus_DENIED,+ ReviewStatus_FAILED,+ ReviewStatus_GRANTED,+ ReviewStatus_PENDING,+ ReviewStatus'+ #-}
+ gen/Amazonka/SESV2/Types/ScalingMode.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.SESV2.Types.ScalingMode+-- 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.SESV2.Types.ScalingMode+ ( ScalingMode+ ( ..,+ ScalingMode_MANAGED,+ ScalingMode_STANDARD+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ScalingMode = ScalingMode'+ { fromScalingMode ::+ 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 ScalingMode_MANAGED :: ScalingMode+pattern ScalingMode_MANAGED = ScalingMode' "MANAGED"++pattern ScalingMode_STANDARD :: ScalingMode+pattern ScalingMode_STANDARD = ScalingMode' "STANDARD"++{-# COMPLETE+ ScalingMode_MANAGED,+ ScalingMode_STANDARD,+ ScalingMode'+ #-}
+ gen/Amazonka/SESV2/Types/SendQuota.hs view
@@ -0,0 +1,116 @@+{-# 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.SESV2.Types.SendQuota+-- 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.SESV2.Types.SendQuota 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 that contains information about the per-day and per-second+-- sending limits for your Amazon SES account in the current Amazon Web+-- Services Region.+--+-- /See:/ 'newSendQuota' smart constructor.+data SendQuota = SendQuota'+ { -- | The maximum number of emails that you can send in the current Amazon Web+ -- Services Region over a 24-hour period. A value of -1 signifies an+ -- unlimited quota. (This value is also referred to as your /sending+ -- quota/.)+ max24HourSend :: Prelude.Maybe Prelude.Double,+ -- | The maximum number of emails that you can send per second in the current+ -- Amazon Web Services Region. This value is also called your /maximum+ -- sending rate/ or your /maximum TPS (transactions per second) rate/.+ maxSendRate :: Prelude.Maybe Prelude.Double,+ -- | The number of emails sent from your Amazon SES account in the current+ -- Amazon Web Services Region over the past 24 hours.+ sentLast24Hours :: Prelude.Maybe Prelude.Double+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SendQuota' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'max24HourSend', 'sendQuota_max24HourSend' - The maximum number of emails that you can send in the current Amazon Web+-- Services Region over a 24-hour period. A value of -1 signifies an+-- unlimited quota. (This value is also referred to as your /sending+-- quota/.)+--+-- 'maxSendRate', 'sendQuota_maxSendRate' - The maximum number of emails that you can send per second in the current+-- Amazon Web Services Region. This value is also called your /maximum+-- sending rate/ or your /maximum TPS (transactions per second) rate/.+--+-- 'sentLast24Hours', 'sendQuota_sentLast24Hours' - The number of emails sent from your Amazon SES account in the current+-- Amazon Web Services Region over the past 24 hours.+newSendQuota ::+ SendQuota+newSendQuota =+ SendQuota'+ { max24HourSend = Prelude.Nothing,+ maxSendRate = Prelude.Nothing,+ sentLast24Hours = Prelude.Nothing+ }++-- | The maximum number of emails that you can send in the current Amazon Web+-- Services Region over a 24-hour period. A value of -1 signifies an+-- unlimited quota. (This value is also referred to as your /sending+-- quota/.)+sendQuota_max24HourSend :: Lens.Lens' SendQuota (Prelude.Maybe Prelude.Double)+sendQuota_max24HourSend = Lens.lens (\SendQuota' {max24HourSend} -> max24HourSend) (\s@SendQuota' {} a -> s {max24HourSend = a} :: SendQuota)++-- | The maximum number of emails that you can send per second in the current+-- Amazon Web Services Region. This value is also called your /maximum+-- sending rate/ or your /maximum TPS (transactions per second) rate/.+sendQuota_maxSendRate :: Lens.Lens' SendQuota (Prelude.Maybe Prelude.Double)+sendQuota_maxSendRate = Lens.lens (\SendQuota' {maxSendRate} -> maxSendRate) (\s@SendQuota' {} a -> s {maxSendRate = a} :: SendQuota)++-- | The number of emails sent from your Amazon SES account in the current+-- Amazon Web Services Region over the past 24 hours.+sendQuota_sentLast24Hours :: Lens.Lens' SendQuota (Prelude.Maybe Prelude.Double)+sendQuota_sentLast24Hours = Lens.lens (\SendQuota' {sentLast24Hours} -> sentLast24Hours) (\s@SendQuota' {} a -> s {sentLast24Hours = a} :: SendQuota)++instance Data.FromJSON SendQuota where+ parseJSON =+ Data.withObject+ "SendQuota"+ ( \x ->+ SendQuota'+ Prelude.<$> (x Data..:? "Max24HourSend")+ Prelude.<*> (x Data..:? "MaxSendRate")+ Prelude.<*> (x Data..:? "SentLast24Hours")+ )++instance Prelude.Hashable SendQuota where+ hashWithSalt _salt SendQuota' {..} =+ _salt+ `Prelude.hashWithSalt` max24HourSend+ `Prelude.hashWithSalt` maxSendRate+ `Prelude.hashWithSalt` sentLast24Hours++instance Prelude.NFData SendQuota where+ rnf SendQuota' {..} =+ Prelude.rnf max24HourSend+ `Prelude.seq` Prelude.rnf maxSendRate+ `Prelude.seq` Prelude.rnf sentLast24Hours
+ gen/Amazonka/SESV2/Types/SendingOptions.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.Types.SendingOptions+-- 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.SESV2.Types.SendingOptions 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++-- | Used to enable or disable email sending for messages that use this+-- configuration set in the current Amazon Web Services Region.+--+-- /See:/ 'newSendingOptions' smart constructor.+data SendingOptions = SendingOptions'+ { -- | If @true@, email sending is enabled for the configuration set. If+ -- @false@, email sending is disabled for the configuration set.+ sendingEnabled :: Prelude.Maybe Prelude.Bool+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SendingOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sendingEnabled', 'sendingOptions_sendingEnabled' - If @true@, email sending is enabled for the configuration set. If+-- @false@, email sending is disabled for the configuration set.+newSendingOptions ::+ SendingOptions+newSendingOptions =+ SendingOptions' {sendingEnabled = Prelude.Nothing}++-- | If @true@, email sending is enabled for the configuration set. If+-- @false@, email sending is disabled for the configuration set.+sendingOptions_sendingEnabled :: Lens.Lens' SendingOptions (Prelude.Maybe Prelude.Bool)+sendingOptions_sendingEnabled = Lens.lens (\SendingOptions' {sendingEnabled} -> sendingEnabled) (\s@SendingOptions' {} a -> s {sendingEnabled = a} :: SendingOptions)++instance Data.FromJSON SendingOptions where+ parseJSON =+ Data.withObject+ "SendingOptions"+ ( \x ->+ SendingOptions'+ Prelude.<$> (x Data..:? "SendingEnabled")+ )++instance Prelude.Hashable SendingOptions where+ hashWithSalt _salt SendingOptions' {..} =+ _salt `Prelude.hashWithSalt` sendingEnabled++instance Prelude.NFData SendingOptions where+ rnf SendingOptions' {..} = Prelude.rnf sendingEnabled++instance Data.ToJSON SendingOptions where+ toJSON SendingOptions' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("SendingEnabled" Data..=)+ Prelude.<$> sendingEnabled+ ]+ )
+ gen/Amazonka/SESV2/Types/SnsDestination.hs view
@@ -0,0 +1,83 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.Types.SnsDestination+-- 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.SESV2.Types.SnsDestination 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 that defines an Amazon SNS destination for email events. You+-- can use Amazon SNS to send notification when certain email events occur.+--+-- /See:/ 'newSnsDestination' smart constructor.+data SnsDestination = SnsDestination'+ { -- | The Amazon Resource Name (ARN) of the Amazon SNS topic to publish email+ -- events to. For more information about Amazon SNS topics, see the+ -- <https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html Amazon SNS Developer Guide>.+ topicArn :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SnsDestination' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'topicArn', 'snsDestination_topicArn' - The Amazon Resource Name (ARN) of the Amazon SNS topic to publish email+-- events to. For more information about Amazon SNS topics, see the+-- <https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html Amazon SNS Developer Guide>.+newSnsDestination ::+ -- | 'topicArn'+ Prelude.Text ->+ SnsDestination+newSnsDestination pTopicArn_ =+ SnsDestination' {topicArn = pTopicArn_}++-- | The Amazon Resource Name (ARN) of the Amazon SNS topic to publish email+-- events to. For more information about Amazon SNS topics, see the+-- <https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html Amazon SNS Developer Guide>.+snsDestination_topicArn :: Lens.Lens' SnsDestination Prelude.Text+snsDestination_topicArn = Lens.lens (\SnsDestination' {topicArn} -> topicArn) (\s@SnsDestination' {} a -> s {topicArn = a} :: SnsDestination)++instance Data.FromJSON SnsDestination where+ parseJSON =+ Data.withObject+ "SnsDestination"+ ( \x ->+ SnsDestination' Prelude.<$> (x Data..: "TopicArn")+ )++instance Prelude.Hashable SnsDestination where+ hashWithSalt _salt SnsDestination' {..} =+ _salt `Prelude.hashWithSalt` topicArn++instance Prelude.NFData SnsDestination where+ rnf SnsDestination' {..} = Prelude.rnf topicArn++instance Data.ToJSON SnsDestination where+ toJSON SnsDestination' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("TopicArn" Data..= topicArn)]+ )
+ gen/Amazonka/SESV2/Types/SubscriptionStatus.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.SESV2.Types.SubscriptionStatus+-- 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.SESV2.Types.SubscriptionStatus+ ( SubscriptionStatus+ ( ..,+ SubscriptionStatus_OPT_IN,+ SubscriptionStatus_OPT_OUT+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SubscriptionStatus = SubscriptionStatus'+ { fromSubscriptionStatus ::+ 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 SubscriptionStatus_OPT_IN :: SubscriptionStatus+pattern SubscriptionStatus_OPT_IN = SubscriptionStatus' "OPT_IN"++pattern SubscriptionStatus_OPT_OUT :: SubscriptionStatus+pattern SubscriptionStatus_OPT_OUT = SubscriptionStatus' "OPT_OUT"++{-# COMPLETE+ SubscriptionStatus_OPT_IN,+ SubscriptionStatus_OPT_OUT,+ SubscriptionStatus'+ #-}
+ gen/Amazonka/SESV2/Types/SuppressedDestination.hs view
@@ -0,0 +1,133 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.Types.SuppressedDestination+-- 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.SESV2.Types.SuppressedDestination where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.SuppressedDestinationAttributes+import Amazonka.SESV2.Types.SuppressionListReason++-- | An object that contains information about an email address that is on+-- the suppression list for your account.+--+-- /See:/ 'newSuppressedDestination' smart constructor.+data SuppressedDestination = SuppressedDestination'+ { -- | An optional value that can contain additional information about the+ -- reasons that the address was added to the suppression list for your+ -- account.+ attributes :: Prelude.Maybe SuppressedDestinationAttributes,+ -- | The email address that is on the suppression list for your account.+ emailAddress :: Prelude.Text,+ -- | The reason that the address was added to the suppression list for your+ -- account.+ reason :: SuppressionListReason,+ -- | The date and time when the suppressed destination was last updated,+ -- shown in Unix time format.+ lastUpdateTime :: Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SuppressedDestination' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'suppressedDestination_attributes' - An optional value that can contain additional information about the+-- reasons that the address was added to the suppression list for your+-- account.+--+-- 'emailAddress', 'suppressedDestination_emailAddress' - The email address that is on the suppression list for your account.+--+-- 'reason', 'suppressedDestination_reason' - The reason that the address was added to the suppression list for your+-- account.+--+-- 'lastUpdateTime', 'suppressedDestination_lastUpdateTime' - The date and time when the suppressed destination was last updated,+-- shown in Unix time format.+newSuppressedDestination ::+ -- | 'emailAddress'+ Prelude.Text ->+ -- | 'reason'+ SuppressionListReason ->+ -- | 'lastUpdateTime'+ Prelude.UTCTime ->+ SuppressedDestination+newSuppressedDestination+ pEmailAddress_+ pReason_+ pLastUpdateTime_ =+ SuppressedDestination'+ { attributes =+ Prelude.Nothing,+ emailAddress = pEmailAddress_,+ reason = pReason_,+ lastUpdateTime = Data._Time Lens.# pLastUpdateTime_+ }++-- | An optional value that can contain additional information about the+-- reasons that the address was added to the suppression list for your+-- account.+suppressedDestination_attributes :: Lens.Lens' SuppressedDestination (Prelude.Maybe SuppressedDestinationAttributes)+suppressedDestination_attributes = Lens.lens (\SuppressedDestination' {attributes} -> attributes) (\s@SuppressedDestination' {} a -> s {attributes = a} :: SuppressedDestination)++-- | The email address that is on the suppression list for your account.+suppressedDestination_emailAddress :: Lens.Lens' SuppressedDestination Prelude.Text+suppressedDestination_emailAddress = Lens.lens (\SuppressedDestination' {emailAddress} -> emailAddress) (\s@SuppressedDestination' {} a -> s {emailAddress = a} :: SuppressedDestination)++-- | The reason that the address was added to the suppression list for your+-- account.+suppressedDestination_reason :: Lens.Lens' SuppressedDestination SuppressionListReason+suppressedDestination_reason = Lens.lens (\SuppressedDestination' {reason} -> reason) (\s@SuppressedDestination' {} a -> s {reason = a} :: SuppressedDestination)++-- | The date and time when the suppressed destination was last updated,+-- shown in Unix time format.+suppressedDestination_lastUpdateTime :: Lens.Lens' SuppressedDestination Prelude.UTCTime+suppressedDestination_lastUpdateTime = Lens.lens (\SuppressedDestination' {lastUpdateTime} -> lastUpdateTime) (\s@SuppressedDestination' {} a -> s {lastUpdateTime = a} :: SuppressedDestination) Prelude.. Data._Time++instance Data.FromJSON SuppressedDestination where+ parseJSON =+ Data.withObject+ "SuppressedDestination"+ ( \x ->+ SuppressedDestination'+ Prelude.<$> (x Data..:? "Attributes")+ Prelude.<*> (x Data..: "EmailAddress")+ Prelude.<*> (x Data..: "Reason")+ Prelude.<*> (x Data..: "LastUpdateTime")+ )++instance Prelude.Hashable SuppressedDestination where+ hashWithSalt _salt SuppressedDestination' {..} =+ _salt+ `Prelude.hashWithSalt` attributes+ `Prelude.hashWithSalt` emailAddress+ `Prelude.hashWithSalt` reason+ `Prelude.hashWithSalt` lastUpdateTime++instance Prelude.NFData SuppressedDestination where+ rnf SuppressedDestination' {..} =+ Prelude.rnf attributes+ `Prelude.seq` Prelude.rnf emailAddress+ `Prelude.seq` Prelude.rnf reason+ `Prelude.seq` Prelude.rnf lastUpdateTime
+ gen/Amazonka/SESV2/Types/SuppressedDestinationAttributes.hs view
@@ -0,0 +1,103 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.Types.SuppressedDestinationAttributes+-- 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.SESV2.Types.SuppressedDestinationAttributes 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 that contains additional attributes that are related an email+-- address that is on the suppression list for your account.+--+-- /See:/ 'newSuppressedDestinationAttributes' smart constructor.+data SuppressedDestinationAttributes = SuppressedDestinationAttributes'+ { -- | A unique identifier that\'s generated when an email address is added to+ -- the suppression list for your account.+ feedbackId :: Prelude.Maybe Prelude.Text,+ -- | The unique identifier of the email message that caused the email address+ -- to be added to the suppression list for your account.+ messageId :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SuppressedDestinationAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'feedbackId', 'suppressedDestinationAttributes_feedbackId' - A unique identifier that\'s generated when an email address is added to+-- the suppression list for your account.+--+-- 'messageId', 'suppressedDestinationAttributes_messageId' - The unique identifier of the email message that caused the email address+-- to be added to the suppression list for your account.+newSuppressedDestinationAttributes ::+ SuppressedDestinationAttributes+newSuppressedDestinationAttributes =+ SuppressedDestinationAttributes'+ { feedbackId =+ Prelude.Nothing,+ messageId = Prelude.Nothing+ }++-- | A unique identifier that\'s generated when an email address is added to+-- the suppression list for your account.+suppressedDestinationAttributes_feedbackId :: Lens.Lens' SuppressedDestinationAttributes (Prelude.Maybe Prelude.Text)+suppressedDestinationAttributes_feedbackId = Lens.lens (\SuppressedDestinationAttributes' {feedbackId} -> feedbackId) (\s@SuppressedDestinationAttributes' {} a -> s {feedbackId = a} :: SuppressedDestinationAttributes)++-- | The unique identifier of the email message that caused the email address+-- to be added to the suppression list for your account.+suppressedDestinationAttributes_messageId :: Lens.Lens' SuppressedDestinationAttributes (Prelude.Maybe Prelude.Text)+suppressedDestinationAttributes_messageId = Lens.lens (\SuppressedDestinationAttributes' {messageId} -> messageId) (\s@SuppressedDestinationAttributes' {} a -> s {messageId = a} :: SuppressedDestinationAttributes)++instance+ Data.FromJSON+ SuppressedDestinationAttributes+ where+ parseJSON =+ Data.withObject+ "SuppressedDestinationAttributes"+ ( \x ->+ SuppressedDestinationAttributes'+ Prelude.<$> (x Data..:? "FeedbackId")+ Prelude.<*> (x Data..:? "MessageId")+ )++instance+ Prelude.Hashable+ SuppressedDestinationAttributes+ where+ hashWithSalt+ _salt+ SuppressedDestinationAttributes' {..} =+ _salt+ `Prelude.hashWithSalt` feedbackId+ `Prelude.hashWithSalt` messageId++instance+ Prelude.NFData+ SuppressedDestinationAttributes+ where+ rnf SuppressedDestinationAttributes' {..} =+ Prelude.rnf feedbackId+ `Prelude.seq` Prelude.rnf messageId
+ gen/Amazonka/SESV2/Types/SuppressedDestinationSummary.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.SESV2.Types.SuppressedDestinationSummary+-- 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.SESV2.Types.SuppressedDestinationSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.SuppressionListReason++-- | A summary that describes the suppressed email address.+--+-- /See:/ 'newSuppressedDestinationSummary' smart constructor.+data SuppressedDestinationSummary = SuppressedDestinationSummary'+ { -- | The email address that\'s on the suppression list for your account.+ emailAddress :: Prelude.Text,+ -- | The reason that the address was added to the suppression list for your+ -- account.+ reason :: SuppressionListReason,+ -- | The date and time when the suppressed destination was last updated,+ -- shown in Unix time format.+ lastUpdateTime :: Data.POSIX+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SuppressedDestinationSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'emailAddress', 'suppressedDestinationSummary_emailAddress' - The email address that\'s on the suppression list for your account.+--+-- 'reason', 'suppressedDestinationSummary_reason' - The reason that the address was added to the suppression list for your+-- account.+--+-- 'lastUpdateTime', 'suppressedDestinationSummary_lastUpdateTime' - The date and time when the suppressed destination was last updated,+-- shown in Unix time format.+newSuppressedDestinationSummary ::+ -- | 'emailAddress'+ Prelude.Text ->+ -- | 'reason'+ SuppressionListReason ->+ -- | 'lastUpdateTime'+ Prelude.UTCTime ->+ SuppressedDestinationSummary+newSuppressedDestinationSummary+ pEmailAddress_+ pReason_+ pLastUpdateTime_ =+ SuppressedDestinationSummary'+ { emailAddress =+ pEmailAddress_,+ reason = pReason_,+ lastUpdateTime =+ Data._Time Lens.# pLastUpdateTime_+ }++-- | The email address that\'s on the suppression list for your account.+suppressedDestinationSummary_emailAddress :: Lens.Lens' SuppressedDestinationSummary Prelude.Text+suppressedDestinationSummary_emailAddress = Lens.lens (\SuppressedDestinationSummary' {emailAddress} -> emailAddress) (\s@SuppressedDestinationSummary' {} a -> s {emailAddress = a} :: SuppressedDestinationSummary)++-- | The reason that the address was added to the suppression list for your+-- account.+suppressedDestinationSummary_reason :: Lens.Lens' SuppressedDestinationSummary SuppressionListReason+suppressedDestinationSummary_reason = Lens.lens (\SuppressedDestinationSummary' {reason} -> reason) (\s@SuppressedDestinationSummary' {} a -> s {reason = a} :: SuppressedDestinationSummary)++-- | The date and time when the suppressed destination was last updated,+-- shown in Unix time format.+suppressedDestinationSummary_lastUpdateTime :: Lens.Lens' SuppressedDestinationSummary Prelude.UTCTime+suppressedDestinationSummary_lastUpdateTime = Lens.lens (\SuppressedDestinationSummary' {lastUpdateTime} -> lastUpdateTime) (\s@SuppressedDestinationSummary' {} a -> s {lastUpdateTime = a} :: SuppressedDestinationSummary) Prelude.. Data._Time++instance Data.FromJSON SuppressedDestinationSummary where+ parseJSON =+ Data.withObject+ "SuppressedDestinationSummary"+ ( \x ->+ SuppressedDestinationSummary'+ Prelude.<$> (x Data..: "EmailAddress")+ Prelude.<*> (x Data..: "Reason")+ Prelude.<*> (x Data..: "LastUpdateTime")+ )++instance+ Prelude.Hashable+ SuppressedDestinationSummary+ where+ hashWithSalt _salt SuppressedDestinationSummary' {..} =+ _salt+ `Prelude.hashWithSalt` emailAddress+ `Prelude.hashWithSalt` reason+ `Prelude.hashWithSalt` lastUpdateTime++instance Prelude.NFData SuppressedDestinationSummary where+ rnf SuppressedDestinationSummary' {..} =+ Prelude.rnf emailAddress+ `Prelude.seq` Prelude.rnf reason+ `Prelude.seq` Prelude.rnf lastUpdateTime
+ gen/Amazonka/SESV2/Types/SuppressionAttributes.hs view
@@ -0,0 +1,107 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.Types.SuppressionAttributes+-- 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.SESV2.Types.SuppressionAttributes where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.SuppressionListReason++-- | An object that contains information about the email address suppression+-- preferences for your account in the current Amazon Web Services Region.+--+-- /See:/ 'newSuppressionAttributes' smart constructor.+data SuppressionAttributes = SuppressionAttributes'+ { -- | A list that contains the reasons that email addresses will be+ -- automatically added to the suppression list for your account. This list+ -- can contain any or all of the following:+ --+ -- - @COMPLAINT@ – Amazon SES adds an email address to the suppression+ -- list for your account when a message sent to that address results in+ -- a complaint.+ --+ -- - @BOUNCE@ – Amazon SES adds an email address to the suppression list+ -- for your account when a message sent to that address results in a+ -- hard bounce.+ suppressedReasons :: Prelude.Maybe [SuppressionListReason]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SuppressionAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'suppressedReasons', 'suppressionAttributes_suppressedReasons' - A list that contains the reasons that email addresses will be+-- automatically added to the suppression list for your account. This list+-- can contain any or all of the following:+--+-- - @COMPLAINT@ – Amazon SES adds an email address to the suppression+-- list for your account when a message sent to that address results in+-- a complaint.+--+-- - @BOUNCE@ – Amazon SES adds an email address to the suppression list+-- for your account when a message sent to that address results in a+-- hard bounce.+newSuppressionAttributes ::+ SuppressionAttributes+newSuppressionAttributes =+ SuppressionAttributes'+ { suppressedReasons =+ Prelude.Nothing+ }++-- | A list that contains the reasons that email addresses will be+-- automatically added to the suppression list for your account. This list+-- can contain any or all of the following:+--+-- - @COMPLAINT@ – Amazon SES adds an email address to the suppression+-- list for your account when a message sent to that address results in+-- a complaint.+--+-- - @BOUNCE@ – Amazon SES adds an email address to the suppression list+-- for your account when a message sent to that address results in a+-- hard bounce.+suppressionAttributes_suppressedReasons :: Lens.Lens' SuppressionAttributes (Prelude.Maybe [SuppressionListReason])+suppressionAttributes_suppressedReasons = Lens.lens (\SuppressionAttributes' {suppressedReasons} -> suppressedReasons) (\s@SuppressionAttributes' {} a -> s {suppressedReasons = a} :: SuppressionAttributes) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON SuppressionAttributes where+ parseJSON =+ Data.withObject+ "SuppressionAttributes"+ ( \x ->+ SuppressionAttributes'+ Prelude.<$> ( x+ Data..:? "SuppressedReasons"+ Data..!= Prelude.mempty+ )+ )++instance Prelude.Hashable SuppressionAttributes where+ hashWithSalt _salt SuppressionAttributes' {..} =+ _salt `Prelude.hashWithSalt` suppressedReasons++instance Prelude.NFData SuppressionAttributes where+ rnf SuppressionAttributes' {..} =+ Prelude.rnf suppressedReasons
+ gen/Amazonka/SESV2/Types/SuppressionListDestination.hs view
@@ -0,0 +1,106 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.Types.SuppressionListDestination+-- 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.SESV2.Types.SuppressionListDestination where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.SuppressionListImportAction++-- | An object that contains details about the action of suppression list.+--+-- /See:/ 'newSuppressionListDestination' smart constructor.+data SuppressionListDestination = SuppressionListDestination'+ { -- | The type of action to perform on the address. The following are possible+ -- values:+ --+ -- - PUT: add the addresses to the suppression list. If the record+ -- already exists, it will override it with the new value.+ --+ -- - DELETE: remove the addresses from the suppression list.+ suppressionListImportAction :: SuppressionListImportAction+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SuppressionListDestination' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'suppressionListImportAction', 'suppressionListDestination_suppressionListImportAction' - The type of action to perform on the address. The following are possible+-- values:+--+-- - PUT: add the addresses to the suppression list. If the record+-- already exists, it will override it with the new value.+--+-- - DELETE: remove the addresses from the suppression list.+newSuppressionListDestination ::+ -- | 'suppressionListImportAction'+ SuppressionListImportAction ->+ SuppressionListDestination+newSuppressionListDestination+ pSuppressionListImportAction_ =+ SuppressionListDestination'+ { suppressionListImportAction =+ pSuppressionListImportAction_+ }++-- | The type of action to perform on the address. The following are possible+-- values:+--+-- - PUT: add the addresses to the suppression list. If the record+-- already exists, it will override it with the new value.+--+-- - DELETE: remove the addresses from the suppression list.+suppressionListDestination_suppressionListImportAction :: Lens.Lens' SuppressionListDestination SuppressionListImportAction+suppressionListDestination_suppressionListImportAction = Lens.lens (\SuppressionListDestination' {suppressionListImportAction} -> suppressionListImportAction) (\s@SuppressionListDestination' {} a -> s {suppressionListImportAction = a} :: SuppressionListDestination)++instance Data.FromJSON SuppressionListDestination where+ parseJSON =+ Data.withObject+ "SuppressionListDestination"+ ( \x ->+ SuppressionListDestination'+ Prelude.<$> (x Data..: "SuppressionListImportAction")+ )++instance Prelude.Hashable SuppressionListDestination where+ hashWithSalt _salt SuppressionListDestination' {..} =+ _salt+ `Prelude.hashWithSalt` suppressionListImportAction++instance Prelude.NFData SuppressionListDestination where+ rnf SuppressionListDestination' {..} =+ Prelude.rnf suppressionListImportAction++instance Data.ToJSON SuppressionListDestination where+ toJSON SuppressionListDestination' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ( "SuppressionListImportAction"+ Data..= suppressionListImportAction+ )+ ]+ )
+ gen/Amazonka/SESV2/Types/SuppressionListImportAction.hs view
@@ -0,0 +1,77 @@+{-# 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.SESV2.Types.SuppressionListImportAction+-- 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.SESV2.Types.SuppressionListImportAction+ ( SuppressionListImportAction+ ( ..,+ SuppressionListImportAction_DELETE,+ SuppressionListImportAction_PUT+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The type of action to perform on the address. The following are possible+-- values:+--+-- - PUT: add the addresses to the suppression list.+--+-- - DELETE: remove the address from the suppression list.+newtype SuppressionListImportAction = SuppressionListImportAction'+ { fromSuppressionListImportAction ::+ 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 SuppressionListImportAction_DELETE :: SuppressionListImportAction+pattern SuppressionListImportAction_DELETE = SuppressionListImportAction' "DELETE"++pattern SuppressionListImportAction_PUT :: SuppressionListImportAction+pattern SuppressionListImportAction_PUT = SuppressionListImportAction' "PUT"++{-# COMPLETE+ SuppressionListImportAction_DELETE,+ SuppressionListImportAction_PUT,+ SuppressionListImportAction'+ #-}
+ gen/Amazonka/SESV2/Types/SuppressionListReason.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.Types.SuppressionListReason+-- 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.SESV2.Types.SuppressionListReason+ ( SuppressionListReason+ ( ..,+ SuppressionListReason_BOUNCE,+ SuppressionListReason_COMPLAINT+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The reason that the address was added to the suppression list for your+-- account. The value can be one of the following:+--+-- - @COMPLAINT@ – Amazon SES added an email address to the suppression+-- list for your account because a message sent to that address results+-- in a complaint.+--+-- - @BOUNCE@ – Amazon SES added an email address to the suppression list+-- for your account because a message sent to that address results in a+-- hard bounce.+newtype SuppressionListReason = SuppressionListReason'+ { fromSuppressionListReason ::+ 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 SuppressionListReason_BOUNCE :: SuppressionListReason+pattern SuppressionListReason_BOUNCE = SuppressionListReason' "BOUNCE"++pattern SuppressionListReason_COMPLAINT :: SuppressionListReason+pattern SuppressionListReason_COMPLAINT = SuppressionListReason' "COMPLAINT"++{-# COMPLETE+ SuppressionListReason_BOUNCE,+ SuppressionListReason_COMPLAINT,+ SuppressionListReason'+ #-}
+ gen/Amazonka/SESV2/Types/SuppressionOptions.hs view
@@ -0,0 +1,116 @@+{-# 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.SESV2.Types.SuppressionOptions+-- 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.SESV2.Types.SuppressionOptions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.SuppressionListReason++-- | An object that contains information about the suppression list+-- preferences for your account.+--+-- /See:/ 'newSuppressionOptions' smart constructor.+data SuppressionOptions = SuppressionOptions'+ { -- | A list that contains the reasons that email addresses are automatically+ -- added to the suppression list for your account. This list can contain+ -- any or all of the following:+ --+ -- - @COMPLAINT@ – Amazon SES adds an email address to the suppression+ -- list for your account when a message sent to that address results in+ -- a complaint.+ --+ -- - @BOUNCE@ – Amazon SES adds an email address to the suppression list+ -- for your account when a message sent to that address results in a+ -- hard bounce.+ suppressedReasons :: Prelude.Maybe [SuppressionListReason]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SuppressionOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'suppressedReasons', 'suppressionOptions_suppressedReasons' - A list that contains the reasons that email addresses are automatically+-- added to the suppression list for your account. This list can contain+-- any or all of the following:+--+-- - @COMPLAINT@ – Amazon SES adds an email address to the suppression+-- list for your account when a message sent to that address results in+-- a complaint.+--+-- - @BOUNCE@ – Amazon SES adds an email address to the suppression list+-- for your account when a message sent to that address results in a+-- hard bounce.+newSuppressionOptions ::+ SuppressionOptions+newSuppressionOptions =+ SuppressionOptions'+ { suppressedReasons =+ Prelude.Nothing+ }++-- | A list that contains the reasons that email addresses are automatically+-- added to the suppression list for your account. This list can contain+-- any or all of the following:+--+-- - @COMPLAINT@ – Amazon SES adds an email address to the suppression+-- list for your account when a message sent to that address results in+-- a complaint.+--+-- - @BOUNCE@ – Amazon SES adds an email address to the suppression list+-- for your account when a message sent to that address results in a+-- hard bounce.+suppressionOptions_suppressedReasons :: Lens.Lens' SuppressionOptions (Prelude.Maybe [SuppressionListReason])+suppressionOptions_suppressedReasons = Lens.lens (\SuppressionOptions' {suppressedReasons} -> suppressedReasons) (\s@SuppressionOptions' {} a -> s {suppressedReasons = a} :: SuppressionOptions) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON SuppressionOptions where+ parseJSON =+ Data.withObject+ "SuppressionOptions"+ ( \x ->+ SuppressionOptions'+ Prelude.<$> ( x+ Data..:? "SuppressedReasons"+ Data..!= Prelude.mempty+ )+ )++instance Prelude.Hashable SuppressionOptions where+ hashWithSalt _salt SuppressionOptions' {..} =+ _salt `Prelude.hashWithSalt` suppressedReasons++instance Prelude.NFData SuppressionOptions where+ rnf SuppressionOptions' {..} =+ Prelude.rnf suppressedReasons++instance Data.ToJSON SuppressionOptions where+ toJSON SuppressionOptions' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("SuppressedReasons" Data..=)+ Prelude.<$> suppressedReasons+ ]+ )
+ gen/Amazonka/SESV2/Types/Tag.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.SESV2.Types.Tag+-- 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.SESV2.Types.Tag 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 that defines the tags that are associated with a resource.+-- A /tag/ is a label that you optionally define and associate with a+-- resource. Tags can help you categorize and manage resources in different+-- ways, such as by purpose, owner, environment, or other criteria. A+-- resource can have as many as 50 tags.+--+-- Each tag consists of a required /tag key/ and an associated /tag value/,+-- both of which you define. A tag key is a general label that acts as a+-- category for a more specific tag value. A tag value acts as a descriptor+-- within a tag key. A tag key can contain as many as 128 characters. A tag+-- value can contain as many as 256 characters. The characters can be+-- Unicode letters, digits, white space, or one of the following symbols: _+-- . : \/ = + -. The following additional restrictions apply to tags:+--+-- - Tag keys and values are case sensitive.+--+-- - For each associated resource, each tag key must be unique and it can+-- have only one value.+--+-- - The @aws:@ prefix is reserved for use by Amazon Web Services; you+-- can’t use it in any tag keys or values that you define. In addition,+-- you can\'t edit or remove tag keys or values that use this prefix.+-- Tags that use this prefix don’t count against the limit of 50 tags+-- per resource.+--+-- - You can associate tags with public or shared resources, but the tags+-- are available only for your Amazon Web Services account, not any+-- other accounts that share the resource. In addition, the tags are+-- available only for resources that are located in the specified+-- Amazon Web Services Region for your Amazon Web Services account.+--+-- /See:/ 'newTag' smart constructor.+data Tag = Tag'+ { -- | One part of a key-value pair that defines a tag. The maximum length of a+ -- tag key is 128 characters. The minimum length is 1 character.+ key :: Prelude.Text,+ -- | The optional part of a key-value pair that defines a tag. The maximum+ -- length of a tag value is 256 characters. The minimum length is 0+ -- characters. If you don\'t want a resource to have a specific tag value,+ -- don\'t specify a value for this parameter. If you don\'t specify a+ -- value, Amazon SES sets the value to an empty string.+ value :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Tag' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'key', 'tag_key' - One part of a key-value pair that defines a tag. The maximum length of a+-- tag key is 128 characters. The minimum length is 1 character.+--+-- 'value', 'tag_value' - The optional part of a key-value pair that defines a tag. The maximum+-- length of a tag value is 256 characters. The minimum length is 0+-- characters. If you don\'t want a resource to have a specific tag value,+-- don\'t specify a value for this parameter. If you don\'t specify a+-- value, Amazon SES sets the value to an empty string.+newTag ::+ -- | 'key'+ Prelude.Text ->+ -- | 'value'+ Prelude.Text ->+ Tag+newTag pKey_ pValue_ =+ Tag' {key = pKey_, value = pValue_}++-- | One part of a key-value pair that defines a tag. The maximum length of a+-- tag key is 128 characters. The minimum length is 1 character.+tag_key :: Lens.Lens' Tag Prelude.Text+tag_key = Lens.lens (\Tag' {key} -> key) (\s@Tag' {} a -> s {key = a} :: Tag)++-- | The optional part of a key-value pair that defines a tag. The maximum+-- length of a tag value is 256 characters. The minimum length is 0+-- characters. If you don\'t want a resource to have a specific tag value,+-- don\'t specify a value for this parameter. If you don\'t specify a+-- value, Amazon SES sets the value to an empty string.+tag_value :: Lens.Lens' Tag Prelude.Text+tag_value = Lens.lens (\Tag' {value} -> value) (\s@Tag' {} a -> s {value = a} :: Tag)++instance Data.FromJSON Tag where+ parseJSON =+ Data.withObject+ "Tag"+ ( \x ->+ Tag'+ Prelude.<$> (x Data..: "Key")+ Prelude.<*> (x Data..: "Value")+ )++instance Prelude.Hashable Tag where+ hashWithSalt _salt Tag' {..} =+ _salt+ `Prelude.hashWithSalt` key+ `Prelude.hashWithSalt` value++instance Prelude.NFData Tag where+ rnf Tag' {..} =+ Prelude.rnf key `Prelude.seq` Prelude.rnf value++instance Data.ToJSON Tag where+ toJSON Tag' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("Key" Data..= key),+ Prelude.Just ("Value" Data..= value)+ ]+ )
+ gen/Amazonka/SESV2/Types/Template.hs view
@@ -0,0 +1,114 @@+{-# 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.SESV2.Types.Template+-- 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.SESV2.Types.Template 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 that defines the email template to use for an email message,+-- and the values to use for any message variables in that template. An+-- /email template/ is a type of message template that contains content+-- that you want to define, save, and reuse in email messages that you+-- send.+--+-- /See:/ 'newTemplate' smart constructor.+data Template = Template'+ { -- | The Amazon Resource Name (ARN) of the template.+ templateArn :: Prelude.Maybe Prelude.Text,+ -- | An object that defines the values to use for message variables in the+ -- template. This object is a set of key-value pairs. Each key defines a+ -- message variable in the template. The corresponding value defines the+ -- value to use for that variable.+ templateData :: Prelude.Maybe Prelude.Text,+ -- | The name of the template. You will refer to this name when you send+ -- email using the @SendTemplatedEmail@ or @SendBulkTemplatedEmail@+ -- operations.+ templateName :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Template' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'templateArn', 'template_templateArn' - The Amazon Resource Name (ARN) of the template.+--+-- 'templateData', 'template_templateData' - An object that defines the values to use for message variables in the+-- template. This object is a set of key-value pairs. Each key defines a+-- message variable in the template. The corresponding value defines the+-- value to use for that variable.+--+-- 'templateName', 'template_templateName' - The name of the template. You will refer to this name when you send+-- email using the @SendTemplatedEmail@ or @SendBulkTemplatedEmail@+-- operations.+newTemplate ::+ Template+newTemplate =+ Template'+ { templateArn = Prelude.Nothing,+ templateData = Prelude.Nothing,+ templateName = Prelude.Nothing+ }++-- | The Amazon Resource Name (ARN) of the template.+template_templateArn :: Lens.Lens' Template (Prelude.Maybe Prelude.Text)+template_templateArn = Lens.lens (\Template' {templateArn} -> templateArn) (\s@Template' {} a -> s {templateArn = a} :: Template)++-- | An object that defines the values to use for message variables in the+-- template. This object is a set of key-value pairs. Each key defines a+-- message variable in the template. The corresponding value defines the+-- value to use for that variable.+template_templateData :: Lens.Lens' Template (Prelude.Maybe Prelude.Text)+template_templateData = Lens.lens (\Template' {templateData} -> templateData) (\s@Template' {} a -> s {templateData = a} :: Template)++-- | The name of the template. You will refer to this name when you send+-- email using the @SendTemplatedEmail@ or @SendBulkTemplatedEmail@+-- operations.+template_templateName :: Lens.Lens' Template (Prelude.Maybe Prelude.Text)+template_templateName = Lens.lens (\Template' {templateName} -> templateName) (\s@Template' {} a -> s {templateName = a} :: Template)++instance Prelude.Hashable Template where+ hashWithSalt _salt Template' {..} =+ _salt+ `Prelude.hashWithSalt` templateArn+ `Prelude.hashWithSalt` templateData+ `Prelude.hashWithSalt` templateName++instance Prelude.NFData Template where+ rnf Template' {..} =+ Prelude.rnf templateArn+ `Prelude.seq` Prelude.rnf templateData+ `Prelude.seq` Prelude.rnf templateName++instance Data.ToJSON Template where+ toJSON Template' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("TemplateArn" Data..=) Prelude.<$> templateArn,+ ("TemplateData" Data..=) Prelude.<$> templateData,+ ("TemplateName" Data..=) Prelude.<$> templateName+ ]+ )
+ gen/Amazonka/SESV2/Types/TlsPolicy.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.SESV2.Types.TlsPolicy+-- 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.SESV2.Types.TlsPolicy+ ( TlsPolicy+ ( ..,+ TlsPolicy_OPTIONAL,+ TlsPolicy_REQUIRE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Specifies whether messages that use the configuration set are required+-- to use Transport Layer Security (TLS). If the value is @Require@,+-- messages are only delivered if a TLS connection can be established. If+-- the value is @Optional@, messages can be delivered in plain text if a+-- TLS connection can\'t be established.+newtype TlsPolicy = TlsPolicy'+ { fromTlsPolicy ::+ 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 TlsPolicy_OPTIONAL :: TlsPolicy+pattern TlsPolicy_OPTIONAL = TlsPolicy' "OPTIONAL"++pattern TlsPolicy_REQUIRE :: TlsPolicy+pattern TlsPolicy_REQUIRE = TlsPolicy' "REQUIRE"++{-# COMPLETE+ TlsPolicy_OPTIONAL,+ TlsPolicy_REQUIRE,+ TlsPolicy'+ #-}
+ gen/Amazonka/SESV2/Types/Topic.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.SESV2.Types.Topic+-- 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.SESV2.Types.Topic where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.SubscriptionStatus++-- | An interest group, theme, or label within a list. Lists can have+-- multiple topics.+--+-- /See:/ 'newTopic' smart constructor.+data Topic = Topic'+ { -- | A description of what the topic is about, which the contact will see.+ description :: Prelude.Maybe Prelude.Text,+ -- | The name of the topic.+ topicName :: Prelude.Text,+ -- | The name of the topic the contact will see.+ displayName :: Prelude.Text,+ -- | The default subscription status to be applied to a contact if the+ -- contact has not noted their preference for subscribing to a topic.+ defaultSubscriptionStatus :: SubscriptionStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Topic' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'topic_description' - A description of what the topic is about, which the contact will see.+--+-- 'topicName', 'topic_topicName' - The name of the topic.+--+-- 'displayName', 'topic_displayName' - The name of the topic the contact will see.+--+-- 'defaultSubscriptionStatus', 'topic_defaultSubscriptionStatus' - The default subscription status to be applied to a contact if the+-- contact has not noted their preference for subscribing to a topic.+newTopic ::+ -- | 'topicName'+ Prelude.Text ->+ -- | 'displayName'+ Prelude.Text ->+ -- | 'defaultSubscriptionStatus'+ SubscriptionStatus ->+ Topic+newTopic+ pTopicName_+ pDisplayName_+ pDefaultSubscriptionStatus_ =+ Topic'+ { description = Prelude.Nothing,+ topicName = pTopicName_,+ displayName = pDisplayName_,+ defaultSubscriptionStatus =+ pDefaultSubscriptionStatus_+ }++-- | A description of what the topic is about, which the contact will see.+topic_description :: Lens.Lens' Topic (Prelude.Maybe Prelude.Text)+topic_description = Lens.lens (\Topic' {description} -> description) (\s@Topic' {} a -> s {description = a} :: Topic)++-- | The name of the topic.+topic_topicName :: Lens.Lens' Topic Prelude.Text+topic_topicName = Lens.lens (\Topic' {topicName} -> topicName) (\s@Topic' {} a -> s {topicName = a} :: Topic)++-- | The name of the topic the contact will see.+topic_displayName :: Lens.Lens' Topic Prelude.Text+topic_displayName = Lens.lens (\Topic' {displayName} -> displayName) (\s@Topic' {} a -> s {displayName = a} :: Topic)++-- | The default subscription status to be applied to a contact if the+-- contact has not noted their preference for subscribing to a topic.+topic_defaultSubscriptionStatus :: Lens.Lens' Topic SubscriptionStatus+topic_defaultSubscriptionStatus = Lens.lens (\Topic' {defaultSubscriptionStatus} -> defaultSubscriptionStatus) (\s@Topic' {} a -> s {defaultSubscriptionStatus = a} :: Topic)++instance Data.FromJSON Topic where+ parseJSON =+ Data.withObject+ "Topic"+ ( \x ->+ Topic'+ Prelude.<$> (x Data..:? "Description")+ Prelude.<*> (x Data..: "TopicName")+ Prelude.<*> (x Data..: "DisplayName")+ Prelude.<*> (x Data..: "DefaultSubscriptionStatus")+ )++instance Prelude.Hashable Topic where+ hashWithSalt _salt Topic' {..} =+ _salt+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` topicName+ `Prelude.hashWithSalt` displayName+ `Prelude.hashWithSalt` defaultSubscriptionStatus++instance Prelude.NFData Topic where+ rnf Topic' {..} =+ Prelude.rnf description+ `Prelude.seq` Prelude.rnf topicName+ `Prelude.seq` Prelude.rnf displayName+ `Prelude.seq` Prelude.rnf defaultSubscriptionStatus++instance Data.ToJSON Topic where+ toJSON Topic' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Description" Data..=) Prelude.<$> description,+ Prelude.Just ("TopicName" Data..= topicName),+ Prelude.Just ("DisplayName" Data..= displayName),+ Prelude.Just+ ( "DefaultSubscriptionStatus"+ Data..= defaultSubscriptionStatus+ )+ ]+ )
+ gen/Amazonka/SESV2/Types/TopicFilter.hs view
@@ -0,0 +1,90 @@+{-# 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.SESV2.Types.TopicFilter+-- 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.SESV2.Types.TopicFilter 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++-- | Used for filtering by a specific topic preference.+--+-- /See:/ 'newTopicFilter' smart constructor.+data TopicFilter = TopicFilter'+ { -- | The name of a topic on which you wish to apply the filter.+ topicName :: Prelude.Maybe Prelude.Text,+ -- | Notes that the default subscription status should be applied to a+ -- contact because the contact has not noted their preference for+ -- subscribing to a topic.+ useDefaultIfPreferenceUnavailable :: Prelude.Maybe Prelude.Bool+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TopicFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'topicName', 'topicFilter_topicName' - The name of a topic on which you wish to apply the filter.+--+-- 'useDefaultIfPreferenceUnavailable', 'topicFilter_useDefaultIfPreferenceUnavailable' - Notes that the default subscription status should be applied to a+-- contact because the contact has not noted their preference for+-- subscribing to a topic.+newTopicFilter ::+ TopicFilter+newTopicFilter =+ TopicFilter'+ { topicName = Prelude.Nothing,+ useDefaultIfPreferenceUnavailable = Prelude.Nothing+ }++-- | The name of a topic on which you wish to apply the filter.+topicFilter_topicName :: Lens.Lens' TopicFilter (Prelude.Maybe Prelude.Text)+topicFilter_topicName = Lens.lens (\TopicFilter' {topicName} -> topicName) (\s@TopicFilter' {} a -> s {topicName = a} :: TopicFilter)++-- | Notes that the default subscription status should be applied to a+-- contact because the contact has not noted their preference for+-- subscribing to a topic.+topicFilter_useDefaultIfPreferenceUnavailable :: Lens.Lens' TopicFilter (Prelude.Maybe Prelude.Bool)+topicFilter_useDefaultIfPreferenceUnavailable = Lens.lens (\TopicFilter' {useDefaultIfPreferenceUnavailable} -> useDefaultIfPreferenceUnavailable) (\s@TopicFilter' {} a -> s {useDefaultIfPreferenceUnavailable = a} :: TopicFilter)++instance Prelude.Hashable TopicFilter where+ hashWithSalt _salt TopicFilter' {..} =+ _salt+ `Prelude.hashWithSalt` topicName+ `Prelude.hashWithSalt` useDefaultIfPreferenceUnavailable++instance Prelude.NFData TopicFilter where+ rnf TopicFilter' {..} =+ Prelude.rnf topicName+ `Prelude.seq` Prelude.rnf useDefaultIfPreferenceUnavailable++instance Data.ToJSON TopicFilter where+ toJSON TopicFilter' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("TopicName" Data..=) Prelude.<$> topicName,+ ("UseDefaultIfPreferenceUnavailable" Data..=)+ Prelude.<$> useDefaultIfPreferenceUnavailable+ ]+ )
+ gen/Amazonka/SESV2/Types/TopicPreference.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.SESV2.Types.TopicPreference+-- 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.SESV2.Types.TopicPreference where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.SubscriptionStatus++-- | The contact\'s preference for being opted-in to or opted-out of a topic.+--+-- /See:/ 'newTopicPreference' smart constructor.+data TopicPreference = TopicPreference'+ { -- | The name of the topic.+ topicName :: Prelude.Text,+ -- | The contact\'s subscription status to a topic which is either @OPT_IN@+ -- or @OPT_OUT@.+ subscriptionStatus :: SubscriptionStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TopicPreference' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'topicName', 'topicPreference_topicName' - The name of the topic.+--+-- 'subscriptionStatus', 'topicPreference_subscriptionStatus' - The contact\'s subscription status to a topic which is either @OPT_IN@+-- or @OPT_OUT@.+newTopicPreference ::+ -- | 'topicName'+ Prelude.Text ->+ -- | 'subscriptionStatus'+ SubscriptionStatus ->+ TopicPreference+newTopicPreference pTopicName_ pSubscriptionStatus_ =+ TopicPreference'+ { topicName = pTopicName_,+ subscriptionStatus = pSubscriptionStatus_+ }++-- | The name of the topic.+topicPreference_topicName :: Lens.Lens' TopicPreference Prelude.Text+topicPreference_topicName = Lens.lens (\TopicPreference' {topicName} -> topicName) (\s@TopicPreference' {} a -> s {topicName = a} :: TopicPreference)++-- | The contact\'s subscription status to a topic which is either @OPT_IN@+-- or @OPT_OUT@.+topicPreference_subscriptionStatus :: Lens.Lens' TopicPreference SubscriptionStatus+topicPreference_subscriptionStatus = Lens.lens (\TopicPreference' {subscriptionStatus} -> subscriptionStatus) (\s@TopicPreference' {} a -> s {subscriptionStatus = a} :: TopicPreference)++instance Data.FromJSON TopicPreference where+ parseJSON =+ Data.withObject+ "TopicPreference"+ ( \x ->+ TopicPreference'+ Prelude.<$> (x Data..: "TopicName")+ Prelude.<*> (x Data..: "SubscriptionStatus")+ )++instance Prelude.Hashable TopicPreference where+ hashWithSalt _salt TopicPreference' {..} =+ _salt+ `Prelude.hashWithSalt` topicName+ `Prelude.hashWithSalt` subscriptionStatus++instance Prelude.NFData TopicPreference where+ rnf TopicPreference' {..} =+ Prelude.rnf topicName+ `Prelude.seq` Prelude.rnf subscriptionStatus++instance Data.ToJSON TopicPreference where+ toJSON TopicPreference' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("TopicName" Data..= topicName),+ Prelude.Just+ ("SubscriptionStatus" Data..= subscriptionStatus)+ ]+ )
+ gen/Amazonka/SESV2/Types/TrackingOptions.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.Types.TrackingOptions+-- 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.SESV2.Types.TrackingOptions 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 that defines the tracking options for a configuration set.+-- When you use the Amazon SES API v2 to send an email, it contains an+-- invisible image that\'s used to track when recipients open your email.+-- If your email contains links, those links are changed slightly in order+-- to track when recipients click them.+--+-- These images and links include references to a domain operated by Amazon+-- Web Services. You can optionally configure the Amazon SES to use a+-- domain that you operate for these images and links.+--+-- /See:/ 'newTrackingOptions' smart constructor.+data TrackingOptions = TrackingOptions'+ { -- | The domain to use for tracking open and click events.+ customRedirectDomain :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TrackingOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'customRedirectDomain', 'trackingOptions_customRedirectDomain' - The domain to use for tracking open and click events.+newTrackingOptions ::+ -- | 'customRedirectDomain'+ Prelude.Text ->+ TrackingOptions+newTrackingOptions pCustomRedirectDomain_ =+ TrackingOptions'+ { customRedirectDomain =+ pCustomRedirectDomain_+ }++-- | The domain to use for tracking open and click events.+trackingOptions_customRedirectDomain :: Lens.Lens' TrackingOptions Prelude.Text+trackingOptions_customRedirectDomain = Lens.lens (\TrackingOptions' {customRedirectDomain} -> customRedirectDomain) (\s@TrackingOptions' {} a -> s {customRedirectDomain = a} :: TrackingOptions)++instance Data.FromJSON TrackingOptions where+ parseJSON =+ Data.withObject+ "TrackingOptions"+ ( \x ->+ TrackingOptions'+ Prelude.<$> (x Data..: "CustomRedirectDomain")+ )++instance Prelude.Hashable TrackingOptions where+ hashWithSalt _salt TrackingOptions' {..} =+ _salt `Prelude.hashWithSalt` customRedirectDomain++instance Prelude.NFData TrackingOptions where+ rnf TrackingOptions' {..} =+ Prelude.rnf customRedirectDomain++instance Data.ToJSON TrackingOptions where+ toJSON TrackingOptions' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ( "CustomRedirectDomain"+ Data..= customRedirectDomain+ )+ ]+ )
+ gen/Amazonka/SESV2/Types/VdmAttributes.hs view
@@ -0,0 +1,135 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.Types.VdmAttributes+-- 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.SESV2.Types.VdmAttributes where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.DashboardAttributes+import Amazonka.SESV2.Types.FeatureStatus+import Amazonka.SESV2.Types.GuardianAttributes++-- | The VDM attributes that apply to your Amazon SES account.+--+-- /See:/ 'newVdmAttributes' smart constructor.+data VdmAttributes = VdmAttributes'+ { -- | Specifies additional settings for your VDM configuration as applicable+ -- to the Dashboard.+ dashboardAttributes :: Prelude.Maybe DashboardAttributes,+ -- | Specifies additional settings for your VDM configuration as applicable+ -- to the Guardian.+ guardianAttributes :: Prelude.Maybe GuardianAttributes,+ -- | Specifies the status of your VDM configuration. Can be one of the+ -- following:+ --+ -- - @ENABLED@ – Amazon SES enables VDM for your account.+ --+ -- - @DISABLED@ – Amazon SES disables VDM for your account.+ vdmEnabled :: FeatureStatus+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VdmAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dashboardAttributes', 'vdmAttributes_dashboardAttributes' - Specifies additional settings for your VDM configuration as applicable+-- to the Dashboard.+--+-- 'guardianAttributes', 'vdmAttributes_guardianAttributes' - Specifies additional settings for your VDM configuration as applicable+-- to the Guardian.+--+-- 'vdmEnabled', 'vdmAttributes_vdmEnabled' - Specifies the status of your VDM configuration. Can be one of the+-- following:+--+-- - @ENABLED@ – Amazon SES enables VDM for your account.+--+-- - @DISABLED@ – Amazon SES disables VDM for your account.+newVdmAttributes ::+ -- | 'vdmEnabled'+ FeatureStatus ->+ VdmAttributes+newVdmAttributes pVdmEnabled_ =+ VdmAttributes'+ { dashboardAttributes =+ Prelude.Nothing,+ guardianAttributes = Prelude.Nothing,+ vdmEnabled = pVdmEnabled_+ }++-- | Specifies additional settings for your VDM configuration as applicable+-- to the Dashboard.+vdmAttributes_dashboardAttributes :: Lens.Lens' VdmAttributes (Prelude.Maybe DashboardAttributes)+vdmAttributes_dashboardAttributes = Lens.lens (\VdmAttributes' {dashboardAttributes} -> dashboardAttributes) (\s@VdmAttributes' {} a -> s {dashboardAttributes = a} :: VdmAttributes)++-- | Specifies additional settings for your VDM configuration as applicable+-- to the Guardian.+vdmAttributes_guardianAttributes :: Lens.Lens' VdmAttributes (Prelude.Maybe GuardianAttributes)+vdmAttributes_guardianAttributes = Lens.lens (\VdmAttributes' {guardianAttributes} -> guardianAttributes) (\s@VdmAttributes' {} a -> s {guardianAttributes = a} :: VdmAttributes)++-- | Specifies the status of your VDM configuration. Can be one of the+-- following:+--+-- - @ENABLED@ – Amazon SES enables VDM for your account.+--+-- - @DISABLED@ – Amazon SES disables VDM for your account.+vdmAttributes_vdmEnabled :: Lens.Lens' VdmAttributes FeatureStatus+vdmAttributes_vdmEnabled = Lens.lens (\VdmAttributes' {vdmEnabled} -> vdmEnabled) (\s@VdmAttributes' {} a -> s {vdmEnabled = a} :: VdmAttributes)++instance Data.FromJSON VdmAttributes where+ parseJSON =+ Data.withObject+ "VdmAttributes"+ ( \x ->+ VdmAttributes'+ Prelude.<$> (x Data..:? "DashboardAttributes")+ Prelude.<*> (x Data..:? "GuardianAttributes")+ Prelude.<*> (x Data..: "VdmEnabled")+ )++instance Prelude.Hashable VdmAttributes where+ hashWithSalt _salt VdmAttributes' {..} =+ _salt+ `Prelude.hashWithSalt` dashboardAttributes+ `Prelude.hashWithSalt` guardianAttributes+ `Prelude.hashWithSalt` vdmEnabled++instance Prelude.NFData VdmAttributes where+ rnf VdmAttributes' {..} =+ Prelude.rnf dashboardAttributes+ `Prelude.seq` Prelude.rnf guardianAttributes+ `Prelude.seq` Prelude.rnf vdmEnabled++instance Data.ToJSON VdmAttributes where+ toJSON VdmAttributes' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("DashboardAttributes" Data..=)+ Prelude.<$> dashboardAttributes,+ ("GuardianAttributes" Data..=)+ Prelude.<$> guardianAttributes,+ Prelude.Just ("VdmEnabled" Data..= vdmEnabled)+ ]+ )
+ gen/Amazonka/SESV2/Types/VdmOptions.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.SESV2.Types.VdmOptions+-- 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.SESV2.Types.VdmOptions where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Types.DashboardOptions+import Amazonka.SESV2.Types.GuardianOptions++-- | An object that defines the VDM settings that apply to emails that you+-- send using the configuration set.+--+-- /See:/ 'newVdmOptions' smart constructor.+data VdmOptions = VdmOptions'+ { -- | Specifies additional settings for your VDM configuration as applicable+ -- to the Dashboard.+ dashboardOptions :: Prelude.Maybe DashboardOptions,+ -- | Specifies additional settings for your VDM configuration as applicable+ -- to the Guardian.+ guardianOptions :: Prelude.Maybe GuardianOptions+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VdmOptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dashboardOptions', 'vdmOptions_dashboardOptions' - Specifies additional settings for your VDM configuration as applicable+-- to the Dashboard.+--+-- 'guardianOptions', 'vdmOptions_guardianOptions' - Specifies additional settings for your VDM configuration as applicable+-- to the Guardian.+newVdmOptions ::+ VdmOptions+newVdmOptions =+ VdmOptions'+ { dashboardOptions = Prelude.Nothing,+ guardianOptions = Prelude.Nothing+ }++-- | Specifies additional settings for your VDM configuration as applicable+-- to the Dashboard.+vdmOptions_dashboardOptions :: Lens.Lens' VdmOptions (Prelude.Maybe DashboardOptions)+vdmOptions_dashboardOptions = Lens.lens (\VdmOptions' {dashboardOptions} -> dashboardOptions) (\s@VdmOptions' {} a -> s {dashboardOptions = a} :: VdmOptions)++-- | Specifies additional settings for your VDM configuration as applicable+-- to the Guardian.+vdmOptions_guardianOptions :: Lens.Lens' VdmOptions (Prelude.Maybe GuardianOptions)+vdmOptions_guardianOptions = Lens.lens (\VdmOptions' {guardianOptions} -> guardianOptions) (\s@VdmOptions' {} a -> s {guardianOptions = a} :: VdmOptions)++instance Data.FromJSON VdmOptions where+ parseJSON =+ Data.withObject+ "VdmOptions"+ ( \x ->+ VdmOptions'+ Prelude.<$> (x Data..:? "DashboardOptions")+ Prelude.<*> (x Data..:? "GuardianOptions")+ )++instance Prelude.Hashable VdmOptions where+ hashWithSalt _salt VdmOptions' {..} =+ _salt+ `Prelude.hashWithSalt` dashboardOptions+ `Prelude.hashWithSalt` guardianOptions++instance Prelude.NFData VdmOptions where+ rnf VdmOptions' {..} =+ Prelude.rnf dashboardOptions+ `Prelude.seq` Prelude.rnf guardianOptions++instance Data.ToJSON VdmOptions where+ toJSON VdmOptions' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("DashboardOptions" Data..=)+ Prelude.<$> dashboardOptions,+ ("GuardianOptions" Data..=)+ Prelude.<$> guardianOptions+ ]+ )
+ gen/Amazonka/SESV2/Types/VerificationStatus.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.SESV2.Types.VerificationStatus+-- 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.SESV2.Types.VerificationStatus+ ( VerificationStatus+ ( ..,+ VerificationStatus_FAILED,+ VerificationStatus_NOT_STARTED,+ VerificationStatus_PENDING,+ VerificationStatus_SUCCESS,+ VerificationStatus_TEMPORARY_FAILURE+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype VerificationStatus = VerificationStatus'+ { fromVerificationStatus ::+ 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 VerificationStatus_FAILED :: VerificationStatus+pattern VerificationStatus_FAILED = VerificationStatus' "FAILED"++pattern VerificationStatus_NOT_STARTED :: VerificationStatus+pattern VerificationStatus_NOT_STARTED = VerificationStatus' "NOT_STARTED"++pattern VerificationStatus_PENDING :: VerificationStatus+pattern VerificationStatus_PENDING = VerificationStatus' "PENDING"++pattern VerificationStatus_SUCCESS :: VerificationStatus+pattern VerificationStatus_SUCCESS = VerificationStatus' "SUCCESS"++pattern VerificationStatus_TEMPORARY_FAILURE :: VerificationStatus+pattern VerificationStatus_TEMPORARY_FAILURE = VerificationStatus' "TEMPORARY_FAILURE"++{-# COMPLETE+ VerificationStatus_FAILED,+ VerificationStatus_NOT_STARTED,+ VerificationStatus_PENDING,+ VerificationStatus_SUCCESS,+ VerificationStatus_TEMPORARY_FAILURE,+ VerificationStatus'+ #-}
+ gen/Amazonka/SESV2/Types/VolumeStatistics.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.SESV2.Types.VolumeStatistics+-- 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.SESV2.Types.VolumeStatistics 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 that contains information about the amount of email that was+-- delivered to recipients.+--+-- /See:/ 'newVolumeStatistics' smart constructor.+data VolumeStatistics = VolumeStatistics'+ { -- | The total number of emails that arrived in recipients\' inboxes.+ inboxRawCount :: Prelude.Maybe Prelude.Integer,+ -- | An estimate of the percentage of emails sent from the current domain+ -- that will arrive in recipients\' inboxes.+ projectedInbox :: Prelude.Maybe Prelude.Integer,+ -- | An estimate of the percentage of emails sent from the current domain+ -- that will arrive in recipients\' spam or junk mail folders.+ projectedSpam :: Prelude.Maybe Prelude.Integer,+ -- | The total number of emails that arrived in recipients\' spam or junk+ -- mail folders.+ spamRawCount :: Prelude.Maybe Prelude.Integer+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VolumeStatistics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'inboxRawCount', 'volumeStatistics_inboxRawCount' - The total number of emails that arrived in recipients\' inboxes.+--+-- 'projectedInbox', 'volumeStatistics_projectedInbox' - An estimate of the percentage of emails sent from the current domain+-- that will arrive in recipients\' inboxes.+--+-- 'projectedSpam', 'volumeStatistics_projectedSpam' - An estimate of the percentage of emails sent from the current domain+-- that will arrive in recipients\' spam or junk mail folders.+--+-- 'spamRawCount', 'volumeStatistics_spamRawCount' - The total number of emails that arrived in recipients\' spam or junk+-- mail folders.+newVolumeStatistics ::+ VolumeStatistics+newVolumeStatistics =+ VolumeStatistics'+ { inboxRawCount = Prelude.Nothing,+ projectedInbox = Prelude.Nothing,+ projectedSpam = Prelude.Nothing,+ spamRawCount = Prelude.Nothing+ }++-- | The total number of emails that arrived in recipients\' inboxes.+volumeStatistics_inboxRawCount :: Lens.Lens' VolumeStatistics (Prelude.Maybe Prelude.Integer)+volumeStatistics_inboxRawCount = Lens.lens (\VolumeStatistics' {inboxRawCount} -> inboxRawCount) (\s@VolumeStatistics' {} a -> s {inboxRawCount = a} :: VolumeStatistics)++-- | An estimate of the percentage of emails sent from the current domain+-- that will arrive in recipients\' inboxes.+volumeStatistics_projectedInbox :: Lens.Lens' VolumeStatistics (Prelude.Maybe Prelude.Integer)+volumeStatistics_projectedInbox = Lens.lens (\VolumeStatistics' {projectedInbox} -> projectedInbox) (\s@VolumeStatistics' {} a -> s {projectedInbox = a} :: VolumeStatistics)++-- | An estimate of the percentage of emails sent from the current domain+-- that will arrive in recipients\' spam or junk mail folders.+volumeStatistics_projectedSpam :: Lens.Lens' VolumeStatistics (Prelude.Maybe Prelude.Integer)+volumeStatistics_projectedSpam = Lens.lens (\VolumeStatistics' {projectedSpam} -> projectedSpam) (\s@VolumeStatistics' {} a -> s {projectedSpam = a} :: VolumeStatistics)++-- | The total number of emails that arrived in recipients\' spam or junk+-- mail folders.+volumeStatistics_spamRawCount :: Lens.Lens' VolumeStatistics (Prelude.Maybe Prelude.Integer)+volumeStatistics_spamRawCount = Lens.lens (\VolumeStatistics' {spamRawCount} -> spamRawCount) (\s@VolumeStatistics' {} a -> s {spamRawCount = a} :: VolumeStatistics)++instance Data.FromJSON VolumeStatistics where+ parseJSON =+ Data.withObject+ "VolumeStatistics"+ ( \x ->+ VolumeStatistics'+ Prelude.<$> (x Data..:? "InboxRawCount")+ Prelude.<*> (x Data..:? "ProjectedInbox")+ Prelude.<*> (x Data..:? "ProjectedSpam")+ Prelude.<*> (x Data..:? "SpamRawCount")+ )++instance Prelude.Hashable VolumeStatistics where+ hashWithSalt _salt VolumeStatistics' {..} =+ _salt+ `Prelude.hashWithSalt` inboxRawCount+ `Prelude.hashWithSalt` projectedInbox+ `Prelude.hashWithSalt` projectedSpam+ `Prelude.hashWithSalt` spamRawCount++instance Prelude.NFData VolumeStatistics where+ rnf VolumeStatistics' {..} =+ Prelude.rnf inboxRawCount+ `Prelude.seq` Prelude.rnf projectedInbox+ `Prelude.seq` Prelude.rnf projectedSpam+ `Prelude.seq` Prelude.rnf spamRawCount
+ gen/Amazonka/SESV2/Types/WarmupStatus.hs view
@@ -0,0 +1,72 @@+{-# 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.SESV2.Types.WarmupStatus+-- 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.SESV2.Types.WarmupStatus+ ( WarmupStatus+ ( ..,+ WarmupStatus_DONE,+ WarmupStatus_IN_PROGRESS+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The warmup status of a dedicated IP.+newtype WarmupStatus = WarmupStatus'+ { fromWarmupStatus ::+ 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 WarmupStatus_DONE :: WarmupStatus+pattern WarmupStatus_DONE = WarmupStatus' "DONE"++pattern WarmupStatus_IN_PROGRESS :: WarmupStatus+pattern WarmupStatus_IN_PROGRESS = WarmupStatus' "IN_PROGRESS"++{-# COMPLETE+ WarmupStatus_DONE,+ WarmupStatus_IN_PROGRESS,+ WarmupStatus'+ #-}
+ gen/Amazonka/SESV2/UntagResource.hs view
@@ -0,0 +1,186 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Amazonka.SESV2.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)+--+-- Remove one or more tags (keys and values) from a specified resource.+module Amazonka.SESV2.UntagResource+ ( -- * Creating a Request+ UntagResource (..),+ newUntagResource,++ -- * Request Lenses+ untagResource_resourceArn,+ untagResource_tagKeys,++ -- * Destructuring the Response+ UntagResourceResponse (..),+ newUntagResourceResponse,++ -- * Response Lenses+ untagResourceResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+ { -- | The Amazon Resource Name (ARN) of the resource that you want to remove+ -- one or more tags from.+ resourceArn :: Prelude.Text,+ -- | The tags (tag keys) that you want to remove from the resource. When you+ -- specify a tag key, the action removes both that key and its associated+ -- tag value.+ --+ -- To remove more than one tag from the resource, append the @TagKeys@+ -- parameter and argument for each additional tag to remove, separated by+ -- an ampersand. For example:+ -- @\/v2\/email\/tags?ResourceArn=ResourceArn&TagKeys=Key1&TagKeys=Key2@+ tagKeys :: [Prelude.Text]+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'untagResource_resourceArn' - The Amazon Resource Name (ARN) of the resource that you want to remove+-- one or more tags from.+--+-- 'tagKeys', 'untagResource_tagKeys' - The tags (tag keys) that you want to remove from the resource. When you+-- specify a tag key, the action removes both that key and its associated+-- tag value.+--+-- To remove more than one tag from the resource, append the @TagKeys@+-- parameter and argument for each additional tag to remove, separated by+-- an ampersand. For example:+-- @\/v2\/email\/tags?ResourceArn=ResourceArn&TagKeys=Key1&TagKeys=Key2@+newUntagResource ::+ -- | 'resourceArn'+ Prelude.Text ->+ UntagResource+newUntagResource pResourceArn_ =+ UntagResource'+ { resourceArn = pResourceArn_,+ tagKeys = Prelude.mempty+ }++-- | The Amazon Resource Name (ARN) of the resource that you want to remove+-- one or more tags from.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | The tags (tag keys) that you want to remove from the resource. When you+-- specify a tag key, the action removes both that key and its associated+-- tag value.+--+-- To remove more than one tag from the resource, append the @TagKeys@+-- parameter and argument for each additional tag to remove, separated by+-- an ampersand. For example:+-- @\/v2\/email\/tags?ResourceArn=ResourceArn&TagKeys=Key1&TagKeys=Key2@+untagResource_tagKeys :: Lens.Lens' UntagResource [Prelude.Text]+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++instance Core.AWSRequest UntagResource where+ type+ AWSResponse UntagResource =+ UntagResourceResponse+ request overrides =+ Request.delete (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ UntagResourceResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UntagResource where+ hashWithSalt _salt UntagResource' {..} =+ _salt+ `Prelude.hashWithSalt` resourceArn+ `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+ rnf UntagResource' {..} =+ Prelude.rnf resourceArn+ `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToPath UntagResource where+ toPath = Prelude.const "/v2/email/tags"++instance Data.ToQuery UntagResource where+ toQuery UntagResource' {..} =+ Prelude.mconcat+ [ "ResourceArn" Data.=: resourceArn,+ "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/SESV2/UpdateConfigurationSetEventDestination.hs view
@@ -0,0 +1,244 @@+{-# 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.SESV2.UpdateConfigurationSetEventDestination+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Update the configuration of an event destination for a configuration+-- set.+--+-- /Events/ include message sends, deliveries, opens, clicks, bounces, and+-- complaints. /Event destinations/ are places that you can send+-- information about these events to. For example, you can send event data+-- to Amazon SNS to receive notifications when you receive bounces or+-- complaints, or you can use Amazon Kinesis Data Firehose to stream data+-- to Amazon S3 for long-term storage.+module Amazonka.SESV2.UpdateConfigurationSetEventDestination+ ( -- * Creating a Request+ UpdateConfigurationSetEventDestination (..),+ newUpdateConfigurationSetEventDestination,++ -- * Request Lenses+ updateConfigurationSetEventDestination_configurationSetName,+ updateConfigurationSetEventDestination_eventDestinationName,+ updateConfigurationSetEventDestination_eventDestination,++ -- * Destructuring the Response+ UpdateConfigurationSetEventDestinationResponse (..),+ newUpdateConfigurationSetEventDestinationResponse,++ -- * Response Lenses+ updateConfigurationSetEventDestinationResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | A request to change the settings for an event destination for a+-- configuration set.+--+-- /See:/ 'newUpdateConfigurationSetEventDestination' smart constructor.+data UpdateConfigurationSetEventDestination = UpdateConfigurationSetEventDestination'+ { -- | The name of the configuration set that contains the event destination to+ -- modify.+ configurationSetName :: Prelude.Text,+ -- | The name of the event destination.+ eventDestinationName :: Prelude.Text,+ -- | An object that defines the event destination.+ eventDestination :: EventDestinationDefinition+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateConfigurationSetEventDestination' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configurationSetName', 'updateConfigurationSetEventDestination_configurationSetName' - The name of the configuration set that contains the event destination to+-- modify.+--+-- 'eventDestinationName', 'updateConfigurationSetEventDestination_eventDestinationName' - The name of the event destination.+--+-- 'eventDestination', 'updateConfigurationSetEventDestination_eventDestination' - An object that defines the event destination.+newUpdateConfigurationSetEventDestination ::+ -- | 'configurationSetName'+ Prelude.Text ->+ -- | 'eventDestinationName'+ Prelude.Text ->+ -- | 'eventDestination'+ EventDestinationDefinition ->+ UpdateConfigurationSetEventDestination+newUpdateConfigurationSetEventDestination+ pConfigurationSetName_+ pEventDestinationName_+ pEventDestination_ =+ UpdateConfigurationSetEventDestination'+ { configurationSetName =+ pConfigurationSetName_,+ eventDestinationName =+ pEventDestinationName_,+ eventDestination =+ pEventDestination_+ }++-- | The name of the configuration set that contains the event destination to+-- modify.+updateConfigurationSetEventDestination_configurationSetName :: Lens.Lens' UpdateConfigurationSetEventDestination Prelude.Text+updateConfigurationSetEventDestination_configurationSetName = Lens.lens (\UpdateConfigurationSetEventDestination' {configurationSetName} -> configurationSetName) (\s@UpdateConfigurationSetEventDestination' {} a -> s {configurationSetName = a} :: UpdateConfigurationSetEventDestination)++-- | The name of the event destination.+updateConfigurationSetEventDestination_eventDestinationName :: Lens.Lens' UpdateConfigurationSetEventDestination Prelude.Text+updateConfigurationSetEventDestination_eventDestinationName = Lens.lens (\UpdateConfigurationSetEventDestination' {eventDestinationName} -> eventDestinationName) (\s@UpdateConfigurationSetEventDestination' {} a -> s {eventDestinationName = a} :: UpdateConfigurationSetEventDestination)++-- | An object that defines the event destination.+updateConfigurationSetEventDestination_eventDestination :: Lens.Lens' UpdateConfigurationSetEventDestination EventDestinationDefinition+updateConfigurationSetEventDestination_eventDestination = Lens.lens (\UpdateConfigurationSetEventDestination' {eventDestination} -> eventDestination) (\s@UpdateConfigurationSetEventDestination' {} a -> s {eventDestination = a} :: UpdateConfigurationSetEventDestination)++instance+ Core.AWSRequest+ UpdateConfigurationSetEventDestination+ where+ type+ AWSResponse+ UpdateConfigurationSetEventDestination =+ UpdateConfigurationSetEventDestinationResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ UpdateConfigurationSetEventDestinationResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ UpdateConfigurationSetEventDestination+ where+ hashWithSalt+ _salt+ UpdateConfigurationSetEventDestination' {..} =+ _salt+ `Prelude.hashWithSalt` configurationSetName+ `Prelude.hashWithSalt` eventDestinationName+ `Prelude.hashWithSalt` eventDestination++instance+ Prelude.NFData+ UpdateConfigurationSetEventDestination+ where+ rnf UpdateConfigurationSetEventDestination' {..} =+ Prelude.rnf configurationSetName+ `Prelude.seq` Prelude.rnf eventDestinationName+ `Prelude.seq` Prelude.rnf eventDestination++instance+ Data.ToHeaders+ UpdateConfigurationSetEventDestination+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToJSON+ UpdateConfigurationSetEventDestination+ where+ toJSON UpdateConfigurationSetEventDestination' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("EventDestination" Data..= eventDestination)+ ]+ )++instance+ Data.ToPath+ UpdateConfigurationSetEventDestination+ where+ toPath UpdateConfigurationSetEventDestination' {..} =+ Prelude.mconcat+ [ "/v2/email/configuration-sets/",+ Data.toBS configurationSetName,+ "/event-destinations/",+ Data.toBS eventDestinationName+ ]++instance+ Data.ToQuery+ UpdateConfigurationSetEventDestination+ where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newUpdateConfigurationSetEventDestinationResponse' smart constructor.+data UpdateConfigurationSetEventDestinationResponse = UpdateConfigurationSetEventDestinationResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateConfigurationSetEventDestinationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateConfigurationSetEventDestinationResponse_httpStatus' - The response's http status code.+newUpdateConfigurationSetEventDestinationResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateConfigurationSetEventDestinationResponse+newUpdateConfigurationSetEventDestinationResponse+ pHttpStatus_ =+ UpdateConfigurationSetEventDestinationResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+updateConfigurationSetEventDestinationResponse_httpStatus :: Lens.Lens' UpdateConfigurationSetEventDestinationResponse Prelude.Int+updateConfigurationSetEventDestinationResponse_httpStatus = Lens.lens (\UpdateConfigurationSetEventDestinationResponse' {httpStatus} -> httpStatus) (\s@UpdateConfigurationSetEventDestinationResponse' {} a -> s {httpStatus = a} :: UpdateConfigurationSetEventDestinationResponse)++instance+ Prelude.NFData+ UpdateConfigurationSetEventDestinationResponse+ where+ rnf+ UpdateConfigurationSetEventDestinationResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/UpdateContact.hs view
@@ -0,0 +1,220 @@+{-# 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.SESV2.UpdateContact+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a contact\'s preferences for a list. It is not necessary to+-- specify all existing topic preferences in the TopicPreferences object,+-- just the ones that need updating.+module Amazonka.SESV2.UpdateContact+ ( -- * Creating a Request+ UpdateContact (..),+ newUpdateContact,++ -- * Request Lenses+ updateContact_attributesData,+ updateContact_topicPreferences,+ updateContact_unsubscribeAll,+ updateContact_contactListName,+ updateContact_emailAddress,++ -- * Destructuring the Response+ UpdateContactResponse (..),+ newUpdateContactResponse,++ -- * Response Lenses+ updateContactResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | /See:/ 'newUpdateContact' smart constructor.+data UpdateContact = UpdateContact'+ { -- | The attribute data attached to a contact.+ attributesData :: Prelude.Maybe Prelude.Text,+ -- | The contact\'s preference for being opted-in to or opted-out of a topic.+ topicPreferences :: Prelude.Maybe [TopicPreference],+ -- | A boolean value status noting if the contact is unsubscribed from all+ -- contact list topics.+ unsubscribeAll :: Prelude.Maybe Prelude.Bool,+ -- | The name of the contact list.+ contactListName :: Prelude.Text,+ -- | The contact\'s email addres.+ emailAddress :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateContact' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attributesData', 'updateContact_attributesData' - The attribute data attached to a contact.+--+-- 'topicPreferences', 'updateContact_topicPreferences' - The contact\'s preference for being opted-in to or opted-out of a topic.+--+-- 'unsubscribeAll', 'updateContact_unsubscribeAll' - A boolean value status noting if the contact is unsubscribed from all+-- contact list topics.+--+-- 'contactListName', 'updateContact_contactListName' - The name of the contact list.+--+-- 'emailAddress', 'updateContact_emailAddress' - The contact\'s email addres.+newUpdateContact ::+ -- | 'contactListName'+ Prelude.Text ->+ -- | 'emailAddress'+ Prelude.Text ->+ UpdateContact+newUpdateContact pContactListName_ pEmailAddress_ =+ UpdateContact'+ { attributesData = Prelude.Nothing,+ topicPreferences = Prelude.Nothing,+ unsubscribeAll = Prelude.Nothing,+ contactListName = pContactListName_,+ emailAddress = pEmailAddress_+ }++-- | The attribute data attached to a contact.+updateContact_attributesData :: Lens.Lens' UpdateContact (Prelude.Maybe Prelude.Text)+updateContact_attributesData = Lens.lens (\UpdateContact' {attributesData} -> attributesData) (\s@UpdateContact' {} a -> s {attributesData = a} :: UpdateContact)++-- | The contact\'s preference for being opted-in to or opted-out of a topic.+updateContact_topicPreferences :: Lens.Lens' UpdateContact (Prelude.Maybe [TopicPreference])+updateContact_topicPreferences = Lens.lens (\UpdateContact' {topicPreferences} -> topicPreferences) (\s@UpdateContact' {} a -> s {topicPreferences = a} :: UpdateContact) Prelude.. Lens.mapping Lens.coerced++-- | A boolean value status noting if the contact is unsubscribed from all+-- contact list topics.+updateContact_unsubscribeAll :: Lens.Lens' UpdateContact (Prelude.Maybe Prelude.Bool)+updateContact_unsubscribeAll = Lens.lens (\UpdateContact' {unsubscribeAll} -> unsubscribeAll) (\s@UpdateContact' {} a -> s {unsubscribeAll = a} :: UpdateContact)++-- | The name of the contact list.+updateContact_contactListName :: Lens.Lens' UpdateContact Prelude.Text+updateContact_contactListName = Lens.lens (\UpdateContact' {contactListName} -> contactListName) (\s@UpdateContact' {} a -> s {contactListName = a} :: UpdateContact)++-- | The contact\'s email addres.+updateContact_emailAddress :: Lens.Lens' UpdateContact Prelude.Text+updateContact_emailAddress = Lens.lens (\UpdateContact' {emailAddress} -> emailAddress) (\s@UpdateContact' {} a -> s {emailAddress = a} :: UpdateContact)++instance Core.AWSRequest UpdateContact where+ type+ AWSResponse UpdateContact =+ UpdateContactResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ UpdateContactResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateContact where+ hashWithSalt _salt UpdateContact' {..} =+ _salt+ `Prelude.hashWithSalt` attributesData+ `Prelude.hashWithSalt` topicPreferences+ `Prelude.hashWithSalt` unsubscribeAll+ `Prelude.hashWithSalt` contactListName+ `Prelude.hashWithSalt` emailAddress++instance Prelude.NFData UpdateContact where+ rnf UpdateContact' {..} =+ Prelude.rnf attributesData+ `Prelude.seq` Prelude.rnf topicPreferences+ `Prelude.seq` Prelude.rnf unsubscribeAll+ `Prelude.seq` Prelude.rnf contactListName+ `Prelude.seq` Prelude.rnf emailAddress++instance Data.ToHeaders UpdateContact where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateContact where+ toJSON UpdateContact' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("AttributesData" Data..=)+ Prelude.<$> attributesData,+ ("TopicPreferences" Data..=)+ Prelude.<$> topicPreferences,+ ("UnsubscribeAll" Data..=)+ Prelude.<$> unsubscribeAll+ ]+ )++instance Data.ToPath UpdateContact where+ toPath UpdateContact' {..} =+ Prelude.mconcat+ [ "/v2/email/contact-lists/",+ Data.toBS contactListName,+ "/contacts/",+ Data.toBS emailAddress+ ]++instance Data.ToQuery UpdateContact where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateContactResponse' smart constructor.+data UpdateContactResponse = UpdateContactResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateContactResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateContactResponse_httpStatus' - The response's http status code.+newUpdateContactResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateContactResponse+newUpdateContactResponse pHttpStatus_ =+ UpdateContactResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+updateContactResponse_httpStatus :: Lens.Lens' UpdateContactResponse Prelude.Int+updateContactResponse_httpStatus = Lens.lens (\UpdateContactResponse' {httpStatus} -> httpStatus) (\s@UpdateContactResponse' {} a -> s {httpStatus = a} :: UpdateContactResponse)++instance Prelude.NFData UpdateContactResponse where+ rnf UpdateContactResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/UpdateContactList.hs view
@@ -0,0 +1,190 @@+{-# 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.SESV2.UpdateContactList+-- 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 contact list metadata. This operation does a complete+-- replacement.+module Amazonka.SESV2.UpdateContactList+ ( -- * Creating a Request+ UpdateContactList (..),+ newUpdateContactList,++ -- * Request Lenses+ updateContactList_description,+ updateContactList_topics,+ updateContactList_contactListName,++ -- * Destructuring the Response+ UpdateContactListResponse (..),+ newUpdateContactListResponse,++ -- * Response Lenses+ updateContactListResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | /See:/ 'newUpdateContactList' smart constructor.+data UpdateContactList = UpdateContactList'+ { -- | A description of what the contact list is about.+ description :: Prelude.Maybe Prelude.Text,+ -- | An interest group, theme, or label within a list. A contact list can+ -- have multiple topics.+ topics :: Prelude.Maybe [Topic],+ -- | The name of the contact list.+ contactListName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateContactList' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateContactList_description' - A description of what the contact list is about.+--+-- 'topics', 'updateContactList_topics' - An interest group, theme, or label within a list. A contact list can+-- have multiple topics.+--+-- 'contactListName', 'updateContactList_contactListName' - The name of the contact list.+newUpdateContactList ::+ -- | 'contactListName'+ Prelude.Text ->+ UpdateContactList+newUpdateContactList pContactListName_ =+ UpdateContactList'+ { description = Prelude.Nothing,+ topics = Prelude.Nothing,+ contactListName = pContactListName_+ }++-- | A description of what the contact list is about.+updateContactList_description :: Lens.Lens' UpdateContactList (Prelude.Maybe Prelude.Text)+updateContactList_description = Lens.lens (\UpdateContactList' {description} -> description) (\s@UpdateContactList' {} a -> s {description = a} :: UpdateContactList)++-- | An interest group, theme, or label within a list. A contact list can+-- have multiple topics.+updateContactList_topics :: Lens.Lens' UpdateContactList (Prelude.Maybe [Topic])+updateContactList_topics = Lens.lens (\UpdateContactList' {topics} -> topics) (\s@UpdateContactList' {} a -> s {topics = a} :: UpdateContactList) Prelude.. Lens.mapping Lens.coerced++-- | The name of the contact list.+updateContactList_contactListName :: Lens.Lens' UpdateContactList Prelude.Text+updateContactList_contactListName = Lens.lens (\UpdateContactList' {contactListName} -> contactListName) (\s@UpdateContactList' {} a -> s {contactListName = a} :: UpdateContactList)++instance Core.AWSRequest UpdateContactList where+ type+ AWSResponse UpdateContactList =+ UpdateContactListResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ UpdateContactListResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateContactList where+ hashWithSalt _salt UpdateContactList' {..} =+ _salt+ `Prelude.hashWithSalt` description+ `Prelude.hashWithSalt` topics+ `Prelude.hashWithSalt` contactListName++instance Prelude.NFData UpdateContactList where+ rnf UpdateContactList' {..} =+ Prelude.rnf description+ `Prelude.seq` Prelude.rnf topics+ `Prelude.seq` Prelude.rnf contactListName++instance Data.ToHeaders UpdateContactList where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateContactList where+ toJSON UpdateContactList' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Description" Data..=) Prelude.<$> description,+ ("Topics" Data..=) Prelude.<$> topics+ ]+ )++instance Data.ToPath UpdateContactList where+ toPath UpdateContactList' {..} =+ Prelude.mconcat+ [ "/v2/email/contact-lists/",+ Data.toBS contactListName+ ]++instance Data.ToQuery UpdateContactList where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateContactListResponse' smart constructor.+data UpdateContactListResponse = UpdateContactListResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateContactListResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateContactListResponse_httpStatus' - The response's http status code.+newUpdateContactListResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateContactListResponse+newUpdateContactListResponse pHttpStatus_ =+ UpdateContactListResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+updateContactListResponse_httpStatus :: Lens.Lens' UpdateContactListResponse Prelude.Int+updateContactListResponse_httpStatus = Lens.lens (\UpdateContactListResponse' {httpStatus} -> httpStatus) (\s@UpdateContactListResponse' {} a -> s {httpStatus = a} :: UpdateContactListResponse)++instance Prelude.NFData UpdateContactListResponse where+ rnf UpdateContactListResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/UpdateCustomVerificationEmailTemplate.hs view
@@ -0,0 +1,316 @@+{-# 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.SESV2.UpdateCustomVerificationEmailTemplate+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an existing custom verification email template.+--+-- For more information about custom verification email templates, see+-- <https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#send-email-verify-address-custom Using custom verification email templates>+-- in the /Amazon SES Developer Guide/.+--+-- You can execute this operation no more than once per second.+module Amazonka.SESV2.UpdateCustomVerificationEmailTemplate+ ( -- * Creating a Request+ UpdateCustomVerificationEmailTemplate (..),+ newUpdateCustomVerificationEmailTemplate,++ -- * Request Lenses+ updateCustomVerificationEmailTemplate_templateName,+ updateCustomVerificationEmailTemplate_fromEmailAddress,+ updateCustomVerificationEmailTemplate_templateSubject,+ updateCustomVerificationEmailTemplate_templateContent,+ updateCustomVerificationEmailTemplate_successRedirectionURL,+ updateCustomVerificationEmailTemplate_failureRedirectionURL,++ -- * Destructuring the Response+ UpdateCustomVerificationEmailTemplateResponse (..),+ newUpdateCustomVerificationEmailTemplateResponse,++ -- * Response Lenses+ updateCustomVerificationEmailTemplateResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | Represents a request to update an existing custom verification email+-- template.+--+-- /See:/ 'newUpdateCustomVerificationEmailTemplate' smart constructor.+data UpdateCustomVerificationEmailTemplate = UpdateCustomVerificationEmailTemplate'+ { -- | The name of the custom verification email template that you want to+ -- update.+ templateName :: Prelude.Text,+ -- | The email address that the custom verification email is sent from.+ fromEmailAddress :: Prelude.Text,+ -- | The subject line of the custom verification email.+ templateSubject :: Prelude.Text,+ -- | The content of the custom verification email. The total size of the+ -- email must be less than 10 MB. The message body may contain HTML, with+ -- some limitations. For more information, see+ -- <https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#send-email-verify-address-custom-faq Custom verification email frequently asked questions>+ -- in the /Amazon SES Developer Guide/.+ templateContent :: Prelude.Text,+ -- | The URL that the recipient of the verification email is sent to if his+ -- or her address is successfully verified.+ successRedirectionURL :: Prelude.Text,+ -- | The URL that the recipient of the verification email is sent to if his+ -- or her address is not successfully verified.+ failureRedirectionURL :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateCustomVerificationEmailTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'templateName', 'updateCustomVerificationEmailTemplate_templateName' - The name of the custom verification email template that you want to+-- update.+--+-- 'fromEmailAddress', 'updateCustomVerificationEmailTemplate_fromEmailAddress' - The email address that the custom verification email is sent from.+--+-- 'templateSubject', 'updateCustomVerificationEmailTemplate_templateSubject' - The subject line of the custom verification email.+--+-- 'templateContent', 'updateCustomVerificationEmailTemplate_templateContent' - The content of the custom verification email. The total size of the+-- email must be less than 10 MB. The message body may contain HTML, with+-- some limitations. For more information, see+-- <https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#send-email-verify-address-custom-faq Custom verification email frequently asked questions>+-- in the /Amazon SES Developer Guide/.+--+-- 'successRedirectionURL', 'updateCustomVerificationEmailTemplate_successRedirectionURL' - The URL that the recipient of the verification email is sent to if his+-- or her address is successfully verified.+--+-- 'failureRedirectionURL', 'updateCustomVerificationEmailTemplate_failureRedirectionURL' - The URL that the recipient of the verification email is sent to if his+-- or her address is not successfully verified.+newUpdateCustomVerificationEmailTemplate ::+ -- | 'templateName'+ Prelude.Text ->+ -- | 'fromEmailAddress'+ Prelude.Text ->+ -- | 'templateSubject'+ Prelude.Text ->+ -- | 'templateContent'+ Prelude.Text ->+ -- | 'successRedirectionURL'+ Prelude.Text ->+ -- | 'failureRedirectionURL'+ Prelude.Text ->+ UpdateCustomVerificationEmailTemplate+newUpdateCustomVerificationEmailTemplate+ pTemplateName_+ pFromEmailAddress_+ pTemplateSubject_+ pTemplateContent_+ pSuccessRedirectionURL_+ pFailureRedirectionURL_ =+ UpdateCustomVerificationEmailTemplate'+ { templateName =+ pTemplateName_,+ fromEmailAddress =+ pFromEmailAddress_,+ templateSubject = pTemplateSubject_,+ templateContent = pTemplateContent_,+ successRedirectionURL =+ pSuccessRedirectionURL_,+ failureRedirectionURL =+ pFailureRedirectionURL_+ }++-- | The name of the custom verification email template that you want to+-- update.+updateCustomVerificationEmailTemplate_templateName :: Lens.Lens' UpdateCustomVerificationEmailTemplate Prelude.Text+updateCustomVerificationEmailTemplate_templateName = Lens.lens (\UpdateCustomVerificationEmailTemplate' {templateName} -> templateName) (\s@UpdateCustomVerificationEmailTemplate' {} a -> s {templateName = a} :: UpdateCustomVerificationEmailTemplate)++-- | The email address that the custom verification email is sent from.+updateCustomVerificationEmailTemplate_fromEmailAddress :: Lens.Lens' UpdateCustomVerificationEmailTemplate Prelude.Text+updateCustomVerificationEmailTemplate_fromEmailAddress = Lens.lens (\UpdateCustomVerificationEmailTemplate' {fromEmailAddress} -> fromEmailAddress) (\s@UpdateCustomVerificationEmailTemplate' {} a -> s {fromEmailAddress = a} :: UpdateCustomVerificationEmailTemplate)++-- | The subject line of the custom verification email.+updateCustomVerificationEmailTemplate_templateSubject :: Lens.Lens' UpdateCustomVerificationEmailTemplate Prelude.Text+updateCustomVerificationEmailTemplate_templateSubject = Lens.lens (\UpdateCustomVerificationEmailTemplate' {templateSubject} -> templateSubject) (\s@UpdateCustomVerificationEmailTemplate' {} a -> s {templateSubject = a} :: UpdateCustomVerificationEmailTemplate)++-- | The content of the custom verification email. The total size of the+-- email must be less than 10 MB. The message body may contain HTML, with+-- some limitations. For more information, see+-- <https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#send-email-verify-address-custom-faq Custom verification email frequently asked questions>+-- in the /Amazon SES Developer Guide/.+updateCustomVerificationEmailTemplate_templateContent :: Lens.Lens' UpdateCustomVerificationEmailTemplate Prelude.Text+updateCustomVerificationEmailTemplate_templateContent = Lens.lens (\UpdateCustomVerificationEmailTemplate' {templateContent} -> templateContent) (\s@UpdateCustomVerificationEmailTemplate' {} a -> s {templateContent = a} :: UpdateCustomVerificationEmailTemplate)++-- | The URL that the recipient of the verification email is sent to if his+-- or her address is successfully verified.+updateCustomVerificationEmailTemplate_successRedirectionURL :: Lens.Lens' UpdateCustomVerificationEmailTemplate Prelude.Text+updateCustomVerificationEmailTemplate_successRedirectionURL = Lens.lens (\UpdateCustomVerificationEmailTemplate' {successRedirectionURL} -> successRedirectionURL) (\s@UpdateCustomVerificationEmailTemplate' {} a -> s {successRedirectionURL = a} :: UpdateCustomVerificationEmailTemplate)++-- | The URL that the recipient of the verification email is sent to if his+-- or her address is not successfully verified.+updateCustomVerificationEmailTemplate_failureRedirectionURL :: Lens.Lens' UpdateCustomVerificationEmailTemplate Prelude.Text+updateCustomVerificationEmailTemplate_failureRedirectionURL = Lens.lens (\UpdateCustomVerificationEmailTemplate' {failureRedirectionURL} -> failureRedirectionURL) (\s@UpdateCustomVerificationEmailTemplate' {} a -> s {failureRedirectionURL = a} :: UpdateCustomVerificationEmailTemplate)++instance+ Core.AWSRequest+ UpdateCustomVerificationEmailTemplate+ where+ type+ AWSResponse+ UpdateCustomVerificationEmailTemplate =+ UpdateCustomVerificationEmailTemplateResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ UpdateCustomVerificationEmailTemplateResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance+ Prelude.Hashable+ UpdateCustomVerificationEmailTemplate+ where+ hashWithSalt+ _salt+ UpdateCustomVerificationEmailTemplate' {..} =+ _salt+ `Prelude.hashWithSalt` templateName+ `Prelude.hashWithSalt` fromEmailAddress+ `Prelude.hashWithSalt` templateSubject+ `Prelude.hashWithSalt` templateContent+ `Prelude.hashWithSalt` successRedirectionURL+ `Prelude.hashWithSalt` failureRedirectionURL++instance+ Prelude.NFData+ UpdateCustomVerificationEmailTemplate+ where+ rnf UpdateCustomVerificationEmailTemplate' {..} =+ Prelude.rnf templateName+ `Prelude.seq` Prelude.rnf fromEmailAddress+ `Prelude.seq` Prelude.rnf templateSubject+ `Prelude.seq` Prelude.rnf templateContent+ `Prelude.seq` Prelude.rnf successRedirectionURL+ `Prelude.seq` Prelude.rnf failureRedirectionURL++instance+ Data.ToHeaders+ UpdateCustomVerificationEmailTemplate+ where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance+ Data.ToJSON+ UpdateCustomVerificationEmailTemplate+ where+ toJSON UpdateCustomVerificationEmailTemplate' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("FromEmailAddress" Data..= fromEmailAddress),+ Prelude.Just+ ("TemplateSubject" Data..= templateSubject),+ Prelude.Just+ ("TemplateContent" Data..= templateContent),+ Prelude.Just+ ( "SuccessRedirectionURL"+ Data..= successRedirectionURL+ ),+ Prelude.Just+ ( "FailureRedirectionURL"+ Data..= failureRedirectionURL+ )+ ]+ )++instance+ Data.ToPath+ UpdateCustomVerificationEmailTemplate+ where+ toPath UpdateCustomVerificationEmailTemplate' {..} =+ Prelude.mconcat+ [ "/v2/email/custom-verification-email-templates/",+ Data.toBS templateName+ ]++instance+ Data.ToQuery+ UpdateCustomVerificationEmailTemplate+ where+ toQuery = Prelude.const Prelude.mempty++-- | If the action is successful, the service sends back an HTTP 200 response+-- with an empty HTTP body.+--+-- /See:/ 'newUpdateCustomVerificationEmailTemplateResponse' smart constructor.+data UpdateCustomVerificationEmailTemplateResponse = UpdateCustomVerificationEmailTemplateResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateCustomVerificationEmailTemplateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateCustomVerificationEmailTemplateResponse_httpStatus' - The response's http status code.+newUpdateCustomVerificationEmailTemplateResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateCustomVerificationEmailTemplateResponse+newUpdateCustomVerificationEmailTemplateResponse+ pHttpStatus_ =+ UpdateCustomVerificationEmailTemplateResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+updateCustomVerificationEmailTemplateResponse_httpStatus :: Lens.Lens' UpdateCustomVerificationEmailTemplateResponse Prelude.Int+updateCustomVerificationEmailTemplateResponse_httpStatus = Lens.lens (\UpdateCustomVerificationEmailTemplateResponse' {httpStatus} -> httpStatus) (\s@UpdateCustomVerificationEmailTemplateResponse' {} a -> s {httpStatus = a} :: UpdateCustomVerificationEmailTemplateResponse)++instance+ Prelude.NFData+ UpdateCustomVerificationEmailTemplateResponse+ where+ rnf+ UpdateCustomVerificationEmailTemplateResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/UpdateEmailIdentityPolicy.hs view
@@ -0,0 +1,239 @@+{-# 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.SESV2.UpdateEmailIdentityPolicy+-- 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 specified sending authorization policy for the given+-- identity (an email address or a domain). This API returns successfully+-- even if a policy with the specified name does not exist.+--+-- This API is for the identity owner only. If you have not verified the+-- identity, this API will return an error.+--+-- Sending authorization is a feature that enables an identity owner to+-- authorize other senders to use its identities. For information about+-- using sending authorization, see the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html Amazon SES Developer Guide>.+--+-- You can execute this operation no more than once per second.+module Amazonka.SESV2.UpdateEmailIdentityPolicy+ ( -- * Creating a Request+ UpdateEmailIdentityPolicy (..),+ newUpdateEmailIdentityPolicy,++ -- * Request Lenses+ updateEmailIdentityPolicy_emailIdentity,+ updateEmailIdentityPolicy_policyName,+ updateEmailIdentityPolicy_policy,++ -- * Destructuring the Response+ UpdateEmailIdentityPolicyResponse (..),+ newUpdateEmailIdentityPolicyResponse,++ -- * Response Lenses+ updateEmailIdentityPolicyResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | Represents a request to update a sending authorization policy for an+-- identity. Sending authorization is an Amazon SES feature that enables+-- you to authorize other senders to use your identities. For information,+-- see the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-identity-owner-tasks-management.html Amazon SES Developer Guide>.+--+-- /See:/ 'newUpdateEmailIdentityPolicy' smart constructor.+data UpdateEmailIdentityPolicy = UpdateEmailIdentityPolicy'+ { -- | The email identity.+ emailIdentity :: Prelude.Text,+ -- | The name of the policy.+ --+ -- The policy name cannot exceed 64 characters and can only include+ -- alphanumeric characters, dashes, and underscores.+ policyName :: Prelude.Text,+ -- | The text of the policy in JSON format. The policy cannot exceed 4 KB.+ --+ -- For information about the syntax of sending authorization policies, see+ -- the+ -- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-policies.html Amazon SES Developer Guide>.+ policy :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateEmailIdentityPolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'emailIdentity', 'updateEmailIdentityPolicy_emailIdentity' - The email identity.+--+-- 'policyName', 'updateEmailIdentityPolicy_policyName' - The name of the policy.+--+-- The policy name cannot exceed 64 characters and can only include+-- alphanumeric characters, dashes, and underscores.+--+-- 'policy', 'updateEmailIdentityPolicy_policy' - The text of the policy in JSON format. The policy cannot exceed 4 KB.+--+-- For information about the syntax of sending authorization policies, see+-- the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-policies.html Amazon SES Developer Guide>.+newUpdateEmailIdentityPolicy ::+ -- | 'emailIdentity'+ Prelude.Text ->+ -- | 'policyName'+ Prelude.Text ->+ -- | 'policy'+ Prelude.Text ->+ UpdateEmailIdentityPolicy+newUpdateEmailIdentityPolicy+ pEmailIdentity_+ pPolicyName_+ pPolicy_ =+ UpdateEmailIdentityPolicy'+ { emailIdentity =+ pEmailIdentity_,+ policyName = pPolicyName_,+ policy = pPolicy_+ }++-- | The email identity.+updateEmailIdentityPolicy_emailIdentity :: Lens.Lens' UpdateEmailIdentityPolicy Prelude.Text+updateEmailIdentityPolicy_emailIdentity = Lens.lens (\UpdateEmailIdentityPolicy' {emailIdentity} -> emailIdentity) (\s@UpdateEmailIdentityPolicy' {} a -> s {emailIdentity = a} :: UpdateEmailIdentityPolicy)++-- | The name of the policy.+--+-- The policy name cannot exceed 64 characters and can only include+-- alphanumeric characters, dashes, and underscores.+updateEmailIdentityPolicy_policyName :: Lens.Lens' UpdateEmailIdentityPolicy Prelude.Text+updateEmailIdentityPolicy_policyName = Lens.lens (\UpdateEmailIdentityPolicy' {policyName} -> policyName) (\s@UpdateEmailIdentityPolicy' {} a -> s {policyName = a} :: UpdateEmailIdentityPolicy)++-- | The text of the policy in JSON format. The policy cannot exceed 4 KB.+--+-- For information about the syntax of sending authorization policies, see+-- the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-policies.html Amazon SES Developer Guide>.+updateEmailIdentityPolicy_policy :: Lens.Lens' UpdateEmailIdentityPolicy Prelude.Text+updateEmailIdentityPolicy_policy = Lens.lens (\UpdateEmailIdentityPolicy' {policy} -> policy) (\s@UpdateEmailIdentityPolicy' {} a -> s {policy = a} :: UpdateEmailIdentityPolicy)++instance Core.AWSRequest UpdateEmailIdentityPolicy where+ type+ AWSResponse UpdateEmailIdentityPolicy =+ UpdateEmailIdentityPolicyResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ UpdateEmailIdentityPolicyResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateEmailIdentityPolicy where+ hashWithSalt _salt UpdateEmailIdentityPolicy' {..} =+ _salt+ `Prelude.hashWithSalt` emailIdentity+ `Prelude.hashWithSalt` policyName+ `Prelude.hashWithSalt` policy++instance Prelude.NFData UpdateEmailIdentityPolicy where+ rnf UpdateEmailIdentityPolicy' {..} =+ Prelude.rnf emailIdentity+ `Prelude.seq` Prelude.rnf policyName+ `Prelude.seq` Prelude.rnf policy++instance Data.ToHeaders UpdateEmailIdentityPolicy where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateEmailIdentityPolicy where+ toJSON UpdateEmailIdentityPolicy' {..} =+ Data.object+ ( Prelude.catMaybes+ [Prelude.Just ("Policy" Data..= policy)]+ )++instance Data.ToPath UpdateEmailIdentityPolicy where+ toPath UpdateEmailIdentityPolicy' {..} =+ Prelude.mconcat+ [ "/v2/email/identities/",+ Data.toBS emailIdentity,+ "/policies/",+ Data.toBS policyName+ ]++instance Data.ToQuery UpdateEmailIdentityPolicy where+ toQuery = Prelude.const Prelude.mempty++-- | An HTTP 200 response if the request succeeds, or an error message if the+-- request fails.+--+-- /See:/ 'newUpdateEmailIdentityPolicyResponse' smart constructor.+data UpdateEmailIdentityPolicyResponse = UpdateEmailIdentityPolicyResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateEmailIdentityPolicyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateEmailIdentityPolicyResponse_httpStatus' - The response's http status code.+newUpdateEmailIdentityPolicyResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateEmailIdentityPolicyResponse+newUpdateEmailIdentityPolicyResponse pHttpStatus_ =+ UpdateEmailIdentityPolicyResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+updateEmailIdentityPolicyResponse_httpStatus :: Lens.Lens' UpdateEmailIdentityPolicyResponse Prelude.Int+updateEmailIdentityPolicyResponse_httpStatus = Lens.lens (\UpdateEmailIdentityPolicyResponse' {httpStatus} -> httpStatus) (\s@UpdateEmailIdentityPolicyResponse' {} a -> s {httpStatus = a} :: UpdateEmailIdentityPolicyResponse)++instance+ Prelude.NFData+ UpdateEmailIdentityPolicyResponse+ where+ rnf UpdateEmailIdentityPolicyResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/UpdateEmailTemplate.hs view
@@ -0,0 +1,191 @@+{-# 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.SESV2.UpdateEmailTemplate+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an email template. Email templates enable you to send+-- personalized email to one or more destinations in a single API+-- operation. For more information, see the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-personalized-email-api.html Amazon SES Developer Guide>.+--+-- You can execute this operation no more than once per second.+module Amazonka.SESV2.UpdateEmailTemplate+ ( -- * Creating a Request+ UpdateEmailTemplate (..),+ newUpdateEmailTemplate,++ -- * Request Lenses+ updateEmailTemplate_templateName,+ updateEmailTemplate_templateContent,++ -- * Destructuring the Response+ UpdateEmailTemplateResponse (..),+ newUpdateEmailTemplateResponse,++ -- * Response Lenses+ updateEmailTemplateResponse_httpStatus,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response+import Amazonka.SESV2.Types++-- | Represents a request to update an email template. For more information,+-- see the+-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-personalized-email-api.html Amazon SES Developer Guide>.+--+-- /See:/ 'newUpdateEmailTemplate' smart constructor.+data UpdateEmailTemplate = UpdateEmailTemplate'+ { -- | The name of the template.+ templateName :: Prelude.Text,+ -- | The content of the email template, composed of a subject line, an HTML+ -- part, and a text-only part.+ templateContent :: EmailTemplateContent+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateEmailTemplate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'templateName', 'updateEmailTemplate_templateName' - The name of the template.+--+-- 'templateContent', 'updateEmailTemplate_templateContent' - The content of the email template, composed of a subject line, an HTML+-- part, and a text-only part.+newUpdateEmailTemplate ::+ -- | 'templateName'+ Prelude.Text ->+ -- | 'templateContent'+ EmailTemplateContent ->+ UpdateEmailTemplate+newUpdateEmailTemplate+ pTemplateName_+ pTemplateContent_ =+ UpdateEmailTemplate'+ { templateName = pTemplateName_,+ templateContent = pTemplateContent_+ }++-- | The name of the template.+updateEmailTemplate_templateName :: Lens.Lens' UpdateEmailTemplate Prelude.Text+updateEmailTemplate_templateName = Lens.lens (\UpdateEmailTemplate' {templateName} -> templateName) (\s@UpdateEmailTemplate' {} a -> s {templateName = a} :: UpdateEmailTemplate)++-- | The content of the email template, composed of a subject line, an HTML+-- part, and a text-only part.+updateEmailTemplate_templateContent :: Lens.Lens' UpdateEmailTemplate EmailTemplateContent+updateEmailTemplate_templateContent = Lens.lens (\UpdateEmailTemplate' {templateContent} -> templateContent) (\s@UpdateEmailTemplate' {} a -> s {templateContent = a} :: UpdateEmailTemplate)++instance Core.AWSRequest UpdateEmailTemplate where+ type+ AWSResponse UpdateEmailTemplate =+ UpdateEmailTemplateResponse+ request overrides =+ Request.putJSON (overrides defaultService)+ response =+ Response.receiveEmpty+ ( \s h x ->+ UpdateEmailTemplateResponse'+ Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable UpdateEmailTemplate where+ hashWithSalt _salt UpdateEmailTemplate' {..} =+ _salt+ `Prelude.hashWithSalt` templateName+ `Prelude.hashWithSalt` templateContent++instance Prelude.NFData UpdateEmailTemplate where+ rnf UpdateEmailTemplate' {..} =+ Prelude.rnf templateName+ `Prelude.seq` Prelude.rnf templateContent++instance Data.ToHeaders UpdateEmailTemplate where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON UpdateEmailTemplate where+ toJSON UpdateEmailTemplate' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just+ ("TemplateContent" Data..= templateContent)+ ]+ )++instance Data.ToPath UpdateEmailTemplate where+ toPath UpdateEmailTemplate' {..} =+ Prelude.mconcat+ ["/v2/email/templates/", Data.toBS templateName]++instance Data.ToQuery UpdateEmailTemplate where+ toQuery = Prelude.const Prelude.mempty++-- | If the action is successful, the service sends back an HTTP 200 response+-- with an empty HTTP body.+--+-- /See:/ 'newUpdateEmailTemplateResponse' smart constructor.+data UpdateEmailTemplateResponse = UpdateEmailTemplateResponse'+ { -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateEmailTemplateResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateEmailTemplateResponse_httpStatus' - The response's http status code.+newUpdateEmailTemplateResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ UpdateEmailTemplateResponse+newUpdateEmailTemplateResponse pHttpStatus_ =+ UpdateEmailTemplateResponse'+ { httpStatus =+ pHttpStatus_+ }++-- | The response's http status code.+updateEmailTemplateResponse_httpStatus :: Lens.Lens' UpdateEmailTemplateResponse Prelude.Int+updateEmailTemplateResponse_httpStatus = Lens.lens (\UpdateEmailTemplateResponse' {httpStatus} -> httpStatus) (\s@UpdateEmailTemplateResponse' {} a -> s {httpStatus = a} :: UpdateEmailTemplateResponse)++instance Prelude.NFData UpdateEmailTemplateResponse where+ rnf UpdateEmailTemplateResponse' {..} =+ Prelude.rnf httpStatus
+ gen/Amazonka/SESV2/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.SESV2.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.SESV2.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import Amazonka.SESV2.Lens+import Amazonka.SESV2.Types
+ src/.gitkeep view
+ test/Main.hs view
@@ -0,0 +1,23 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Main+-- Copyright : (c) 2013-2023 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Main (main) where++import Test.Amazonka.SESV2+import Test.Amazonka.SESV2.Internal+import Test.Tasty++main :: IO ()+main =+ defaultMain $+ testGroup+ "SESV2"+ [ testGroup "tests" tests,+ testGroup "fixtures" fixtures+ ]
+ test/Test/Amazonka/Gen/SESV2.hs view
@@ -0,0 +1,1758 @@+{-# 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.SESV2+-- 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.SESV2 where++import Amazonka.SESV2+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.Prelude+import Test.Amazonka.SESV2.Internal+import Test.Tasty++-- Auto-generated: the actual test selection needs to be manually placed into+-- the top-level so that real test data can be incrementally added.+--+-- This commented snippet is what the entire set should look like:++-- fixtures :: TestTree+-- fixtures =+-- [ testGroup "request"+-- [ requestBatchGetMetricData $+-- newBatchGetMetricData+--+-- , requestCreateConfigurationSet $+-- newCreateConfigurationSet+--+-- , requestCreateConfigurationSetEventDestination $+-- newCreateConfigurationSetEventDestination+--+-- , requestCreateContact $+-- newCreateContact+--+-- , requestCreateContactList $+-- newCreateContactList+--+-- , requestCreateCustomVerificationEmailTemplate $+-- newCreateCustomVerificationEmailTemplate+--+-- , requestCreateDedicatedIpPool $+-- newCreateDedicatedIpPool+--+-- , requestCreateDeliverabilityTestReport $+-- newCreateDeliverabilityTestReport+--+-- , requestCreateEmailIdentity $+-- newCreateEmailIdentity+--+-- , requestCreateEmailIdentityPolicy $+-- newCreateEmailIdentityPolicy+--+-- , requestCreateEmailTemplate $+-- newCreateEmailTemplate+--+-- , requestCreateImportJob $+-- newCreateImportJob+--+-- , requestDeleteConfigurationSet $+-- newDeleteConfigurationSet+--+-- , requestDeleteConfigurationSetEventDestination $+-- newDeleteConfigurationSetEventDestination+--+-- , requestDeleteContact $+-- newDeleteContact+--+-- , requestDeleteContactList $+-- newDeleteContactList+--+-- , requestDeleteCustomVerificationEmailTemplate $+-- newDeleteCustomVerificationEmailTemplate+--+-- , requestDeleteDedicatedIpPool $+-- newDeleteDedicatedIpPool+--+-- , requestDeleteEmailIdentity $+-- newDeleteEmailIdentity+--+-- , requestDeleteEmailIdentityPolicy $+-- newDeleteEmailIdentityPolicy+--+-- , requestDeleteEmailTemplate $+-- newDeleteEmailTemplate+--+-- , requestDeleteSuppressedDestination $+-- newDeleteSuppressedDestination+--+-- , requestGetAccount $+-- newGetAccount+--+-- , requestGetBlacklistReports $+-- newGetBlacklistReports+--+-- , requestGetConfigurationSet $+-- newGetConfigurationSet+--+-- , requestGetConfigurationSetEventDestinations $+-- newGetConfigurationSetEventDestinations+--+-- , requestGetContact $+-- newGetContact+--+-- , requestGetContactList $+-- newGetContactList+--+-- , requestGetCustomVerificationEmailTemplate $+-- newGetCustomVerificationEmailTemplate+--+-- , requestGetDedicatedIp $+-- newGetDedicatedIp+--+-- , requestGetDedicatedIpPool $+-- newGetDedicatedIpPool+--+-- , requestGetDedicatedIps $+-- newGetDedicatedIps+--+-- , requestGetDeliverabilityDashboardOptions $+-- newGetDeliverabilityDashboardOptions+--+-- , requestGetDeliverabilityTestReport $+-- newGetDeliverabilityTestReport+--+-- , requestGetDomainDeliverabilityCampaign $+-- newGetDomainDeliverabilityCampaign+--+-- , requestGetDomainStatisticsReport $+-- newGetDomainStatisticsReport+--+-- , requestGetEmailIdentity $+-- newGetEmailIdentity+--+-- , requestGetEmailIdentityPolicies $+-- newGetEmailIdentityPolicies+--+-- , requestGetEmailTemplate $+-- newGetEmailTemplate+--+-- , requestGetImportJob $+-- newGetImportJob+--+-- , requestGetSuppressedDestination $+-- newGetSuppressedDestination+--+-- , requestListConfigurationSets $+-- newListConfigurationSets+--+-- , requestListContactLists $+-- newListContactLists+--+-- , requestListContacts $+-- newListContacts+--+-- , requestListCustomVerificationEmailTemplates $+-- newListCustomVerificationEmailTemplates+--+-- , requestListDedicatedIpPools $+-- newListDedicatedIpPools+--+-- , requestListDeliverabilityTestReports $+-- newListDeliverabilityTestReports+--+-- , requestListDomainDeliverabilityCampaigns $+-- newListDomainDeliverabilityCampaigns+--+-- , requestListEmailIdentities $+-- newListEmailIdentities+--+-- , requestListEmailTemplates $+-- newListEmailTemplates+--+-- , requestListImportJobs $+-- newListImportJobs+--+-- , requestListRecommendations $+-- newListRecommendations+--+-- , requestListSuppressedDestinations $+-- newListSuppressedDestinations+--+-- , requestListTagsForResource $+-- newListTagsForResource+--+-- , requestPutAccountDedicatedIpWarmupAttributes $+-- newPutAccountDedicatedIpWarmupAttributes+--+-- , requestPutAccountDetails $+-- newPutAccountDetails+--+-- , requestPutAccountSendingAttributes $+-- newPutAccountSendingAttributes+--+-- , requestPutAccountSuppressionAttributes $+-- newPutAccountSuppressionAttributes+--+-- , requestPutAccountVdmAttributes $+-- newPutAccountVdmAttributes+--+-- , requestPutConfigurationSetDeliveryOptions $+-- newPutConfigurationSetDeliveryOptions+--+-- , requestPutConfigurationSetReputationOptions $+-- newPutConfigurationSetReputationOptions+--+-- , requestPutConfigurationSetSendingOptions $+-- newPutConfigurationSetSendingOptions+--+-- , requestPutConfigurationSetSuppressionOptions $+-- newPutConfigurationSetSuppressionOptions+--+-- , requestPutConfigurationSetTrackingOptions $+-- newPutConfigurationSetTrackingOptions+--+-- , requestPutConfigurationSetVdmOptions $+-- newPutConfigurationSetVdmOptions+--+-- , requestPutDedicatedIpInPool $+-- newPutDedicatedIpInPool+--+-- , requestPutDedicatedIpWarmupAttributes $+-- newPutDedicatedIpWarmupAttributes+--+-- , requestPutDeliverabilityDashboardOption $+-- newPutDeliverabilityDashboardOption+--+-- , requestPutEmailIdentityConfigurationSetAttributes $+-- newPutEmailIdentityConfigurationSetAttributes+--+-- , requestPutEmailIdentityDkimAttributes $+-- newPutEmailIdentityDkimAttributes+--+-- , requestPutEmailIdentityDkimSigningAttributes $+-- newPutEmailIdentityDkimSigningAttributes+--+-- , requestPutEmailIdentityFeedbackAttributes $+-- newPutEmailIdentityFeedbackAttributes+--+-- , requestPutEmailIdentityMailFromAttributes $+-- newPutEmailIdentityMailFromAttributes+--+-- , requestPutSuppressedDestination $+-- newPutSuppressedDestination+--+-- , requestSendBulkEmail $+-- newSendBulkEmail+--+-- , requestSendCustomVerificationEmail $+-- newSendCustomVerificationEmail+--+-- , requestSendEmail $+-- newSendEmail+--+-- , requestTagResource $+-- newTagResource+--+-- , requestTestRenderEmailTemplate $+-- newTestRenderEmailTemplate+--+-- , requestUntagResource $+-- newUntagResource+--+-- , requestUpdateConfigurationSetEventDestination $+-- newUpdateConfigurationSetEventDestination+--+-- , requestUpdateContact $+-- newUpdateContact+--+-- , requestUpdateContactList $+-- newUpdateContactList+--+-- , requestUpdateCustomVerificationEmailTemplate $+-- newUpdateCustomVerificationEmailTemplate+--+-- , requestUpdateEmailIdentityPolicy $+-- newUpdateEmailIdentityPolicy+--+-- , requestUpdateEmailTemplate $+-- newUpdateEmailTemplate+--+-- ]++-- , testGroup "response"+-- [ responseBatchGetMetricData $+-- newBatchGetMetricDataResponse+--+-- , responseCreateConfigurationSet $+-- newCreateConfigurationSetResponse+--+-- , responseCreateConfigurationSetEventDestination $+-- newCreateConfigurationSetEventDestinationResponse+--+-- , responseCreateContact $+-- newCreateContactResponse+--+-- , responseCreateContactList $+-- newCreateContactListResponse+--+-- , responseCreateCustomVerificationEmailTemplate $+-- newCreateCustomVerificationEmailTemplateResponse+--+-- , responseCreateDedicatedIpPool $+-- newCreateDedicatedIpPoolResponse+--+-- , responseCreateDeliverabilityTestReport $+-- newCreateDeliverabilityTestReportResponse+--+-- , responseCreateEmailIdentity $+-- newCreateEmailIdentityResponse+--+-- , responseCreateEmailIdentityPolicy $+-- newCreateEmailIdentityPolicyResponse+--+-- , responseCreateEmailTemplate $+-- newCreateEmailTemplateResponse+--+-- , responseCreateImportJob $+-- newCreateImportJobResponse+--+-- , responseDeleteConfigurationSet $+-- newDeleteConfigurationSetResponse+--+-- , responseDeleteConfigurationSetEventDestination $+-- newDeleteConfigurationSetEventDestinationResponse+--+-- , responseDeleteContact $+-- newDeleteContactResponse+--+-- , responseDeleteContactList $+-- newDeleteContactListResponse+--+-- , responseDeleteCustomVerificationEmailTemplate $+-- newDeleteCustomVerificationEmailTemplateResponse+--+-- , responseDeleteDedicatedIpPool $+-- newDeleteDedicatedIpPoolResponse+--+-- , responseDeleteEmailIdentity $+-- newDeleteEmailIdentityResponse+--+-- , responseDeleteEmailIdentityPolicy $+-- newDeleteEmailIdentityPolicyResponse+--+-- , responseDeleteEmailTemplate $+-- newDeleteEmailTemplateResponse+--+-- , responseDeleteSuppressedDestination $+-- newDeleteSuppressedDestinationResponse+--+-- , responseGetAccount $+-- newGetAccountResponse+--+-- , responseGetBlacklistReports $+-- newGetBlacklistReportsResponse+--+-- , responseGetConfigurationSet $+-- newGetConfigurationSetResponse+--+-- , responseGetConfigurationSetEventDestinations $+-- newGetConfigurationSetEventDestinationsResponse+--+-- , responseGetContact $+-- newGetContactResponse+--+-- , responseGetContactList $+-- newGetContactListResponse+--+-- , responseGetCustomVerificationEmailTemplate $+-- newGetCustomVerificationEmailTemplateResponse+--+-- , responseGetDedicatedIp $+-- newGetDedicatedIpResponse+--+-- , responseGetDedicatedIpPool $+-- newGetDedicatedIpPoolResponse+--+-- , responseGetDedicatedIps $+-- newGetDedicatedIpsResponse+--+-- , responseGetDeliverabilityDashboardOptions $+-- newGetDeliverabilityDashboardOptionsResponse+--+-- , responseGetDeliverabilityTestReport $+-- newGetDeliverabilityTestReportResponse+--+-- , responseGetDomainDeliverabilityCampaign $+-- newGetDomainDeliverabilityCampaignResponse+--+-- , responseGetDomainStatisticsReport $+-- newGetDomainStatisticsReportResponse+--+-- , responseGetEmailIdentity $+-- newGetEmailIdentityResponse+--+-- , responseGetEmailIdentityPolicies $+-- newGetEmailIdentityPoliciesResponse+--+-- , responseGetEmailTemplate $+-- newGetEmailTemplateResponse+--+-- , responseGetImportJob $+-- newGetImportJobResponse+--+-- , responseGetSuppressedDestination $+-- newGetSuppressedDestinationResponse+--+-- , responseListConfigurationSets $+-- newListConfigurationSetsResponse+--+-- , responseListContactLists $+-- newListContactListsResponse+--+-- , responseListContacts $+-- newListContactsResponse+--+-- , responseListCustomVerificationEmailTemplates $+-- newListCustomVerificationEmailTemplatesResponse+--+-- , responseListDedicatedIpPools $+-- newListDedicatedIpPoolsResponse+--+-- , responseListDeliverabilityTestReports $+-- newListDeliverabilityTestReportsResponse+--+-- , responseListDomainDeliverabilityCampaigns $+-- newListDomainDeliverabilityCampaignsResponse+--+-- , responseListEmailIdentities $+-- newListEmailIdentitiesResponse+--+-- , responseListEmailTemplates $+-- newListEmailTemplatesResponse+--+-- , responseListImportJobs $+-- newListImportJobsResponse+--+-- , responseListRecommendations $+-- newListRecommendationsResponse+--+-- , responseListSuppressedDestinations $+-- newListSuppressedDestinationsResponse+--+-- , responseListTagsForResource $+-- newListTagsForResourceResponse+--+-- , responsePutAccountDedicatedIpWarmupAttributes $+-- newPutAccountDedicatedIpWarmupAttributesResponse+--+-- , responsePutAccountDetails $+-- newPutAccountDetailsResponse+--+-- , responsePutAccountSendingAttributes $+-- newPutAccountSendingAttributesResponse+--+-- , responsePutAccountSuppressionAttributes $+-- newPutAccountSuppressionAttributesResponse+--+-- , responsePutAccountVdmAttributes $+-- newPutAccountVdmAttributesResponse+--+-- , responsePutConfigurationSetDeliveryOptions $+-- newPutConfigurationSetDeliveryOptionsResponse+--+-- , responsePutConfigurationSetReputationOptions $+-- newPutConfigurationSetReputationOptionsResponse+--+-- , responsePutConfigurationSetSendingOptions $+-- newPutConfigurationSetSendingOptionsResponse+--+-- , responsePutConfigurationSetSuppressionOptions $+-- newPutConfigurationSetSuppressionOptionsResponse+--+-- , responsePutConfigurationSetTrackingOptions $+-- newPutConfigurationSetTrackingOptionsResponse+--+-- , responsePutConfigurationSetVdmOptions $+-- newPutConfigurationSetVdmOptionsResponse+--+-- , responsePutDedicatedIpInPool $+-- newPutDedicatedIpInPoolResponse+--+-- , responsePutDedicatedIpWarmupAttributes $+-- newPutDedicatedIpWarmupAttributesResponse+--+-- , responsePutDeliverabilityDashboardOption $+-- newPutDeliverabilityDashboardOptionResponse+--+-- , responsePutEmailIdentityConfigurationSetAttributes $+-- newPutEmailIdentityConfigurationSetAttributesResponse+--+-- , responsePutEmailIdentityDkimAttributes $+-- newPutEmailIdentityDkimAttributesResponse+--+-- , responsePutEmailIdentityDkimSigningAttributes $+-- newPutEmailIdentityDkimSigningAttributesResponse+--+-- , responsePutEmailIdentityFeedbackAttributes $+-- newPutEmailIdentityFeedbackAttributesResponse+--+-- , responsePutEmailIdentityMailFromAttributes $+-- newPutEmailIdentityMailFromAttributesResponse+--+-- , responsePutSuppressedDestination $+-- newPutSuppressedDestinationResponse+--+-- , responseSendBulkEmail $+-- newSendBulkEmailResponse+--+-- , responseSendCustomVerificationEmail $+-- newSendCustomVerificationEmailResponse+--+-- , responseSendEmail $+-- newSendEmailResponse+--+-- , responseTagResource $+-- newTagResourceResponse+--+-- , responseTestRenderEmailTemplate $+-- newTestRenderEmailTemplateResponse+--+-- , responseUntagResource $+-- newUntagResourceResponse+--+-- , responseUpdateConfigurationSetEventDestination $+-- newUpdateConfigurationSetEventDestinationResponse+--+-- , responseUpdateContact $+-- newUpdateContactResponse+--+-- , responseUpdateContactList $+-- newUpdateContactListResponse+--+-- , responseUpdateCustomVerificationEmailTemplate $+-- newUpdateCustomVerificationEmailTemplateResponse+--+-- , responseUpdateEmailIdentityPolicy $+-- newUpdateEmailIdentityPolicyResponse+--+-- , responseUpdateEmailTemplate $+-- newUpdateEmailTemplateResponse+--+-- ]+-- ]++-- Requests++requestBatchGetMetricData :: BatchGetMetricData -> TestTree+requestBatchGetMetricData =+ req+ "BatchGetMetricData"+ "fixture/BatchGetMetricData.yaml"++requestCreateConfigurationSet :: CreateConfigurationSet -> TestTree+requestCreateConfigurationSet =+ req+ "CreateConfigurationSet"+ "fixture/CreateConfigurationSet.yaml"++requestCreateConfigurationSetEventDestination :: CreateConfigurationSetEventDestination -> TestTree+requestCreateConfigurationSetEventDestination =+ req+ "CreateConfigurationSetEventDestination"+ "fixture/CreateConfigurationSetEventDestination.yaml"++requestCreateContact :: CreateContact -> TestTree+requestCreateContact =+ req+ "CreateContact"+ "fixture/CreateContact.yaml"++requestCreateContactList :: CreateContactList -> TestTree+requestCreateContactList =+ req+ "CreateContactList"+ "fixture/CreateContactList.yaml"++requestCreateCustomVerificationEmailTemplate :: CreateCustomVerificationEmailTemplate -> TestTree+requestCreateCustomVerificationEmailTemplate =+ req+ "CreateCustomVerificationEmailTemplate"+ "fixture/CreateCustomVerificationEmailTemplate.yaml"++requestCreateDedicatedIpPool :: CreateDedicatedIpPool -> TestTree+requestCreateDedicatedIpPool =+ req+ "CreateDedicatedIpPool"+ "fixture/CreateDedicatedIpPool.yaml"++requestCreateDeliverabilityTestReport :: CreateDeliverabilityTestReport -> TestTree+requestCreateDeliverabilityTestReport =+ req+ "CreateDeliverabilityTestReport"+ "fixture/CreateDeliverabilityTestReport.yaml"++requestCreateEmailIdentity :: CreateEmailIdentity -> TestTree+requestCreateEmailIdentity =+ req+ "CreateEmailIdentity"+ "fixture/CreateEmailIdentity.yaml"++requestCreateEmailIdentityPolicy :: CreateEmailIdentityPolicy -> TestTree+requestCreateEmailIdentityPolicy =+ req+ "CreateEmailIdentityPolicy"+ "fixture/CreateEmailIdentityPolicy.yaml"++requestCreateEmailTemplate :: CreateEmailTemplate -> TestTree+requestCreateEmailTemplate =+ req+ "CreateEmailTemplate"+ "fixture/CreateEmailTemplate.yaml"++requestCreateImportJob :: CreateImportJob -> TestTree+requestCreateImportJob =+ req+ "CreateImportJob"+ "fixture/CreateImportJob.yaml"++requestDeleteConfigurationSet :: DeleteConfigurationSet -> TestTree+requestDeleteConfigurationSet =+ req+ "DeleteConfigurationSet"+ "fixture/DeleteConfigurationSet.yaml"++requestDeleteConfigurationSetEventDestination :: DeleteConfigurationSetEventDestination -> TestTree+requestDeleteConfigurationSetEventDestination =+ req+ "DeleteConfigurationSetEventDestination"+ "fixture/DeleteConfigurationSetEventDestination.yaml"++requestDeleteContact :: DeleteContact -> TestTree+requestDeleteContact =+ req+ "DeleteContact"+ "fixture/DeleteContact.yaml"++requestDeleteContactList :: DeleteContactList -> TestTree+requestDeleteContactList =+ req+ "DeleteContactList"+ "fixture/DeleteContactList.yaml"++requestDeleteCustomVerificationEmailTemplate :: DeleteCustomVerificationEmailTemplate -> TestTree+requestDeleteCustomVerificationEmailTemplate =+ req+ "DeleteCustomVerificationEmailTemplate"+ "fixture/DeleteCustomVerificationEmailTemplate.yaml"++requestDeleteDedicatedIpPool :: DeleteDedicatedIpPool -> TestTree+requestDeleteDedicatedIpPool =+ req+ "DeleteDedicatedIpPool"+ "fixture/DeleteDedicatedIpPool.yaml"++requestDeleteEmailIdentity :: DeleteEmailIdentity -> TestTree+requestDeleteEmailIdentity =+ req+ "DeleteEmailIdentity"+ "fixture/DeleteEmailIdentity.yaml"++requestDeleteEmailIdentityPolicy :: DeleteEmailIdentityPolicy -> TestTree+requestDeleteEmailIdentityPolicy =+ req+ "DeleteEmailIdentityPolicy"+ "fixture/DeleteEmailIdentityPolicy.yaml"++requestDeleteEmailTemplate :: DeleteEmailTemplate -> TestTree+requestDeleteEmailTemplate =+ req+ "DeleteEmailTemplate"+ "fixture/DeleteEmailTemplate.yaml"++requestDeleteSuppressedDestination :: DeleteSuppressedDestination -> TestTree+requestDeleteSuppressedDestination =+ req+ "DeleteSuppressedDestination"+ "fixture/DeleteSuppressedDestination.yaml"++requestGetAccount :: GetAccount -> TestTree+requestGetAccount =+ req+ "GetAccount"+ "fixture/GetAccount.yaml"++requestGetBlacklistReports :: GetBlacklistReports -> TestTree+requestGetBlacklistReports =+ req+ "GetBlacklistReports"+ "fixture/GetBlacklistReports.yaml"++requestGetConfigurationSet :: GetConfigurationSet -> TestTree+requestGetConfigurationSet =+ req+ "GetConfigurationSet"+ "fixture/GetConfigurationSet.yaml"++requestGetConfigurationSetEventDestinations :: GetConfigurationSetEventDestinations -> TestTree+requestGetConfigurationSetEventDestinations =+ req+ "GetConfigurationSetEventDestinations"+ "fixture/GetConfigurationSetEventDestinations.yaml"++requestGetContact :: GetContact -> TestTree+requestGetContact =+ req+ "GetContact"+ "fixture/GetContact.yaml"++requestGetContactList :: GetContactList -> TestTree+requestGetContactList =+ req+ "GetContactList"+ "fixture/GetContactList.yaml"++requestGetCustomVerificationEmailTemplate :: GetCustomVerificationEmailTemplate -> TestTree+requestGetCustomVerificationEmailTemplate =+ req+ "GetCustomVerificationEmailTemplate"+ "fixture/GetCustomVerificationEmailTemplate.yaml"++requestGetDedicatedIp :: GetDedicatedIp -> TestTree+requestGetDedicatedIp =+ req+ "GetDedicatedIp"+ "fixture/GetDedicatedIp.yaml"++requestGetDedicatedIpPool :: GetDedicatedIpPool -> TestTree+requestGetDedicatedIpPool =+ req+ "GetDedicatedIpPool"+ "fixture/GetDedicatedIpPool.yaml"++requestGetDedicatedIps :: GetDedicatedIps -> TestTree+requestGetDedicatedIps =+ req+ "GetDedicatedIps"+ "fixture/GetDedicatedIps.yaml"++requestGetDeliverabilityDashboardOptions :: GetDeliverabilityDashboardOptions -> TestTree+requestGetDeliverabilityDashboardOptions =+ req+ "GetDeliverabilityDashboardOptions"+ "fixture/GetDeliverabilityDashboardOptions.yaml"++requestGetDeliverabilityTestReport :: GetDeliverabilityTestReport -> TestTree+requestGetDeliverabilityTestReport =+ req+ "GetDeliverabilityTestReport"+ "fixture/GetDeliverabilityTestReport.yaml"++requestGetDomainDeliverabilityCampaign :: GetDomainDeliverabilityCampaign -> TestTree+requestGetDomainDeliverabilityCampaign =+ req+ "GetDomainDeliverabilityCampaign"+ "fixture/GetDomainDeliverabilityCampaign.yaml"++requestGetDomainStatisticsReport :: GetDomainStatisticsReport -> TestTree+requestGetDomainStatisticsReport =+ req+ "GetDomainStatisticsReport"+ "fixture/GetDomainStatisticsReport.yaml"++requestGetEmailIdentity :: GetEmailIdentity -> TestTree+requestGetEmailIdentity =+ req+ "GetEmailIdentity"+ "fixture/GetEmailIdentity.yaml"++requestGetEmailIdentityPolicies :: GetEmailIdentityPolicies -> TestTree+requestGetEmailIdentityPolicies =+ req+ "GetEmailIdentityPolicies"+ "fixture/GetEmailIdentityPolicies.yaml"++requestGetEmailTemplate :: GetEmailTemplate -> TestTree+requestGetEmailTemplate =+ req+ "GetEmailTemplate"+ "fixture/GetEmailTemplate.yaml"++requestGetImportJob :: GetImportJob -> TestTree+requestGetImportJob =+ req+ "GetImportJob"+ "fixture/GetImportJob.yaml"++requestGetSuppressedDestination :: GetSuppressedDestination -> TestTree+requestGetSuppressedDestination =+ req+ "GetSuppressedDestination"+ "fixture/GetSuppressedDestination.yaml"++requestListConfigurationSets :: ListConfigurationSets -> TestTree+requestListConfigurationSets =+ req+ "ListConfigurationSets"+ "fixture/ListConfigurationSets.yaml"++requestListContactLists :: ListContactLists -> TestTree+requestListContactLists =+ req+ "ListContactLists"+ "fixture/ListContactLists.yaml"++requestListContacts :: ListContacts -> TestTree+requestListContacts =+ req+ "ListContacts"+ "fixture/ListContacts.yaml"++requestListCustomVerificationEmailTemplates :: ListCustomVerificationEmailTemplates -> TestTree+requestListCustomVerificationEmailTemplates =+ req+ "ListCustomVerificationEmailTemplates"+ "fixture/ListCustomVerificationEmailTemplates.yaml"++requestListDedicatedIpPools :: ListDedicatedIpPools -> TestTree+requestListDedicatedIpPools =+ req+ "ListDedicatedIpPools"+ "fixture/ListDedicatedIpPools.yaml"++requestListDeliverabilityTestReports :: ListDeliverabilityTestReports -> TestTree+requestListDeliverabilityTestReports =+ req+ "ListDeliverabilityTestReports"+ "fixture/ListDeliverabilityTestReports.yaml"++requestListDomainDeliverabilityCampaigns :: ListDomainDeliverabilityCampaigns -> TestTree+requestListDomainDeliverabilityCampaigns =+ req+ "ListDomainDeliverabilityCampaigns"+ "fixture/ListDomainDeliverabilityCampaigns.yaml"++requestListEmailIdentities :: ListEmailIdentities -> TestTree+requestListEmailIdentities =+ req+ "ListEmailIdentities"+ "fixture/ListEmailIdentities.yaml"++requestListEmailTemplates :: ListEmailTemplates -> TestTree+requestListEmailTemplates =+ req+ "ListEmailTemplates"+ "fixture/ListEmailTemplates.yaml"++requestListImportJobs :: ListImportJobs -> TestTree+requestListImportJobs =+ req+ "ListImportJobs"+ "fixture/ListImportJobs.yaml"++requestListRecommendations :: ListRecommendations -> TestTree+requestListRecommendations =+ req+ "ListRecommendations"+ "fixture/ListRecommendations.yaml"++requestListSuppressedDestinations :: ListSuppressedDestinations -> TestTree+requestListSuppressedDestinations =+ req+ "ListSuppressedDestinations"+ "fixture/ListSuppressedDestinations.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+ req+ "ListTagsForResource"+ "fixture/ListTagsForResource.yaml"++requestPutAccountDedicatedIpWarmupAttributes :: PutAccountDedicatedIpWarmupAttributes -> TestTree+requestPutAccountDedicatedIpWarmupAttributes =+ req+ "PutAccountDedicatedIpWarmupAttributes"+ "fixture/PutAccountDedicatedIpWarmupAttributes.yaml"++requestPutAccountDetails :: PutAccountDetails -> TestTree+requestPutAccountDetails =+ req+ "PutAccountDetails"+ "fixture/PutAccountDetails.yaml"++requestPutAccountSendingAttributes :: PutAccountSendingAttributes -> TestTree+requestPutAccountSendingAttributes =+ req+ "PutAccountSendingAttributes"+ "fixture/PutAccountSendingAttributes.yaml"++requestPutAccountSuppressionAttributes :: PutAccountSuppressionAttributes -> TestTree+requestPutAccountSuppressionAttributes =+ req+ "PutAccountSuppressionAttributes"+ "fixture/PutAccountSuppressionAttributes.yaml"++requestPutAccountVdmAttributes :: PutAccountVdmAttributes -> TestTree+requestPutAccountVdmAttributes =+ req+ "PutAccountVdmAttributes"+ "fixture/PutAccountVdmAttributes.yaml"++requestPutConfigurationSetDeliveryOptions :: PutConfigurationSetDeliveryOptions -> TestTree+requestPutConfigurationSetDeliveryOptions =+ req+ "PutConfigurationSetDeliveryOptions"+ "fixture/PutConfigurationSetDeliveryOptions.yaml"++requestPutConfigurationSetReputationOptions :: PutConfigurationSetReputationOptions -> TestTree+requestPutConfigurationSetReputationOptions =+ req+ "PutConfigurationSetReputationOptions"+ "fixture/PutConfigurationSetReputationOptions.yaml"++requestPutConfigurationSetSendingOptions :: PutConfigurationSetSendingOptions -> TestTree+requestPutConfigurationSetSendingOptions =+ req+ "PutConfigurationSetSendingOptions"+ "fixture/PutConfigurationSetSendingOptions.yaml"++requestPutConfigurationSetSuppressionOptions :: PutConfigurationSetSuppressionOptions -> TestTree+requestPutConfigurationSetSuppressionOptions =+ req+ "PutConfigurationSetSuppressionOptions"+ "fixture/PutConfigurationSetSuppressionOptions.yaml"++requestPutConfigurationSetTrackingOptions :: PutConfigurationSetTrackingOptions -> TestTree+requestPutConfigurationSetTrackingOptions =+ req+ "PutConfigurationSetTrackingOptions"+ "fixture/PutConfigurationSetTrackingOptions.yaml"++requestPutConfigurationSetVdmOptions :: PutConfigurationSetVdmOptions -> TestTree+requestPutConfigurationSetVdmOptions =+ req+ "PutConfigurationSetVdmOptions"+ "fixture/PutConfigurationSetVdmOptions.yaml"++requestPutDedicatedIpInPool :: PutDedicatedIpInPool -> TestTree+requestPutDedicatedIpInPool =+ req+ "PutDedicatedIpInPool"+ "fixture/PutDedicatedIpInPool.yaml"++requestPutDedicatedIpWarmupAttributes :: PutDedicatedIpWarmupAttributes -> TestTree+requestPutDedicatedIpWarmupAttributes =+ req+ "PutDedicatedIpWarmupAttributes"+ "fixture/PutDedicatedIpWarmupAttributes.yaml"++requestPutDeliverabilityDashboardOption :: PutDeliverabilityDashboardOption -> TestTree+requestPutDeliverabilityDashboardOption =+ req+ "PutDeliverabilityDashboardOption"+ "fixture/PutDeliverabilityDashboardOption.yaml"++requestPutEmailIdentityConfigurationSetAttributes :: PutEmailIdentityConfigurationSetAttributes -> TestTree+requestPutEmailIdentityConfigurationSetAttributes =+ req+ "PutEmailIdentityConfigurationSetAttributes"+ "fixture/PutEmailIdentityConfigurationSetAttributes.yaml"++requestPutEmailIdentityDkimAttributes :: PutEmailIdentityDkimAttributes -> TestTree+requestPutEmailIdentityDkimAttributes =+ req+ "PutEmailIdentityDkimAttributes"+ "fixture/PutEmailIdentityDkimAttributes.yaml"++requestPutEmailIdentityDkimSigningAttributes :: PutEmailIdentityDkimSigningAttributes -> TestTree+requestPutEmailIdentityDkimSigningAttributes =+ req+ "PutEmailIdentityDkimSigningAttributes"+ "fixture/PutEmailIdentityDkimSigningAttributes.yaml"++requestPutEmailIdentityFeedbackAttributes :: PutEmailIdentityFeedbackAttributes -> TestTree+requestPutEmailIdentityFeedbackAttributes =+ req+ "PutEmailIdentityFeedbackAttributes"+ "fixture/PutEmailIdentityFeedbackAttributes.yaml"++requestPutEmailIdentityMailFromAttributes :: PutEmailIdentityMailFromAttributes -> TestTree+requestPutEmailIdentityMailFromAttributes =+ req+ "PutEmailIdentityMailFromAttributes"+ "fixture/PutEmailIdentityMailFromAttributes.yaml"++requestPutSuppressedDestination :: PutSuppressedDestination -> TestTree+requestPutSuppressedDestination =+ req+ "PutSuppressedDestination"+ "fixture/PutSuppressedDestination.yaml"++requestSendBulkEmail :: SendBulkEmail -> TestTree+requestSendBulkEmail =+ req+ "SendBulkEmail"+ "fixture/SendBulkEmail.yaml"++requestSendCustomVerificationEmail :: SendCustomVerificationEmail -> TestTree+requestSendCustomVerificationEmail =+ req+ "SendCustomVerificationEmail"+ "fixture/SendCustomVerificationEmail.yaml"++requestSendEmail :: SendEmail -> TestTree+requestSendEmail =+ req+ "SendEmail"+ "fixture/SendEmail.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+ req+ "TagResource"+ "fixture/TagResource.yaml"++requestTestRenderEmailTemplate :: TestRenderEmailTemplate -> TestTree+requestTestRenderEmailTemplate =+ req+ "TestRenderEmailTemplate"+ "fixture/TestRenderEmailTemplate.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+ req+ "UntagResource"+ "fixture/UntagResource.yaml"++requestUpdateConfigurationSetEventDestination :: UpdateConfigurationSetEventDestination -> TestTree+requestUpdateConfigurationSetEventDestination =+ req+ "UpdateConfigurationSetEventDestination"+ "fixture/UpdateConfigurationSetEventDestination.yaml"++requestUpdateContact :: UpdateContact -> TestTree+requestUpdateContact =+ req+ "UpdateContact"+ "fixture/UpdateContact.yaml"++requestUpdateContactList :: UpdateContactList -> TestTree+requestUpdateContactList =+ req+ "UpdateContactList"+ "fixture/UpdateContactList.yaml"++requestUpdateCustomVerificationEmailTemplate :: UpdateCustomVerificationEmailTemplate -> TestTree+requestUpdateCustomVerificationEmailTemplate =+ req+ "UpdateCustomVerificationEmailTemplate"+ "fixture/UpdateCustomVerificationEmailTemplate.yaml"++requestUpdateEmailIdentityPolicy :: UpdateEmailIdentityPolicy -> TestTree+requestUpdateEmailIdentityPolicy =+ req+ "UpdateEmailIdentityPolicy"+ "fixture/UpdateEmailIdentityPolicy.yaml"++requestUpdateEmailTemplate :: UpdateEmailTemplate -> TestTree+requestUpdateEmailTemplate =+ req+ "UpdateEmailTemplate"+ "fixture/UpdateEmailTemplate.yaml"++-- Responses++responseBatchGetMetricData :: BatchGetMetricDataResponse -> TestTree+responseBatchGetMetricData =+ res+ "BatchGetMetricDataResponse"+ "fixture/BatchGetMetricDataResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy BatchGetMetricData)++responseCreateConfigurationSet :: CreateConfigurationSetResponse -> TestTree+responseCreateConfigurationSet =+ res+ "CreateConfigurationSetResponse"+ "fixture/CreateConfigurationSetResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateConfigurationSet)++responseCreateConfigurationSetEventDestination :: CreateConfigurationSetEventDestinationResponse -> TestTree+responseCreateConfigurationSetEventDestination =+ res+ "CreateConfigurationSetEventDestinationResponse"+ "fixture/CreateConfigurationSetEventDestinationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateConfigurationSetEventDestination)++responseCreateContact :: CreateContactResponse -> TestTree+responseCreateContact =+ res+ "CreateContactResponse"+ "fixture/CreateContactResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateContact)++responseCreateContactList :: CreateContactListResponse -> TestTree+responseCreateContactList =+ res+ "CreateContactListResponse"+ "fixture/CreateContactListResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateContactList)++responseCreateCustomVerificationEmailTemplate :: CreateCustomVerificationEmailTemplateResponse -> TestTree+responseCreateCustomVerificationEmailTemplate =+ res+ "CreateCustomVerificationEmailTemplateResponse"+ "fixture/CreateCustomVerificationEmailTemplateResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateCustomVerificationEmailTemplate)++responseCreateDedicatedIpPool :: CreateDedicatedIpPoolResponse -> TestTree+responseCreateDedicatedIpPool =+ res+ "CreateDedicatedIpPoolResponse"+ "fixture/CreateDedicatedIpPoolResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateDedicatedIpPool)++responseCreateDeliverabilityTestReport :: CreateDeliverabilityTestReportResponse -> TestTree+responseCreateDeliverabilityTestReport =+ res+ "CreateDeliverabilityTestReportResponse"+ "fixture/CreateDeliverabilityTestReportResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateDeliverabilityTestReport)++responseCreateEmailIdentity :: CreateEmailIdentityResponse -> TestTree+responseCreateEmailIdentity =+ res+ "CreateEmailIdentityResponse"+ "fixture/CreateEmailIdentityResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateEmailIdentity)++responseCreateEmailIdentityPolicy :: CreateEmailIdentityPolicyResponse -> TestTree+responseCreateEmailIdentityPolicy =+ res+ "CreateEmailIdentityPolicyResponse"+ "fixture/CreateEmailIdentityPolicyResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateEmailIdentityPolicy)++responseCreateEmailTemplate :: CreateEmailTemplateResponse -> TestTree+responseCreateEmailTemplate =+ res+ "CreateEmailTemplateResponse"+ "fixture/CreateEmailTemplateResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateEmailTemplate)++responseCreateImportJob :: CreateImportJobResponse -> TestTree+responseCreateImportJob =+ res+ "CreateImportJobResponse"+ "fixture/CreateImportJobResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy CreateImportJob)++responseDeleteConfigurationSet :: DeleteConfigurationSetResponse -> TestTree+responseDeleteConfigurationSet =+ res+ "DeleteConfigurationSetResponse"+ "fixture/DeleteConfigurationSetResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteConfigurationSet)++responseDeleteConfigurationSetEventDestination :: DeleteConfigurationSetEventDestinationResponse -> TestTree+responseDeleteConfigurationSetEventDestination =+ res+ "DeleteConfigurationSetEventDestinationResponse"+ "fixture/DeleteConfigurationSetEventDestinationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteConfigurationSetEventDestination)++responseDeleteContact :: DeleteContactResponse -> TestTree+responseDeleteContact =+ res+ "DeleteContactResponse"+ "fixture/DeleteContactResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteContact)++responseDeleteContactList :: DeleteContactListResponse -> TestTree+responseDeleteContactList =+ res+ "DeleteContactListResponse"+ "fixture/DeleteContactListResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteContactList)++responseDeleteCustomVerificationEmailTemplate :: DeleteCustomVerificationEmailTemplateResponse -> TestTree+responseDeleteCustomVerificationEmailTemplate =+ res+ "DeleteCustomVerificationEmailTemplateResponse"+ "fixture/DeleteCustomVerificationEmailTemplateResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteCustomVerificationEmailTemplate)++responseDeleteDedicatedIpPool :: DeleteDedicatedIpPoolResponse -> TestTree+responseDeleteDedicatedIpPool =+ res+ "DeleteDedicatedIpPoolResponse"+ "fixture/DeleteDedicatedIpPoolResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteDedicatedIpPool)++responseDeleteEmailIdentity :: DeleteEmailIdentityResponse -> TestTree+responseDeleteEmailIdentity =+ res+ "DeleteEmailIdentityResponse"+ "fixture/DeleteEmailIdentityResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteEmailIdentity)++responseDeleteEmailIdentityPolicy :: DeleteEmailIdentityPolicyResponse -> TestTree+responseDeleteEmailIdentityPolicy =+ res+ "DeleteEmailIdentityPolicyResponse"+ "fixture/DeleteEmailIdentityPolicyResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteEmailIdentityPolicy)++responseDeleteEmailTemplate :: DeleteEmailTemplateResponse -> TestTree+responseDeleteEmailTemplate =+ res+ "DeleteEmailTemplateResponse"+ "fixture/DeleteEmailTemplateResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteEmailTemplate)++responseDeleteSuppressedDestination :: DeleteSuppressedDestinationResponse -> TestTree+responseDeleteSuppressedDestination =+ res+ "DeleteSuppressedDestinationResponse"+ "fixture/DeleteSuppressedDestinationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DeleteSuppressedDestination)++responseGetAccount :: GetAccountResponse -> TestTree+responseGetAccount =+ res+ "GetAccountResponse"+ "fixture/GetAccountResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetAccount)++responseGetBlacklistReports :: GetBlacklistReportsResponse -> TestTree+responseGetBlacklistReports =+ res+ "GetBlacklistReportsResponse"+ "fixture/GetBlacklistReportsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetBlacklistReports)++responseGetConfigurationSet :: GetConfigurationSetResponse -> TestTree+responseGetConfigurationSet =+ res+ "GetConfigurationSetResponse"+ "fixture/GetConfigurationSetResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetConfigurationSet)++responseGetConfigurationSetEventDestinations :: GetConfigurationSetEventDestinationsResponse -> TestTree+responseGetConfigurationSetEventDestinations =+ res+ "GetConfigurationSetEventDestinationsResponse"+ "fixture/GetConfigurationSetEventDestinationsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetConfigurationSetEventDestinations)++responseGetContact :: GetContactResponse -> TestTree+responseGetContact =+ res+ "GetContactResponse"+ "fixture/GetContactResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetContact)++responseGetContactList :: GetContactListResponse -> TestTree+responseGetContactList =+ res+ "GetContactListResponse"+ "fixture/GetContactListResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetContactList)++responseGetCustomVerificationEmailTemplate :: GetCustomVerificationEmailTemplateResponse -> TestTree+responseGetCustomVerificationEmailTemplate =+ res+ "GetCustomVerificationEmailTemplateResponse"+ "fixture/GetCustomVerificationEmailTemplateResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetCustomVerificationEmailTemplate)++responseGetDedicatedIp :: GetDedicatedIpResponse -> TestTree+responseGetDedicatedIp =+ res+ "GetDedicatedIpResponse"+ "fixture/GetDedicatedIpResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetDedicatedIp)++responseGetDedicatedIpPool :: GetDedicatedIpPoolResponse -> TestTree+responseGetDedicatedIpPool =+ res+ "GetDedicatedIpPoolResponse"+ "fixture/GetDedicatedIpPoolResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetDedicatedIpPool)++responseGetDedicatedIps :: GetDedicatedIpsResponse -> TestTree+responseGetDedicatedIps =+ res+ "GetDedicatedIpsResponse"+ "fixture/GetDedicatedIpsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetDedicatedIps)++responseGetDeliverabilityDashboardOptions :: GetDeliverabilityDashboardOptionsResponse -> TestTree+responseGetDeliverabilityDashboardOptions =+ res+ "GetDeliverabilityDashboardOptionsResponse"+ "fixture/GetDeliverabilityDashboardOptionsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetDeliverabilityDashboardOptions)++responseGetDeliverabilityTestReport :: GetDeliverabilityTestReportResponse -> TestTree+responseGetDeliverabilityTestReport =+ res+ "GetDeliverabilityTestReportResponse"+ "fixture/GetDeliverabilityTestReportResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetDeliverabilityTestReport)++responseGetDomainDeliverabilityCampaign :: GetDomainDeliverabilityCampaignResponse -> TestTree+responseGetDomainDeliverabilityCampaign =+ res+ "GetDomainDeliverabilityCampaignResponse"+ "fixture/GetDomainDeliverabilityCampaignResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetDomainDeliverabilityCampaign)++responseGetDomainStatisticsReport :: GetDomainStatisticsReportResponse -> TestTree+responseGetDomainStatisticsReport =+ res+ "GetDomainStatisticsReportResponse"+ "fixture/GetDomainStatisticsReportResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetDomainStatisticsReport)++responseGetEmailIdentity :: GetEmailIdentityResponse -> TestTree+responseGetEmailIdentity =+ res+ "GetEmailIdentityResponse"+ "fixture/GetEmailIdentityResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetEmailIdentity)++responseGetEmailIdentityPolicies :: GetEmailIdentityPoliciesResponse -> TestTree+responseGetEmailIdentityPolicies =+ res+ "GetEmailIdentityPoliciesResponse"+ "fixture/GetEmailIdentityPoliciesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetEmailIdentityPolicies)++responseGetEmailTemplate :: GetEmailTemplateResponse -> TestTree+responseGetEmailTemplate =+ res+ "GetEmailTemplateResponse"+ "fixture/GetEmailTemplateResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetEmailTemplate)++responseGetImportJob :: GetImportJobResponse -> TestTree+responseGetImportJob =+ res+ "GetImportJobResponse"+ "fixture/GetImportJobResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetImportJob)++responseGetSuppressedDestination :: GetSuppressedDestinationResponse -> TestTree+responseGetSuppressedDestination =+ res+ "GetSuppressedDestinationResponse"+ "fixture/GetSuppressedDestinationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetSuppressedDestination)++responseListConfigurationSets :: ListConfigurationSetsResponse -> TestTree+responseListConfigurationSets =+ res+ "ListConfigurationSetsResponse"+ "fixture/ListConfigurationSetsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListConfigurationSets)++responseListContactLists :: ListContactListsResponse -> TestTree+responseListContactLists =+ res+ "ListContactListsResponse"+ "fixture/ListContactListsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListContactLists)++responseListContacts :: ListContactsResponse -> TestTree+responseListContacts =+ res+ "ListContactsResponse"+ "fixture/ListContactsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListContacts)++responseListCustomVerificationEmailTemplates :: ListCustomVerificationEmailTemplatesResponse -> TestTree+responseListCustomVerificationEmailTemplates =+ res+ "ListCustomVerificationEmailTemplatesResponse"+ "fixture/ListCustomVerificationEmailTemplatesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListCustomVerificationEmailTemplates)++responseListDedicatedIpPools :: ListDedicatedIpPoolsResponse -> TestTree+responseListDedicatedIpPools =+ res+ "ListDedicatedIpPoolsResponse"+ "fixture/ListDedicatedIpPoolsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListDedicatedIpPools)++responseListDeliverabilityTestReports :: ListDeliverabilityTestReportsResponse -> TestTree+responseListDeliverabilityTestReports =+ res+ "ListDeliverabilityTestReportsResponse"+ "fixture/ListDeliverabilityTestReportsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListDeliverabilityTestReports)++responseListDomainDeliverabilityCampaigns :: ListDomainDeliverabilityCampaignsResponse -> TestTree+responseListDomainDeliverabilityCampaigns =+ res+ "ListDomainDeliverabilityCampaignsResponse"+ "fixture/ListDomainDeliverabilityCampaignsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListDomainDeliverabilityCampaigns)++responseListEmailIdentities :: ListEmailIdentitiesResponse -> TestTree+responseListEmailIdentities =+ res+ "ListEmailIdentitiesResponse"+ "fixture/ListEmailIdentitiesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListEmailIdentities)++responseListEmailTemplates :: ListEmailTemplatesResponse -> TestTree+responseListEmailTemplates =+ res+ "ListEmailTemplatesResponse"+ "fixture/ListEmailTemplatesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListEmailTemplates)++responseListImportJobs :: ListImportJobsResponse -> TestTree+responseListImportJobs =+ res+ "ListImportJobsResponse"+ "fixture/ListImportJobsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListImportJobs)++responseListRecommendations :: ListRecommendationsResponse -> TestTree+responseListRecommendations =+ res+ "ListRecommendationsResponse"+ "fixture/ListRecommendationsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListRecommendations)++responseListSuppressedDestinations :: ListSuppressedDestinationsResponse -> TestTree+responseListSuppressedDestinations =+ res+ "ListSuppressedDestinationsResponse"+ "fixture/ListSuppressedDestinationsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListSuppressedDestinations)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+ res+ "ListTagsForResourceResponse"+ "fixture/ListTagsForResourceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responsePutAccountDedicatedIpWarmupAttributes :: PutAccountDedicatedIpWarmupAttributesResponse -> TestTree+responsePutAccountDedicatedIpWarmupAttributes =+ res+ "PutAccountDedicatedIpWarmupAttributesResponse"+ "fixture/PutAccountDedicatedIpWarmupAttributesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutAccountDedicatedIpWarmupAttributes)++responsePutAccountDetails :: PutAccountDetailsResponse -> TestTree+responsePutAccountDetails =+ res+ "PutAccountDetailsResponse"+ "fixture/PutAccountDetailsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutAccountDetails)++responsePutAccountSendingAttributes :: PutAccountSendingAttributesResponse -> TestTree+responsePutAccountSendingAttributes =+ res+ "PutAccountSendingAttributesResponse"+ "fixture/PutAccountSendingAttributesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutAccountSendingAttributes)++responsePutAccountSuppressionAttributes :: PutAccountSuppressionAttributesResponse -> TestTree+responsePutAccountSuppressionAttributes =+ res+ "PutAccountSuppressionAttributesResponse"+ "fixture/PutAccountSuppressionAttributesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutAccountSuppressionAttributes)++responsePutAccountVdmAttributes :: PutAccountVdmAttributesResponse -> TestTree+responsePutAccountVdmAttributes =+ res+ "PutAccountVdmAttributesResponse"+ "fixture/PutAccountVdmAttributesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutAccountVdmAttributes)++responsePutConfigurationSetDeliveryOptions :: PutConfigurationSetDeliveryOptionsResponse -> TestTree+responsePutConfigurationSetDeliveryOptions =+ res+ "PutConfigurationSetDeliveryOptionsResponse"+ "fixture/PutConfigurationSetDeliveryOptionsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutConfigurationSetDeliveryOptions)++responsePutConfigurationSetReputationOptions :: PutConfigurationSetReputationOptionsResponse -> TestTree+responsePutConfigurationSetReputationOptions =+ res+ "PutConfigurationSetReputationOptionsResponse"+ "fixture/PutConfigurationSetReputationOptionsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutConfigurationSetReputationOptions)++responsePutConfigurationSetSendingOptions :: PutConfigurationSetSendingOptionsResponse -> TestTree+responsePutConfigurationSetSendingOptions =+ res+ "PutConfigurationSetSendingOptionsResponse"+ "fixture/PutConfigurationSetSendingOptionsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutConfigurationSetSendingOptions)++responsePutConfigurationSetSuppressionOptions :: PutConfigurationSetSuppressionOptionsResponse -> TestTree+responsePutConfigurationSetSuppressionOptions =+ res+ "PutConfigurationSetSuppressionOptionsResponse"+ "fixture/PutConfigurationSetSuppressionOptionsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutConfigurationSetSuppressionOptions)++responsePutConfigurationSetTrackingOptions :: PutConfigurationSetTrackingOptionsResponse -> TestTree+responsePutConfigurationSetTrackingOptions =+ res+ "PutConfigurationSetTrackingOptionsResponse"+ "fixture/PutConfigurationSetTrackingOptionsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutConfigurationSetTrackingOptions)++responsePutConfigurationSetVdmOptions :: PutConfigurationSetVdmOptionsResponse -> TestTree+responsePutConfigurationSetVdmOptions =+ res+ "PutConfigurationSetVdmOptionsResponse"+ "fixture/PutConfigurationSetVdmOptionsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutConfigurationSetVdmOptions)++responsePutDedicatedIpInPool :: PutDedicatedIpInPoolResponse -> TestTree+responsePutDedicatedIpInPool =+ res+ "PutDedicatedIpInPoolResponse"+ "fixture/PutDedicatedIpInPoolResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutDedicatedIpInPool)++responsePutDedicatedIpWarmupAttributes :: PutDedicatedIpWarmupAttributesResponse -> TestTree+responsePutDedicatedIpWarmupAttributes =+ res+ "PutDedicatedIpWarmupAttributesResponse"+ "fixture/PutDedicatedIpWarmupAttributesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutDedicatedIpWarmupAttributes)++responsePutDeliverabilityDashboardOption :: PutDeliverabilityDashboardOptionResponse -> TestTree+responsePutDeliverabilityDashboardOption =+ res+ "PutDeliverabilityDashboardOptionResponse"+ "fixture/PutDeliverabilityDashboardOptionResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutDeliverabilityDashboardOption)++responsePutEmailIdentityConfigurationSetAttributes :: PutEmailIdentityConfigurationSetAttributesResponse -> TestTree+responsePutEmailIdentityConfigurationSetAttributes =+ res+ "PutEmailIdentityConfigurationSetAttributesResponse"+ "fixture/PutEmailIdentityConfigurationSetAttributesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutEmailIdentityConfigurationSetAttributes)++responsePutEmailIdentityDkimAttributes :: PutEmailIdentityDkimAttributesResponse -> TestTree+responsePutEmailIdentityDkimAttributes =+ res+ "PutEmailIdentityDkimAttributesResponse"+ "fixture/PutEmailIdentityDkimAttributesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutEmailIdentityDkimAttributes)++responsePutEmailIdentityDkimSigningAttributes :: PutEmailIdentityDkimSigningAttributesResponse -> TestTree+responsePutEmailIdentityDkimSigningAttributes =+ res+ "PutEmailIdentityDkimSigningAttributesResponse"+ "fixture/PutEmailIdentityDkimSigningAttributesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutEmailIdentityDkimSigningAttributes)++responsePutEmailIdentityFeedbackAttributes :: PutEmailIdentityFeedbackAttributesResponse -> TestTree+responsePutEmailIdentityFeedbackAttributes =+ res+ "PutEmailIdentityFeedbackAttributesResponse"+ "fixture/PutEmailIdentityFeedbackAttributesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutEmailIdentityFeedbackAttributes)++responsePutEmailIdentityMailFromAttributes :: PutEmailIdentityMailFromAttributesResponse -> TestTree+responsePutEmailIdentityMailFromAttributes =+ res+ "PutEmailIdentityMailFromAttributesResponse"+ "fixture/PutEmailIdentityMailFromAttributesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutEmailIdentityMailFromAttributes)++responsePutSuppressedDestination :: PutSuppressedDestinationResponse -> TestTree+responsePutSuppressedDestination =+ res+ "PutSuppressedDestinationResponse"+ "fixture/PutSuppressedDestinationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy PutSuppressedDestination)++responseSendBulkEmail :: SendBulkEmailResponse -> TestTree+responseSendBulkEmail =+ res+ "SendBulkEmailResponse"+ "fixture/SendBulkEmailResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy SendBulkEmail)++responseSendCustomVerificationEmail :: SendCustomVerificationEmailResponse -> TestTree+responseSendCustomVerificationEmail =+ res+ "SendCustomVerificationEmailResponse"+ "fixture/SendCustomVerificationEmailResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy SendCustomVerificationEmail)++responseSendEmail :: SendEmailResponse -> TestTree+responseSendEmail =+ res+ "SendEmailResponse"+ "fixture/SendEmailResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy SendEmail)++responseTagResource :: TagResourceResponse -> TestTree+responseTagResource =+ res+ "TagResourceResponse"+ "fixture/TagResourceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy TagResource)++responseTestRenderEmailTemplate :: TestRenderEmailTemplateResponse -> TestTree+responseTestRenderEmailTemplate =+ res+ "TestRenderEmailTemplateResponse"+ "fixture/TestRenderEmailTemplateResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy TestRenderEmailTemplate)++responseUntagResource :: UntagResourceResponse -> TestTree+responseUntagResource =+ res+ "UntagResourceResponse"+ "fixture/UntagResourceResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UntagResource)++responseUpdateConfigurationSetEventDestination :: UpdateConfigurationSetEventDestinationResponse -> TestTree+responseUpdateConfigurationSetEventDestination =+ res+ "UpdateConfigurationSetEventDestinationResponse"+ "fixture/UpdateConfigurationSetEventDestinationResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateConfigurationSetEventDestination)++responseUpdateContact :: UpdateContactResponse -> TestTree+responseUpdateContact =+ res+ "UpdateContactResponse"+ "fixture/UpdateContactResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateContact)++responseUpdateContactList :: UpdateContactListResponse -> TestTree+responseUpdateContactList =+ res+ "UpdateContactListResponse"+ "fixture/UpdateContactListResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateContactList)++responseUpdateCustomVerificationEmailTemplate :: UpdateCustomVerificationEmailTemplateResponse -> TestTree+responseUpdateCustomVerificationEmailTemplate =+ res+ "UpdateCustomVerificationEmailTemplateResponse"+ "fixture/UpdateCustomVerificationEmailTemplateResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateCustomVerificationEmailTemplate)++responseUpdateEmailIdentityPolicy :: UpdateEmailIdentityPolicyResponse -> TestTree+responseUpdateEmailIdentityPolicy =+ res+ "UpdateEmailIdentityPolicyResponse"+ "fixture/UpdateEmailIdentityPolicyResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateEmailIdentityPolicy)++responseUpdateEmailTemplate :: UpdateEmailTemplateResponse -> TestTree+responseUpdateEmailTemplate =+ res+ "UpdateEmailTemplateResponse"+ "fixture/UpdateEmailTemplateResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy UpdateEmailTemplate)
+ test/Test/Amazonka/SESV2.hs view
@@ -0,0 +1,20 @@+-- |+-- Module : Test.Amazonka.SESV2+-- 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.SESV2+ ( tests,+ fixtures,+ )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/SESV2/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module : Test.Amazonka.SESV2.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.SESV2.Internal where