-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Amazon Pinpoint SDK.
--   
--   The types from this library are intended to be used with
--   <a>amazonka</a>, 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 such
--   as <a>lens</a> or <a>lens-family-core</a>.
--   
--   See <a>Network.AWS.Pinpoint</a> or <a>the AWS documentation</a> to get
--   started.
@package amazonka-pinpoint
@version 1.4.5


module Network.AWS.Pinpoint.Types

-- | API version <tt>2016-12-01</tt> of the Amazon Pinpoint SDK
--   configuration.
pinpoint :: Service

-- | Prism for ForbiddenException' errors.
_ForbiddenException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Prism for NotFoundException' errors.
_NotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Prism for TooManyRequestsException' errors.
_TooManyRequestsException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Prism for InternalServerErrorException' errors.
_InternalServerErrorException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Prism for MethodNotAllowedException' errors.
_MethodNotAllowedException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Prism for BadRequestException' errors.
_BadRequestException :: AsError a => Getting (First ServiceError) a ServiceError
data Action
DeepLink :: Action
OpenApp :: Action
URL :: Action
data AttributeType
Exclusive :: AttributeType
Inclusive :: AttributeType
data CampaignStatus
Completed :: CampaignStatus
Executing :: CampaignStatus
Paused :: CampaignStatus
PendingNextRun :: CampaignStatus
Scheduled :: CampaignStatus
data ChannelType
APNS :: ChannelType
GCM :: ChannelType
data DefinitionFormat
CSV :: DefinitionFormat
JSON :: DefinitionFormat
data DimensionType
DTExclusive :: DimensionType
DTInclusive :: DimensionType
data Duration
Day14 :: Duration
Day30 :: Duration
Day7 :: Duration
Hr24 :: Duration
data Frequency
Daily :: Frequency
Hourly :: Frequency
Monthly :: Frequency
Once :: Frequency
Weekly :: Frequency
data JobStatus
JSCompleted :: JobStatus
JSCompleting :: JobStatus
JSCreated :: JobStatus
JSFailed :: JobStatus
JSFailing :: JobStatus
JSInitializing :: JobStatus
JSProcessing :: JobStatus
data RecencyType
Active :: RecencyType
Inactive :: RecencyType
data SegmentType
Dimensional :: SegmentType
Import :: SegmentType

-- | <i>See:</i> <a>apnsChannelRequest</a> smart constructor.
data APNSChannelRequest

-- | Creates a value of <a>APNSChannelRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>acrPrivateKey</a> - The certificate private key.</li>
--   <li><a>acrCertificate</a> - The distribution certificate from
--   Apple.</li>
--   </ul>
apnsChannelRequest :: APNSChannelRequest

-- | The certificate private key.
acrPrivateKey :: Lens' APNSChannelRequest (Maybe Text)

-- | The distribution certificate from Apple.
acrCertificate :: Lens' APNSChannelRequest (Maybe Text)

-- | <i>See:</i> <a>apnsChannelResponse</a> smart constructor.
data APNSChannelResponse

-- | Creates a value of <a>APNSChannelResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>acPlatform</a> - The platform type. Will be APNS.</li>
--   <li><a>acLastModifiedDate</a> - Last date this was updated</li>
--   <li><a>acIsArchived</a> - Is this channel archived</li>
--   <li><a>acApplicationId</a> - Undocumented member.</li>
--   <li><a>acVersion</a> - Version of channel</li>
--   <li><a>acId</a> - Undocumented member.</li>
--   <li><a>acCreationDate</a> - When was this segment created</li>
--   <li><a>acLastModifiedBy</a> - Who last updated this entry</li>
--   </ul>
apnsChannelResponse :: APNSChannelResponse

-- | The platform type. Will be APNS.
acPlatform :: Lens' APNSChannelResponse (Maybe Text)

-- | Last date this was updated
acLastModifiedDate :: Lens' APNSChannelResponse (Maybe Text)

-- | Is this channel archived
acIsArchived :: Lens' APNSChannelResponse (Maybe Bool)

-- | Undocumented member.
acApplicationId :: Lens' APNSChannelResponse (Maybe Text)

-- | Version of channel
acVersion :: Lens' APNSChannelResponse (Maybe Int)

-- | Undocumented member.
acId :: Lens' APNSChannelResponse (Maybe Text)

-- | When was this segment created
acCreationDate :: Lens' APNSChannelResponse (Maybe Text)

-- | Who last updated this entry
acLastModifiedBy :: Lens' APNSChannelResponse (Maybe Text)

-- | <i>See:</i> <a>activitiesResponse</a> smart constructor.
data ActivitiesResponse

-- | Creates a value of <a>ActivitiesResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aItem</a> - List of campaign activities</li>
--   </ul>
activitiesResponse :: ActivitiesResponse

-- | List of campaign activities
aItem :: Lens' ActivitiesResponse [ActivityResponse]

-- | <i>See:</i> <a>activityResponse</a> smart constructor.
data ActivityResponse

-- | Creates a value of <a>ActivityResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aState</a> - The state of the activity. Valid values: PENDING,
--   INITIALIZING, RUNNING, PAUSED, CANCELLED, COMPLETED</li>
--   <li><a>aStart</a> - The actual start time of the activity in ISO 8601
--   format.</li>
--   <li><a>aCampaignId</a> - The ID of the campaign to which the activity
--   applies.</li>
--   <li><a>aResult</a> - Indicates whether the activity succeeded. Valid
--   values: SUCCESS, FAIL</li>
--   <li><a>aTreatmentId</a> - The ID of a variation of the campaign used
--   for A/B testing.</li>
--   <li><a>aSuccessfulEndpointCount</a> - The total number of endpoints to
--   which the campaign successfully delivered messages.</li>
--   <li><a>aEnd</a> - The actual time the activity was marked CANCELLED or
--   COMPLETED. Provided in ISO 8601 format.</li>
--   <li><a>aApplicationId</a> - The ID of the application to which the
--   campaign applies.</li>
--   <li><a>aTotalEndpointCount</a> - The total number of endpoints to
--   which the campaign attempts to deliver messages.</li>
--   <li><a>aId</a> - The unique activity ID.</li>
--   <li><a>aScheduledStart</a> - The scheduled start time for the activity
--   in ISO 8601 format.</li>
--   </ul>
activityResponse :: ActivityResponse

-- | The state of the activity. Valid values: PENDING, INITIALIZING,
--   RUNNING, PAUSED, CANCELLED, COMPLETED
aState :: Lens' ActivityResponse (Maybe Text)

-- | The actual start time of the activity in ISO 8601 format.
aStart :: Lens' ActivityResponse (Maybe Text)

-- | The ID of the campaign to which the activity applies.
aCampaignId :: Lens' ActivityResponse (Maybe Text)

-- | Indicates whether the activity succeeded. Valid values: SUCCESS, FAIL
aResult :: Lens' ActivityResponse (Maybe Text)

-- | The ID of a variation of the campaign used for A/B testing.
aTreatmentId :: Lens' ActivityResponse (Maybe Text)

-- | The total number of endpoints to which the campaign successfully
--   delivered messages.
aSuccessfulEndpointCount :: Lens' ActivityResponse (Maybe Int)

-- | The actual time the activity was marked CANCELLED or COMPLETED.
--   Provided in ISO 8601 format.
aEnd :: Lens' ActivityResponse (Maybe Text)

-- | The ID of the application to which the campaign applies.
aApplicationId :: Lens' ActivityResponse (Maybe Text)

-- | The total number of endpoints to which the campaign attempts to
--   deliver messages.
aTotalEndpointCount :: Lens' ActivityResponse (Maybe Int)

-- | The unique activity ID.
aId :: Lens' ActivityResponse (Maybe Text)

-- | The scheduled start time for the activity in ISO 8601 format.
aScheduledStart :: Lens' ActivityResponse (Maybe Text)

-- | <i>See:</i> <a>applicationSettingsResource</a> smart constructor.
data ApplicationSettingsResource

-- | Creates a value of <a>ApplicationSettingsResource</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>asrLastModifiedDate</a> - The date that the settings were last
--   updated in ISO 8601 format.</li>
--   <li><a>asrLimits</a> - The default campaign limits for the app. These
--   limits apply to each campaign for the app, unless the campaign
--   overrides the default with limits of its own.</li>
--   <li><a>asrQuietTime</a> - The default quiet time for the app. Each
--   campaign for this app sends no messages during this time unless the
--   campaign overrides the default with a quiet time of its own.</li>
--   <li><a>asrApplicationId</a> - The unique ID for the application.</li>
--   </ul>
applicationSettingsResource :: ApplicationSettingsResource

-- | The date that the settings were last updated in ISO 8601 format.
asrLastModifiedDate :: Lens' ApplicationSettingsResource (Maybe Text)

-- | The default campaign limits for the app. These limits apply to each
--   campaign for the app, unless the campaign overrides the default with
--   limits of its own.
asrLimits :: Lens' ApplicationSettingsResource (Maybe CampaignLimits)

-- | The default quiet time for the app. Each campaign for this app sends
--   no messages during this time unless the campaign overrides the default
--   with a quiet time of its own.
asrQuietTime :: Lens' ApplicationSettingsResource (Maybe QuietTime)

-- | The unique ID for the application.
asrApplicationId :: Lens' ApplicationSettingsResource (Maybe Text)

-- | <i>See:</i> <a>attributeDimension</a> smart constructor.
data AttributeDimension

-- | Creates a value of <a>AttributeDimension</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>adValues</a> - The criteria values for the segment dimension.
--   Endpoints with matching attribute values are included or excluded from
--   the segment, depending on the setting for Type.</li>
--   <li><a>adAttributeType</a> - The type of dimension: INCLUSIVE –
--   Endpoints that match the criteria are included in the segment.
--   EXCLUSIVE – Endpoints that match the criteria are excluded from the
--   segment.</li>
--   </ul>
attributeDimension :: AttributeDimension

-- | The criteria values for the segment dimension. Endpoints with matching
--   attribute values are included or excluded from the segment, depending
--   on the setting for Type.
adValues :: Lens' AttributeDimension [Text]

-- | The type of dimension: INCLUSIVE – Endpoints that match the criteria
--   are included in the segment. EXCLUSIVE – Endpoints that match the
--   criteria are excluded from the segment.
adAttributeType :: Lens' AttributeDimension (Maybe AttributeType)

-- | <i>See:</i> <a>campaignLimits</a> smart constructor.
data CampaignLimits

-- | Creates a value of <a>CampaignLimits</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clDaily</a> - The maximum number of messages that the campaign
--   can send daily.</li>
--   <li><a>clTotal</a> - The maximum total number of messages that the
--   campaign can send.</li>
--   </ul>
campaignLimits :: CampaignLimits

-- | The maximum number of messages that the campaign can send daily.
clDaily :: Lens' CampaignLimits (Maybe Int)

-- | The maximum total number of messages that the campaign can send.
clTotal :: Lens' CampaignLimits (Maybe Int)

-- | <i>See:</i> <a>campaignResponse</a> smart constructor.
data CampaignResponse

-- | Creates a value of <a>CampaignResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cState</a> - The campaign status. An A/B test campaign will
--   have a status of COMPLETED only when all treatments have a status of
--   COMPLETED.</li>
--   <li><a>cLastModifiedDate</a> - The date the campaign was last updated
--   in ISO 8601 format.</li>
--   <li><a>cSchedule</a> - The campaign schedule.</li>
--   <li><a>cTreatmentName</a> - The custom name of a variation of the
--   campaign used for A/B testing.</li>
--   <li><a>cLimits</a> - The campaign limits settings.</li>
--   <li><a>cIsPaused</a> - Indicates whether the campaign is paused. A
--   paused campaign does not send messages unless you resume it by setting
--   IsPaused to false.</li>
--   <li><a>cDefaultState</a> - The status of the campaign's default
--   treatment. Only present for A/B test campaigns.</li>
--   <li><a>cApplicationId</a> - The ID of the application to which the
--   campaign applies.</li>
--   <li><a>cName</a> - The custom name of the campaign.</li>
--   <li><a>cVersion</a> - The campaign version number.</li>
--   <li><a>cHoldoutPercent</a> - The allocated percentage of end users who
--   will not receive messages from this campaign.</li>
--   <li><a>cTreatmentDescription</a> - A custom description for the
--   treatment.</li>
--   <li><a>cId</a> - The unique campaign ID.</li>
--   <li><a>cCreationDate</a> - The date the campaign was created in ISO
--   8601 format.</li>
--   <li><a>cMessageConfiguration</a> - The message configuration
--   settings.</li>
--   <li><a>cDescription</a> - A description of the campaign.</li>
--   <li><a>cSegmentId</a> - The ID of the segment to which the campaign
--   sends messages.</li>
--   <li><a>cAdditionalTreatments</a> - Treatments that are defined in
--   addition to the default treatment.</li>
--   <li><a>cSegmentVersion</a> - The version of the segment to which the
--   campaign sends messages.</li>
--   </ul>
campaignResponse :: CampaignResponse

-- | The campaign status. An A/B test campaign will have a status of
--   COMPLETED only when all treatments have a status of COMPLETED.
cState :: Lens' CampaignResponse (Maybe CampaignState)

-- | The date the campaign was last updated in ISO 8601 format.
cLastModifiedDate :: Lens' CampaignResponse (Maybe Text)

-- | The campaign schedule.
cSchedule :: Lens' CampaignResponse (Maybe Schedule)

-- | The custom name of a variation of the campaign used for A/B testing.
cTreatmentName :: Lens' CampaignResponse (Maybe Text)

-- | The campaign limits settings.
cLimits :: Lens' CampaignResponse (Maybe CampaignLimits)

-- | Indicates whether the campaign is paused. A paused campaign does not
--   send messages unless you resume it by setting IsPaused to false.
cIsPaused :: Lens' CampaignResponse (Maybe Bool)

-- | The status of the campaign's default treatment. Only present for A/B
--   test campaigns.
cDefaultState :: Lens' CampaignResponse (Maybe CampaignState)

-- | The ID of the application to which the campaign applies.
cApplicationId :: Lens' CampaignResponse (Maybe Text)

-- | The custom name of the campaign.
cName :: Lens' CampaignResponse (Maybe Text)

-- | The campaign version number.
cVersion :: Lens' CampaignResponse (Maybe Int)

-- | The allocated percentage of end users who will not receive messages
--   from this campaign.
cHoldoutPercent :: Lens' CampaignResponse (Maybe Int)

-- | A custom description for the treatment.
cTreatmentDescription :: Lens' CampaignResponse (Maybe Text)

-- | The unique campaign ID.
cId :: Lens' CampaignResponse (Maybe Text)

-- | The date the campaign was created in ISO 8601 format.
cCreationDate :: Lens' CampaignResponse (Maybe Text)

-- | The message configuration settings.
cMessageConfiguration :: Lens' CampaignResponse (Maybe MessageConfiguration)

-- | A description of the campaign.
cDescription :: Lens' CampaignResponse (Maybe Text)

-- | The ID of the segment to which the campaign sends messages.
cSegmentId :: Lens' CampaignResponse (Maybe Text)

-- | Treatments that are defined in addition to the default treatment.
cAdditionalTreatments :: Lens' CampaignResponse [TreatmentResource]

-- | The version of the segment to which the campaign sends messages.
cSegmentVersion :: Lens' CampaignResponse (Maybe Int)

-- | <i>See:</i> <a>campaignState</a> smart constructor.
data CampaignState

-- | Creates a value of <a>CampaignState</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csCampaignStatus</a> - The status of the campaign, or the
--   status of a treatment that belongs to an A/B test campaign. Valid
--   values: SCHEDULED, EXECUTING, PENDING_NEXT_RUN, COMPLETED, PAUSED</li>
--   </ul>
campaignState :: CampaignState

-- | The status of the campaign, or the status of a treatment that belongs
--   to an A/B test campaign. Valid values: SCHEDULED, EXECUTING,
--   PENDING_NEXT_RUN, COMPLETED, PAUSED
csCampaignStatus :: Lens' CampaignState (Maybe CampaignStatus)

-- | <i>See:</i> <a>campaignsResponse</a> smart constructor.
data CampaignsResponse

-- | Creates a value of <a>CampaignsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cNextToken</a> - The string that you use in a subsequent
--   request to get the next page of results in a paginated response.</li>
--   <li><a>cItem</a> - A list of campaigns.</li>
--   </ul>
campaignsResponse :: CampaignsResponse

-- | The string that you use in a subsequent request to get the next page
--   of results in a paginated response.
cNextToken :: Lens' CampaignsResponse (Maybe Text)

-- | A list of campaigns.
cItem :: Lens' CampaignsResponse [CampaignResponse]

-- | <i>See:</i> <a>endpointBatchItem</a> smart constructor.
data EndpointBatchItem

-- | Creates a value of <a>EndpointBatchItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ebiRequestId</a> - The unique ID for the most recent request to
--   update the endpoint.</li>
--   <li><a>ebiMetrics</a> - Custom metrics that your app reports to Amazon
--   Pinpoint.</li>
--   <li><a>ebiLocation</a> - The endpoint location attributes.</li>
--   <li><a>ebiDemographic</a> - The endpoint demographic attributes.</li>
--   <li><a>ebiAddress</a> - The address or token of the endpoint.</li>
--   <li><a>ebiEffectiveDate</a> - The last time the endpoint was updated.
--   Provided in ISO 8601 format.</li>
--   <li><a>ebiUser</a> - Custom user-specific attributes that your app
--   reports to Amazon Pinpoint.</li>
--   <li><a>ebiAttributes</a> - Custom attributes that your app reports to
--   Amazon Pinpoint. You can use these attributes as selection criteria
--   when you create a segment.</li>
--   <li><a>ebiEndpointStatus</a> - The endpoint status. Can be either
--   ACTIVE or INACTIVE. Will be set to INACTIVE if a delivery fails. Will
--   be set to ACTIVE if the address is updated.</li>
--   <li><a>ebiOptOut</a> - Indicates whether a user has opted out of
--   receiving messages with one of the following values: ALL – User
--   receives all messages. NONE – User receives no messages.</li>
--   <li><a>ebiId</a> - Undocumented member.</li>
--   <li><a>ebiChannelType</a> - The channel type. Valid values: APNS,
--   GCM</li>
--   </ul>
endpointBatchItem :: EndpointBatchItem

-- | The unique ID for the most recent request to update the endpoint.
ebiRequestId :: Lens' EndpointBatchItem (Maybe Text)

-- | Custom metrics that your app reports to Amazon Pinpoint.
ebiMetrics :: Lens' EndpointBatchItem (HashMap Text Double)

-- | The endpoint location attributes.
ebiLocation :: Lens' EndpointBatchItem (Maybe EndpointLocation)

-- | The endpoint demographic attributes.
ebiDemographic :: Lens' EndpointBatchItem (Maybe EndpointDemographic)

-- | The address or token of the endpoint.
ebiAddress :: Lens' EndpointBatchItem (Maybe Text)

-- | The last time the endpoint was updated. Provided in ISO 8601 format.
ebiEffectiveDate :: Lens' EndpointBatchItem (Maybe Text)

-- | Custom user-specific attributes that your app reports to Amazon
--   Pinpoint.
ebiUser :: Lens' EndpointBatchItem (Maybe EndpointUser)

-- | Custom attributes that your app reports to Amazon Pinpoint. You can
--   use these attributes as selection criteria when you create a segment.
ebiAttributes :: Lens' EndpointBatchItem (HashMap Text [Text])

-- | The endpoint status. Can be either ACTIVE or INACTIVE. Will be set to
--   INACTIVE if a delivery fails. Will be set to ACTIVE if the address is
--   updated.
ebiEndpointStatus :: Lens' EndpointBatchItem (Maybe Text)

-- | Indicates whether a user has opted out of receiving messages with one
--   of the following values: ALL – User receives all messages. NONE – User
--   receives no messages.
ebiOptOut :: Lens' EndpointBatchItem (Maybe Text)

-- | Undocumented member.
ebiId :: Lens' EndpointBatchItem (Maybe Text)

-- | The channel type. Valid values: APNS, GCM
ebiChannelType :: Lens' EndpointBatchItem (Maybe ChannelType)

-- | <i>See:</i> <a>endpointBatchRequest</a> smart constructor.
data EndpointBatchRequest

-- | Creates a value of <a>EndpointBatchRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ebrItem</a> - List of items to update. Maximum 100 items</li>
--   </ul>
endpointBatchRequest :: EndpointBatchRequest

-- | List of items to update. Maximum 100 items
ebrItem :: Lens' EndpointBatchRequest [EndpointBatchItem]

-- | <i>See:</i> <a>endpointDemographic</a> smart constructor.
data EndpointDemographic

-- | Creates a value of <a>EndpointDemographic</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>edPlatform</a> - The endpoint platform, such as ios or
--   android.</li>
--   <li><a>edPlatformVersion</a> - The endpoint platform version.</li>
--   <li><a>edLocale</a> - The endpoint locale in the following format: The
--   ISO 639-1 alpha-2 code, followed by an underscore, followed by an ISO
--   3166-1 alpha-2 value.</li>
--   <li><a>edAppVersion</a> - The version of the application associated
--   with the endpoint.</li>
--   <li><a>edModel</a> - The endpoint model, such as iPhone.</li>
--   <li><a>edMake</a> - The endpoint make, such as such as Apple or
--   Samsung.</li>
--   <li><a>edModelVersion</a> - The endpoint model version.</li>
--   <li><a>edTimezone</a> - The timezone of the endpoint. Specified as a
--   tz database value, such as Americas/Los_Angeles.</li>
--   </ul>
endpointDemographic :: EndpointDemographic

-- | The endpoint platform, such as ios or android.
edPlatform :: Lens' EndpointDemographic (Maybe Text)

-- | The endpoint platform version.
edPlatformVersion :: Lens' EndpointDemographic (Maybe Text)

-- | The endpoint locale in the following format: The ISO 639-1 alpha-2
--   code, followed by an underscore, followed by an ISO 3166-1 alpha-2
--   value.
edLocale :: Lens' EndpointDemographic (Maybe Text)

-- | The version of the application associated with the endpoint.
edAppVersion :: Lens' EndpointDemographic (Maybe Text)

-- | The endpoint model, such as iPhone.
edModel :: Lens' EndpointDemographic (Maybe Text)

-- | The endpoint make, such as such as Apple or Samsung.
edMake :: Lens' EndpointDemographic (Maybe Text)

-- | The endpoint model version.
edModelVersion :: Lens' EndpointDemographic (Maybe Text)

-- | The timezone of the endpoint. Specified as a tz database value, such
--   as Americas/Los_Angeles.
edTimezone :: Lens' EndpointDemographic (Maybe Text)

-- | <i>See:</i> <a>endpointLocation</a> smart constructor.
data EndpointLocation

-- | Creates a value of <a>EndpointLocation</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>elPostalCode</a> - The postal code or zip code of the
--   endpoint.</li>
--   <li><a>elLatitude</a> - The latitude of the endpoint location. Rounded
--   to one decimal (Roughly corresponding to a mile).</li>
--   <li><a>elCountry</a> - Country according to ISO 3166-1 Alpha-2 codes.
--   For example, US.</li>
--   <li><a>elCity</a> - The city where the endpoint is located.</li>
--   <li><a>elRegion</a> - The region of the endpoint location. For
--   example, corresponds to a state in US.</li>
--   <li><a>elLongitude</a> - The longitude of the endpoint location.
--   Rounded to one decimal (Roughly corresponding to a mile).</li>
--   </ul>
endpointLocation :: EndpointLocation

-- | The postal code or zip code of the endpoint.
elPostalCode :: Lens' EndpointLocation (Maybe Text)

-- | The latitude of the endpoint location. Rounded to one decimal (Roughly
--   corresponding to a mile).
elLatitude :: Lens' EndpointLocation (Maybe Double)

-- | Country according to ISO 3166-1 Alpha-2 codes. For example, US.
elCountry :: Lens' EndpointLocation (Maybe Text)

-- | The city where the endpoint is located.
elCity :: Lens' EndpointLocation (Maybe Text)

-- | The region of the endpoint location. For example, corresponds to a
--   state in US.
elRegion :: Lens' EndpointLocation (Maybe Text)

-- | The longitude of the endpoint location. Rounded to one decimal
--   (Roughly corresponding to a mile).
elLongitude :: Lens' EndpointLocation (Maybe Double)

-- | <i>See:</i> <a>endpointRequest</a> smart constructor.
data EndpointRequest

-- | Creates a value of <a>EndpointRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>erRequestId</a> - The unique ID for the most recent request to
--   update the endpoint.</li>
--   <li><a>erMetrics</a> - Custom metrics that your app reports to Amazon
--   Pinpoint.</li>
--   <li><a>erLocation</a> - The endpoint location attributes.</li>
--   <li><a>erDemographic</a> - The endpoint demographic attributes.</li>
--   <li><a>erAddress</a> - The address or token of the endpoint.</li>
--   <li><a>erEffectiveDate</a> - The last time the endpoint was updated.
--   Provided in ISO 8601 format.</li>
--   <li><a>erUser</a> - Custom user-specific attributes that your app
--   reports to Amazon Pinpoint.</li>
--   <li><a>erAttributes</a> - Custom attributes that your app reports to
--   Amazon Pinpoint. You can use these attributes as selection criteria
--   when you create a segment.</li>
--   <li><a>erEndpointStatus</a> - The endpoint status. Can be either
--   ACTIVE or INACTIVE. Will be set to INACTIVE if a delivery fails. Will
--   be set to ACTIVE if the address is updated.</li>
--   <li><a>erOptOut</a> - Indicates whether a user has opted out of
--   receiving messages with one of the following values: ALL – User
--   receives all messages. NONE – User receives no messages.</li>
--   <li><a>erChannelType</a> - The channel type. Valid values: APNS,
--   GCM</li>
--   </ul>
endpointRequest :: EndpointRequest

-- | The unique ID for the most recent request to update the endpoint.
erRequestId :: Lens' EndpointRequest (Maybe Text)

-- | Custom metrics that your app reports to Amazon Pinpoint.
erMetrics :: Lens' EndpointRequest (HashMap Text Double)

-- | The endpoint location attributes.
erLocation :: Lens' EndpointRequest (Maybe EndpointLocation)

-- | The endpoint demographic attributes.
erDemographic :: Lens' EndpointRequest (Maybe EndpointDemographic)

-- | The address or token of the endpoint.
erAddress :: Lens' EndpointRequest (Maybe Text)

-- | The last time the endpoint was updated. Provided in ISO 8601 format.
erEffectiveDate :: Lens' EndpointRequest (Maybe Text)

-- | Custom user-specific attributes that your app reports to Amazon
--   Pinpoint.
erUser :: Lens' EndpointRequest (Maybe EndpointUser)

-- | Custom attributes that your app reports to Amazon Pinpoint. You can
--   use these attributes as selection criteria when you create a segment.
erAttributes :: Lens' EndpointRequest (HashMap Text [Text])

-- | The endpoint status. Can be either ACTIVE or INACTIVE. Will be set to
--   INACTIVE if a delivery fails. Will be set to ACTIVE if the address is
--   updated.
erEndpointStatus :: Lens' EndpointRequest (Maybe Text)

-- | Indicates whether a user has opted out of receiving messages with one
--   of the following values: ALL – User receives all messages. NONE – User
--   receives no messages.
erOptOut :: Lens' EndpointRequest (Maybe Text)

-- | The channel type. Valid values: APNS, GCM
erChannelType :: Lens' EndpointRequest (Maybe ChannelType)

-- | <i>See:</i> <a>endpointResponse</a> smart constructor.
data EndpointResponse

-- | Creates a value of <a>EndpointResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eRequestId</a> - The unique ID for the most recent request to
--   update the endpoint.</li>
--   <li><a>eMetrics</a> - Custom metrics that your app reports to Amazon
--   Pinpoint.</li>
--   <li><a>eLocation</a> - The endpoint location attributes.</li>
--   <li><a>eDemographic</a> - The endpoint demographic attributes.</li>
--   <li><a>eCohortId</a> - A number from 0 - 99 that represents the cohort
--   the endpoint is assigned to. Endpoints are grouped into cohorts
--   randomly, and each cohort contains approximately 1 percent of the
--   endpoints for an app. Amazon Pinpoint assigns cohorts to the holdout
--   or treatment allocations for a campaign.</li>
--   <li><a>eAddress</a> - The address or token of the endpoint.</li>
--   <li><a>eEffectiveDate</a> - The last time the endpoint was updated.
--   Provided in ISO 8601 format.</li>
--   <li><a>eUser</a> - Custom user-specific attributes that your app
--   reports to Amazon Pinpoint.</li>
--   <li><a>eApplicationId</a> - The ID of the application associated with
--   the endpoint.</li>
--   <li><a>eAttributes</a> - Custom attributes that your app reports to
--   Amazon Pinpoint. You can use these attributes as selection criteria
--   when you create a segment.</li>
--   <li><a>eEndpointStatus</a> - The endpoint status. Can be either ACTIVE
--   or INACTIVE. Will be set to INACTIVE if a delivery fails. Will be set
--   to ACTIVE if the address is updated.</li>
--   <li><a>eOptOut</a> - Indicates whether a user has opted out of
--   receiving messages with one of the following values: ALL – User
--   receives all messages. NONE – User receives no messages.</li>
--   <li><a>eId</a> - The unique ID that you assigned to the endpoint. The
--   ID should be a globally unique identifier (GUID) to ensure that it is
--   unique compared to all other endpoints for the application.</li>
--   <li><a>eCreationDate</a> - The last time the endpoint was created.
--   Provided in ISO 8601 format.</li>
--   <li><a>eChannelType</a> - The channel type. Valid values: APNS,
--   GCM</li>
--   <li><a>eShardId</a> - The ShardId of endpoint</li>
--   </ul>
endpointResponse :: EndpointResponse

-- | The unique ID for the most recent request to update the endpoint.
eRequestId :: Lens' EndpointResponse (Maybe Text)

-- | Custom metrics that your app reports to Amazon Pinpoint.
eMetrics :: Lens' EndpointResponse (HashMap Text Double)

-- | The endpoint location attributes.
eLocation :: Lens' EndpointResponse (Maybe EndpointLocation)

-- | The endpoint demographic attributes.
eDemographic :: Lens' EndpointResponse (Maybe EndpointDemographic)

-- | A number from 0 - 99 that represents the cohort the endpoint is
--   assigned to. Endpoints are grouped into cohorts randomly, and each
--   cohort contains approximately 1 percent of the endpoints for an app.
--   Amazon Pinpoint assigns cohorts to the holdout or treatment
--   allocations for a campaign.
eCohortId :: Lens' EndpointResponse (Maybe Text)

-- | The address or token of the endpoint.
eAddress :: Lens' EndpointResponse (Maybe Text)

-- | The last time the endpoint was updated. Provided in ISO 8601 format.
eEffectiveDate :: Lens' EndpointResponse (Maybe Text)

-- | Custom user-specific attributes that your app reports to Amazon
--   Pinpoint.
eUser :: Lens' EndpointResponse (Maybe EndpointUser)

-- | The ID of the application associated with the endpoint.
eApplicationId :: Lens' EndpointResponse (Maybe Text)

-- | Custom attributes that your app reports to Amazon Pinpoint. You can
--   use these attributes as selection criteria when you create a segment.
eAttributes :: Lens' EndpointResponse (HashMap Text [Text])

-- | The endpoint status. Can be either ACTIVE or INACTIVE. Will be set to
--   INACTIVE if a delivery fails. Will be set to ACTIVE if the address is
--   updated.
eEndpointStatus :: Lens' EndpointResponse (Maybe Text)

-- | Indicates whether a user has opted out of receiving messages with one
--   of the following values: ALL – User receives all messages. NONE – User
--   receives no messages.
eOptOut :: Lens' EndpointResponse (Maybe Text)

-- | The unique ID that you assigned to the endpoint. The ID should be a
--   globally unique identifier (GUID) to ensure that it is unique compared
--   to all other endpoints for the application.
eId :: Lens' EndpointResponse (Maybe Text)

-- | The last time the endpoint was created. Provided in ISO 8601 format.
eCreationDate :: Lens' EndpointResponse (Maybe Text)

-- | The channel type. Valid values: APNS, GCM
eChannelType :: Lens' EndpointResponse (Maybe ChannelType)

-- | The ShardId of endpoint
eShardId :: Lens' EndpointResponse (Maybe Text)

-- | <i>See:</i> <a>endpointUser</a> smart constructor.
data EndpointUser

-- | Creates a value of <a>EndpointUser</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>euUserAttributes</a> - Custom attributesd specific to the
--   user.</li>
--   <li><a>euUserId</a> - The unique ID of the user.</li>
--   </ul>
endpointUser :: EndpointUser

-- | Custom attributesd specific to the user.
euUserAttributes :: Lens' EndpointUser (HashMap Text [Text])

-- | The unique ID of the user.
euUserId :: Lens' EndpointUser (Maybe Text)

-- | <i>See:</i> <a>gcmChannelRequest</a> smart constructor.
data GCMChannelRequest

-- | Creates a value of <a>GCMChannelRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gcrAPIKey</a> - Platform credential API key from Google.</li>
--   </ul>
gcmChannelRequest :: GCMChannelRequest

-- | Platform credential API key from Google.
gcrAPIKey :: Lens' GCMChannelRequest (Maybe Text)

-- | <i>See:</i> <a>gcmChannelResponse</a> smart constructor.
data GCMChannelResponse

-- | Creates a value of <a>GCMChannelResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gcPlatform</a> - The platform type. Will be GCM</li>
--   <li><a>gcLastModifiedDate</a> - Last date this was updated</li>
--   <li><a>gcCredential</a> - The GCM API key from Google.</li>
--   <li><a>gcIsArchived</a> - Is this channel archived</li>
--   <li><a>gcApplicationId</a> - Undocumented member.</li>
--   <li><a>gcVersion</a> - Version of channel</li>
--   <li><a>gcId</a> - Undocumented member.</li>
--   <li><a>gcCreationDate</a> - When was this segment created</li>
--   <li><a>gcLastModifiedBy</a> - Who last updated this entry</li>
--   </ul>
gcmChannelResponse :: GCMChannelResponse

-- | The platform type. Will be GCM
gcPlatform :: Lens' GCMChannelResponse (Maybe Text)

-- | Last date this was updated
gcLastModifiedDate :: Lens' GCMChannelResponse (Maybe Text)

-- | The GCM API key from Google.
gcCredential :: Lens' GCMChannelResponse (Maybe Text)

-- | Is this channel archived
gcIsArchived :: Lens' GCMChannelResponse (Maybe Bool)

-- | Undocumented member.
gcApplicationId :: Lens' GCMChannelResponse (Maybe Text)

-- | Version of channel
gcVersion :: Lens' GCMChannelResponse (Maybe Int)

-- | Undocumented member.
gcId :: Lens' GCMChannelResponse (Maybe Text)

-- | When was this segment created
gcCreationDate :: Lens' GCMChannelResponse (Maybe Text)

-- | Who last updated this entry
gcLastModifiedBy :: Lens' GCMChannelResponse (Maybe Text)

-- | <i>See:</i> <a>importJobRequest</a> smart constructor.
data ImportJobRequest

-- | Creates a value of <a>ImportJobRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iSegmentName</a> - A custom name for the segment created by the
--   import job. Use if DefineSegment is true.</li>
--   <li><a>iFormat</a> - The format of the files that contain the endpoint
--   definitions. Valid values: CSV, JSON</li>
--   <li><a>iDefineSegment</a> - Sets whether the endpoints create a
--   segment when they are imported.</li>
--   <li><a>iRegisterEndpoints</a> - Sets whether the endpoints are
--   registered with Amazon Pinpoint when they are imported.</li>
--   <li><a>iExternalId</a> - A unique, custom ID assigned to the IAM role
--   that restricts who can assume the role.</li>
--   <li><a>iS3URL</a> - A URL that points to the location within an Amazon
--   S3 bucket that contains the endpoints to import. The location can be a
--   folder or a single file. The URL should follow this format:
--   s3:/<i>bucket-name</i>folder-name/file-name Amazon Pinpoint will
--   import endpoints from this location and any subfolders it
--   contains.</li>
--   <li><a>iSegmentId</a> - The ID of the segment to update if the import
--   job is meant to update an existing segment.</li>
--   <li><a>iRoleARN</a> - The Amazon Resource Name (ARN) of an IAM role
--   that grants Amazon Pinpoint access to the Amazon S3 location that
--   contains the endpoints to import.</li>
--   </ul>
importJobRequest :: ImportJobRequest

-- | A custom name for the segment created by the import job. Use if
--   DefineSegment is true.
iSegmentName :: Lens' ImportJobRequest (Maybe Text)

-- | The format of the files that contain the endpoint definitions. Valid
--   values: CSV, JSON
iFormat :: Lens' ImportJobRequest (Maybe DefinitionFormat)

-- | Sets whether the endpoints create a segment when they are imported.
iDefineSegment :: Lens' ImportJobRequest (Maybe Bool)

-- | Sets whether the endpoints are registered with Amazon Pinpoint when
--   they are imported.
iRegisterEndpoints :: Lens' ImportJobRequest (Maybe Bool)

-- | A unique, custom ID assigned to the IAM role that restricts who can
--   assume the role.
iExternalId :: Lens' ImportJobRequest (Maybe Text)

-- | A URL that points to the location within an Amazon S3 bucket that
--   contains the endpoints to import. The location can be a folder or a
--   single file. The URL should follow this format:
--   s3:/<i>bucket-name</i>folder-name/file-name Amazon Pinpoint will
--   import endpoints from this location and any subfolders it contains.
iS3URL :: Lens' ImportJobRequest (Maybe Text)

-- | The ID of the segment to update if the import job is meant to update
--   an existing segment.
iSegmentId :: Lens' ImportJobRequest (Maybe Text)

-- | The Amazon Resource Name (ARN) of an IAM role that grants Amazon
--   Pinpoint access to the Amazon S3 location that contains the endpoints
--   to import.
iRoleARN :: Lens' ImportJobRequest (Maybe Text)

-- | <i>See:</i> <a>importJobResource</a> smart constructor.
data ImportJobResource

-- | Creates a value of <a>ImportJobResource</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ijrSegmentName</a> - A custom name for the segment created by
--   the import job. Use if DefineSegment is true.</li>
--   <li><a>ijrFormat</a> - The format of the files that contain the
--   endpoint definitions. Valid values: CSV, JSON</li>
--   <li><a>ijrDefineSegment</a> - Sets whether the endpoints create a
--   segment when they are imported.</li>
--   <li><a>ijrRegisterEndpoints</a> - Sets whether the endpoints are
--   registered with Amazon Pinpoint when they are imported.</li>
--   <li><a>ijrExternalId</a> - A unique, custom ID assigned to the IAM
--   role that restricts who can assume the role.</li>
--   <li><a>ijrS3URL</a> - A URL that points to the location within an
--   Amazon S3 bucket that contains the endpoints to import. The location
--   can be a folder or a single file. The URL should follow this format:
--   s3:/<i>bucket-name</i>folder-name/file-name Amazon Pinpoint will
--   import endpoints from this location and any subfolders it
--   contains.</li>
--   <li><a>ijrSegmentId</a> - The ID of the segment to update if the
--   import job is meant to update an existing segment.</li>
--   <li><a>ijrRoleARN</a> - The Amazon Resource Name (ARN) of an IAM role
--   that grants Amazon Pinpoint access to the Amazon S3 location that
--   contains the endpoints to import.</li>
--   </ul>
importJobResource :: ImportJobResource

-- | A custom name for the segment created by the import job. Use if
--   DefineSegment is true.
ijrSegmentName :: Lens' ImportJobResource (Maybe Text)

-- | The format of the files that contain the endpoint definitions. Valid
--   values: CSV, JSON
ijrFormat :: Lens' ImportJobResource (Maybe DefinitionFormat)

-- | Sets whether the endpoints create a segment when they are imported.
ijrDefineSegment :: Lens' ImportJobResource (Maybe Bool)

-- | Sets whether the endpoints are registered with Amazon Pinpoint when
--   they are imported.
ijrRegisterEndpoints :: Lens' ImportJobResource (Maybe Bool)

-- | A unique, custom ID assigned to the IAM role that restricts who can
--   assume the role.
ijrExternalId :: Lens' ImportJobResource (Maybe Text)

-- | A URL that points to the location within an Amazon S3 bucket that
--   contains the endpoints to import. The location can be a folder or a
--   single file. The URL should follow this format:
--   s3:/<i>bucket-name</i>folder-name/file-name Amazon Pinpoint will
--   import endpoints from this location and any subfolders it contains.
ijrS3URL :: Lens' ImportJobResource (Maybe Text)

-- | The ID of the segment to update if the import job is meant to update
--   an existing segment.
ijrSegmentId :: Lens' ImportJobResource (Maybe Text)

-- | The Amazon Resource Name (ARN) of an IAM role that grants Amazon
--   Pinpoint access to the Amazon S3 location that contains the endpoints
--   to import.
ijrRoleARN :: Lens' ImportJobResource (Maybe Text)

-- | <i>See:</i> <a>importJobResponse</a> smart constructor.
data ImportJobResponse

-- | Creates a value of <a>ImportJobResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ijCompletedPieces</a> - The number of pieces that have
--   successfully imported as of the time of the request.</li>
--   <li><a>ijFailedPieces</a> - The number of pieces that have failed to
--   import as of the time of the request.</li>
--   <li><a>ijDefinition</a> - The import job settings.</li>
--   <li><a>ijTotalProcessed</a> - The number of endpoints that were
--   processed by the import job.</li>
--   <li><a>ijFailures</a> - Provides up to 100 of the first failed entries
--   for the job, if any exist.</li>
--   <li><a>ijTotalPieces</a> - The total number of pieces that must be
--   imported to finish the job. Each piece is an approximately equal
--   portion of the endpoints to import.</li>
--   <li><a>ijApplicationId</a> - The unique ID of the application to which
--   the import job applies.</li>
--   <li><a>ijId</a> - The unique ID of the import job.</li>
--   <li><a>ijCreationDate</a> - The date the import job was created in ISO
--   8601 format.</li>
--   <li><a>ijType</a> - The job type. Will be Import.</li>
--   <li><a>ijCompletionDate</a> - The date the import job completed in ISO
--   8601 format.</li>
--   <li><a>ijJobStatus</a> - The status of the import job. Valid values:
--   CREATED, INITIALIZING, PROCESSING, COMPLETING, COMPLETED, FAILING,
--   FAILED The job status is FAILED if one or more pieces failed to
--   import.</li>
--   <li><a>ijTotalFailures</a> - The number of endpoints that failed to
--   import; for example, because of syntax errors.</li>
--   </ul>
importJobResponse :: ImportJobResponse

-- | The number of pieces that have successfully imported as of the time of
--   the request.
ijCompletedPieces :: Lens' ImportJobResponse (Maybe Int)

-- | The number of pieces that have failed to import as of the time of the
--   request.
ijFailedPieces :: Lens' ImportJobResponse (Maybe Int)

-- | The import job settings.
ijDefinition :: Lens' ImportJobResponse (Maybe ImportJobResource)

-- | The number of endpoints that were processed by the import job.
ijTotalProcessed :: Lens' ImportJobResponse (Maybe Int)

-- | Provides up to 100 of the first failed entries for the job, if any
--   exist.
ijFailures :: Lens' ImportJobResponse [Text]

-- | The total number of pieces that must be imported to finish the job.
--   Each piece is an approximately equal portion of the endpoints to
--   import.
ijTotalPieces :: Lens' ImportJobResponse (Maybe Int)

-- | The unique ID of the application to which the import job applies.
ijApplicationId :: Lens' ImportJobResponse (Maybe Text)

-- | The unique ID of the import job.
ijId :: Lens' ImportJobResponse (Maybe Text)

-- | The date the import job was created in ISO 8601 format.
ijCreationDate :: Lens' ImportJobResponse (Maybe Text)

-- | The job type. Will be Import.
ijType :: Lens' ImportJobResponse (Maybe Text)

-- | The date the import job completed in ISO 8601 format.
ijCompletionDate :: Lens' ImportJobResponse (Maybe Text)

-- | The status of the import job. Valid values: CREATED, INITIALIZING,
--   PROCESSING, COMPLETING, COMPLETED, FAILING, FAILED The job status is
--   FAILED if one or more pieces failed to import.
ijJobStatus :: Lens' ImportJobResponse (Maybe JobStatus)

-- | The number of endpoints that failed to import; for example, because of
--   syntax errors.
ijTotalFailures :: Lens' ImportJobResponse (Maybe Int)

-- | <i>See:</i> <a>importJobsResponse</a> smart constructor.
data ImportJobsResponse

-- | Creates a value of <a>ImportJobsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ijNextToken</a> - The string that you use in a subsequent
--   request to get the next page of results in a paginated response.</li>
--   <li><a>ijItem</a> - A list of import jobs for the application.</li>
--   </ul>
importJobsResponse :: ImportJobsResponse

-- | The string that you use in a subsequent request to get the next page
--   of results in a paginated response.
ijNextToken :: Lens' ImportJobsResponse (Maybe Text)

-- | A list of import jobs for the application.
ijItem :: Lens' ImportJobsResponse [ImportJobResponse]

-- | <i>See:</i> <a>message</a> smart constructor.
data Message

-- | Creates a value of <a>Message</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mSilentPush</a> - Indicates if the message should display on
--   the users device. Silent pushes can be used for Remote Configuration
--   and Phone Home use cases.</li>
--   <li><a>mImageIconURL</a> - The URL that points to the icon image for
--   the push notification icon, for example, the app icon.</li>
--   <li><a>mBody</a> - The message body. Can include up to 140
--   characters.</li>
--   <li><a>mJSONBody</a> - The JSON payload used for a silent push.</li>
--   <li><a>mURL</a> - The URL to open in the user's mobile browser. Used
--   if the value for Action is URL.</li>
--   <li><a>mAction</a> - The action that occurs if the user taps a push
--   notification delivered by the campaign: OPEN_APP – Your app launches,
--   or it becomes the foreground app if it has been sent to the
--   background. This is the default action. DEEP_LINK – Uses deep linking
--   features in iOS and Android to open your app and display a designated
--   user interface within the app. URL – The default mobile browser on the
--   user's device launches and opens a web page at the URL you
--   specify.</li>
--   <li><a>mImageURL</a> - The URL that points to an image used in the
--   push notification.</li>
--   <li><a>mMediaURL</a> - The URL that points to the media resource, for
--   example a .mp4 or .gif file.</li>
--   <li><a>mTitle</a> - The message title that displays above the message
--   on the user's device.</li>
--   </ul>
message :: Message

-- | Indicates if the message should display on the users device. Silent
--   pushes can be used for Remote Configuration and Phone Home use cases.
mSilentPush :: Lens' Message (Maybe Bool)

-- | The URL that points to the icon image for the push notification icon,
--   for example, the app icon.
mImageIconURL :: Lens' Message (Maybe Text)

-- | The message body. Can include up to 140 characters.
mBody :: Lens' Message (Maybe Text)

-- | The JSON payload used for a silent push.
mJSONBody :: Lens' Message (Maybe Text)

-- | The URL to open in the user's mobile browser. Used if the value for
--   Action is URL.
mURL :: Lens' Message (Maybe Text)

-- | The action that occurs if the user taps a push notification delivered
--   by the campaign: OPEN_APP – Your app launches, or it becomes the
--   foreground app if it has been sent to the background. This is the
--   default action. DEEP_LINK – Uses deep linking features in iOS and
--   Android to open your app and display a designated user interface
--   within the app. URL – The default mobile browser on the user's device
--   launches and opens a web page at the URL you specify.
mAction :: Lens' Message (Maybe Action)

-- | The URL that points to an image used in the push notification.
mImageURL :: Lens' Message (Maybe Text)

-- | The URL that points to the media resource, for example a .mp4 or .gif
--   file.
mMediaURL :: Lens' Message (Maybe Text)

-- | The message title that displays above the message on the user's
--   device.
mTitle :: Lens' Message (Maybe Text)

-- | <i>See:</i> <a>messageBody</a> smart constructor.
data MessageBody

-- | Creates a value of <a>MessageBody</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mbRequestId</a> - Undocumented member.</li>
--   <li><a>mbMessage</a> - Undocumented member.</li>
--   </ul>
messageBody :: MessageBody

-- | Undocumented member.
mbRequestId :: Lens' MessageBody (Maybe Text)

-- | Undocumented member.
mbMessage :: Lens' MessageBody (Maybe Text)

-- | <i>See:</i> <a>messageConfiguration</a> smart constructor.
data MessageConfiguration

-- | Creates a value of <a>MessageConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mcAPNSMessage</a> - The message that the campaign delivers to
--   APNS channels. Overrides the default message.</li>
--   <li><a>mcGCMMessage</a> - The message that the campaign delivers to
--   GCM channels. Overrides the default message.</li>
--   <li><a>mcDefaultMessage</a> - The default message for all
--   channels.</li>
--   </ul>
messageConfiguration :: MessageConfiguration

-- | The message that the campaign delivers to APNS channels. Overrides the
--   default message.
mcAPNSMessage :: Lens' MessageConfiguration (Maybe Message)

-- | The message that the campaign delivers to GCM channels. Overrides the
--   default message.
mcGCMMessage :: Lens' MessageConfiguration (Maybe Message)

-- | The default message for all channels.
mcDefaultMessage :: Lens' MessageConfiguration (Maybe Message)

-- | <i>See:</i> <a>quietTime</a> smart constructor.
data QuietTime

-- | Creates a value of <a>QuietTime</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>qtStart</a> - The default start time for quiet time in ISO 8601
--   format.</li>
--   <li><a>qtEnd</a> - The default end time for quiet time in ISO 8601
--   format.</li>
--   </ul>
quietTime :: QuietTime

-- | The default start time for quiet time in ISO 8601 format.
qtStart :: Lens' QuietTime (Maybe Text)

-- | The default end time for quiet time in ISO 8601 format.
qtEnd :: Lens' QuietTime (Maybe Text)

-- | <i>See:</i> <a>recencyDimension</a> smart constructor.
data RecencyDimension

-- | Creates a value of <a>RecencyDimension</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rdRecencyType</a> - The recency dimension type: ACTIVE – Users
--   who have used your app within the specified duration are included in
--   the segment. INACTIVE – Users who have not used your app within the
--   specified duration are included in the segment.</li>
--   <li><a>rdDuration</a> - The length of time during which users have
--   been active or inactive with your app. Valid values: HR_24, DAY_7,
--   DAY_14, DAY_30</li>
--   </ul>
recencyDimension :: RecencyDimension

-- | The recency dimension type: ACTIVE – Users who have used your app
--   within the specified duration are included in the segment. INACTIVE –
--   Users who have not used your app within the specified duration are
--   included in the segment.
rdRecencyType :: Lens' RecencyDimension (Maybe RecencyType)

-- | The length of time during which users have been active or inactive
--   with your app. Valid values: HR_24, DAY_7, DAY_14, DAY_30
rdDuration :: Lens' RecencyDimension (Maybe Duration)

-- | <i>See:</i> <a>schedule</a> smart constructor.
data Schedule

-- | Creates a value of <a>Schedule</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sFrequency</a> - How often the campaign delivers messages.
--   Valid values: ONCE, HOURLY, DAILY, WEEKLY, MONTHLY</li>
--   <li><a>sStartTime</a> - The scheduled time that the campaign begins in
--   ISO 8601 format.</li>
--   <li><a>sQuietTime</a> - The time during which the campaign sends no
--   messages.</li>
--   <li><a>sIsLocalTime</a> - Indicates whether the campaign schedule
--   takes effect according to each user's local time.</li>
--   <li><a>sEndTime</a> - The scheduled time that the campaign ends in ISO
--   8601 format.</li>
--   <li><a>sTimezone</a> - The starting UTC offset for the schedule if the
--   value for isLocalTime is true Valid values: UTC UTC+01 UTC+02 UTC+03
--   UTC+03:30 UTC+04 UTC+04:30 UTC+05 UTC+05:30 UTC+05:45 UTC+06 UTC+06:30
--   UTC+07 UTC+08 UTC+09 UTC+09:30 UTC+10 UTC+10:30 UTC+11 UTC+12 UTC+13
--   UTC-02 UTC-03 UTC-04 UTC-05 UTC-06 UTC-07 UTC-08 UTC-09 UTC-10
--   UTC-11</li>
--   </ul>
schedule :: Schedule

-- | How often the campaign delivers messages. Valid values: ONCE, HOURLY,
--   DAILY, WEEKLY, MONTHLY
sFrequency :: Lens' Schedule (Maybe Frequency)

-- | The scheduled time that the campaign begins in ISO 8601 format.
sStartTime :: Lens' Schedule (Maybe Text)

-- | The time during which the campaign sends no messages.
sQuietTime :: Lens' Schedule (Maybe QuietTime)

-- | Indicates whether the campaign schedule takes effect according to each
--   user's local time.
sIsLocalTime :: Lens' Schedule (Maybe Bool)

-- | The scheduled time that the campaign ends in ISO 8601 format.
sEndTime :: Lens' Schedule (Maybe Text)

-- | The starting UTC offset for the schedule if the value for isLocalTime
--   is true Valid values: UTC UTC+01 UTC+02 UTC+03 UTC+03:30 UTC+04
--   UTC+04:30 UTC+05 UTC+05:30 UTC+05:45 UTC+06 UTC+06:30 UTC+07 UTC+08
--   UTC+09 UTC+09:30 UTC+10 UTC+10:30 UTC+11 UTC+12 UTC+13 UTC-02 UTC-03
--   UTC-04 UTC-05 UTC-06 UTC-07 UTC-08 UTC-09 UTC-10 UTC-11
sTimezone :: Lens' Schedule (Maybe Text)

-- | <i>See:</i> <a>segmentBehaviors</a> smart constructor.
data SegmentBehaviors

-- | Creates a value of <a>SegmentBehaviors</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sbRecency</a> - The recency of use.</li>
--   </ul>
segmentBehaviors :: SegmentBehaviors

-- | The recency of use.
sbRecency :: Lens' SegmentBehaviors (Maybe RecencyDimension)

-- | <i>See:</i> <a>segmentDemographics</a> smart constructor.
data SegmentDemographics

-- | Creates a value of <a>SegmentDemographics</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sdPlatform</a> - The device platform criteria for the
--   segment.</li>
--   <li><a>sdAppVersion</a> - The app version criteria for the
--   segment.</li>
--   <li><a>sdModel</a> - The device model criteria for the segment.</li>
--   <li><a>sdMake</a> - The device make criteria for the segment.</li>
--   <li><a>sdDeviceType</a> - The device type criteria for the
--   segment.</li>
--   </ul>
segmentDemographics :: SegmentDemographics

-- | The device platform criteria for the segment.
sdPlatform :: Lens' SegmentDemographics (Maybe SetDimension)

-- | The app version criteria for the segment.
sdAppVersion :: Lens' SegmentDemographics (Maybe SetDimension)

-- | The device model criteria for the segment.
sdModel :: Lens' SegmentDemographics (Maybe SetDimension)

-- | The device make criteria for the segment.
sdMake :: Lens' SegmentDemographics (Maybe SetDimension)

-- | The device type criteria for the segment.
sdDeviceType :: Lens' SegmentDemographics (Maybe SetDimension)

-- | <i>See:</i> <a>segmentDimensions</a> smart constructor.
data SegmentDimensions

-- | Creates a value of <a>SegmentDimensions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sdLocation</a> - The segment location attributes.</li>
--   <li><a>sdDemographic</a> - The segment demographics attributes.</li>
--   <li><a>sdBehavior</a> - The segment behaviors attributes.</li>
--   <li><a>sdAttributes</a> - Custom segment attributes.</li>
--   </ul>
segmentDimensions :: SegmentDimensions

-- | The segment location attributes.
sdLocation :: Lens' SegmentDimensions (Maybe SegmentLocation)

-- | The segment demographics attributes.
sdDemographic :: Lens' SegmentDimensions (Maybe SegmentDemographics)

-- | The segment behaviors attributes.
sdBehavior :: Lens' SegmentDimensions (Maybe SegmentBehaviors)

-- | Custom segment attributes.
sdAttributes :: Lens' SegmentDimensions (HashMap Text AttributeDimension)

-- | <i>See:</i> <a>segmentImportResource</a> smart constructor.
data SegmentImportResource

-- | Creates a value of <a>SegmentImportResource</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sirSize</a> - The number of endpoints that were successfully
--   imported to create this segment.</li>
--   <li><a>sirFormat</a> - The format of the endpoint files that were
--   imported to create this segment. Valid values: CSV, JSON</li>
--   <li><a>sirExternalId</a> - A unique, custom ID assigned to the IAM
--   role that restricts who can assume the role.</li>
--   <li><a>sirS3URL</a> - A URL that points to the Amazon S3 location from
--   which the endpoints for this segment were imported.</li>
--   <li><a>sirRoleARN</a> - The Amazon Resource Name (ARN) of an IAM role
--   that grants Amazon Pinpoint access to the endpoints in Amazon S3.</li>
--   </ul>
segmentImportResource :: SegmentImportResource

-- | The number of endpoints that were successfully imported to create this
--   segment.
sirSize :: Lens' SegmentImportResource (Maybe Int)

-- | The format of the endpoint files that were imported to create this
--   segment. Valid values: CSV, JSON
sirFormat :: Lens' SegmentImportResource (Maybe DefinitionFormat)

-- | A unique, custom ID assigned to the IAM role that restricts who can
--   assume the role.
sirExternalId :: Lens' SegmentImportResource (Maybe Text)

-- | A URL that points to the Amazon S3 location from which the endpoints
--   for this segment were imported.
sirS3URL :: Lens' SegmentImportResource (Maybe Text)

-- | The Amazon Resource Name (ARN) of an IAM role that grants Amazon
--   Pinpoint access to the endpoints in Amazon S3.
sirRoleARN :: Lens' SegmentImportResource (Maybe Text)

-- | <i>See:</i> <a>segmentLocation</a> smart constructor.
data SegmentLocation

-- | Creates a value of <a>SegmentLocation</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>slCountry</a> - The country filter according to ISO 3166-1
--   Alpha-2 codes.</li>
--   </ul>
segmentLocation :: SegmentLocation

-- | The country filter according to ISO 3166-1 Alpha-2 codes.
slCountry :: Lens' SegmentLocation (Maybe SetDimension)

-- | <i>See:</i> <a>segmentResponse</a> smart constructor.
data SegmentResponse

-- | Creates a value of <a>SegmentResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sLastModifiedDate</a> - The date the segment was last updated
--   in ISO 8601 format.</li>
--   <li><a>sSegmentType</a> - The segment type: DIMENSIONAL – A dynamic
--   segment built from selection criteria based on endpoint data reported
--   by your app. You create this type of segment by using the segment
--   builder in the Amazon Pinpoint console or by making a POST request to
--   the segments resource. IMPORT – A static segment built from an
--   imported set of endpoint definitions. You create this type of segment
--   by importing a segment in the Amazon Pinpoint console or by making a
--   POST request to the jobs/import resource.</li>
--   <li><a>sApplicationId</a> - The ID of the application to which the
--   segment applies.</li>
--   <li><a>sName</a> - The name of segment</li>
--   <li><a>sVersion</a> - The segment version number.</li>
--   <li><a>sId</a> - The unique segment ID.</li>
--   <li><a>sCreationDate</a> - The date the segment was created in ISO
--   8601 format.</li>
--   <li><a>sImportDefinition</a> - The import job settings.</li>
--   <li><a>sDimensions</a> - The segment dimensions attributes.</li>
--   </ul>
segmentResponse :: SegmentResponse

-- | The date the segment was last updated in ISO 8601 format.
sLastModifiedDate :: Lens' SegmentResponse (Maybe Text)

-- | The segment type: DIMENSIONAL – A dynamic segment built from selection
--   criteria based on endpoint data reported by your app. You create this
--   type of segment by using the segment builder in the Amazon Pinpoint
--   console or by making a POST request to the segments resource. IMPORT –
--   A static segment built from an imported set of endpoint definitions.
--   You create this type of segment by importing a segment in the Amazon
--   Pinpoint console or by making a POST request to the jobs/import
--   resource.
sSegmentType :: Lens' SegmentResponse (Maybe SegmentType)

-- | The ID of the application to which the segment applies.
sApplicationId :: Lens' SegmentResponse (Maybe Text)

-- | The name of segment
sName :: Lens' SegmentResponse (Maybe Text)

-- | The segment version number.
sVersion :: Lens' SegmentResponse (Maybe Int)

-- | The unique segment ID.
sId :: Lens' SegmentResponse (Maybe Text)

-- | The date the segment was created in ISO 8601 format.
sCreationDate :: Lens' SegmentResponse (Maybe Text)

-- | The import job settings.
sImportDefinition :: Lens' SegmentResponse (Maybe SegmentImportResource)

-- | The segment dimensions attributes.
sDimensions :: Lens' SegmentResponse (Maybe SegmentDimensions)

-- | <i>See:</i> <a>segmentsResponse</a> smart constructor.
data SegmentsResponse

-- | Creates a value of <a>SegmentsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sNextToken</a> - An identifier used to retrieve the next page
--   of results. The token is null if no additional pages exist.</li>
--   <li><a>sItem</a> - The list of segments.</li>
--   </ul>
segmentsResponse :: SegmentsResponse

-- | An identifier used to retrieve the next page of results. The token is
--   null if no additional pages exist.
sNextToken :: Lens' SegmentsResponse (Maybe Text)

-- | The list of segments.
sItem :: Lens' SegmentsResponse [SegmentResponse]

-- | <i>See:</i> <a>setDimension</a> smart constructor.
data SetDimension

-- | Creates a value of <a>SetDimension</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sdValues</a> - The criteria values for the segment dimension.
--   Endpoints with matching attribute values are included or excluded from
--   the segment, depending on the setting for Type.</li>
--   <li><a>sdDimensionType</a> - The type of dimension: INCLUSIVE –
--   Endpoints that match the criteria are included in the segment.
--   EXCLUSIVE – Endpoints that match the criteria are excluded from the
--   segment.</li>
--   </ul>
setDimension :: SetDimension

-- | The criteria values for the segment dimension. Endpoints with matching
--   attribute values are included or excluded from the segment, depending
--   on the setting for Type.
sdValues :: Lens' SetDimension [Text]

-- | The type of dimension: INCLUSIVE – Endpoints that match the criteria
--   are included in the segment. EXCLUSIVE – Endpoints that match the
--   criteria are excluded from the segment.
sdDimensionType :: Lens' SetDimension (Maybe DimensionType)

-- | <i>See:</i> <a>treatmentResource</a> smart constructor.
data TreatmentResource

-- | Creates a value of <a>TreatmentResource</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>trState</a> - The treatment status.</li>
--   <li><a>trSchedule</a> - The campaign schedule.</li>
--   <li><a>trTreatmentName</a> - The custom name of a variation of the
--   campaign used for A/B testing.</li>
--   <li><a>trSizePercent</a> - The allocated percentage of users for this
--   treatment.</li>
--   <li><a>trTreatmentDescription</a> - A custom description for the
--   treatment.</li>
--   <li><a>trId</a> - The unique treatment ID.</li>
--   <li><a>trMessageConfiguration</a> - The message configuration
--   settings.</li>
--   </ul>
treatmentResource :: TreatmentResource

-- | The treatment status.
trState :: Lens' TreatmentResource (Maybe CampaignState)

-- | The campaign schedule.
trSchedule :: Lens' TreatmentResource (Maybe Schedule)

-- | The custom name of a variation of the campaign used for A/B testing.
trTreatmentName :: Lens' TreatmentResource (Maybe Text)

-- | The allocated percentage of users for this treatment.
trSizePercent :: Lens' TreatmentResource (Maybe Int)

-- | A custom description for the treatment.
trTreatmentDescription :: Lens' TreatmentResource (Maybe Text)

-- | The unique treatment ID.
trId :: Lens' TreatmentResource (Maybe Text)

-- | The message configuration settings.
trMessageConfiguration :: Lens' TreatmentResource (Maybe MessageConfiguration)

-- | <i>See:</i> <a>writeApplicationSettingsRequest</a> smart constructor.
data WriteApplicationSettingsRequest

-- | Creates a value of <a>WriteApplicationSettingsRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>wasrLimits</a> - The default campaign limits for the app. These
--   limits apply to each campaign for the app, unless the campaign
--   overrides the default with limits of its own.</li>
--   <li><a>wasrQuietTime</a> - The default quiet time for the app. Each
--   campaign for this app sends no messages during this time unless the
--   campaign overrides the default with a quiet time of its own.</li>
--   </ul>
writeApplicationSettingsRequest :: WriteApplicationSettingsRequest

-- | The default campaign limits for the app. These limits apply to each
--   campaign for the app, unless the campaign overrides the default with
--   limits of its own.
wasrLimits :: Lens' WriteApplicationSettingsRequest (Maybe CampaignLimits)

-- | The default quiet time for the app. Each campaign for this app sends
--   no messages during this time unless the campaign overrides the default
--   with a quiet time of its own.
wasrQuietTime :: Lens' WriteApplicationSettingsRequest (Maybe QuietTime)

-- | <i>See:</i> <a>writeCampaignRequest</a> smart constructor.
data WriteCampaignRequest

-- | Creates a value of <a>WriteCampaignRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>wcrSchedule</a> - The campaign schedule.</li>
--   <li><a>wcrTreatmentName</a> - The custom name of a variation of the
--   campaign used for A/B testing.</li>
--   <li><a>wcrLimits</a> - The campaign limits settings.</li>
--   <li><a>wcrIsPaused</a> - Indicates whether the campaign is paused. A
--   paused campaign does not send messages unless you resume it by setting
--   IsPaused to false.</li>
--   <li><a>wcrName</a> - The custom name of the campaign.</li>
--   <li><a>wcrHoldoutPercent</a> - The allocated percentage of end users
--   who will not receive messages from this campaign.</li>
--   <li><a>wcrTreatmentDescription</a> - A custom description for the
--   treatment.</li>
--   <li><a>wcrMessageConfiguration</a> - The message configuration
--   settings.</li>
--   <li><a>wcrDescription</a> - A description of the campaign.</li>
--   <li><a>wcrSegmentId</a> - The ID of the segment to which the campaign
--   sends messages.</li>
--   <li><a>wcrAdditionalTreatments</a> - Treatments that are defined in
--   addition to the default treatment.</li>
--   <li><a>wcrSegmentVersion</a> - The version of the segment to which the
--   campaign sends messages.</li>
--   </ul>
writeCampaignRequest :: WriteCampaignRequest

-- | The campaign schedule.
wcrSchedule :: Lens' WriteCampaignRequest (Maybe Schedule)

-- | The custom name of a variation of the campaign used for A/B testing.
wcrTreatmentName :: Lens' WriteCampaignRequest (Maybe Text)

-- | The campaign limits settings.
wcrLimits :: Lens' WriteCampaignRequest (Maybe CampaignLimits)

-- | Indicates whether the campaign is paused. A paused campaign does not
--   send messages unless you resume it by setting IsPaused to false.
wcrIsPaused :: Lens' WriteCampaignRequest (Maybe Bool)

-- | The custom name of the campaign.
wcrName :: Lens' WriteCampaignRequest (Maybe Text)

-- | The allocated percentage of end users who will not receive messages
--   from this campaign.
wcrHoldoutPercent :: Lens' WriteCampaignRequest (Maybe Int)

-- | A custom description for the treatment.
wcrTreatmentDescription :: Lens' WriteCampaignRequest (Maybe Text)

-- | The message configuration settings.
wcrMessageConfiguration :: Lens' WriteCampaignRequest (Maybe MessageConfiguration)

-- | A description of the campaign.
wcrDescription :: Lens' WriteCampaignRequest (Maybe Text)

-- | The ID of the segment to which the campaign sends messages.
wcrSegmentId :: Lens' WriteCampaignRequest (Maybe Text)

-- | Treatments that are defined in addition to the default treatment.
wcrAdditionalTreatments :: Lens' WriteCampaignRequest [WriteTreatmentResource]

-- | The version of the segment to which the campaign sends messages.
wcrSegmentVersion :: Lens' WriteCampaignRequest (Maybe Int)

-- | <i>See:</i> <a>writeSegmentRequest</a> smart constructor.
data WriteSegmentRequest

-- | Creates a value of <a>WriteSegmentRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>wsrName</a> - The name of segment</li>
--   <li><a>wsrDimensions</a> - The segment dimensions attributes.</li>
--   </ul>
writeSegmentRequest :: WriteSegmentRequest

-- | The name of segment
wsrName :: Lens' WriteSegmentRequest (Maybe Text)

-- | The segment dimensions attributes.
wsrDimensions :: Lens' WriteSegmentRequest (Maybe SegmentDimensions)

-- | <i>See:</i> <a>writeTreatmentResource</a> smart constructor.
data WriteTreatmentResource

-- | Creates a value of <a>WriteTreatmentResource</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>wtrSchedule</a> - The campaign schedule.</li>
--   <li><a>wtrTreatmentName</a> - The custom name of a variation of the
--   campaign used for A/B testing.</li>
--   <li><a>wtrSizePercent</a> - The allocated percentage of users for this
--   treatment.</li>
--   <li><a>wtrTreatmentDescription</a> - A custom description for the
--   treatment.</li>
--   <li><a>wtrMessageConfiguration</a> - The message configuration
--   settings.</li>
--   </ul>
writeTreatmentResource :: WriteTreatmentResource

-- | The campaign schedule.
wtrSchedule :: Lens' WriteTreatmentResource (Maybe Schedule)

-- | The custom name of a variation of the campaign used for A/B testing.
wtrTreatmentName :: Lens' WriteTreatmentResource (Maybe Text)

-- | The allocated percentage of users for this treatment.
wtrSizePercent :: Lens' WriteTreatmentResource (Maybe Int)

-- | A custom description for the treatment.
wtrTreatmentDescription :: Lens' WriteTreatmentResource (Maybe Text)

-- | The message configuration settings.
wtrMessageConfiguration :: Lens' WriteTreatmentResource (Maybe MessageConfiguration)


-- | Use to update the APNs channel for an app.
module Network.AWS.Pinpoint.UpdateAPNSChannel

-- | Creates a value of <a>UpdateAPNSChannel</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uacApplicationId</a> - Undocumented member.</li>
--   <li><a>uacAPNSChannelRequest</a> - Undocumented member.</li>
--   </ul>
updateAPNSChannel :: Text -> APNSChannelRequest -> UpdateAPNSChannel

-- | <i>See:</i> <a>updateAPNSChannel</a> smart constructor.
data UpdateAPNSChannel

-- | Undocumented member.
uacApplicationId :: Lens' UpdateAPNSChannel Text

-- | Undocumented member.
uacAPNSChannelRequest :: Lens' UpdateAPNSChannel APNSChannelRequest

-- | Creates a value of <a>UpdateAPNSChannelResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uacrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>uacrsAPNSChannelResponse</a> - Undocumented member.</li>
--   </ul>
updateAPNSChannelResponse :: Int -> APNSChannelResponse -> UpdateAPNSChannelResponse

-- | <i>See:</i> <a>updateAPNSChannelResponse</a> smart constructor.
data UpdateAPNSChannelResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
uacrsResponseStatus :: Lens' UpdateAPNSChannelResponse Int

-- | Undocumented member.
uacrsAPNSChannelResponse :: Lens' UpdateAPNSChannelResponse APNSChannelResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.UpdateAPNSChannel.UpdateAPNSChannelResponse
instance Data.Data.Data Network.AWS.Pinpoint.UpdateAPNSChannel.UpdateAPNSChannelResponse
instance GHC.Show.Show Network.AWS.Pinpoint.UpdateAPNSChannel.UpdateAPNSChannelResponse
instance GHC.Read.Read Network.AWS.Pinpoint.UpdateAPNSChannel.UpdateAPNSChannelResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.UpdateAPNSChannel.UpdateAPNSChannelResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.UpdateAPNSChannel.UpdateAPNSChannel
instance Data.Data.Data Network.AWS.Pinpoint.UpdateAPNSChannel.UpdateAPNSChannel
instance GHC.Show.Show Network.AWS.Pinpoint.UpdateAPNSChannel.UpdateAPNSChannel
instance GHC.Read.Read Network.AWS.Pinpoint.UpdateAPNSChannel.UpdateAPNSChannel
instance GHC.Classes.Eq Network.AWS.Pinpoint.UpdateAPNSChannel.UpdateAPNSChannel
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.UpdateAPNSChannel.UpdateAPNSChannel
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.UpdateAPNSChannel.UpdateAPNSChannel
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.UpdateAPNSChannel.UpdateAPNSChannel
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.UpdateAPNSChannel.UpdateAPNSChannel
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Pinpoint.UpdateAPNSChannel.UpdateAPNSChannel
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.UpdateAPNSChannel.UpdateAPNSChannel
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.UpdateAPNSChannel.UpdateAPNSChannel
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.UpdateAPNSChannel.UpdateAPNSChannelResponse


-- | Used to update the settings for an app.
module Network.AWS.Pinpoint.UpdateApplicationSettings

-- | Creates a value of <a>UpdateApplicationSettings</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uasApplicationId</a> - Undocumented member.</li>
--   <li><a>uasWriteApplicationSettingsRequest</a> - Undocumented
--   member.</li>
--   </ul>
updateApplicationSettings :: Text -> WriteApplicationSettingsRequest -> UpdateApplicationSettings

-- | <i>See:</i> <a>updateApplicationSettings</a> smart constructor.
data UpdateApplicationSettings

-- | Undocumented member.
uasApplicationId :: Lens' UpdateApplicationSettings Text

-- | Undocumented member.
uasWriteApplicationSettingsRequest :: Lens' UpdateApplicationSettings WriteApplicationSettingsRequest

-- | Creates a value of <a>UpdateApplicationSettingsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uasrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>uasrsApplicationSettingsResource</a> - Undocumented
--   member.</li>
--   </ul>
updateApplicationSettingsResponse :: Int -> ApplicationSettingsResource -> UpdateApplicationSettingsResponse

-- | <i>See:</i> <a>updateApplicationSettingsResponse</a> smart
--   constructor.
data UpdateApplicationSettingsResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
uasrsResponseStatus :: Lens' UpdateApplicationSettingsResponse Int

-- | Undocumented member.
uasrsApplicationSettingsResource :: Lens' UpdateApplicationSettingsResponse ApplicationSettingsResource
instance GHC.Generics.Generic Network.AWS.Pinpoint.UpdateApplicationSettings.UpdateApplicationSettingsResponse
instance Data.Data.Data Network.AWS.Pinpoint.UpdateApplicationSettings.UpdateApplicationSettingsResponse
instance GHC.Show.Show Network.AWS.Pinpoint.UpdateApplicationSettings.UpdateApplicationSettingsResponse
instance GHC.Read.Read Network.AWS.Pinpoint.UpdateApplicationSettings.UpdateApplicationSettingsResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.UpdateApplicationSettings.UpdateApplicationSettingsResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.UpdateApplicationSettings.UpdateApplicationSettings
instance Data.Data.Data Network.AWS.Pinpoint.UpdateApplicationSettings.UpdateApplicationSettings
instance GHC.Show.Show Network.AWS.Pinpoint.UpdateApplicationSettings.UpdateApplicationSettings
instance GHC.Read.Read Network.AWS.Pinpoint.UpdateApplicationSettings.UpdateApplicationSettings
instance GHC.Classes.Eq Network.AWS.Pinpoint.UpdateApplicationSettings.UpdateApplicationSettings
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.UpdateApplicationSettings.UpdateApplicationSettings
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.UpdateApplicationSettings.UpdateApplicationSettings
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.UpdateApplicationSettings.UpdateApplicationSettings
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.UpdateApplicationSettings.UpdateApplicationSettings
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Pinpoint.UpdateApplicationSettings.UpdateApplicationSettings
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.UpdateApplicationSettings.UpdateApplicationSettings
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.UpdateApplicationSettings.UpdateApplicationSettings
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.UpdateApplicationSettings.UpdateApplicationSettingsResponse


-- | Use to update a campaign.
module Network.AWS.Pinpoint.UpdateCampaign

-- | Creates a value of <a>UpdateCampaign</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ucCampaignId</a> - Undocumented member.</li>
--   <li><a>ucApplicationId</a> - Undocumented member.</li>
--   <li><a>ucWriteCampaignRequest</a> - Undocumented member.</li>
--   </ul>
updateCampaign :: Text -> Text -> WriteCampaignRequest -> UpdateCampaign

-- | <i>See:</i> <a>updateCampaign</a> smart constructor.
data UpdateCampaign

-- | Undocumented member.
ucCampaignId :: Lens' UpdateCampaign Text

-- | Undocumented member.
ucApplicationId :: Lens' UpdateCampaign Text

-- | Undocumented member.
ucWriteCampaignRequest :: Lens' UpdateCampaign WriteCampaignRequest

-- | Creates a value of <a>UpdateCampaignResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ucrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>ucrsCampaignResponse</a> - Undocumented member.</li>
--   </ul>
updateCampaignResponse :: Int -> CampaignResponse -> UpdateCampaignResponse

-- | <i>See:</i> <a>updateCampaignResponse</a> smart constructor.
data UpdateCampaignResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ucrsResponseStatus :: Lens' UpdateCampaignResponse Int

-- | Undocumented member.
ucrsCampaignResponse :: Lens' UpdateCampaignResponse CampaignResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.UpdateCampaign.UpdateCampaignResponse
instance Data.Data.Data Network.AWS.Pinpoint.UpdateCampaign.UpdateCampaignResponse
instance GHC.Show.Show Network.AWS.Pinpoint.UpdateCampaign.UpdateCampaignResponse
instance GHC.Read.Read Network.AWS.Pinpoint.UpdateCampaign.UpdateCampaignResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.UpdateCampaign.UpdateCampaignResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.UpdateCampaign.UpdateCampaign
instance Data.Data.Data Network.AWS.Pinpoint.UpdateCampaign.UpdateCampaign
instance GHC.Show.Show Network.AWS.Pinpoint.UpdateCampaign.UpdateCampaign
instance GHC.Read.Read Network.AWS.Pinpoint.UpdateCampaign.UpdateCampaign
instance GHC.Classes.Eq Network.AWS.Pinpoint.UpdateCampaign.UpdateCampaign
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.UpdateCampaign.UpdateCampaign
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.UpdateCampaign.UpdateCampaign
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.UpdateCampaign.UpdateCampaign
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.UpdateCampaign.UpdateCampaign
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Pinpoint.UpdateCampaign.UpdateCampaign
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.UpdateCampaign.UpdateCampaign
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.UpdateCampaign.UpdateCampaign
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.UpdateCampaign.UpdateCampaignResponse


-- | Use to update an endpoint.
module Network.AWS.Pinpoint.UpdateEndpoint

-- | Creates a value of <a>UpdateEndpoint</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ueApplicationId</a> - Undocumented member.</li>
--   <li><a>ueEndpointId</a> - Undocumented member.</li>
--   <li><a>ueEndpointRequest</a> - Undocumented member.</li>
--   </ul>
updateEndpoint :: Text -> Text -> EndpointRequest -> UpdateEndpoint

-- | <i>See:</i> <a>updateEndpoint</a> smart constructor.
data UpdateEndpoint

-- | Undocumented member.
ueApplicationId :: Lens' UpdateEndpoint Text

-- | Undocumented member.
ueEndpointId :: Lens' UpdateEndpoint Text

-- | Undocumented member.
ueEndpointRequest :: Lens' UpdateEndpoint EndpointRequest

-- | Creates a value of <a>UpdateEndpointResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uersResponseStatus</a> - -- | The response status code.</li>
--   <li><a>uersMessageBody</a> - Undocumented member.</li>
--   </ul>
updateEndpointResponse :: Int -> MessageBody -> UpdateEndpointResponse

-- | <i>See:</i> <a>updateEndpointResponse</a> smart constructor.
data UpdateEndpointResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
uersResponseStatus :: Lens' UpdateEndpointResponse Int

-- | Undocumented member.
uersMessageBody :: Lens' UpdateEndpointResponse MessageBody
instance GHC.Generics.Generic Network.AWS.Pinpoint.UpdateEndpoint.UpdateEndpointResponse
instance Data.Data.Data Network.AWS.Pinpoint.UpdateEndpoint.UpdateEndpointResponse
instance GHC.Show.Show Network.AWS.Pinpoint.UpdateEndpoint.UpdateEndpointResponse
instance GHC.Read.Read Network.AWS.Pinpoint.UpdateEndpoint.UpdateEndpointResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.UpdateEndpoint.UpdateEndpointResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.UpdateEndpoint.UpdateEndpoint
instance Data.Data.Data Network.AWS.Pinpoint.UpdateEndpoint.UpdateEndpoint
instance GHC.Show.Show Network.AWS.Pinpoint.UpdateEndpoint.UpdateEndpoint
instance GHC.Read.Read Network.AWS.Pinpoint.UpdateEndpoint.UpdateEndpoint
instance GHC.Classes.Eq Network.AWS.Pinpoint.UpdateEndpoint.UpdateEndpoint
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.UpdateEndpoint.UpdateEndpoint
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.UpdateEndpoint.UpdateEndpoint
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.UpdateEndpoint.UpdateEndpoint
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.UpdateEndpoint.UpdateEndpoint
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Pinpoint.UpdateEndpoint.UpdateEndpoint
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.UpdateEndpoint.UpdateEndpoint
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.UpdateEndpoint.UpdateEndpoint
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.UpdateEndpoint.UpdateEndpointResponse


-- | Use to update your endpoints.
module Network.AWS.Pinpoint.UpdateEndpointsBatch

-- | Creates a value of <a>UpdateEndpointsBatch</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uebApplicationId</a> - Undocumented member.</li>
--   <li><a>uebEndpointBatchRequest</a> - Undocumented member.</li>
--   </ul>
updateEndpointsBatch :: Text -> EndpointBatchRequest -> UpdateEndpointsBatch

-- | <i>See:</i> <a>updateEndpointsBatch</a> smart constructor.
data UpdateEndpointsBatch

-- | Undocumented member.
uebApplicationId :: Lens' UpdateEndpointsBatch Text

-- | Undocumented member.
uebEndpointBatchRequest :: Lens' UpdateEndpointsBatch EndpointBatchRequest

-- | Creates a value of <a>UpdateEndpointsBatchResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uebrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>uebrsMessageBody</a> - Undocumented member.</li>
--   </ul>
updateEndpointsBatchResponse :: Int -> MessageBody -> UpdateEndpointsBatchResponse

-- | <i>See:</i> <a>updateEndpointsBatchResponse</a> smart constructor.
data UpdateEndpointsBatchResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
uebrsResponseStatus :: Lens' UpdateEndpointsBatchResponse Int

-- | Undocumented member.
uebrsMessageBody :: Lens' UpdateEndpointsBatchResponse MessageBody
instance GHC.Generics.Generic Network.AWS.Pinpoint.UpdateEndpointsBatch.UpdateEndpointsBatchResponse
instance Data.Data.Data Network.AWS.Pinpoint.UpdateEndpointsBatch.UpdateEndpointsBatchResponse
instance GHC.Show.Show Network.AWS.Pinpoint.UpdateEndpointsBatch.UpdateEndpointsBatchResponse
instance GHC.Read.Read Network.AWS.Pinpoint.UpdateEndpointsBatch.UpdateEndpointsBatchResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.UpdateEndpointsBatch.UpdateEndpointsBatchResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.UpdateEndpointsBatch.UpdateEndpointsBatch
instance Data.Data.Data Network.AWS.Pinpoint.UpdateEndpointsBatch.UpdateEndpointsBatch
instance GHC.Show.Show Network.AWS.Pinpoint.UpdateEndpointsBatch.UpdateEndpointsBatch
instance GHC.Read.Read Network.AWS.Pinpoint.UpdateEndpointsBatch.UpdateEndpointsBatch
instance GHC.Classes.Eq Network.AWS.Pinpoint.UpdateEndpointsBatch.UpdateEndpointsBatch
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.UpdateEndpointsBatch.UpdateEndpointsBatch
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.UpdateEndpointsBatch.UpdateEndpointsBatch
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.UpdateEndpointsBatch.UpdateEndpointsBatch
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.UpdateEndpointsBatch.UpdateEndpointsBatch
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Pinpoint.UpdateEndpointsBatch.UpdateEndpointsBatch
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.UpdateEndpointsBatch.UpdateEndpointsBatch
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.UpdateEndpointsBatch.UpdateEndpointsBatch
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.UpdateEndpointsBatch.UpdateEndpointsBatchResponse


-- | Use to update the GCM channel for an app.
module Network.AWS.Pinpoint.UpdateGCMChannel

-- | Creates a value of <a>UpdateGCMChannel</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ugcApplicationId</a> - Undocumented member.</li>
--   <li><a>ugcGCMChannelRequest</a> - Undocumented member.</li>
--   </ul>
updateGCMChannel :: Text -> GCMChannelRequest -> UpdateGCMChannel

-- | <i>See:</i> <a>updateGCMChannel</a> smart constructor.
data UpdateGCMChannel

-- | Undocumented member.
ugcApplicationId :: Lens' UpdateGCMChannel Text

-- | Undocumented member.
ugcGCMChannelRequest :: Lens' UpdateGCMChannel GCMChannelRequest

-- | Creates a value of <a>UpdateGCMChannelResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ugcrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>ugcrsGCMChannelResponse</a> - Undocumented member.</li>
--   </ul>
updateGCMChannelResponse :: Int -> GCMChannelResponse -> UpdateGCMChannelResponse

-- | <i>See:</i> <a>updateGCMChannelResponse</a> smart constructor.
data UpdateGCMChannelResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ugcrsResponseStatus :: Lens' UpdateGCMChannelResponse Int

-- | Undocumented member.
ugcrsGCMChannelResponse :: Lens' UpdateGCMChannelResponse GCMChannelResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.UpdateGCMChannel.UpdateGCMChannelResponse
instance Data.Data.Data Network.AWS.Pinpoint.UpdateGCMChannel.UpdateGCMChannelResponse
instance GHC.Show.Show Network.AWS.Pinpoint.UpdateGCMChannel.UpdateGCMChannelResponse
instance GHC.Read.Read Network.AWS.Pinpoint.UpdateGCMChannel.UpdateGCMChannelResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.UpdateGCMChannel.UpdateGCMChannelResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.UpdateGCMChannel.UpdateGCMChannel
instance Data.Data.Data Network.AWS.Pinpoint.UpdateGCMChannel.UpdateGCMChannel
instance GHC.Show.Show Network.AWS.Pinpoint.UpdateGCMChannel.UpdateGCMChannel
instance GHC.Read.Read Network.AWS.Pinpoint.UpdateGCMChannel.UpdateGCMChannel
instance GHC.Classes.Eq Network.AWS.Pinpoint.UpdateGCMChannel.UpdateGCMChannel
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.UpdateGCMChannel.UpdateGCMChannel
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.UpdateGCMChannel.UpdateGCMChannel
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.UpdateGCMChannel.UpdateGCMChannel
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.UpdateGCMChannel.UpdateGCMChannel
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Pinpoint.UpdateGCMChannel.UpdateGCMChannel
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.UpdateGCMChannel.UpdateGCMChannel
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.UpdateGCMChannel.UpdateGCMChannel
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.UpdateGCMChannel.UpdateGCMChannelResponse


-- | Use to update a segment.
module Network.AWS.Pinpoint.UpdateSegment

-- | Creates a value of <a>UpdateSegment</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>usSegmentId</a> - Undocumented member.</li>
--   <li><a>usApplicationId</a> - Undocumented member.</li>
--   <li><a>usWriteSegmentRequest</a> - Undocumented member.</li>
--   </ul>
updateSegment :: Text -> Text -> WriteSegmentRequest -> UpdateSegment

-- | <i>See:</i> <a>updateSegment</a> smart constructor.
data UpdateSegment

-- | Undocumented member.
usSegmentId :: Lens' UpdateSegment Text

-- | Undocumented member.
usApplicationId :: Lens' UpdateSegment Text

-- | Undocumented member.
usWriteSegmentRequest :: Lens' UpdateSegment WriteSegmentRequest

-- | Creates a value of <a>UpdateSegmentResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>usrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>usrsSegmentResponse</a> - Undocumented member.</li>
--   </ul>
updateSegmentResponse :: Int -> SegmentResponse -> UpdateSegmentResponse

-- | <i>See:</i> <a>updateSegmentResponse</a> smart constructor.
data UpdateSegmentResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
usrsResponseStatus :: Lens' UpdateSegmentResponse Int

-- | Undocumented member.
usrsSegmentResponse :: Lens' UpdateSegmentResponse SegmentResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.UpdateSegment.UpdateSegmentResponse
instance Data.Data.Data Network.AWS.Pinpoint.UpdateSegment.UpdateSegmentResponse
instance GHC.Show.Show Network.AWS.Pinpoint.UpdateSegment.UpdateSegmentResponse
instance GHC.Read.Read Network.AWS.Pinpoint.UpdateSegment.UpdateSegmentResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.UpdateSegment.UpdateSegmentResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.UpdateSegment.UpdateSegment
instance Data.Data.Data Network.AWS.Pinpoint.UpdateSegment.UpdateSegment
instance GHC.Show.Show Network.AWS.Pinpoint.UpdateSegment.UpdateSegment
instance GHC.Read.Read Network.AWS.Pinpoint.UpdateSegment.UpdateSegment
instance GHC.Classes.Eq Network.AWS.Pinpoint.UpdateSegment.UpdateSegment
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.UpdateSegment.UpdateSegment
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.UpdateSegment.UpdateSegment
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.UpdateSegment.UpdateSegment
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.UpdateSegment.UpdateSegment
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Pinpoint.UpdateSegment.UpdateSegment
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.UpdateSegment.UpdateSegment
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.UpdateSegment.UpdateSegment
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.UpdateSegment.UpdateSegmentResponse


module Network.AWS.Pinpoint.Waiters


-- | Used to get information about your segments.
module Network.AWS.Pinpoint.GetSegments

-- | Creates a value of <a>GetSegments</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gssToken</a> - Undocumented member.</li>
--   <li><a>gssPageSize</a> - Undocumented member.</li>
--   <li><a>gssApplicationId</a> - Undocumented member.</li>
--   </ul>
getSegments :: Text -> GetSegments

-- | <i>See:</i> <a>getSegments</a> smart constructor.
data GetSegments

-- | Undocumented member.
gssToken :: Lens' GetSegments (Maybe Text)

-- | Undocumented member.
gssPageSize :: Lens' GetSegments (Maybe Text)

-- | Undocumented member.
gssApplicationId :: Lens' GetSegments Text

-- | Creates a value of <a>GetSegmentsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gsrsSegmentsResponse</a> - Undocumented member.</li>
--   </ul>
getSegmentsResponse :: Int -> SegmentsResponse -> GetSegmentsResponse

-- | <i>See:</i> <a>getSegmentsResponse</a> smart constructor.
data GetSegmentsResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gsrsResponseStatus :: Lens' GetSegmentsResponse Int

-- | Undocumented member.
gsrsSegmentsResponse :: Lens' GetSegmentsResponse SegmentsResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetSegments.GetSegmentsResponse
instance Data.Data.Data Network.AWS.Pinpoint.GetSegments.GetSegmentsResponse
instance GHC.Show.Show Network.AWS.Pinpoint.GetSegments.GetSegmentsResponse
instance GHC.Read.Read Network.AWS.Pinpoint.GetSegments.GetSegmentsResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetSegments.GetSegmentsResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetSegments.GetSegments
instance Data.Data.Data Network.AWS.Pinpoint.GetSegments.GetSegments
instance GHC.Show.Show Network.AWS.Pinpoint.GetSegments.GetSegments
instance GHC.Read.Read Network.AWS.Pinpoint.GetSegments.GetSegments
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetSegments.GetSegments
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.GetSegments.GetSegments
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.GetSegments.GetSegments
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetSegments.GetSegments
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.GetSegments.GetSegments
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.GetSegments.GetSegments
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.GetSegments.GetSegments
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetSegments.GetSegmentsResponse


-- | Returns information about your segment versions.
module Network.AWS.Pinpoint.GetSegmentVersions

-- | Creates a value of <a>GetSegmentVersions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsvToken</a> - Undocumented member.</li>
--   <li><a>gsvPageSize</a> - Undocumented member.</li>
--   <li><a>gsvSegmentId</a> - Undocumented member.</li>
--   <li><a>gsvApplicationId</a> - Undocumented member.</li>
--   </ul>
getSegmentVersions :: Text -> Text -> GetSegmentVersions

-- | <i>See:</i> <a>getSegmentVersions</a> smart constructor.
data GetSegmentVersions

-- | Undocumented member.
gsvToken :: Lens' GetSegmentVersions (Maybe Text)

-- | Undocumented member.
gsvPageSize :: Lens' GetSegmentVersions (Maybe Text)

-- | Undocumented member.
gsvSegmentId :: Lens' GetSegmentVersions Text

-- | Undocumented member.
gsvApplicationId :: Lens' GetSegmentVersions Text

-- | Creates a value of <a>GetSegmentVersionsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>grsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>grsSegmentsResponse</a> - Undocumented member.</li>
--   </ul>
getSegmentVersionsResponse :: Int -> SegmentsResponse -> GetSegmentVersionsResponse

-- | <i>See:</i> <a>getSegmentVersionsResponse</a> smart constructor.
data GetSegmentVersionsResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
grsResponseStatus :: Lens' GetSegmentVersionsResponse Int

-- | Undocumented member.
grsSegmentsResponse :: Lens' GetSegmentVersionsResponse SegmentsResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetSegmentVersions.GetSegmentVersionsResponse
instance Data.Data.Data Network.AWS.Pinpoint.GetSegmentVersions.GetSegmentVersionsResponse
instance GHC.Show.Show Network.AWS.Pinpoint.GetSegmentVersions.GetSegmentVersionsResponse
instance GHC.Read.Read Network.AWS.Pinpoint.GetSegmentVersions.GetSegmentVersionsResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetSegmentVersions.GetSegmentVersionsResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetSegmentVersions.GetSegmentVersions
instance Data.Data.Data Network.AWS.Pinpoint.GetSegmentVersions.GetSegmentVersions
instance GHC.Show.Show Network.AWS.Pinpoint.GetSegmentVersions.GetSegmentVersions
instance GHC.Read.Read Network.AWS.Pinpoint.GetSegmentVersions.GetSegmentVersions
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetSegmentVersions.GetSegmentVersions
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.GetSegmentVersions.GetSegmentVersions
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.GetSegmentVersions.GetSegmentVersions
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetSegmentVersions.GetSegmentVersions
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.GetSegmentVersions.GetSegmentVersions
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.GetSegmentVersions.GetSegmentVersions
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.GetSegmentVersions.GetSegmentVersions
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetSegmentVersions.GetSegmentVersionsResponse


-- | Returns information about a segment version.
module Network.AWS.Pinpoint.GetSegmentVersion

-- | Creates a value of <a>GetSegmentVersion</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gSegmentId</a> - Undocumented member.</li>
--   <li><a>gVersion</a> - Undocumented member.</li>
--   <li><a>gApplicationId</a> - Undocumented member.</li>
--   </ul>
getSegmentVersion :: Text -> Text -> Text -> GetSegmentVersion

-- | <i>See:</i> <a>getSegmentVersion</a> smart constructor.
data GetSegmentVersion

-- | Undocumented member.
gSegmentId :: Lens' GetSegmentVersion Text

-- | Undocumented member.
gVersion :: Lens' GetSegmentVersion Text

-- | Undocumented member.
gApplicationId :: Lens' GetSegmentVersion Text

-- | Creates a value of <a>GetSegmentVersionResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsvrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gsvrsSegmentResponse</a> - Undocumented member.</li>
--   </ul>
getSegmentVersionResponse :: Int -> SegmentResponse -> GetSegmentVersionResponse

-- | <i>See:</i> <a>getSegmentVersionResponse</a> smart constructor.
data GetSegmentVersionResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gsvrsResponseStatus :: Lens' GetSegmentVersionResponse Int

-- | Undocumented member.
gsvrsSegmentResponse :: Lens' GetSegmentVersionResponse SegmentResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetSegmentVersion.GetSegmentVersionResponse
instance Data.Data.Data Network.AWS.Pinpoint.GetSegmentVersion.GetSegmentVersionResponse
instance GHC.Show.Show Network.AWS.Pinpoint.GetSegmentVersion.GetSegmentVersionResponse
instance GHC.Read.Read Network.AWS.Pinpoint.GetSegmentVersion.GetSegmentVersionResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetSegmentVersion.GetSegmentVersionResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetSegmentVersion.GetSegmentVersion
instance Data.Data.Data Network.AWS.Pinpoint.GetSegmentVersion.GetSegmentVersion
instance GHC.Show.Show Network.AWS.Pinpoint.GetSegmentVersion.GetSegmentVersion
instance GHC.Read.Read Network.AWS.Pinpoint.GetSegmentVersion.GetSegmentVersion
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetSegmentVersion.GetSegmentVersion
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.GetSegmentVersion.GetSegmentVersion
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.GetSegmentVersion.GetSegmentVersion
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetSegmentVersion.GetSegmentVersion
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.GetSegmentVersion.GetSegmentVersion
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.GetSegmentVersion.GetSegmentVersion
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.GetSegmentVersion.GetSegmentVersion
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetSegmentVersion.GetSegmentVersionResponse


-- | Returns a list of import jobs for a specific segment.
module Network.AWS.Pinpoint.GetSegmentImportJobs

-- | Creates a value of <a>GetSegmentImportJobs</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsijToken</a> - Undocumented member.</li>
--   <li><a>gsijPageSize</a> - Undocumented member.</li>
--   <li><a>gsijSegmentId</a> - Undocumented member.</li>
--   <li><a>gsijApplicationId</a> - Undocumented member.</li>
--   </ul>
getSegmentImportJobs :: Text -> Text -> GetSegmentImportJobs

-- | <i>See:</i> <a>getSegmentImportJobs</a> smart constructor.
data GetSegmentImportJobs

-- | Undocumented member.
gsijToken :: Lens' GetSegmentImportJobs (Maybe Text)

-- | Undocumented member.
gsijPageSize :: Lens' GetSegmentImportJobs (Maybe Text)

-- | Undocumented member.
gsijSegmentId :: Lens' GetSegmentImportJobs Text

-- | Undocumented member.
gsijApplicationId :: Lens' GetSegmentImportJobs Text

-- | Creates a value of <a>GetSegmentImportJobsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsijrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gsijrsImportJobsResponse</a> - Undocumented member.</li>
--   </ul>
getSegmentImportJobsResponse :: Int -> ImportJobsResponse -> GetSegmentImportJobsResponse

-- | <i>See:</i> <a>getSegmentImportJobsResponse</a> smart constructor.
data GetSegmentImportJobsResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gsijrsResponseStatus :: Lens' GetSegmentImportJobsResponse Int

-- | Undocumented member.
gsijrsImportJobsResponse :: Lens' GetSegmentImportJobsResponse ImportJobsResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetSegmentImportJobs.GetSegmentImportJobsResponse
instance Data.Data.Data Network.AWS.Pinpoint.GetSegmentImportJobs.GetSegmentImportJobsResponse
instance GHC.Show.Show Network.AWS.Pinpoint.GetSegmentImportJobs.GetSegmentImportJobsResponse
instance GHC.Read.Read Network.AWS.Pinpoint.GetSegmentImportJobs.GetSegmentImportJobsResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetSegmentImportJobs.GetSegmentImportJobsResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetSegmentImportJobs.GetSegmentImportJobs
instance Data.Data.Data Network.AWS.Pinpoint.GetSegmentImportJobs.GetSegmentImportJobs
instance GHC.Show.Show Network.AWS.Pinpoint.GetSegmentImportJobs.GetSegmentImportJobs
instance GHC.Read.Read Network.AWS.Pinpoint.GetSegmentImportJobs.GetSegmentImportJobs
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetSegmentImportJobs.GetSegmentImportJobs
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.GetSegmentImportJobs.GetSegmentImportJobs
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.GetSegmentImportJobs.GetSegmentImportJobs
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetSegmentImportJobs.GetSegmentImportJobs
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.GetSegmentImportJobs.GetSegmentImportJobs
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.GetSegmentImportJobs.GetSegmentImportJobs
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.GetSegmentImportJobs.GetSegmentImportJobs
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetSegmentImportJobs.GetSegmentImportJobsResponse


-- | Returns information about a segment.
module Network.AWS.Pinpoint.GetSegment

-- | Creates a value of <a>GetSegment</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsSegmentId</a> - Undocumented member.</li>
--   <li><a>gsApplicationId</a> - Undocumented member.</li>
--   </ul>
getSegment :: Text -> Text -> GetSegment

-- | <i>See:</i> <a>getSegment</a> smart constructor.
data GetSegment

-- | Undocumented member.
gsSegmentId :: Lens' GetSegment Text

-- | Undocumented member.
gsApplicationId :: Lens' GetSegment Text

-- | Creates a value of <a>GetSegmentResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>getrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>getrsSegmentResponse</a> - Undocumented member.</li>
--   </ul>
getSegmentResponse :: Int -> SegmentResponse -> GetSegmentResponse

-- | <i>See:</i> <a>getSegmentResponse</a> smart constructor.
data GetSegmentResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
getrsResponseStatus :: Lens' GetSegmentResponse Int

-- | Undocumented member.
getrsSegmentResponse :: Lens' GetSegmentResponse SegmentResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetSegment.GetSegmentResponse
instance Data.Data.Data Network.AWS.Pinpoint.GetSegment.GetSegmentResponse
instance GHC.Show.Show Network.AWS.Pinpoint.GetSegment.GetSegmentResponse
instance GHC.Read.Read Network.AWS.Pinpoint.GetSegment.GetSegmentResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetSegment.GetSegmentResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetSegment.GetSegment
instance Data.Data.Data Network.AWS.Pinpoint.GetSegment.GetSegment
instance GHC.Show.Show Network.AWS.Pinpoint.GetSegment.GetSegment
instance GHC.Read.Read Network.AWS.Pinpoint.GetSegment.GetSegment
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetSegment.GetSegment
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.GetSegment.GetSegment
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.GetSegment.GetSegment
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetSegment.GetSegment
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.GetSegment.GetSegment
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.GetSegment.GetSegment
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.GetSegment.GetSegment
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetSegment.GetSegmentResponse


-- | Returns information about your import jobs.
module Network.AWS.Pinpoint.GetImportJobs

-- | Creates a value of <a>GetImportJobs</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gijsToken</a> - Undocumented member.</li>
--   <li><a>gijsPageSize</a> - Undocumented member.</li>
--   <li><a>gijsApplicationId</a> - Undocumented member.</li>
--   </ul>
getImportJobs :: Text -> GetImportJobs

-- | <i>See:</i> <a>getImportJobs</a> smart constructor.
data GetImportJobs

-- | Undocumented member.
gijsToken :: Lens' GetImportJobs (Maybe Text)

-- | Undocumented member.
gijsPageSize :: Lens' GetImportJobs (Maybe Text)

-- | Undocumented member.
gijsApplicationId :: Lens' GetImportJobs Text

-- | Creates a value of <a>GetImportJobsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gijsrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gijsrsImportJobsResponse</a> - Undocumented member.</li>
--   </ul>
getImportJobsResponse :: Int -> ImportJobsResponse -> GetImportJobsResponse

-- | <i>See:</i> <a>getImportJobsResponse</a> smart constructor.
data GetImportJobsResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gijsrsResponseStatus :: Lens' GetImportJobsResponse Int

-- | Undocumented member.
gijsrsImportJobsResponse :: Lens' GetImportJobsResponse ImportJobsResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetImportJobs.GetImportJobsResponse
instance Data.Data.Data Network.AWS.Pinpoint.GetImportJobs.GetImportJobsResponse
instance GHC.Show.Show Network.AWS.Pinpoint.GetImportJobs.GetImportJobsResponse
instance GHC.Read.Read Network.AWS.Pinpoint.GetImportJobs.GetImportJobsResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetImportJobs.GetImportJobsResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetImportJobs.GetImportJobs
instance Data.Data.Data Network.AWS.Pinpoint.GetImportJobs.GetImportJobs
instance GHC.Show.Show Network.AWS.Pinpoint.GetImportJobs.GetImportJobs
instance GHC.Read.Read Network.AWS.Pinpoint.GetImportJobs.GetImportJobs
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetImportJobs.GetImportJobs
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.GetImportJobs.GetImportJobs
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.GetImportJobs.GetImportJobs
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetImportJobs.GetImportJobs
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.GetImportJobs.GetImportJobs
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.GetImportJobs.GetImportJobs
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.GetImportJobs.GetImportJobs
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetImportJobs.GetImportJobsResponse


-- | Returns information about an import job.
module Network.AWS.Pinpoint.GetImportJob

-- | Creates a value of <a>GetImportJob</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gijApplicationId</a> - Undocumented member.</li>
--   <li><a>gijJobId</a> - Undocumented member.</li>
--   </ul>
getImportJob :: Text -> Text -> GetImportJob

-- | <i>See:</i> <a>getImportJob</a> smart constructor.
data GetImportJob

-- | Undocumented member.
gijApplicationId :: Lens' GetImportJob Text

-- | Undocumented member.
gijJobId :: Lens' GetImportJob Text

-- | Creates a value of <a>GetImportJobResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gijrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gijrsImportJobResponse</a> - Undocumented member.</li>
--   </ul>
getImportJobResponse :: Int -> ImportJobResponse -> GetImportJobResponse

-- | <i>See:</i> <a>getImportJobResponse</a> smart constructor.
data GetImportJobResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gijrsResponseStatus :: Lens' GetImportJobResponse Int

-- | Undocumented member.
gijrsImportJobResponse :: Lens' GetImportJobResponse ImportJobResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetImportJob.GetImportJobResponse
instance Data.Data.Data Network.AWS.Pinpoint.GetImportJob.GetImportJobResponse
instance GHC.Show.Show Network.AWS.Pinpoint.GetImportJob.GetImportJobResponse
instance GHC.Read.Read Network.AWS.Pinpoint.GetImportJob.GetImportJobResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetImportJob.GetImportJobResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetImportJob.GetImportJob
instance Data.Data.Data Network.AWS.Pinpoint.GetImportJob.GetImportJob
instance GHC.Show.Show Network.AWS.Pinpoint.GetImportJob.GetImportJob
instance GHC.Read.Read Network.AWS.Pinpoint.GetImportJob.GetImportJob
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetImportJob.GetImportJob
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.GetImportJob.GetImportJob
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.GetImportJob.GetImportJob
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetImportJob.GetImportJob
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.GetImportJob.GetImportJob
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.GetImportJob.GetImportJob
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.GetImportJob.GetImportJob
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetImportJob.GetImportJobResponse


-- | Returns information about the GCM channel for an app.
module Network.AWS.Pinpoint.GetGCMChannel

-- | Creates a value of <a>GetGCMChannel</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ggcApplicationId</a> - Undocumented member.</li>
--   </ul>
getGCMChannel :: Text -> GetGCMChannel

-- | <i>See:</i> <a>getGCMChannel</a> smart constructor.
data GetGCMChannel

-- | Undocumented member.
ggcApplicationId :: Lens' GetGCMChannel Text

-- | Creates a value of <a>GetGCMChannelResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ggcrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>ggcrsGCMChannelResponse</a> - Undocumented member.</li>
--   </ul>
getGCMChannelResponse :: Int -> GCMChannelResponse -> GetGCMChannelResponse

-- | <i>See:</i> <a>getGCMChannelResponse</a> smart constructor.
data GetGCMChannelResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ggcrsResponseStatus :: Lens' GetGCMChannelResponse Int

-- | Undocumented member.
ggcrsGCMChannelResponse :: Lens' GetGCMChannelResponse GCMChannelResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetGCMChannel.GetGCMChannelResponse
instance Data.Data.Data Network.AWS.Pinpoint.GetGCMChannel.GetGCMChannelResponse
instance GHC.Show.Show Network.AWS.Pinpoint.GetGCMChannel.GetGCMChannelResponse
instance GHC.Read.Read Network.AWS.Pinpoint.GetGCMChannel.GetGCMChannelResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetGCMChannel.GetGCMChannelResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetGCMChannel.GetGCMChannel
instance Data.Data.Data Network.AWS.Pinpoint.GetGCMChannel.GetGCMChannel
instance GHC.Show.Show Network.AWS.Pinpoint.GetGCMChannel.GetGCMChannel
instance GHC.Read.Read Network.AWS.Pinpoint.GetGCMChannel.GetGCMChannel
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetGCMChannel.GetGCMChannel
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.GetGCMChannel.GetGCMChannel
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.GetGCMChannel.GetGCMChannel
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetGCMChannel.GetGCMChannel
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.GetGCMChannel.GetGCMChannel
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.GetGCMChannel.GetGCMChannel
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.GetGCMChannel.GetGCMChannel
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetGCMChannel.GetGCMChannelResponse


-- | Returns information about an endpoint.
module Network.AWS.Pinpoint.GetEndpoint

-- | Creates a value of <a>GetEndpoint</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>geApplicationId</a> - Undocumented member.</li>
--   <li><a>geEndpointId</a> - Undocumented member.</li>
--   </ul>
getEndpoint :: Text -> Text -> GetEndpoint

-- | <i>See:</i> <a>getEndpoint</a> smart constructor.
data GetEndpoint

-- | Undocumented member.
geApplicationId :: Lens' GetEndpoint Text

-- | Undocumented member.
geEndpointId :: Lens' GetEndpoint Text

-- | Creates a value of <a>GetEndpointResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gersResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gersEndpointResponse</a> - Undocumented member.</li>
--   </ul>
getEndpointResponse :: Int -> EndpointResponse -> GetEndpointResponse

-- | <i>See:</i> <a>getEndpointResponse</a> smart constructor.
data GetEndpointResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gersResponseStatus :: Lens' GetEndpointResponse Int

-- | Undocumented member.
gersEndpointResponse :: Lens' GetEndpointResponse EndpointResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetEndpoint.GetEndpointResponse
instance Data.Data.Data Network.AWS.Pinpoint.GetEndpoint.GetEndpointResponse
instance GHC.Show.Show Network.AWS.Pinpoint.GetEndpoint.GetEndpointResponse
instance GHC.Read.Read Network.AWS.Pinpoint.GetEndpoint.GetEndpointResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetEndpoint.GetEndpointResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetEndpoint.GetEndpoint
instance Data.Data.Data Network.AWS.Pinpoint.GetEndpoint.GetEndpoint
instance GHC.Show.Show Network.AWS.Pinpoint.GetEndpoint.GetEndpoint
instance GHC.Read.Read Network.AWS.Pinpoint.GetEndpoint.GetEndpoint
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetEndpoint.GetEndpoint
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.GetEndpoint.GetEndpoint
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.GetEndpoint.GetEndpoint
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetEndpoint.GetEndpoint
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.GetEndpoint.GetEndpoint
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.GetEndpoint.GetEndpoint
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.GetEndpoint.GetEndpoint
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetEndpoint.GetEndpointResponse


-- | Returns information about your campaigns.
module Network.AWS.Pinpoint.GetCampaigns

-- | Creates a value of <a>GetCampaigns</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gcsToken</a> - Undocumented member.</li>
--   <li><a>gcsPageSize</a> - Undocumented member.</li>
--   <li><a>gcsApplicationId</a> - Undocumented member.</li>
--   </ul>
getCampaigns :: Text -> GetCampaigns

-- | <i>See:</i> <a>getCampaigns</a> smart constructor.
data GetCampaigns

-- | Undocumented member.
gcsToken :: Lens' GetCampaigns (Maybe Text)

-- | Undocumented member.
gcsPageSize :: Lens' GetCampaigns (Maybe Text)

-- | Undocumented member.
gcsApplicationId :: Lens' GetCampaigns Text

-- | Creates a value of <a>GetCampaignsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gcsrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gcsrsCampaignsResponse</a> - Undocumented member.</li>
--   </ul>
getCampaignsResponse :: Int -> CampaignsResponse -> GetCampaignsResponse

-- | <i>See:</i> <a>getCampaignsResponse</a> smart constructor.
data GetCampaignsResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gcsrsResponseStatus :: Lens' GetCampaignsResponse Int

-- | Undocumented member.
gcsrsCampaignsResponse :: Lens' GetCampaignsResponse CampaignsResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetCampaigns.GetCampaignsResponse
instance Data.Data.Data Network.AWS.Pinpoint.GetCampaigns.GetCampaignsResponse
instance GHC.Show.Show Network.AWS.Pinpoint.GetCampaigns.GetCampaignsResponse
instance GHC.Read.Read Network.AWS.Pinpoint.GetCampaigns.GetCampaignsResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetCampaigns.GetCampaignsResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetCampaigns.GetCampaigns
instance Data.Data.Data Network.AWS.Pinpoint.GetCampaigns.GetCampaigns
instance GHC.Show.Show Network.AWS.Pinpoint.GetCampaigns.GetCampaigns
instance GHC.Read.Read Network.AWS.Pinpoint.GetCampaigns.GetCampaigns
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetCampaigns.GetCampaigns
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.GetCampaigns.GetCampaigns
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.GetCampaigns.GetCampaigns
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetCampaigns.GetCampaigns
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.GetCampaigns.GetCampaigns
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.GetCampaigns.GetCampaigns
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.GetCampaigns.GetCampaigns
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetCampaigns.GetCampaignsResponse


-- | Returns information about your campaign versions.
module Network.AWS.Pinpoint.GetCampaignVersions

-- | Creates a value of <a>GetCampaignVersions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gcvToken</a> - Undocumented member.</li>
--   <li><a>gcvPageSize</a> - Undocumented member.</li>
--   <li><a>gcvApplicationId</a> - Undocumented member.</li>
--   <li><a>gcvCampaignId</a> - Undocumented member.</li>
--   </ul>
getCampaignVersions :: Text -> Text -> GetCampaignVersions

-- | <i>See:</i> <a>getCampaignVersions</a> smart constructor.
data GetCampaignVersions

-- | Undocumented member.
gcvToken :: Lens' GetCampaignVersions (Maybe Text)

-- | Undocumented member.
gcvPageSize :: Lens' GetCampaignVersions (Maybe Text)

-- | Undocumented member.
gcvApplicationId :: Lens' GetCampaignVersions Text

-- | Undocumented member.
gcvCampaignId :: Lens' GetCampaignVersions Text

-- | Creates a value of <a>GetCampaignVersionsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gcvrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gcvrsCampaignsResponse</a> - Undocumented member.</li>
--   </ul>
getCampaignVersionsResponse :: Int -> CampaignsResponse -> GetCampaignVersionsResponse

-- | <i>See:</i> <a>getCampaignVersionsResponse</a> smart constructor.
data GetCampaignVersionsResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gcvrsResponseStatus :: Lens' GetCampaignVersionsResponse Int

-- | Undocumented member.
gcvrsCampaignsResponse :: Lens' GetCampaignVersionsResponse CampaignsResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetCampaignVersions.GetCampaignVersionsResponse
instance Data.Data.Data Network.AWS.Pinpoint.GetCampaignVersions.GetCampaignVersionsResponse
instance GHC.Show.Show Network.AWS.Pinpoint.GetCampaignVersions.GetCampaignVersionsResponse
instance GHC.Read.Read Network.AWS.Pinpoint.GetCampaignVersions.GetCampaignVersionsResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetCampaignVersions.GetCampaignVersionsResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetCampaignVersions.GetCampaignVersions
instance Data.Data.Data Network.AWS.Pinpoint.GetCampaignVersions.GetCampaignVersions
instance GHC.Show.Show Network.AWS.Pinpoint.GetCampaignVersions.GetCampaignVersions
instance GHC.Read.Read Network.AWS.Pinpoint.GetCampaignVersions.GetCampaignVersions
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetCampaignVersions.GetCampaignVersions
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.GetCampaignVersions.GetCampaignVersions
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.GetCampaignVersions.GetCampaignVersions
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetCampaignVersions.GetCampaignVersions
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.GetCampaignVersions.GetCampaignVersions
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.GetCampaignVersions.GetCampaignVersions
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.GetCampaignVersions.GetCampaignVersions
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetCampaignVersions.GetCampaignVersionsResponse


-- | Returns information about your campaign versions.
module Network.AWS.Pinpoint.GetCampaignVersion

-- | Creates a value of <a>GetCampaignVersion</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gcvcVersion</a> - Undocumented member.</li>
--   <li><a>gcvcApplicationId</a> - Undocumented member.</li>
--   <li><a>gcvcCampaignId</a> - Undocumented member.</li>
--   </ul>
getCampaignVersion :: Text -> Text -> Text -> GetCampaignVersion

-- | <i>See:</i> <a>getCampaignVersion</a> smart constructor.
data GetCampaignVersion

-- | Undocumented member.
gcvcVersion :: Lens' GetCampaignVersion Text

-- | Undocumented member.
gcvcApplicationId :: Lens' GetCampaignVersion Text

-- | Undocumented member.
gcvcCampaignId :: Lens' GetCampaignVersion Text

-- | Creates a value of <a>GetCampaignVersionResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gcvcrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gcvcrsCampaignResponse</a> - Undocumented member.</li>
--   </ul>
getCampaignVersionResponse :: Int -> CampaignResponse -> GetCampaignVersionResponse

-- | <i>See:</i> <a>getCampaignVersionResponse</a> smart constructor.
data GetCampaignVersionResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gcvcrsResponseStatus :: Lens' GetCampaignVersionResponse Int

-- | Undocumented member.
gcvcrsCampaignResponse :: Lens' GetCampaignVersionResponse CampaignResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetCampaignVersion.GetCampaignVersionResponse
instance Data.Data.Data Network.AWS.Pinpoint.GetCampaignVersion.GetCampaignVersionResponse
instance GHC.Show.Show Network.AWS.Pinpoint.GetCampaignVersion.GetCampaignVersionResponse
instance GHC.Read.Read Network.AWS.Pinpoint.GetCampaignVersion.GetCampaignVersionResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetCampaignVersion.GetCampaignVersionResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetCampaignVersion.GetCampaignVersion
instance Data.Data.Data Network.AWS.Pinpoint.GetCampaignVersion.GetCampaignVersion
instance GHC.Show.Show Network.AWS.Pinpoint.GetCampaignVersion.GetCampaignVersion
instance GHC.Read.Read Network.AWS.Pinpoint.GetCampaignVersion.GetCampaignVersion
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetCampaignVersion.GetCampaignVersion
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.GetCampaignVersion.GetCampaignVersion
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.GetCampaignVersion.GetCampaignVersion
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetCampaignVersion.GetCampaignVersion
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.GetCampaignVersion.GetCampaignVersion
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.GetCampaignVersion.GetCampaignVersion
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.GetCampaignVersion.GetCampaignVersion
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetCampaignVersion.GetCampaignVersionResponse


-- | Returns information about the activity performed by a campaign.
module Network.AWS.Pinpoint.GetCampaignActivities

-- | Creates a value of <a>GetCampaignActivities</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gcaToken</a> - Undocumented member.</li>
--   <li><a>gcaPageSize</a> - Undocumented member.</li>
--   <li><a>gcaApplicationId</a> - Undocumented member.</li>
--   <li><a>gcaCampaignId</a> - Undocumented member.</li>
--   </ul>
getCampaignActivities :: Text -> Text -> GetCampaignActivities

-- | <i>See:</i> <a>getCampaignActivities</a> smart constructor.
data GetCampaignActivities

-- | Undocumented member.
gcaToken :: Lens' GetCampaignActivities (Maybe Text)

-- | Undocumented member.
gcaPageSize :: Lens' GetCampaignActivities (Maybe Text)

-- | Undocumented member.
gcaApplicationId :: Lens' GetCampaignActivities Text

-- | Undocumented member.
gcaCampaignId :: Lens' GetCampaignActivities Text

-- | Creates a value of <a>GetCampaignActivitiesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gcarsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gcarsActivitiesResponse</a> - Undocumented member.</li>
--   </ul>
getCampaignActivitiesResponse :: Int -> ActivitiesResponse -> GetCampaignActivitiesResponse

-- | <i>See:</i> <a>getCampaignActivitiesResponse</a> smart constructor.
data GetCampaignActivitiesResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gcarsResponseStatus :: Lens' GetCampaignActivitiesResponse Int

-- | Undocumented member.
gcarsActivitiesResponse :: Lens' GetCampaignActivitiesResponse ActivitiesResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetCampaignActivities.GetCampaignActivitiesResponse
instance Data.Data.Data Network.AWS.Pinpoint.GetCampaignActivities.GetCampaignActivitiesResponse
instance GHC.Show.Show Network.AWS.Pinpoint.GetCampaignActivities.GetCampaignActivitiesResponse
instance GHC.Read.Read Network.AWS.Pinpoint.GetCampaignActivities.GetCampaignActivitiesResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetCampaignActivities.GetCampaignActivitiesResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetCampaignActivities.GetCampaignActivities
instance Data.Data.Data Network.AWS.Pinpoint.GetCampaignActivities.GetCampaignActivities
instance GHC.Show.Show Network.AWS.Pinpoint.GetCampaignActivities.GetCampaignActivities
instance GHC.Read.Read Network.AWS.Pinpoint.GetCampaignActivities.GetCampaignActivities
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetCampaignActivities.GetCampaignActivities
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.GetCampaignActivities.GetCampaignActivities
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.GetCampaignActivities.GetCampaignActivities
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetCampaignActivities.GetCampaignActivities
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.GetCampaignActivities.GetCampaignActivities
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.GetCampaignActivities.GetCampaignActivities
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.GetCampaignActivities.GetCampaignActivities
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetCampaignActivities.GetCampaignActivitiesResponse


-- | Returns information about a campaign.
module Network.AWS.Pinpoint.GetCampaign

-- | Creates a value of <a>GetCampaign</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>getCampaignId</a> - Undocumented member.</li>
--   <li><a>getApplicationId</a> - Undocumented member.</li>
--   </ul>
getCampaign :: Text -> Text -> GetCampaign

-- | <i>See:</i> <a>getCampaign</a> smart constructor.
data GetCampaign

-- | Undocumented member.
getCampaignId :: Lens' GetCampaign Text

-- | Undocumented member.
getApplicationId :: Lens' GetCampaign Text

-- | Creates a value of <a>GetCampaignResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gcrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gcrsCampaignResponse</a> - Undocumented member.</li>
--   </ul>
getCampaignResponse :: Int -> CampaignResponse -> GetCampaignResponse

-- | <i>See:</i> <a>getCampaignResponse</a> smart constructor.
data GetCampaignResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gcrsResponseStatus :: Lens' GetCampaignResponse Int

-- | Undocumented member.
gcrsCampaignResponse :: Lens' GetCampaignResponse CampaignResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetCampaign.GetCampaignResponse
instance Data.Data.Data Network.AWS.Pinpoint.GetCampaign.GetCampaignResponse
instance GHC.Show.Show Network.AWS.Pinpoint.GetCampaign.GetCampaignResponse
instance GHC.Read.Read Network.AWS.Pinpoint.GetCampaign.GetCampaignResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetCampaign.GetCampaignResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetCampaign.GetCampaign
instance Data.Data.Data Network.AWS.Pinpoint.GetCampaign.GetCampaign
instance GHC.Show.Show Network.AWS.Pinpoint.GetCampaign.GetCampaign
instance GHC.Read.Read Network.AWS.Pinpoint.GetCampaign.GetCampaign
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetCampaign.GetCampaign
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.GetCampaign.GetCampaign
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.GetCampaign.GetCampaign
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetCampaign.GetCampaign
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.GetCampaign.GetCampaign
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.GetCampaign.GetCampaign
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.GetCampaign.GetCampaign
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetCampaign.GetCampaignResponse


-- | Used to request the settings for an app.
module Network.AWS.Pinpoint.GetApplicationSettings

-- | Creates a value of <a>GetApplicationSettings</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gasApplicationId</a> - Undocumented member.</li>
--   </ul>
getApplicationSettings :: Text -> GetApplicationSettings

-- | <i>See:</i> <a>getApplicationSettings</a> smart constructor.
data GetApplicationSettings

-- | Undocumented member.
gasApplicationId :: Lens' GetApplicationSettings Text

-- | Creates a value of <a>GetApplicationSettingsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gasrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gasrsApplicationSettingsResource</a> - Undocumented
--   member.</li>
--   </ul>
getApplicationSettingsResponse :: Int -> ApplicationSettingsResource -> GetApplicationSettingsResponse

-- | <i>See:</i> <a>getApplicationSettingsResponse</a> smart constructor.
data GetApplicationSettingsResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gasrsResponseStatus :: Lens' GetApplicationSettingsResponse Int

-- | Undocumented member.
gasrsApplicationSettingsResource :: Lens' GetApplicationSettingsResponse ApplicationSettingsResource
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetApplicationSettings.GetApplicationSettingsResponse
instance Data.Data.Data Network.AWS.Pinpoint.GetApplicationSettings.GetApplicationSettingsResponse
instance GHC.Show.Show Network.AWS.Pinpoint.GetApplicationSettings.GetApplicationSettingsResponse
instance GHC.Read.Read Network.AWS.Pinpoint.GetApplicationSettings.GetApplicationSettingsResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetApplicationSettings.GetApplicationSettingsResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetApplicationSettings.GetApplicationSettings
instance Data.Data.Data Network.AWS.Pinpoint.GetApplicationSettings.GetApplicationSettings
instance GHC.Show.Show Network.AWS.Pinpoint.GetApplicationSettings.GetApplicationSettings
instance GHC.Read.Read Network.AWS.Pinpoint.GetApplicationSettings.GetApplicationSettings
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetApplicationSettings.GetApplicationSettings
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.GetApplicationSettings.GetApplicationSettings
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.GetApplicationSettings.GetApplicationSettings
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetApplicationSettings.GetApplicationSettings
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.GetApplicationSettings.GetApplicationSettings
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.GetApplicationSettings.GetApplicationSettings
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.GetApplicationSettings.GetApplicationSettings
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetApplicationSettings.GetApplicationSettingsResponse


-- | Returns information about the APNs channel for an app.
module Network.AWS.Pinpoint.GetAPNSChannel

-- | Creates a value of <a>GetAPNSChannel</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gacApplicationId</a> - Undocumented member.</li>
--   </ul>
getAPNSChannel :: Text -> GetAPNSChannel

-- | <i>See:</i> <a>getAPNSChannel</a> smart constructor.
data GetAPNSChannel

-- | Undocumented member.
gacApplicationId :: Lens' GetAPNSChannel Text

-- | Creates a value of <a>GetAPNSChannelResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gacrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gacrsAPNSChannelResponse</a> - Undocumented member.</li>
--   </ul>
getAPNSChannelResponse :: Int -> APNSChannelResponse -> GetAPNSChannelResponse

-- | <i>See:</i> <a>getAPNSChannelResponse</a> smart constructor.
data GetAPNSChannelResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gacrsResponseStatus :: Lens' GetAPNSChannelResponse Int

-- | Undocumented member.
gacrsAPNSChannelResponse :: Lens' GetAPNSChannelResponse APNSChannelResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetAPNSChannel.GetAPNSChannelResponse
instance Data.Data.Data Network.AWS.Pinpoint.GetAPNSChannel.GetAPNSChannelResponse
instance GHC.Show.Show Network.AWS.Pinpoint.GetAPNSChannel.GetAPNSChannelResponse
instance GHC.Read.Read Network.AWS.Pinpoint.GetAPNSChannel.GetAPNSChannelResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetAPNSChannel.GetAPNSChannelResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.GetAPNSChannel.GetAPNSChannel
instance Data.Data.Data Network.AWS.Pinpoint.GetAPNSChannel.GetAPNSChannel
instance GHC.Show.Show Network.AWS.Pinpoint.GetAPNSChannel.GetAPNSChannel
instance GHC.Read.Read Network.AWS.Pinpoint.GetAPNSChannel.GetAPNSChannel
instance GHC.Classes.Eq Network.AWS.Pinpoint.GetAPNSChannel.GetAPNSChannel
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.GetAPNSChannel.GetAPNSChannel
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.GetAPNSChannel.GetAPNSChannel
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetAPNSChannel.GetAPNSChannel
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.GetAPNSChannel.GetAPNSChannel
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.GetAPNSChannel.GetAPNSChannel
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.GetAPNSChannel.GetAPNSChannel
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.GetAPNSChannel.GetAPNSChannelResponse


-- | Deletes a segment.
module Network.AWS.Pinpoint.DeleteSegment

-- | Creates a value of <a>DeleteSegment</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsSegmentId</a> - Undocumented member.</li>
--   <li><a>dsApplicationId</a> - Undocumented member.</li>
--   </ul>
deleteSegment :: Text -> Text -> DeleteSegment

-- | <i>See:</i> <a>deleteSegment</a> smart constructor.
data DeleteSegment

-- | Undocumented member.
dsSegmentId :: Lens' DeleteSegment Text

-- | Undocumented member.
dsApplicationId :: Lens' DeleteSegment Text

-- | Creates a value of <a>DeleteSegmentResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>dsrsSegmentResponse</a> - Undocumented member.</li>
--   </ul>
deleteSegmentResponse :: Int -> SegmentResponse -> DeleteSegmentResponse

-- | <i>See:</i> <a>deleteSegmentResponse</a> smart constructor.
data DeleteSegmentResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dsrsResponseStatus :: Lens' DeleteSegmentResponse Int

-- | Undocumented member.
dsrsSegmentResponse :: Lens' DeleteSegmentResponse SegmentResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.DeleteSegment.DeleteSegmentResponse
instance Data.Data.Data Network.AWS.Pinpoint.DeleteSegment.DeleteSegmentResponse
instance GHC.Show.Show Network.AWS.Pinpoint.DeleteSegment.DeleteSegmentResponse
instance GHC.Read.Read Network.AWS.Pinpoint.DeleteSegment.DeleteSegmentResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.DeleteSegment.DeleteSegmentResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.DeleteSegment.DeleteSegment
instance Data.Data.Data Network.AWS.Pinpoint.DeleteSegment.DeleteSegment
instance GHC.Show.Show Network.AWS.Pinpoint.DeleteSegment.DeleteSegment
instance GHC.Read.Read Network.AWS.Pinpoint.DeleteSegment.DeleteSegment
instance GHC.Classes.Eq Network.AWS.Pinpoint.DeleteSegment.DeleteSegment
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.DeleteSegment.DeleteSegment
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.DeleteSegment.DeleteSegment
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.DeleteSegment.DeleteSegment
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.DeleteSegment.DeleteSegment
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.DeleteSegment.DeleteSegment
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.DeleteSegment.DeleteSegment
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.DeleteSegment.DeleteSegmentResponse


-- | Deletes the GCM channel for an app.
module Network.AWS.Pinpoint.DeleteGCMChannel

-- | Creates a value of <a>DeleteGCMChannel</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dgcApplicationId</a> - Undocumented member.</li>
--   </ul>
deleteGCMChannel :: Text -> DeleteGCMChannel

-- | <i>See:</i> <a>deleteGCMChannel</a> smart constructor.
data DeleteGCMChannel

-- | Undocumented member.
dgcApplicationId :: Lens' DeleteGCMChannel Text

-- | Creates a value of <a>DeleteGCMChannelResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dgcrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>dgcrsGCMChannelResponse</a> - Undocumented member.</li>
--   </ul>
deleteGCMChannelResponse :: Int -> GCMChannelResponse -> DeleteGCMChannelResponse

-- | <i>See:</i> <a>deleteGCMChannelResponse</a> smart constructor.
data DeleteGCMChannelResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dgcrsResponseStatus :: Lens' DeleteGCMChannelResponse Int

-- | Undocumented member.
dgcrsGCMChannelResponse :: Lens' DeleteGCMChannelResponse GCMChannelResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.DeleteGCMChannel.DeleteGCMChannelResponse
instance Data.Data.Data Network.AWS.Pinpoint.DeleteGCMChannel.DeleteGCMChannelResponse
instance GHC.Show.Show Network.AWS.Pinpoint.DeleteGCMChannel.DeleteGCMChannelResponse
instance GHC.Read.Read Network.AWS.Pinpoint.DeleteGCMChannel.DeleteGCMChannelResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.DeleteGCMChannel.DeleteGCMChannelResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.DeleteGCMChannel.DeleteGCMChannel
instance Data.Data.Data Network.AWS.Pinpoint.DeleteGCMChannel.DeleteGCMChannel
instance GHC.Show.Show Network.AWS.Pinpoint.DeleteGCMChannel.DeleteGCMChannel
instance GHC.Read.Read Network.AWS.Pinpoint.DeleteGCMChannel.DeleteGCMChannel
instance GHC.Classes.Eq Network.AWS.Pinpoint.DeleteGCMChannel.DeleteGCMChannel
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.DeleteGCMChannel.DeleteGCMChannel
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.DeleteGCMChannel.DeleteGCMChannel
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.DeleteGCMChannel.DeleteGCMChannel
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.DeleteGCMChannel.DeleteGCMChannel
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.DeleteGCMChannel.DeleteGCMChannel
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.DeleteGCMChannel.DeleteGCMChannel
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.DeleteGCMChannel.DeleteGCMChannelResponse


-- | Deletes a campaign.
module Network.AWS.Pinpoint.DeleteCampaign

-- | Creates a value of <a>DeleteCampaign</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcCampaignId</a> - Undocumented member.</li>
--   <li><a>dcApplicationId</a> - Undocumented member.</li>
--   </ul>
deleteCampaign :: Text -> Text -> DeleteCampaign

-- | <i>See:</i> <a>deleteCampaign</a> smart constructor.
data DeleteCampaign

-- | Undocumented member.
dcCampaignId :: Lens' DeleteCampaign Text

-- | Undocumented member.
dcApplicationId :: Lens' DeleteCampaign Text

-- | Creates a value of <a>DeleteCampaignResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>dcrsCampaignResponse</a> - Undocumented member.</li>
--   </ul>
deleteCampaignResponse :: Int -> CampaignResponse -> DeleteCampaignResponse

-- | <i>See:</i> <a>deleteCampaignResponse</a> smart constructor.
data DeleteCampaignResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dcrsResponseStatus :: Lens' DeleteCampaignResponse Int

-- | Undocumented member.
dcrsCampaignResponse :: Lens' DeleteCampaignResponse CampaignResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.DeleteCampaign.DeleteCampaignResponse
instance Data.Data.Data Network.AWS.Pinpoint.DeleteCampaign.DeleteCampaignResponse
instance GHC.Show.Show Network.AWS.Pinpoint.DeleteCampaign.DeleteCampaignResponse
instance GHC.Read.Read Network.AWS.Pinpoint.DeleteCampaign.DeleteCampaignResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.DeleteCampaign.DeleteCampaignResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.DeleteCampaign.DeleteCampaign
instance Data.Data.Data Network.AWS.Pinpoint.DeleteCampaign.DeleteCampaign
instance GHC.Show.Show Network.AWS.Pinpoint.DeleteCampaign.DeleteCampaign
instance GHC.Read.Read Network.AWS.Pinpoint.DeleteCampaign.DeleteCampaign
instance GHC.Classes.Eq Network.AWS.Pinpoint.DeleteCampaign.DeleteCampaign
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.DeleteCampaign.DeleteCampaign
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.DeleteCampaign.DeleteCampaign
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.DeleteCampaign.DeleteCampaign
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.DeleteCampaign.DeleteCampaign
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.DeleteCampaign.DeleteCampaign
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.DeleteCampaign.DeleteCampaign
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.DeleteCampaign.DeleteCampaignResponse


-- | Deletes the APNs channel for an app.
module Network.AWS.Pinpoint.DeleteAPNSChannel

-- | Creates a value of <a>DeleteAPNSChannel</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dacApplicationId</a> - Undocumented member.</li>
--   </ul>
deleteAPNSChannel :: Text -> DeleteAPNSChannel

-- | <i>See:</i> <a>deleteAPNSChannel</a> smart constructor.
data DeleteAPNSChannel

-- | Undocumented member.
dacApplicationId :: Lens' DeleteAPNSChannel Text

-- | Creates a value of <a>DeleteAPNSChannelResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dacrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>dacrsAPNSChannelResponse</a> - Undocumented member.</li>
--   </ul>
deleteAPNSChannelResponse :: Int -> APNSChannelResponse -> DeleteAPNSChannelResponse

-- | <i>See:</i> <a>deleteAPNSChannelResponse</a> smart constructor.
data DeleteAPNSChannelResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dacrsResponseStatus :: Lens' DeleteAPNSChannelResponse Int

-- | Undocumented member.
dacrsAPNSChannelResponse :: Lens' DeleteAPNSChannelResponse APNSChannelResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.DeleteAPNSChannel.DeleteAPNSChannelResponse
instance Data.Data.Data Network.AWS.Pinpoint.DeleteAPNSChannel.DeleteAPNSChannelResponse
instance GHC.Show.Show Network.AWS.Pinpoint.DeleteAPNSChannel.DeleteAPNSChannelResponse
instance GHC.Read.Read Network.AWS.Pinpoint.DeleteAPNSChannel.DeleteAPNSChannelResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.DeleteAPNSChannel.DeleteAPNSChannelResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.DeleteAPNSChannel.DeleteAPNSChannel
instance Data.Data.Data Network.AWS.Pinpoint.DeleteAPNSChannel.DeleteAPNSChannel
instance GHC.Show.Show Network.AWS.Pinpoint.DeleteAPNSChannel.DeleteAPNSChannel
instance GHC.Read.Read Network.AWS.Pinpoint.DeleteAPNSChannel.DeleteAPNSChannel
instance GHC.Classes.Eq Network.AWS.Pinpoint.DeleteAPNSChannel.DeleteAPNSChannel
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.DeleteAPNSChannel.DeleteAPNSChannel
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.DeleteAPNSChannel.DeleteAPNSChannel
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.DeleteAPNSChannel.DeleteAPNSChannel
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.DeleteAPNSChannel.DeleteAPNSChannel
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.DeleteAPNSChannel.DeleteAPNSChannel
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.DeleteAPNSChannel.DeleteAPNSChannel
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.DeleteAPNSChannel.DeleteAPNSChannelResponse


-- | Used to create or update a segment.
module Network.AWS.Pinpoint.CreateSegment

-- | Creates a value of <a>CreateSegment</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csApplicationId</a> - Undocumented member.</li>
--   <li><a>csWriteSegmentRequest</a> - Undocumented member.</li>
--   </ul>
createSegment :: Text -> WriteSegmentRequest -> CreateSegment

-- | <i>See:</i> <a>createSegment</a> smart constructor.
data CreateSegment

-- | Undocumented member.
csApplicationId :: Lens' CreateSegment Text

-- | Undocumented member.
csWriteSegmentRequest :: Lens' CreateSegment WriteSegmentRequest

-- | Creates a value of <a>CreateSegmentResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>csrsSegmentResponse</a> - Undocumented member.</li>
--   </ul>
createSegmentResponse :: Int -> SegmentResponse -> CreateSegmentResponse

-- | <i>See:</i> <a>createSegmentResponse</a> smart constructor.
data CreateSegmentResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
csrsResponseStatus :: Lens' CreateSegmentResponse Int

-- | Undocumented member.
csrsSegmentResponse :: Lens' CreateSegmentResponse SegmentResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.CreateSegment.CreateSegmentResponse
instance Data.Data.Data Network.AWS.Pinpoint.CreateSegment.CreateSegmentResponse
instance GHC.Show.Show Network.AWS.Pinpoint.CreateSegment.CreateSegmentResponse
instance GHC.Read.Read Network.AWS.Pinpoint.CreateSegment.CreateSegmentResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.CreateSegment.CreateSegmentResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.CreateSegment.CreateSegment
instance Data.Data.Data Network.AWS.Pinpoint.CreateSegment.CreateSegment
instance GHC.Show.Show Network.AWS.Pinpoint.CreateSegment.CreateSegment
instance GHC.Read.Read Network.AWS.Pinpoint.CreateSegment.CreateSegment
instance GHC.Classes.Eq Network.AWS.Pinpoint.CreateSegment.CreateSegment
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.CreateSegment.CreateSegment
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.CreateSegment.CreateSegment
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.CreateSegment.CreateSegment
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.CreateSegment.CreateSegment
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Pinpoint.CreateSegment.CreateSegment
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.CreateSegment.CreateSegment
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.CreateSegment.CreateSegment
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.CreateSegment.CreateSegmentResponse


-- | Creates or updates an import job.
module Network.AWS.Pinpoint.CreateImportJob

-- | Creates a value of <a>CreateImportJob</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cijApplicationId</a> - Undocumented member.</li>
--   <li><a>cijImportJobRequest</a> - Undocumented member.</li>
--   </ul>
createImportJob :: Text -> ImportJobRequest -> CreateImportJob

-- | <i>See:</i> <a>createImportJob</a> smart constructor.
data CreateImportJob

-- | Undocumented member.
cijApplicationId :: Lens' CreateImportJob Text

-- | Undocumented member.
cijImportJobRequest :: Lens' CreateImportJob ImportJobRequest

-- | Creates a value of <a>CreateImportJobResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cijrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>cijrsImportJobResponse</a> - Undocumented member.</li>
--   </ul>
createImportJobResponse :: Int -> ImportJobResponse -> CreateImportJobResponse

-- | <i>See:</i> <a>createImportJobResponse</a> smart constructor.
data CreateImportJobResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cijrsResponseStatus :: Lens' CreateImportJobResponse Int

-- | Undocumented member.
cijrsImportJobResponse :: Lens' CreateImportJobResponse ImportJobResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.CreateImportJob.CreateImportJobResponse
instance Data.Data.Data Network.AWS.Pinpoint.CreateImportJob.CreateImportJobResponse
instance GHC.Show.Show Network.AWS.Pinpoint.CreateImportJob.CreateImportJobResponse
instance GHC.Read.Read Network.AWS.Pinpoint.CreateImportJob.CreateImportJobResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.CreateImportJob.CreateImportJobResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.CreateImportJob.CreateImportJob
instance Data.Data.Data Network.AWS.Pinpoint.CreateImportJob.CreateImportJob
instance GHC.Show.Show Network.AWS.Pinpoint.CreateImportJob.CreateImportJob
instance GHC.Read.Read Network.AWS.Pinpoint.CreateImportJob.CreateImportJob
instance GHC.Classes.Eq Network.AWS.Pinpoint.CreateImportJob.CreateImportJob
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.CreateImportJob.CreateImportJob
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.CreateImportJob.CreateImportJob
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.CreateImportJob.CreateImportJob
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.CreateImportJob.CreateImportJob
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Pinpoint.CreateImportJob.CreateImportJob
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.CreateImportJob.CreateImportJob
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.CreateImportJob.CreateImportJob
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.CreateImportJob.CreateImportJobResponse


-- | Creates or updates a campaign.
module Network.AWS.Pinpoint.CreateCampaign

-- | Creates a value of <a>CreateCampaign</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccApplicationId</a> - Undocumented member.</li>
--   <li><a>ccWriteCampaignRequest</a> - Undocumented member.</li>
--   </ul>
createCampaign :: Text -> WriteCampaignRequest -> CreateCampaign

-- | <i>See:</i> <a>createCampaign</a> smart constructor.
data CreateCampaign

-- | Undocumented member.
ccApplicationId :: Lens' CreateCampaign Text

-- | Undocumented member.
ccWriteCampaignRequest :: Lens' CreateCampaign WriteCampaignRequest

-- | Creates a value of <a>CreateCampaignResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>ccrsCampaignResponse</a> - Undocumented member.</li>
--   </ul>
createCampaignResponse :: Int -> CampaignResponse -> CreateCampaignResponse

-- | <i>See:</i> <a>createCampaignResponse</a> smart constructor.
data CreateCampaignResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ccrsResponseStatus :: Lens' CreateCampaignResponse Int

-- | Undocumented member.
ccrsCampaignResponse :: Lens' CreateCampaignResponse CampaignResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.CreateCampaign.CreateCampaignResponse
instance Data.Data.Data Network.AWS.Pinpoint.CreateCampaign.CreateCampaignResponse
instance GHC.Show.Show Network.AWS.Pinpoint.CreateCampaign.CreateCampaignResponse
instance GHC.Read.Read Network.AWS.Pinpoint.CreateCampaign.CreateCampaignResponse
instance GHC.Classes.Eq Network.AWS.Pinpoint.CreateCampaign.CreateCampaignResponse
instance GHC.Generics.Generic Network.AWS.Pinpoint.CreateCampaign.CreateCampaign
instance Data.Data.Data Network.AWS.Pinpoint.CreateCampaign.CreateCampaign
instance GHC.Show.Show Network.AWS.Pinpoint.CreateCampaign.CreateCampaign
instance GHC.Read.Read Network.AWS.Pinpoint.CreateCampaign.CreateCampaign
instance GHC.Classes.Eq Network.AWS.Pinpoint.CreateCampaign.CreateCampaign
instance Network.AWS.Types.AWSRequest Network.AWS.Pinpoint.CreateCampaign.CreateCampaign
instance Data.Hashable.Class.Hashable Network.AWS.Pinpoint.CreateCampaign.CreateCampaign
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.CreateCampaign.CreateCampaign
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pinpoint.CreateCampaign.CreateCampaign
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Pinpoint.CreateCampaign.CreateCampaign
instance Network.AWS.Data.Path.ToPath Network.AWS.Pinpoint.CreateCampaign.CreateCampaign
instance Network.AWS.Data.Query.ToQuery Network.AWS.Pinpoint.CreateCampaign.CreateCampaign
instance Control.DeepSeq.NFData Network.AWS.Pinpoint.CreateCampaign.CreateCampaignResponse


-- | Amazon Pinpoint makes it easy to run targeted campaigns to drive user
--   engagement in mobile apps. Amazon Pinpoint helps you understand user
--   behavior, define which users to target, determine which messages to
--   send, schedule the best time to deliver the messages, and then track
--   the results of your campaign.
--   
--   Targeted push notifications based on app usage trends and user
--   behavior have become a popular approach for mobile app user engagement
--   because response rates are often several times higher than tradition
--   email marketing campaigns. By using targeted push notifications, you
--   can increase message relevance and effectiveness, measure engagement,
--   and continually improve your campaigns.
--   
--   Getting started with Amazon Pinpoint is easy. First, AWS Mobile Hub
--   guides you through the process to integrate the AWS Mobile SDK with
--   your app. Next, you define your target segments, campaign message, and
--   specify the delivery schedule. Once your campaign is running, Pinpoint
--   provides metrics so you can run analytics and track the impact of your
--   campaign.
--   
--   With Amazon Pinpoint, there are no upfront setup costs, and no fixed
--   monthly cost. You only pay for the number of users your campaign
--   targets, the messages you send, and the events you collect, so you can
--   start small and scale as your application grows.
module Network.AWS.Pinpoint

-- | API version <tt>2016-12-01</tt> of the Amazon Pinpoint SDK
--   configuration.
pinpoint :: Service

-- | Prism for ForbiddenException' errors.
_ForbiddenException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Prism for NotFoundException' errors.
_NotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Prism for TooManyRequestsException' errors.
_TooManyRequestsException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Prism for InternalServerErrorException' errors.
_InternalServerErrorException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Prism for MethodNotAllowedException' errors.
_MethodNotAllowedException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Prism for BadRequestException' errors.
_BadRequestException :: AsError a => Getting (First ServiceError) a ServiceError
data Action
DeepLink :: Action
OpenApp :: Action
URL :: Action
data AttributeType
Exclusive :: AttributeType
Inclusive :: AttributeType
data CampaignStatus
Completed :: CampaignStatus
Executing :: CampaignStatus
Paused :: CampaignStatus
PendingNextRun :: CampaignStatus
Scheduled :: CampaignStatus
data ChannelType
APNS :: ChannelType
GCM :: ChannelType
data DefinitionFormat
CSV :: DefinitionFormat
JSON :: DefinitionFormat
data DimensionType
DTExclusive :: DimensionType
DTInclusive :: DimensionType
data Duration
Day14 :: Duration
Day30 :: Duration
Day7 :: Duration
Hr24 :: Duration
data Frequency
Daily :: Frequency
Hourly :: Frequency
Monthly :: Frequency
Once :: Frequency
Weekly :: Frequency
data JobStatus
JSCompleted :: JobStatus
JSCompleting :: JobStatus
JSCreated :: JobStatus
JSFailed :: JobStatus
JSFailing :: JobStatus
JSInitializing :: JobStatus
JSProcessing :: JobStatus
data RecencyType
Active :: RecencyType
Inactive :: RecencyType
data SegmentType
Dimensional :: SegmentType
Import :: SegmentType

-- | <i>See:</i> <a>apnsChannelRequest</a> smart constructor.
data APNSChannelRequest

-- | Creates a value of <a>APNSChannelRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>acrPrivateKey</a> - The certificate private key.</li>
--   <li><a>acrCertificate</a> - The distribution certificate from
--   Apple.</li>
--   </ul>
apnsChannelRequest :: APNSChannelRequest

-- | The certificate private key.
acrPrivateKey :: Lens' APNSChannelRequest (Maybe Text)

-- | The distribution certificate from Apple.
acrCertificate :: Lens' APNSChannelRequest (Maybe Text)

-- | <i>See:</i> <a>apnsChannelResponse</a> smart constructor.
data APNSChannelResponse

-- | Creates a value of <a>APNSChannelResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>acPlatform</a> - The platform type. Will be APNS.</li>
--   <li><a>acLastModifiedDate</a> - Last date this was updated</li>
--   <li><a>acIsArchived</a> - Is this channel archived</li>
--   <li><a>acApplicationId</a> - Undocumented member.</li>
--   <li><a>acVersion</a> - Version of channel</li>
--   <li><a>acId</a> - Undocumented member.</li>
--   <li><a>acCreationDate</a> - When was this segment created</li>
--   <li><a>acLastModifiedBy</a> - Who last updated this entry</li>
--   </ul>
apnsChannelResponse :: APNSChannelResponse

-- | The platform type. Will be APNS.
acPlatform :: Lens' APNSChannelResponse (Maybe Text)

-- | Last date this was updated
acLastModifiedDate :: Lens' APNSChannelResponse (Maybe Text)

-- | Is this channel archived
acIsArchived :: Lens' APNSChannelResponse (Maybe Bool)

-- | Undocumented member.
acApplicationId :: Lens' APNSChannelResponse (Maybe Text)

-- | Version of channel
acVersion :: Lens' APNSChannelResponse (Maybe Int)

-- | Undocumented member.
acId :: Lens' APNSChannelResponse (Maybe Text)

-- | When was this segment created
acCreationDate :: Lens' APNSChannelResponse (Maybe Text)

-- | Who last updated this entry
acLastModifiedBy :: Lens' APNSChannelResponse (Maybe Text)

-- | <i>See:</i> <a>activitiesResponse</a> smart constructor.
data ActivitiesResponse

-- | Creates a value of <a>ActivitiesResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aItem</a> - List of campaign activities</li>
--   </ul>
activitiesResponse :: ActivitiesResponse

-- | List of campaign activities
aItem :: Lens' ActivitiesResponse [ActivityResponse]

-- | <i>See:</i> <a>activityResponse</a> smart constructor.
data ActivityResponse

-- | Creates a value of <a>ActivityResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aState</a> - The state of the activity. Valid values: PENDING,
--   INITIALIZING, RUNNING, PAUSED, CANCELLED, COMPLETED</li>
--   <li><a>aStart</a> - The actual start time of the activity in ISO 8601
--   format.</li>
--   <li><a>aCampaignId</a> - The ID of the campaign to which the activity
--   applies.</li>
--   <li><a>aResult</a> - Indicates whether the activity succeeded. Valid
--   values: SUCCESS, FAIL</li>
--   <li><a>aTreatmentId</a> - The ID of a variation of the campaign used
--   for A/B testing.</li>
--   <li><a>aSuccessfulEndpointCount</a> - The total number of endpoints to
--   which the campaign successfully delivered messages.</li>
--   <li><a>aEnd</a> - The actual time the activity was marked CANCELLED or
--   COMPLETED. Provided in ISO 8601 format.</li>
--   <li><a>aApplicationId</a> - The ID of the application to which the
--   campaign applies.</li>
--   <li><a>aTotalEndpointCount</a> - The total number of endpoints to
--   which the campaign attempts to deliver messages.</li>
--   <li><a>aId</a> - The unique activity ID.</li>
--   <li><a>aScheduledStart</a> - The scheduled start time for the activity
--   in ISO 8601 format.</li>
--   </ul>
activityResponse :: ActivityResponse

-- | The state of the activity. Valid values: PENDING, INITIALIZING,
--   RUNNING, PAUSED, CANCELLED, COMPLETED
aState :: Lens' ActivityResponse (Maybe Text)

-- | The actual start time of the activity in ISO 8601 format.
aStart :: Lens' ActivityResponse (Maybe Text)

-- | The ID of the campaign to which the activity applies.
aCampaignId :: Lens' ActivityResponse (Maybe Text)

-- | Indicates whether the activity succeeded. Valid values: SUCCESS, FAIL
aResult :: Lens' ActivityResponse (Maybe Text)

-- | The ID of a variation of the campaign used for A/B testing.
aTreatmentId :: Lens' ActivityResponse (Maybe Text)

-- | The total number of endpoints to which the campaign successfully
--   delivered messages.
aSuccessfulEndpointCount :: Lens' ActivityResponse (Maybe Int)

-- | The actual time the activity was marked CANCELLED or COMPLETED.
--   Provided in ISO 8601 format.
aEnd :: Lens' ActivityResponse (Maybe Text)

-- | The ID of the application to which the campaign applies.
aApplicationId :: Lens' ActivityResponse (Maybe Text)

-- | The total number of endpoints to which the campaign attempts to
--   deliver messages.
aTotalEndpointCount :: Lens' ActivityResponse (Maybe Int)

-- | The unique activity ID.
aId :: Lens' ActivityResponse (Maybe Text)

-- | The scheduled start time for the activity in ISO 8601 format.
aScheduledStart :: Lens' ActivityResponse (Maybe Text)

-- | <i>See:</i> <a>applicationSettingsResource</a> smart constructor.
data ApplicationSettingsResource

-- | Creates a value of <a>ApplicationSettingsResource</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>asrLastModifiedDate</a> - The date that the settings were last
--   updated in ISO 8601 format.</li>
--   <li><a>asrLimits</a> - The default campaign limits for the app. These
--   limits apply to each campaign for the app, unless the campaign
--   overrides the default with limits of its own.</li>
--   <li><a>asrQuietTime</a> - The default quiet time for the app. Each
--   campaign for this app sends no messages during this time unless the
--   campaign overrides the default with a quiet time of its own.</li>
--   <li><a>asrApplicationId</a> - The unique ID for the application.</li>
--   </ul>
applicationSettingsResource :: ApplicationSettingsResource

-- | The date that the settings were last updated in ISO 8601 format.
asrLastModifiedDate :: Lens' ApplicationSettingsResource (Maybe Text)

-- | The default campaign limits for the app. These limits apply to each
--   campaign for the app, unless the campaign overrides the default with
--   limits of its own.
asrLimits :: Lens' ApplicationSettingsResource (Maybe CampaignLimits)

-- | The default quiet time for the app. Each campaign for this app sends
--   no messages during this time unless the campaign overrides the default
--   with a quiet time of its own.
asrQuietTime :: Lens' ApplicationSettingsResource (Maybe QuietTime)

-- | The unique ID for the application.
asrApplicationId :: Lens' ApplicationSettingsResource (Maybe Text)

-- | <i>See:</i> <a>attributeDimension</a> smart constructor.
data AttributeDimension

-- | Creates a value of <a>AttributeDimension</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>adValues</a> - The criteria values for the segment dimension.
--   Endpoints with matching attribute values are included or excluded from
--   the segment, depending on the setting for Type.</li>
--   <li><a>adAttributeType</a> - The type of dimension: INCLUSIVE –
--   Endpoints that match the criteria are included in the segment.
--   EXCLUSIVE – Endpoints that match the criteria are excluded from the
--   segment.</li>
--   </ul>
attributeDimension :: AttributeDimension

-- | The criteria values for the segment dimension. Endpoints with matching
--   attribute values are included or excluded from the segment, depending
--   on the setting for Type.
adValues :: Lens' AttributeDimension [Text]

-- | The type of dimension: INCLUSIVE – Endpoints that match the criteria
--   are included in the segment. EXCLUSIVE – Endpoints that match the
--   criteria are excluded from the segment.
adAttributeType :: Lens' AttributeDimension (Maybe AttributeType)

-- | <i>See:</i> <a>campaignLimits</a> smart constructor.
data CampaignLimits

-- | Creates a value of <a>CampaignLimits</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clDaily</a> - The maximum number of messages that the campaign
--   can send daily.</li>
--   <li><a>clTotal</a> - The maximum total number of messages that the
--   campaign can send.</li>
--   </ul>
campaignLimits :: CampaignLimits

-- | The maximum number of messages that the campaign can send daily.
clDaily :: Lens' CampaignLimits (Maybe Int)

-- | The maximum total number of messages that the campaign can send.
clTotal :: Lens' CampaignLimits (Maybe Int)

-- | <i>See:</i> <a>campaignResponse</a> smart constructor.
data CampaignResponse

-- | Creates a value of <a>CampaignResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cState</a> - The campaign status. An A/B test campaign will
--   have a status of COMPLETED only when all treatments have a status of
--   COMPLETED.</li>
--   <li><a>cLastModifiedDate</a> - The date the campaign was last updated
--   in ISO 8601 format.</li>
--   <li><a>cSchedule</a> - The campaign schedule.</li>
--   <li><a>cTreatmentName</a> - The custom name of a variation of the
--   campaign used for A/B testing.</li>
--   <li><a>cLimits</a> - The campaign limits settings.</li>
--   <li><a>cIsPaused</a> - Indicates whether the campaign is paused. A
--   paused campaign does not send messages unless you resume it by setting
--   IsPaused to false.</li>
--   <li><a>cDefaultState</a> - The status of the campaign's default
--   treatment. Only present for A/B test campaigns.</li>
--   <li><a>cApplicationId</a> - The ID of the application to which the
--   campaign applies.</li>
--   <li><a>cName</a> - The custom name of the campaign.</li>
--   <li><a>cVersion</a> - The campaign version number.</li>
--   <li><a>cHoldoutPercent</a> - The allocated percentage of end users who
--   will not receive messages from this campaign.</li>
--   <li><a>cTreatmentDescription</a> - A custom description for the
--   treatment.</li>
--   <li><a>cId</a> - The unique campaign ID.</li>
--   <li><a>cCreationDate</a> - The date the campaign was created in ISO
--   8601 format.</li>
--   <li><a>cMessageConfiguration</a> - The message configuration
--   settings.</li>
--   <li><a>cDescription</a> - A description of the campaign.</li>
--   <li><a>cSegmentId</a> - The ID of the segment to which the campaign
--   sends messages.</li>
--   <li><a>cAdditionalTreatments</a> - Treatments that are defined in
--   addition to the default treatment.</li>
--   <li><a>cSegmentVersion</a> - The version of the segment to which the
--   campaign sends messages.</li>
--   </ul>
campaignResponse :: CampaignResponse

-- | The campaign status. An A/B test campaign will have a status of
--   COMPLETED only when all treatments have a status of COMPLETED.
cState :: Lens' CampaignResponse (Maybe CampaignState)

-- | The date the campaign was last updated in ISO 8601 format.
cLastModifiedDate :: Lens' CampaignResponse (Maybe Text)

-- | The campaign schedule.
cSchedule :: Lens' CampaignResponse (Maybe Schedule)

-- | The custom name of a variation of the campaign used for A/B testing.
cTreatmentName :: Lens' CampaignResponse (Maybe Text)

-- | The campaign limits settings.
cLimits :: Lens' CampaignResponse (Maybe CampaignLimits)

-- | Indicates whether the campaign is paused. A paused campaign does not
--   send messages unless you resume it by setting IsPaused to false.
cIsPaused :: Lens' CampaignResponse (Maybe Bool)

-- | The status of the campaign's default treatment. Only present for A/B
--   test campaigns.
cDefaultState :: Lens' CampaignResponse (Maybe CampaignState)

-- | The ID of the application to which the campaign applies.
cApplicationId :: Lens' CampaignResponse (Maybe Text)

-- | The custom name of the campaign.
cName :: Lens' CampaignResponse (Maybe Text)

-- | The campaign version number.
cVersion :: Lens' CampaignResponse (Maybe Int)

-- | The allocated percentage of end users who will not receive messages
--   from this campaign.
cHoldoutPercent :: Lens' CampaignResponse (Maybe Int)

-- | A custom description for the treatment.
cTreatmentDescription :: Lens' CampaignResponse (Maybe Text)

-- | The unique campaign ID.
cId :: Lens' CampaignResponse (Maybe Text)

-- | The date the campaign was created in ISO 8601 format.
cCreationDate :: Lens' CampaignResponse (Maybe Text)

-- | The message configuration settings.
cMessageConfiguration :: Lens' CampaignResponse (Maybe MessageConfiguration)

-- | A description of the campaign.
cDescription :: Lens' CampaignResponse (Maybe Text)

-- | The ID of the segment to which the campaign sends messages.
cSegmentId :: Lens' CampaignResponse (Maybe Text)

-- | Treatments that are defined in addition to the default treatment.
cAdditionalTreatments :: Lens' CampaignResponse [TreatmentResource]

-- | The version of the segment to which the campaign sends messages.
cSegmentVersion :: Lens' CampaignResponse (Maybe Int)

-- | <i>See:</i> <a>campaignState</a> smart constructor.
data CampaignState

-- | Creates a value of <a>CampaignState</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csCampaignStatus</a> - The status of the campaign, or the
--   status of a treatment that belongs to an A/B test campaign. Valid
--   values: SCHEDULED, EXECUTING, PENDING_NEXT_RUN, COMPLETED, PAUSED</li>
--   </ul>
campaignState :: CampaignState

-- | The status of the campaign, or the status of a treatment that belongs
--   to an A/B test campaign. Valid values: SCHEDULED, EXECUTING,
--   PENDING_NEXT_RUN, COMPLETED, PAUSED
csCampaignStatus :: Lens' CampaignState (Maybe CampaignStatus)

-- | <i>See:</i> <a>campaignsResponse</a> smart constructor.
data CampaignsResponse

-- | Creates a value of <a>CampaignsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cNextToken</a> - The string that you use in a subsequent
--   request to get the next page of results in a paginated response.</li>
--   <li><a>cItem</a> - A list of campaigns.</li>
--   </ul>
campaignsResponse :: CampaignsResponse

-- | The string that you use in a subsequent request to get the next page
--   of results in a paginated response.
cNextToken :: Lens' CampaignsResponse (Maybe Text)

-- | A list of campaigns.
cItem :: Lens' CampaignsResponse [CampaignResponse]

-- | <i>See:</i> <a>endpointBatchItem</a> smart constructor.
data EndpointBatchItem

-- | Creates a value of <a>EndpointBatchItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ebiRequestId</a> - The unique ID for the most recent request to
--   update the endpoint.</li>
--   <li><a>ebiMetrics</a> - Custom metrics that your app reports to Amazon
--   Pinpoint.</li>
--   <li><a>ebiLocation</a> - The endpoint location attributes.</li>
--   <li><a>ebiDemographic</a> - The endpoint demographic attributes.</li>
--   <li><a>ebiAddress</a> - The address or token of the endpoint.</li>
--   <li><a>ebiEffectiveDate</a> - The last time the endpoint was updated.
--   Provided in ISO 8601 format.</li>
--   <li><a>ebiUser</a> - Custom user-specific attributes that your app
--   reports to Amazon Pinpoint.</li>
--   <li><a>ebiAttributes</a> - Custom attributes that your app reports to
--   Amazon Pinpoint. You can use these attributes as selection criteria
--   when you create a segment.</li>
--   <li><a>ebiEndpointStatus</a> - The endpoint status. Can be either
--   ACTIVE or INACTIVE. Will be set to INACTIVE if a delivery fails. Will
--   be set to ACTIVE if the address is updated.</li>
--   <li><a>ebiOptOut</a> - Indicates whether a user has opted out of
--   receiving messages with one of the following values: ALL – User
--   receives all messages. NONE – User receives no messages.</li>
--   <li><a>ebiId</a> - Undocumented member.</li>
--   <li><a>ebiChannelType</a> - The channel type. Valid values: APNS,
--   GCM</li>
--   </ul>
endpointBatchItem :: EndpointBatchItem

-- | The unique ID for the most recent request to update the endpoint.
ebiRequestId :: Lens' EndpointBatchItem (Maybe Text)

-- | Custom metrics that your app reports to Amazon Pinpoint.
ebiMetrics :: Lens' EndpointBatchItem (HashMap Text Double)

-- | The endpoint location attributes.
ebiLocation :: Lens' EndpointBatchItem (Maybe EndpointLocation)

-- | The endpoint demographic attributes.
ebiDemographic :: Lens' EndpointBatchItem (Maybe EndpointDemographic)

-- | The address or token of the endpoint.
ebiAddress :: Lens' EndpointBatchItem (Maybe Text)

-- | The last time the endpoint was updated. Provided in ISO 8601 format.
ebiEffectiveDate :: Lens' EndpointBatchItem (Maybe Text)

-- | Custom user-specific attributes that your app reports to Amazon
--   Pinpoint.
ebiUser :: Lens' EndpointBatchItem (Maybe EndpointUser)

-- | Custom attributes that your app reports to Amazon Pinpoint. You can
--   use these attributes as selection criteria when you create a segment.
ebiAttributes :: Lens' EndpointBatchItem (HashMap Text [Text])

-- | The endpoint status. Can be either ACTIVE or INACTIVE. Will be set to
--   INACTIVE if a delivery fails. Will be set to ACTIVE if the address is
--   updated.
ebiEndpointStatus :: Lens' EndpointBatchItem (Maybe Text)

-- | Indicates whether a user has opted out of receiving messages with one
--   of the following values: ALL – User receives all messages. NONE – User
--   receives no messages.
ebiOptOut :: Lens' EndpointBatchItem (Maybe Text)

-- | Undocumented member.
ebiId :: Lens' EndpointBatchItem (Maybe Text)

-- | The channel type. Valid values: APNS, GCM
ebiChannelType :: Lens' EndpointBatchItem (Maybe ChannelType)

-- | <i>See:</i> <a>endpointBatchRequest</a> smart constructor.
data EndpointBatchRequest

-- | Creates a value of <a>EndpointBatchRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ebrItem</a> - List of items to update. Maximum 100 items</li>
--   </ul>
endpointBatchRequest :: EndpointBatchRequest

-- | List of items to update. Maximum 100 items
ebrItem :: Lens' EndpointBatchRequest [EndpointBatchItem]

-- | <i>See:</i> <a>endpointDemographic</a> smart constructor.
data EndpointDemographic

-- | Creates a value of <a>EndpointDemographic</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>edPlatform</a> - The endpoint platform, such as ios or
--   android.</li>
--   <li><a>edPlatformVersion</a> - The endpoint platform version.</li>
--   <li><a>edLocale</a> - The endpoint locale in the following format: The
--   ISO 639-1 alpha-2 code, followed by an underscore, followed by an ISO
--   3166-1 alpha-2 value.</li>
--   <li><a>edAppVersion</a> - The version of the application associated
--   with the endpoint.</li>
--   <li><a>edModel</a> - The endpoint model, such as iPhone.</li>
--   <li><a>edMake</a> - The endpoint make, such as such as Apple or
--   Samsung.</li>
--   <li><a>edModelVersion</a> - The endpoint model version.</li>
--   <li><a>edTimezone</a> - The timezone of the endpoint. Specified as a
--   tz database value, such as Americas/Los_Angeles.</li>
--   </ul>
endpointDemographic :: EndpointDemographic

-- | The endpoint platform, such as ios or android.
edPlatform :: Lens' EndpointDemographic (Maybe Text)

-- | The endpoint platform version.
edPlatformVersion :: Lens' EndpointDemographic (Maybe Text)

-- | The endpoint locale in the following format: The ISO 639-1 alpha-2
--   code, followed by an underscore, followed by an ISO 3166-1 alpha-2
--   value.
edLocale :: Lens' EndpointDemographic (Maybe Text)

-- | The version of the application associated with the endpoint.
edAppVersion :: Lens' EndpointDemographic (Maybe Text)

-- | The endpoint model, such as iPhone.
edModel :: Lens' EndpointDemographic (Maybe Text)

-- | The endpoint make, such as such as Apple or Samsung.
edMake :: Lens' EndpointDemographic (Maybe Text)

-- | The endpoint model version.
edModelVersion :: Lens' EndpointDemographic (Maybe Text)

-- | The timezone of the endpoint. Specified as a tz database value, such
--   as Americas/Los_Angeles.
edTimezone :: Lens' EndpointDemographic (Maybe Text)

-- | <i>See:</i> <a>endpointLocation</a> smart constructor.
data EndpointLocation

-- | Creates a value of <a>EndpointLocation</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>elPostalCode</a> - The postal code or zip code of the
--   endpoint.</li>
--   <li><a>elLatitude</a> - The latitude of the endpoint location. Rounded
--   to one decimal (Roughly corresponding to a mile).</li>
--   <li><a>elCountry</a> - Country according to ISO 3166-1 Alpha-2 codes.
--   For example, US.</li>
--   <li><a>elCity</a> - The city where the endpoint is located.</li>
--   <li><a>elRegion</a> - The region of the endpoint location. For
--   example, corresponds to a state in US.</li>
--   <li><a>elLongitude</a> - The longitude of the endpoint location.
--   Rounded to one decimal (Roughly corresponding to a mile).</li>
--   </ul>
endpointLocation :: EndpointLocation

-- | The postal code or zip code of the endpoint.
elPostalCode :: Lens' EndpointLocation (Maybe Text)

-- | The latitude of the endpoint location. Rounded to one decimal (Roughly
--   corresponding to a mile).
elLatitude :: Lens' EndpointLocation (Maybe Double)

-- | Country according to ISO 3166-1 Alpha-2 codes. For example, US.
elCountry :: Lens' EndpointLocation (Maybe Text)

-- | The city where the endpoint is located.
elCity :: Lens' EndpointLocation (Maybe Text)

-- | The region of the endpoint location. For example, corresponds to a
--   state in US.
elRegion :: Lens' EndpointLocation (Maybe Text)

-- | The longitude of the endpoint location. Rounded to one decimal
--   (Roughly corresponding to a mile).
elLongitude :: Lens' EndpointLocation (Maybe Double)

-- | <i>See:</i> <a>endpointRequest</a> smart constructor.
data EndpointRequest

-- | Creates a value of <a>EndpointRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>erRequestId</a> - The unique ID for the most recent request to
--   update the endpoint.</li>
--   <li><a>erMetrics</a> - Custom metrics that your app reports to Amazon
--   Pinpoint.</li>
--   <li><a>erLocation</a> - The endpoint location attributes.</li>
--   <li><a>erDemographic</a> - The endpoint demographic attributes.</li>
--   <li><a>erAddress</a> - The address or token of the endpoint.</li>
--   <li><a>erEffectiveDate</a> - The last time the endpoint was updated.
--   Provided in ISO 8601 format.</li>
--   <li><a>erUser</a> - Custom user-specific attributes that your app
--   reports to Amazon Pinpoint.</li>
--   <li><a>erAttributes</a> - Custom attributes that your app reports to
--   Amazon Pinpoint. You can use these attributes as selection criteria
--   when you create a segment.</li>
--   <li><a>erEndpointStatus</a> - The endpoint status. Can be either
--   ACTIVE or INACTIVE. Will be set to INACTIVE if a delivery fails. Will
--   be set to ACTIVE if the address is updated.</li>
--   <li><a>erOptOut</a> - Indicates whether a user has opted out of
--   receiving messages with one of the following values: ALL – User
--   receives all messages. NONE – User receives no messages.</li>
--   <li><a>erChannelType</a> - The channel type. Valid values: APNS,
--   GCM</li>
--   </ul>
endpointRequest :: EndpointRequest

-- | The unique ID for the most recent request to update the endpoint.
erRequestId :: Lens' EndpointRequest (Maybe Text)

-- | Custom metrics that your app reports to Amazon Pinpoint.
erMetrics :: Lens' EndpointRequest (HashMap Text Double)

-- | The endpoint location attributes.
erLocation :: Lens' EndpointRequest (Maybe EndpointLocation)

-- | The endpoint demographic attributes.
erDemographic :: Lens' EndpointRequest (Maybe EndpointDemographic)

-- | The address or token of the endpoint.
erAddress :: Lens' EndpointRequest (Maybe Text)

-- | The last time the endpoint was updated. Provided in ISO 8601 format.
erEffectiveDate :: Lens' EndpointRequest (Maybe Text)

-- | Custom user-specific attributes that your app reports to Amazon
--   Pinpoint.
erUser :: Lens' EndpointRequest (Maybe EndpointUser)

-- | Custom attributes that your app reports to Amazon Pinpoint. You can
--   use these attributes as selection criteria when you create a segment.
erAttributes :: Lens' EndpointRequest (HashMap Text [Text])

-- | The endpoint status. Can be either ACTIVE or INACTIVE. Will be set to
--   INACTIVE if a delivery fails. Will be set to ACTIVE if the address is
--   updated.
erEndpointStatus :: Lens' EndpointRequest (Maybe Text)

-- | Indicates whether a user has opted out of receiving messages with one
--   of the following values: ALL – User receives all messages. NONE – User
--   receives no messages.
erOptOut :: Lens' EndpointRequest (Maybe Text)

-- | The channel type. Valid values: APNS, GCM
erChannelType :: Lens' EndpointRequest (Maybe ChannelType)

-- | <i>See:</i> <a>endpointResponse</a> smart constructor.
data EndpointResponse

-- | Creates a value of <a>EndpointResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eRequestId</a> - The unique ID for the most recent request to
--   update the endpoint.</li>
--   <li><a>eMetrics</a> - Custom metrics that your app reports to Amazon
--   Pinpoint.</li>
--   <li><a>eLocation</a> - The endpoint location attributes.</li>
--   <li><a>eDemographic</a> - The endpoint demographic attributes.</li>
--   <li><a>eCohortId</a> - A number from 0 - 99 that represents the cohort
--   the endpoint is assigned to. Endpoints are grouped into cohorts
--   randomly, and each cohort contains approximately 1 percent of the
--   endpoints for an app. Amazon Pinpoint assigns cohorts to the holdout
--   or treatment allocations for a campaign.</li>
--   <li><a>eAddress</a> - The address or token of the endpoint.</li>
--   <li><a>eEffectiveDate</a> - The last time the endpoint was updated.
--   Provided in ISO 8601 format.</li>
--   <li><a>eUser</a> - Custom user-specific attributes that your app
--   reports to Amazon Pinpoint.</li>
--   <li><a>eApplicationId</a> - The ID of the application associated with
--   the endpoint.</li>
--   <li><a>eAttributes</a> - Custom attributes that your app reports to
--   Amazon Pinpoint. You can use these attributes as selection criteria
--   when you create a segment.</li>
--   <li><a>eEndpointStatus</a> - The endpoint status. Can be either ACTIVE
--   or INACTIVE. Will be set to INACTIVE if a delivery fails. Will be set
--   to ACTIVE if the address is updated.</li>
--   <li><a>eOptOut</a> - Indicates whether a user has opted out of
--   receiving messages with one of the following values: ALL – User
--   receives all messages. NONE – User receives no messages.</li>
--   <li><a>eId</a> - The unique ID that you assigned to the endpoint. The
--   ID should be a globally unique identifier (GUID) to ensure that it is
--   unique compared to all other endpoints for the application.</li>
--   <li><a>eCreationDate</a> - The last time the endpoint was created.
--   Provided in ISO 8601 format.</li>
--   <li><a>eChannelType</a> - The channel type. Valid values: APNS,
--   GCM</li>
--   <li><a>eShardId</a> - The ShardId of endpoint</li>
--   </ul>
endpointResponse :: EndpointResponse

-- | The unique ID for the most recent request to update the endpoint.
eRequestId :: Lens' EndpointResponse (Maybe Text)

-- | Custom metrics that your app reports to Amazon Pinpoint.
eMetrics :: Lens' EndpointResponse (HashMap Text Double)

-- | The endpoint location attributes.
eLocation :: Lens' EndpointResponse (Maybe EndpointLocation)

-- | The endpoint demographic attributes.
eDemographic :: Lens' EndpointResponse (Maybe EndpointDemographic)

-- | A number from 0 - 99 that represents the cohort the endpoint is
--   assigned to. Endpoints are grouped into cohorts randomly, and each
--   cohort contains approximately 1 percent of the endpoints for an app.
--   Amazon Pinpoint assigns cohorts to the holdout or treatment
--   allocations for a campaign.
eCohortId :: Lens' EndpointResponse (Maybe Text)

-- | The address or token of the endpoint.
eAddress :: Lens' EndpointResponse (Maybe Text)

-- | The last time the endpoint was updated. Provided in ISO 8601 format.
eEffectiveDate :: Lens' EndpointResponse (Maybe Text)

-- | Custom user-specific attributes that your app reports to Amazon
--   Pinpoint.
eUser :: Lens' EndpointResponse (Maybe EndpointUser)

-- | The ID of the application associated with the endpoint.
eApplicationId :: Lens' EndpointResponse (Maybe Text)

-- | Custom attributes that your app reports to Amazon Pinpoint. You can
--   use these attributes as selection criteria when you create a segment.
eAttributes :: Lens' EndpointResponse (HashMap Text [Text])

-- | The endpoint status. Can be either ACTIVE or INACTIVE. Will be set to
--   INACTIVE if a delivery fails. Will be set to ACTIVE if the address is
--   updated.
eEndpointStatus :: Lens' EndpointResponse (Maybe Text)

-- | Indicates whether a user has opted out of receiving messages with one
--   of the following values: ALL – User receives all messages. NONE – User
--   receives no messages.
eOptOut :: Lens' EndpointResponse (Maybe Text)

-- | The unique ID that you assigned to the endpoint. The ID should be a
--   globally unique identifier (GUID) to ensure that it is unique compared
--   to all other endpoints for the application.
eId :: Lens' EndpointResponse (Maybe Text)

-- | The last time the endpoint was created. Provided in ISO 8601 format.
eCreationDate :: Lens' EndpointResponse (Maybe Text)

-- | The channel type. Valid values: APNS, GCM
eChannelType :: Lens' EndpointResponse (Maybe ChannelType)

-- | The ShardId of endpoint
eShardId :: Lens' EndpointResponse (Maybe Text)

-- | <i>See:</i> <a>endpointUser</a> smart constructor.
data EndpointUser

-- | Creates a value of <a>EndpointUser</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>euUserAttributes</a> - Custom attributesd specific to the
--   user.</li>
--   <li><a>euUserId</a> - The unique ID of the user.</li>
--   </ul>
endpointUser :: EndpointUser

-- | Custom attributesd specific to the user.
euUserAttributes :: Lens' EndpointUser (HashMap Text [Text])

-- | The unique ID of the user.
euUserId :: Lens' EndpointUser (Maybe Text)

-- | <i>See:</i> <a>gcmChannelRequest</a> smart constructor.
data GCMChannelRequest

-- | Creates a value of <a>GCMChannelRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gcrAPIKey</a> - Platform credential API key from Google.</li>
--   </ul>
gcmChannelRequest :: GCMChannelRequest

-- | Platform credential API key from Google.
gcrAPIKey :: Lens' GCMChannelRequest (Maybe Text)

-- | <i>See:</i> <a>gcmChannelResponse</a> smart constructor.
data GCMChannelResponse

-- | Creates a value of <a>GCMChannelResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gcPlatform</a> - The platform type. Will be GCM</li>
--   <li><a>gcLastModifiedDate</a> - Last date this was updated</li>
--   <li><a>gcCredential</a> - The GCM API key from Google.</li>
--   <li><a>gcIsArchived</a> - Is this channel archived</li>
--   <li><a>gcApplicationId</a> - Undocumented member.</li>
--   <li><a>gcVersion</a> - Version of channel</li>
--   <li><a>gcId</a> - Undocumented member.</li>
--   <li><a>gcCreationDate</a> - When was this segment created</li>
--   <li><a>gcLastModifiedBy</a> - Who last updated this entry</li>
--   </ul>
gcmChannelResponse :: GCMChannelResponse

-- | The platform type. Will be GCM
gcPlatform :: Lens' GCMChannelResponse (Maybe Text)

-- | Last date this was updated
gcLastModifiedDate :: Lens' GCMChannelResponse (Maybe Text)

-- | The GCM API key from Google.
gcCredential :: Lens' GCMChannelResponse (Maybe Text)

-- | Is this channel archived
gcIsArchived :: Lens' GCMChannelResponse (Maybe Bool)

-- | Undocumented member.
gcApplicationId :: Lens' GCMChannelResponse (Maybe Text)

-- | Version of channel
gcVersion :: Lens' GCMChannelResponse (Maybe Int)

-- | Undocumented member.
gcId :: Lens' GCMChannelResponse (Maybe Text)

-- | When was this segment created
gcCreationDate :: Lens' GCMChannelResponse (Maybe Text)

-- | Who last updated this entry
gcLastModifiedBy :: Lens' GCMChannelResponse (Maybe Text)

-- | <i>See:</i> <a>importJobRequest</a> smart constructor.
data ImportJobRequest

-- | Creates a value of <a>ImportJobRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iSegmentName</a> - A custom name for the segment created by the
--   import job. Use if DefineSegment is true.</li>
--   <li><a>iFormat</a> - The format of the files that contain the endpoint
--   definitions. Valid values: CSV, JSON</li>
--   <li><a>iDefineSegment</a> - Sets whether the endpoints create a
--   segment when they are imported.</li>
--   <li><a>iRegisterEndpoints</a> - Sets whether the endpoints are
--   registered with Amazon Pinpoint when they are imported.</li>
--   <li><a>iExternalId</a> - A unique, custom ID assigned to the IAM role
--   that restricts who can assume the role.</li>
--   <li><a>iS3URL</a> - A URL that points to the location within an Amazon
--   S3 bucket that contains the endpoints to import. The location can be a
--   folder or a single file. The URL should follow this format:
--   s3:/<i>bucket-name</i>folder-name/file-name Amazon Pinpoint will
--   import endpoints from this location and any subfolders it
--   contains.</li>
--   <li><a>iSegmentId</a> - The ID of the segment to update if the import
--   job is meant to update an existing segment.</li>
--   <li><a>iRoleARN</a> - The Amazon Resource Name (ARN) of an IAM role
--   that grants Amazon Pinpoint access to the Amazon S3 location that
--   contains the endpoints to import.</li>
--   </ul>
importJobRequest :: ImportJobRequest

-- | A custom name for the segment created by the import job. Use if
--   DefineSegment is true.
iSegmentName :: Lens' ImportJobRequest (Maybe Text)

-- | The format of the files that contain the endpoint definitions. Valid
--   values: CSV, JSON
iFormat :: Lens' ImportJobRequest (Maybe DefinitionFormat)

-- | Sets whether the endpoints create a segment when they are imported.
iDefineSegment :: Lens' ImportJobRequest (Maybe Bool)

-- | Sets whether the endpoints are registered with Amazon Pinpoint when
--   they are imported.
iRegisterEndpoints :: Lens' ImportJobRequest (Maybe Bool)

-- | A unique, custom ID assigned to the IAM role that restricts who can
--   assume the role.
iExternalId :: Lens' ImportJobRequest (Maybe Text)

-- | A URL that points to the location within an Amazon S3 bucket that
--   contains the endpoints to import. The location can be a folder or a
--   single file. The URL should follow this format:
--   s3:/<i>bucket-name</i>folder-name/file-name Amazon Pinpoint will
--   import endpoints from this location and any subfolders it contains.
iS3URL :: Lens' ImportJobRequest (Maybe Text)

-- | The ID of the segment to update if the import job is meant to update
--   an existing segment.
iSegmentId :: Lens' ImportJobRequest (Maybe Text)

-- | The Amazon Resource Name (ARN) of an IAM role that grants Amazon
--   Pinpoint access to the Amazon S3 location that contains the endpoints
--   to import.
iRoleARN :: Lens' ImportJobRequest (Maybe Text)

-- | <i>See:</i> <a>importJobResource</a> smart constructor.
data ImportJobResource

-- | Creates a value of <a>ImportJobResource</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ijrSegmentName</a> - A custom name for the segment created by
--   the import job. Use if DefineSegment is true.</li>
--   <li><a>ijrFormat</a> - The format of the files that contain the
--   endpoint definitions. Valid values: CSV, JSON</li>
--   <li><a>ijrDefineSegment</a> - Sets whether the endpoints create a
--   segment when they are imported.</li>
--   <li><a>ijrRegisterEndpoints</a> - Sets whether the endpoints are
--   registered with Amazon Pinpoint when they are imported.</li>
--   <li><a>ijrExternalId</a> - A unique, custom ID assigned to the IAM
--   role that restricts who can assume the role.</li>
--   <li><a>ijrS3URL</a> - A URL that points to the location within an
--   Amazon S3 bucket that contains the endpoints to import. The location
--   can be a folder or a single file. The URL should follow this format:
--   s3:/<i>bucket-name</i>folder-name/file-name Amazon Pinpoint will
--   import endpoints from this location and any subfolders it
--   contains.</li>
--   <li><a>ijrSegmentId</a> - The ID of the segment to update if the
--   import job is meant to update an existing segment.</li>
--   <li><a>ijrRoleARN</a> - The Amazon Resource Name (ARN) of an IAM role
--   that grants Amazon Pinpoint access to the Amazon S3 location that
--   contains the endpoints to import.</li>
--   </ul>
importJobResource :: ImportJobResource

-- | A custom name for the segment created by the import job. Use if
--   DefineSegment is true.
ijrSegmentName :: Lens' ImportJobResource (Maybe Text)

-- | The format of the files that contain the endpoint definitions. Valid
--   values: CSV, JSON
ijrFormat :: Lens' ImportJobResource (Maybe DefinitionFormat)

-- | Sets whether the endpoints create a segment when they are imported.
ijrDefineSegment :: Lens' ImportJobResource (Maybe Bool)

-- | Sets whether the endpoints are registered with Amazon Pinpoint when
--   they are imported.
ijrRegisterEndpoints :: Lens' ImportJobResource (Maybe Bool)

-- | A unique, custom ID assigned to the IAM role that restricts who can
--   assume the role.
ijrExternalId :: Lens' ImportJobResource (Maybe Text)

-- | A URL that points to the location within an Amazon S3 bucket that
--   contains the endpoints to import. The location can be a folder or a
--   single file. The URL should follow this format:
--   s3:/<i>bucket-name</i>folder-name/file-name Amazon Pinpoint will
--   import endpoints from this location and any subfolders it contains.
ijrS3URL :: Lens' ImportJobResource (Maybe Text)

-- | The ID of the segment to update if the import job is meant to update
--   an existing segment.
ijrSegmentId :: Lens' ImportJobResource (Maybe Text)

-- | The Amazon Resource Name (ARN) of an IAM role that grants Amazon
--   Pinpoint access to the Amazon S3 location that contains the endpoints
--   to import.
ijrRoleARN :: Lens' ImportJobResource (Maybe Text)

-- | <i>See:</i> <a>importJobResponse</a> smart constructor.
data ImportJobResponse

-- | Creates a value of <a>ImportJobResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ijCompletedPieces</a> - The number of pieces that have
--   successfully imported as of the time of the request.</li>
--   <li><a>ijFailedPieces</a> - The number of pieces that have failed to
--   import as of the time of the request.</li>
--   <li><a>ijDefinition</a> - The import job settings.</li>
--   <li><a>ijTotalProcessed</a> - The number of endpoints that were
--   processed by the import job.</li>
--   <li><a>ijFailures</a> - Provides up to 100 of the first failed entries
--   for the job, if any exist.</li>
--   <li><a>ijTotalPieces</a> - The total number of pieces that must be
--   imported to finish the job. Each piece is an approximately equal
--   portion of the endpoints to import.</li>
--   <li><a>ijApplicationId</a> - The unique ID of the application to which
--   the import job applies.</li>
--   <li><a>ijId</a> - The unique ID of the import job.</li>
--   <li><a>ijCreationDate</a> - The date the import job was created in ISO
--   8601 format.</li>
--   <li><a>ijType</a> - The job type. Will be Import.</li>
--   <li><a>ijCompletionDate</a> - The date the import job completed in ISO
--   8601 format.</li>
--   <li><a>ijJobStatus</a> - The status of the import job. Valid values:
--   CREATED, INITIALIZING, PROCESSING, COMPLETING, COMPLETED, FAILING,
--   FAILED The job status is FAILED if one or more pieces failed to
--   import.</li>
--   <li><a>ijTotalFailures</a> - The number of endpoints that failed to
--   import; for example, because of syntax errors.</li>
--   </ul>
importJobResponse :: ImportJobResponse

-- | The number of pieces that have successfully imported as of the time of
--   the request.
ijCompletedPieces :: Lens' ImportJobResponse (Maybe Int)

-- | The number of pieces that have failed to import as of the time of the
--   request.
ijFailedPieces :: Lens' ImportJobResponse (Maybe Int)

-- | The import job settings.
ijDefinition :: Lens' ImportJobResponse (Maybe ImportJobResource)

-- | The number of endpoints that were processed by the import job.
ijTotalProcessed :: Lens' ImportJobResponse (Maybe Int)

-- | Provides up to 100 of the first failed entries for the job, if any
--   exist.
ijFailures :: Lens' ImportJobResponse [Text]

-- | The total number of pieces that must be imported to finish the job.
--   Each piece is an approximately equal portion of the endpoints to
--   import.
ijTotalPieces :: Lens' ImportJobResponse (Maybe Int)

-- | The unique ID of the application to which the import job applies.
ijApplicationId :: Lens' ImportJobResponse (Maybe Text)

-- | The unique ID of the import job.
ijId :: Lens' ImportJobResponse (Maybe Text)

-- | The date the import job was created in ISO 8601 format.
ijCreationDate :: Lens' ImportJobResponse (Maybe Text)

-- | The job type. Will be Import.
ijType :: Lens' ImportJobResponse (Maybe Text)

-- | The date the import job completed in ISO 8601 format.
ijCompletionDate :: Lens' ImportJobResponse (Maybe Text)

-- | The status of the import job. Valid values: CREATED, INITIALIZING,
--   PROCESSING, COMPLETING, COMPLETED, FAILING, FAILED The job status is
--   FAILED if one or more pieces failed to import.
ijJobStatus :: Lens' ImportJobResponse (Maybe JobStatus)

-- | The number of endpoints that failed to import; for example, because of
--   syntax errors.
ijTotalFailures :: Lens' ImportJobResponse (Maybe Int)

-- | <i>See:</i> <a>importJobsResponse</a> smart constructor.
data ImportJobsResponse

-- | Creates a value of <a>ImportJobsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ijNextToken</a> - The string that you use in a subsequent
--   request to get the next page of results in a paginated response.</li>
--   <li><a>ijItem</a> - A list of import jobs for the application.</li>
--   </ul>
importJobsResponse :: ImportJobsResponse

-- | The string that you use in a subsequent request to get the next page
--   of results in a paginated response.
ijNextToken :: Lens' ImportJobsResponse (Maybe Text)

-- | A list of import jobs for the application.
ijItem :: Lens' ImportJobsResponse [ImportJobResponse]

-- | <i>See:</i> <a>message</a> smart constructor.
data Message

-- | Creates a value of <a>Message</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mSilentPush</a> - Indicates if the message should display on
--   the users device. Silent pushes can be used for Remote Configuration
--   and Phone Home use cases.</li>
--   <li><a>mImageIconURL</a> - The URL that points to the icon image for
--   the push notification icon, for example, the app icon.</li>
--   <li><a>mBody</a> - The message body. Can include up to 140
--   characters.</li>
--   <li><a>mJSONBody</a> - The JSON payload used for a silent push.</li>
--   <li><a>mURL</a> - The URL to open in the user's mobile browser. Used
--   if the value for Action is URL.</li>
--   <li><a>mAction</a> - The action that occurs if the user taps a push
--   notification delivered by the campaign: OPEN_APP – Your app launches,
--   or it becomes the foreground app if it has been sent to the
--   background. This is the default action. DEEP_LINK – Uses deep linking
--   features in iOS and Android to open your app and display a designated
--   user interface within the app. URL – The default mobile browser on the
--   user's device launches and opens a web page at the URL you
--   specify.</li>
--   <li><a>mImageURL</a> - The URL that points to an image used in the
--   push notification.</li>
--   <li><a>mMediaURL</a> - The URL that points to the media resource, for
--   example a .mp4 or .gif file.</li>
--   <li><a>mTitle</a> - The message title that displays above the message
--   on the user's device.</li>
--   </ul>
message :: Message

-- | Indicates if the message should display on the users device. Silent
--   pushes can be used for Remote Configuration and Phone Home use cases.
mSilentPush :: Lens' Message (Maybe Bool)

-- | The URL that points to the icon image for the push notification icon,
--   for example, the app icon.
mImageIconURL :: Lens' Message (Maybe Text)

-- | The message body. Can include up to 140 characters.
mBody :: Lens' Message (Maybe Text)

-- | The JSON payload used for a silent push.
mJSONBody :: Lens' Message (Maybe Text)

-- | The URL to open in the user's mobile browser. Used if the value for
--   Action is URL.
mURL :: Lens' Message (Maybe Text)

-- | The action that occurs if the user taps a push notification delivered
--   by the campaign: OPEN_APP – Your app launches, or it becomes the
--   foreground app if it has been sent to the background. This is the
--   default action. DEEP_LINK – Uses deep linking features in iOS and
--   Android to open your app and display a designated user interface
--   within the app. URL – The default mobile browser on the user's device
--   launches and opens a web page at the URL you specify.
mAction :: Lens' Message (Maybe Action)

-- | The URL that points to an image used in the push notification.
mImageURL :: Lens' Message (Maybe Text)

-- | The URL that points to the media resource, for example a .mp4 or .gif
--   file.
mMediaURL :: Lens' Message (Maybe Text)

-- | The message title that displays above the message on the user's
--   device.
mTitle :: Lens' Message (Maybe Text)

-- | <i>See:</i> <a>messageBody</a> smart constructor.
data MessageBody

-- | Creates a value of <a>MessageBody</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mbRequestId</a> - Undocumented member.</li>
--   <li><a>mbMessage</a> - Undocumented member.</li>
--   </ul>
messageBody :: MessageBody

-- | Undocumented member.
mbRequestId :: Lens' MessageBody (Maybe Text)

-- | Undocumented member.
mbMessage :: Lens' MessageBody (Maybe Text)

-- | <i>See:</i> <a>messageConfiguration</a> smart constructor.
data MessageConfiguration

-- | Creates a value of <a>MessageConfiguration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mcAPNSMessage</a> - The message that the campaign delivers to
--   APNS channels. Overrides the default message.</li>
--   <li><a>mcGCMMessage</a> - The message that the campaign delivers to
--   GCM channels. Overrides the default message.</li>
--   <li><a>mcDefaultMessage</a> - The default message for all
--   channels.</li>
--   </ul>
messageConfiguration :: MessageConfiguration

-- | The message that the campaign delivers to APNS channels. Overrides the
--   default message.
mcAPNSMessage :: Lens' MessageConfiguration (Maybe Message)

-- | The message that the campaign delivers to GCM channels. Overrides the
--   default message.
mcGCMMessage :: Lens' MessageConfiguration (Maybe Message)

-- | The default message for all channels.
mcDefaultMessage :: Lens' MessageConfiguration (Maybe Message)

-- | <i>See:</i> <a>quietTime</a> smart constructor.
data QuietTime

-- | Creates a value of <a>QuietTime</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>qtStart</a> - The default start time for quiet time in ISO 8601
--   format.</li>
--   <li><a>qtEnd</a> - The default end time for quiet time in ISO 8601
--   format.</li>
--   </ul>
quietTime :: QuietTime

-- | The default start time for quiet time in ISO 8601 format.
qtStart :: Lens' QuietTime (Maybe Text)

-- | The default end time for quiet time in ISO 8601 format.
qtEnd :: Lens' QuietTime (Maybe Text)

-- | <i>See:</i> <a>recencyDimension</a> smart constructor.
data RecencyDimension

-- | Creates a value of <a>RecencyDimension</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rdRecencyType</a> - The recency dimension type: ACTIVE – Users
--   who have used your app within the specified duration are included in
--   the segment. INACTIVE – Users who have not used your app within the
--   specified duration are included in the segment.</li>
--   <li><a>rdDuration</a> - The length of time during which users have
--   been active or inactive with your app. Valid values: HR_24, DAY_7,
--   DAY_14, DAY_30</li>
--   </ul>
recencyDimension :: RecencyDimension

-- | The recency dimension type: ACTIVE – Users who have used your app
--   within the specified duration are included in the segment. INACTIVE –
--   Users who have not used your app within the specified duration are
--   included in the segment.
rdRecencyType :: Lens' RecencyDimension (Maybe RecencyType)

-- | The length of time during which users have been active or inactive
--   with your app. Valid values: HR_24, DAY_7, DAY_14, DAY_30
rdDuration :: Lens' RecencyDimension (Maybe Duration)

-- | <i>See:</i> <a>schedule</a> smart constructor.
data Schedule

-- | Creates a value of <a>Schedule</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sFrequency</a> - How often the campaign delivers messages.
--   Valid values: ONCE, HOURLY, DAILY, WEEKLY, MONTHLY</li>
--   <li><a>sStartTime</a> - The scheduled time that the campaign begins in
--   ISO 8601 format.</li>
--   <li><a>sQuietTime</a> - The time during which the campaign sends no
--   messages.</li>
--   <li><a>sIsLocalTime</a> - Indicates whether the campaign schedule
--   takes effect according to each user's local time.</li>
--   <li><a>sEndTime</a> - The scheduled time that the campaign ends in ISO
--   8601 format.</li>
--   <li><a>sTimezone</a> - The starting UTC offset for the schedule if the
--   value for isLocalTime is true Valid values: UTC UTC+01 UTC+02 UTC+03
--   UTC+03:30 UTC+04 UTC+04:30 UTC+05 UTC+05:30 UTC+05:45 UTC+06 UTC+06:30
--   UTC+07 UTC+08 UTC+09 UTC+09:30 UTC+10 UTC+10:30 UTC+11 UTC+12 UTC+13
--   UTC-02 UTC-03 UTC-04 UTC-05 UTC-06 UTC-07 UTC-08 UTC-09 UTC-10
--   UTC-11</li>
--   </ul>
schedule :: Schedule

-- | How often the campaign delivers messages. Valid values: ONCE, HOURLY,
--   DAILY, WEEKLY, MONTHLY
sFrequency :: Lens' Schedule (Maybe Frequency)

-- | The scheduled time that the campaign begins in ISO 8601 format.
sStartTime :: Lens' Schedule (Maybe Text)

-- | The time during which the campaign sends no messages.
sQuietTime :: Lens' Schedule (Maybe QuietTime)

-- | Indicates whether the campaign schedule takes effect according to each
--   user's local time.
sIsLocalTime :: Lens' Schedule (Maybe Bool)

-- | The scheduled time that the campaign ends in ISO 8601 format.
sEndTime :: Lens' Schedule (Maybe Text)

-- | The starting UTC offset for the schedule if the value for isLocalTime
--   is true Valid values: UTC UTC+01 UTC+02 UTC+03 UTC+03:30 UTC+04
--   UTC+04:30 UTC+05 UTC+05:30 UTC+05:45 UTC+06 UTC+06:30 UTC+07 UTC+08
--   UTC+09 UTC+09:30 UTC+10 UTC+10:30 UTC+11 UTC+12 UTC+13 UTC-02 UTC-03
--   UTC-04 UTC-05 UTC-06 UTC-07 UTC-08 UTC-09 UTC-10 UTC-11
sTimezone :: Lens' Schedule (Maybe Text)

-- | <i>See:</i> <a>segmentBehaviors</a> smart constructor.
data SegmentBehaviors

-- | Creates a value of <a>SegmentBehaviors</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sbRecency</a> - The recency of use.</li>
--   </ul>
segmentBehaviors :: SegmentBehaviors

-- | The recency of use.
sbRecency :: Lens' SegmentBehaviors (Maybe RecencyDimension)

-- | <i>See:</i> <a>segmentDemographics</a> smart constructor.
data SegmentDemographics

-- | Creates a value of <a>SegmentDemographics</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sdPlatform</a> - The device platform criteria for the
--   segment.</li>
--   <li><a>sdAppVersion</a> - The app version criteria for the
--   segment.</li>
--   <li><a>sdModel</a> - The device model criteria for the segment.</li>
--   <li><a>sdMake</a> - The device make criteria for the segment.</li>
--   <li><a>sdDeviceType</a> - The device type criteria for the
--   segment.</li>
--   </ul>
segmentDemographics :: SegmentDemographics

-- | The device platform criteria for the segment.
sdPlatform :: Lens' SegmentDemographics (Maybe SetDimension)

-- | The app version criteria for the segment.
sdAppVersion :: Lens' SegmentDemographics (Maybe SetDimension)

-- | The device model criteria for the segment.
sdModel :: Lens' SegmentDemographics (Maybe SetDimension)

-- | The device make criteria for the segment.
sdMake :: Lens' SegmentDemographics (Maybe SetDimension)

-- | The device type criteria for the segment.
sdDeviceType :: Lens' SegmentDemographics (Maybe SetDimension)

-- | <i>See:</i> <a>segmentDimensions</a> smart constructor.
data SegmentDimensions

-- | Creates a value of <a>SegmentDimensions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sdLocation</a> - The segment location attributes.</li>
--   <li><a>sdDemographic</a> - The segment demographics attributes.</li>
--   <li><a>sdBehavior</a> - The segment behaviors attributes.</li>
--   <li><a>sdAttributes</a> - Custom segment attributes.</li>
--   </ul>
segmentDimensions :: SegmentDimensions

-- | The segment location attributes.
sdLocation :: Lens' SegmentDimensions (Maybe SegmentLocation)

-- | The segment demographics attributes.
sdDemographic :: Lens' SegmentDimensions (Maybe SegmentDemographics)

-- | The segment behaviors attributes.
sdBehavior :: Lens' SegmentDimensions (Maybe SegmentBehaviors)

-- | Custom segment attributes.
sdAttributes :: Lens' SegmentDimensions (HashMap Text AttributeDimension)

-- | <i>See:</i> <a>segmentImportResource</a> smart constructor.
data SegmentImportResource

-- | Creates a value of <a>SegmentImportResource</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sirSize</a> - The number of endpoints that were successfully
--   imported to create this segment.</li>
--   <li><a>sirFormat</a> - The format of the endpoint files that were
--   imported to create this segment. Valid values: CSV, JSON</li>
--   <li><a>sirExternalId</a> - A unique, custom ID assigned to the IAM
--   role that restricts who can assume the role.</li>
--   <li><a>sirS3URL</a> - A URL that points to the Amazon S3 location from
--   which the endpoints for this segment were imported.</li>
--   <li><a>sirRoleARN</a> - The Amazon Resource Name (ARN) of an IAM role
--   that grants Amazon Pinpoint access to the endpoints in Amazon S3.</li>
--   </ul>
segmentImportResource :: SegmentImportResource

-- | The number of endpoints that were successfully imported to create this
--   segment.
sirSize :: Lens' SegmentImportResource (Maybe Int)

-- | The format of the endpoint files that were imported to create this
--   segment. Valid values: CSV, JSON
sirFormat :: Lens' SegmentImportResource (Maybe DefinitionFormat)

-- | A unique, custom ID assigned to the IAM role that restricts who can
--   assume the role.
sirExternalId :: Lens' SegmentImportResource (Maybe Text)

-- | A URL that points to the Amazon S3 location from which the endpoints
--   for this segment were imported.
sirS3URL :: Lens' SegmentImportResource (Maybe Text)

-- | The Amazon Resource Name (ARN) of an IAM role that grants Amazon
--   Pinpoint access to the endpoints in Amazon S3.
sirRoleARN :: Lens' SegmentImportResource (Maybe Text)

-- | <i>See:</i> <a>segmentLocation</a> smart constructor.
data SegmentLocation

-- | Creates a value of <a>SegmentLocation</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>slCountry</a> - The country filter according to ISO 3166-1
--   Alpha-2 codes.</li>
--   </ul>
segmentLocation :: SegmentLocation

-- | The country filter according to ISO 3166-1 Alpha-2 codes.
slCountry :: Lens' SegmentLocation (Maybe SetDimension)

-- | <i>See:</i> <a>segmentResponse</a> smart constructor.
data SegmentResponse

-- | Creates a value of <a>SegmentResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sLastModifiedDate</a> - The date the segment was last updated
--   in ISO 8601 format.</li>
--   <li><a>sSegmentType</a> - The segment type: DIMENSIONAL – A dynamic
--   segment built from selection criteria based on endpoint data reported
--   by your app. You create this type of segment by using the segment
--   builder in the Amazon Pinpoint console or by making a POST request to
--   the segments resource. IMPORT – A static segment built from an
--   imported set of endpoint definitions. You create this type of segment
--   by importing a segment in the Amazon Pinpoint console or by making a
--   POST request to the jobs/import resource.</li>
--   <li><a>sApplicationId</a> - The ID of the application to which the
--   segment applies.</li>
--   <li><a>sName</a> - The name of segment</li>
--   <li><a>sVersion</a> - The segment version number.</li>
--   <li><a>sId</a> - The unique segment ID.</li>
--   <li><a>sCreationDate</a> - The date the segment was created in ISO
--   8601 format.</li>
--   <li><a>sImportDefinition</a> - The import job settings.</li>
--   <li><a>sDimensions</a> - The segment dimensions attributes.</li>
--   </ul>
segmentResponse :: SegmentResponse

-- | The date the segment was last updated in ISO 8601 format.
sLastModifiedDate :: Lens' SegmentResponse (Maybe Text)

-- | The segment type: DIMENSIONAL – A dynamic segment built from selection
--   criteria based on endpoint data reported by your app. You create this
--   type of segment by using the segment builder in the Amazon Pinpoint
--   console or by making a POST request to the segments resource. IMPORT –
--   A static segment built from an imported set of endpoint definitions.
--   You create this type of segment by importing a segment in the Amazon
--   Pinpoint console or by making a POST request to the jobs/import
--   resource.
sSegmentType :: Lens' SegmentResponse (Maybe SegmentType)

-- | The ID of the application to which the segment applies.
sApplicationId :: Lens' SegmentResponse (Maybe Text)

-- | The name of segment
sName :: Lens' SegmentResponse (Maybe Text)

-- | The segment version number.
sVersion :: Lens' SegmentResponse (Maybe Int)

-- | The unique segment ID.
sId :: Lens' SegmentResponse (Maybe Text)

-- | The date the segment was created in ISO 8601 format.
sCreationDate :: Lens' SegmentResponse (Maybe Text)

-- | The import job settings.
sImportDefinition :: Lens' SegmentResponse (Maybe SegmentImportResource)

-- | The segment dimensions attributes.
sDimensions :: Lens' SegmentResponse (Maybe SegmentDimensions)

-- | <i>See:</i> <a>segmentsResponse</a> smart constructor.
data SegmentsResponse

-- | Creates a value of <a>SegmentsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sNextToken</a> - An identifier used to retrieve the next page
--   of results. The token is null if no additional pages exist.</li>
--   <li><a>sItem</a> - The list of segments.</li>
--   </ul>
segmentsResponse :: SegmentsResponse

-- | An identifier used to retrieve the next page of results. The token is
--   null if no additional pages exist.
sNextToken :: Lens' SegmentsResponse (Maybe Text)

-- | The list of segments.
sItem :: Lens' SegmentsResponse [SegmentResponse]

-- | <i>See:</i> <a>setDimension</a> smart constructor.
data SetDimension

-- | Creates a value of <a>SetDimension</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sdValues</a> - The criteria values for the segment dimension.
--   Endpoints with matching attribute values are included or excluded from
--   the segment, depending on the setting for Type.</li>
--   <li><a>sdDimensionType</a> - The type of dimension: INCLUSIVE –
--   Endpoints that match the criteria are included in the segment.
--   EXCLUSIVE – Endpoints that match the criteria are excluded from the
--   segment.</li>
--   </ul>
setDimension :: SetDimension

-- | The criteria values for the segment dimension. Endpoints with matching
--   attribute values are included or excluded from the segment, depending
--   on the setting for Type.
sdValues :: Lens' SetDimension [Text]

-- | The type of dimension: INCLUSIVE – Endpoints that match the criteria
--   are included in the segment. EXCLUSIVE – Endpoints that match the
--   criteria are excluded from the segment.
sdDimensionType :: Lens' SetDimension (Maybe DimensionType)

-- | <i>See:</i> <a>treatmentResource</a> smart constructor.
data TreatmentResource

-- | Creates a value of <a>TreatmentResource</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>trState</a> - The treatment status.</li>
--   <li><a>trSchedule</a> - The campaign schedule.</li>
--   <li><a>trTreatmentName</a> - The custom name of a variation of the
--   campaign used for A/B testing.</li>
--   <li><a>trSizePercent</a> - The allocated percentage of users for this
--   treatment.</li>
--   <li><a>trTreatmentDescription</a> - A custom description for the
--   treatment.</li>
--   <li><a>trId</a> - The unique treatment ID.</li>
--   <li><a>trMessageConfiguration</a> - The message configuration
--   settings.</li>
--   </ul>
treatmentResource :: TreatmentResource

-- | The treatment status.
trState :: Lens' TreatmentResource (Maybe CampaignState)

-- | The campaign schedule.
trSchedule :: Lens' TreatmentResource (Maybe Schedule)

-- | The custom name of a variation of the campaign used for A/B testing.
trTreatmentName :: Lens' TreatmentResource (Maybe Text)

-- | The allocated percentage of users for this treatment.
trSizePercent :: Lens' TreatmentResource (Maybe Int)

-- | A custom description for the treatment.
trTreatmentDescription :: Lens' TreatmentResource (Maybe Text)

-- | The unique treatment ID.
trId :: Lens' TreatmentResource (Maybe Text)

-- | The message configuration settings.
trMessageConfiguration :: Lens' TreatmentResource (Maybe MessageConfiguration)

-- | <i>See:</i> <a>writeApplicationSettingsRequest</a> smart constructor.
data WriteApplicationSettingsRequest

-- | Creates a value of <a>WriteApplicationSettingsRequest</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>wasrLimits</a> - The default campaign limits for the app. These
--   limits apply to each campaign for the app, unless the campaign
--   overrides the default with limits of its own.</li>
--   <li><a>wasrQuietTime</a> - The default quiet time for the app. Each
--   campaign for this app sends no messages during this time unless the
--   campaign overrides the default with a quiet time of its own.</li>
--   </ul>
writeApplicationSettingsRequest :: WriteApplicationSettingsRequest

-- | The default campaign limits for the app. These limits apply to each
--   campaign for the app, unless the campaign overrides the default with
--   limits of its own.
wasrLimits :: Lens' WriteApplicationSettingsRequest (Maybe CampaignLimits)

-- | The default quiet time for the app. Each campaign for this app sends
--   no messages during this time unless the campaign overrides the default
--   with a quiet time of its own.
wasrQuietTime :: Lens' WriteApplicationSettingsRequest (Maybe QuietTime)

-- | <i>See:</i> <a>writeCampaignRequest</a> smart constructor.
data WriteCampaignRequest

-- | Creates a value of <a>WriteCampaignRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>wcrSchedule</a> - The campaign schedule.</li>
--   <li><a>wcrTreatmentName</a> - The custom name of a variation of the
--   campaign used for A/B testing.</li>
--   <li><a>wcrLimits</a> - The campaign limits settings.</li>
--   <li><a>wcrIsPaused</a> - Indicates whether the campaign is paused. A
--   paused campaign does not send messages unless you resume it by setting
--   IsPaused to false.</li>
--   <li><a>wcrName</a> - The custom name of the campaign.</li>
--   <li><a>wcrHoldoutPercent</a> - The allocated percentage of end users
--   who will not receive messages from this campaign.</li>
--   <li><a>wcrTreatmentDescription</a> - A custom description for the
--   treatment.</li>
--   <li><a>wcrMessageConfiguration</a> - The message configuration
--   settings.</li>
--   <li><a>wcrDescription</a> - A description of the campaign.</li>
--   <li><a>wcrSegmentId</a> - The ID of the segment to which the campaign
--   sends messages.</li>
--   <li><a>wcrAdditionalTreatments</a> - Treatments that are defined in
--   addition to the default treatment.</li>
--   <li><a>wcrSegmentVersion</a> - The version of the segment to which the
--   campaign sends messages.</li>
--   </ul>
writeCampaignRequest :: WriteCampaignRequest

-- | The campaign schedule.
wcrSchedule :: Lens' WriteCampaignRequest (Maybe Schedule)

-- | The custom name of a variation of the campaign used for A/B testing.
wcrTreatmentName :: Lens' WriteCampaignRequest (Maybe Text)

-- | The campaign limits settings.
wcrLimits :: Lens' WriteCampaignRequest (Maybe CampaignLimits)

-- | Indicates whether the campaign is paused. A paused campaign does not
--   send messages unless you resume it by setting IsPaused to false.
wcrIsPaused :: Lens' WriteCampaignRequest (Maybe Bool)

-- | The custom name of the campaign.
wcrName :: Lens' WriteCampaignRequest (Maybe Text)

-- | The allocated percentage of end users who will not receive messages
--   from this campaign.
wcrHoldoutPercent :: Lens' WriteCampaignRequest (Maybe Int)

-- | A custom description for the treatment.
wcrTreatmentDescription :: Lens' WriteCampaignRequest (Maybe Text)

-- | The message configuration settings.
wcrMessageConfiguration :: Lens' WriteCampaignRequest (Maybe MessageConfiguration)

-- | A description of the campaign.
wcrDescription :: Lens' WriteCampaignRequest (Maybe Text)

-- | The ID of the segment to which the campaign sends messages.
wcrSegmentId :: Lens' WriteCampaignRequest (Maybe Text)

-- | Treatments that are defined in addition to the default treatment.
wcrAdditionalTreatments :: Lens' WriteCampaignRequest [WriteTreatmentResource]

-- | The version of the segment to which the campaign sends messages.
wcrSegmentVersion :: Lens' WriteCampaignRequest (Maybe Int)

-- | <i>See:</i> <a>writeSegmentRequest</a> smart constructor.
data WriteSegmentRequest

-- | Creates a value of <a>WriteSegmentRequest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>wsrName</a> - The name of segment</li>
--   <li><a>wsrDimensions</a> - The segment dimensions attributes.</li>
--   </ul>
writeSegmentRequest :: WriteSegmentRequest

-- | The name of segment
wsrName :: Lens' WriteSegmentRequest (Maybe Text)

-- | The segment dimensions attributes.
wsrDimensions :: Lens' WriteSegmentRequest (Maybe SegmentDimensions)

-- | <i>See:</i> <a>writeTreatmentResource</a> smart constructor.
data WriteTreatmentResource

-- | Creates a value of <a>WriteTreatmentResource</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>wtrSchedule</a> - The campaign schedule.</li>
--   <li><a>wtrTreatmentName</a> - The custom name of a variation of the
--   campaign used for A/B testing.</li>
--   <li><a>wtrSizePercent</a> - The allocated percentage of users for this
--   treatment.</li>
--   <li><a>wtrTreatmentDescription</a> - A custom description for the
--   treatment.</li>
--   <li><a>wtrMessageConfiguration</a> - The message configuration
--   settings.</li>
--   </ul>
writeTreatmentResource :: WriteTreatmentResource

-- | The campaign schedule.
wtrSchedule :: Lens' WriteTreatmentResource (Maybe Schedule)

-- | The custom name of a variation of the campaign used for A/B testing.
wtrTreatmentName :: Lens' WriteTreatmentResource (Maybe Text)

-- | The allocated percentage of users for this treatment.
wtrSizePercent :: Lens' WriteTreatmentResource (Maybe Int)

-- | A custom description for the treatment.
wtrTreatmentDescription :: Lens' WriteTreatmentResource (Maybe Text)

-- | The message configuration settings.
wtrMessageConfiguration :: Lens' WriteTreatmentResource (Maybe MessageConfiguration)
