-- 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.6.1


module Network.AWS.Pinpoint.Types

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

-- | Simple message object.
_ForbiddenException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Simple message object.
_NotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Simple message object.
_TooManyRequestsException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Simple message object.
_InternalServerErrorException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Simple message object.
_MethodNotAllowedException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Simple message object.
_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
ADM :: ChannelType
APNS :: ChannelType
APNSSandbox :: ChannelType
APNSVoip :: ChannelType
APNSVoipSandbox :: ChannelType
Baidu :: ChannelType
Custom :: ChannelType
Email :: ChannelType
GCM :: ChannelType
Sms :: ChannelType
data DefinitionFormat
CSV :: DefinitionFormat
JSON :: DefinitionFormat
data DeliveryStatus
Duplicate :: DeliveryStatus
OptOut :: DeliveryStatus
PermanentFailure :: DeliveryStatus
Successful :: DeliveryStatus
TemporaryFailure :: DeliveryStatus
Throttled :: DeliveryStatus
UnknownFailure :: DeliveryStatus
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 MessageType
Promotional :: MessageType
Transactional :: MessageType
data Mode
Delivery :: Mode
Filter :: Mode
data RecencyType
Active :: RecencyType
Inactive :: RecencyType
data SegmentType
Dimensional :: SegmentType
Import :: SegmentType

-- | Amazon Device Messaging channel definition.
--   
--   <i>See:</i> <a>aDMChannelRequest</a> smart constructor.
data ADMChannelRequest

-- | Creates a value of <a>ADMChannelRequest</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>admcrClientId</a> - Client ID as gotten from Amazon</li>
--   <li><a>admcrClientSecret</a> - Client secret as gotten from
--   Amazon</li>
--   <li><a>admcrEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   </ul>
aDMChannelRequest :: ADMChannelRequest

-- | Client ID as gotten from Amazon
admcrClientId :: Lens' ADMChannelRequest (Maybe Text)

-- | Client secret as gotten from Amazon
admcrClientSecret :: Lens' ADMChannelRequest (Maybe Text)

-- | If the channel is enabled for sending messages.
admcrEnabled :: Lens' ADMChannelRequest (Maybe Bool)

-- | Amazon Device Messaging channel definition.
--   
--   <i>See:</i> <a>aDMChannelResponse</a> smart constructor.
data ADMChannelResponse

-- | Creates a value of <a>ADMChannelResponse</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>admcPlatform</a> - Platform type. Will be <a>ADM</a></li>
--   <li><a>admcLastModifiedDate</a> - Last date this was updated</li>
--   <li><a>admcEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>admcIsArchived</a> - Is this channel archived</li>
--   <li><a>admcApplicationId</a> - The ID of the application to which the
--   channel applies.</li>
--   <li><a>admcVersion</a> - Version of channel</li>
--   <li><a>admcId</a> - Channel ID. Not used, only for backwards
--   compatibility.</li>
--   <li><a>admcCreationDate</a> - When was this segment created</li>
--   <li><a>admcLastModifiedBy</a> - Who last updated this entry</li>
--   <li><a>admcHasCredential</a> - Indicates whether the channel is
--   configured with ADM credentials. Amazon Pinpoint uses your credentials
--   to authenticate push notifications with ADM. Provide your credentials
--   by setting the ClientId and ClientSecret attributes.</li>
--   </ul>
aDMChannelResponse :: ADMChannelResponse

-- | Platform type. Will be <a>ADM</a>
admcPlatform :: Lens' ADMChannelResponse (Maybe Text)

-- | Last date this was updated
admcLastModifiedDate :: Lens' ADMChannelResponse (Maybe Text)

-- | If the channel is enabled for sending messages.
admcEnabled :: Lens' ADMChannelResponse (Maybe Bool)

-- | Is this channel archived
admcIsArchived :: Lens' ADMChannelResponse (Maybe Bool)

-- | The ID of the application to which the channel applies.
admcApplicationId :: Lens' ADMChannelResponse (Maybe Text)

-- | Version of channel
admcVersion :: Lens' ADMChannelResponse (Maybe Int)

-- | Channel ID. Not used, only for backwards compatibility.
admcId :: Lens' ADMChannelResponse (Maybe Text)

-- | When was this segment created
admcCreationDate :: Lens' ADMChannelResponse (Maybe Text)

-- | Who last updated this entry
admcLastModifiedBy :: Lens' ADMChannelResponse (Maybe Text)

-- | Indicates whether the channel is configured with ADM credentials.
--   Amazon Pinpoint uses your credentials to authenticate push
--   notifications with ADM. Provide your credentials by setting the
--   ClientId and ClientSecret attributes.
admcHasCredential :: Lens' ADMChannelResponse (Maybe Bool)

-- | ADM Message.
--   
--   <i>See:</i> <a>aDMMessage</a> smart constructor.
data ADMMessage

-- | Creates a value of <a>ADMMessage</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>admmSubstitutions</a> - Default message substitutions. Can be
--   overridden by individual address substitutions.</li>
--   <li><a>admmExpiresAfter</a> - Optional. Number of seconds ADM should
--   retain the message if the device is offline</li>
--   <li><a>admmMD5</a> - Optional. Base-64-encoded MD5 checksum of the
--   data parameter. Used to verify data integrity</li>
--   <li><a>admmSilentPush</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>admmImageIconURL</a> - The URL that points to an image used as
--   the large icon to the notification content view.</li>
--   <li><a>admmRawContent</a> - The Raw JSON formatted string to be used
--   as the payload. This value overrides the message.</li>
--   <li><a>admmData</a> - The data payload used for a silent push. This
--   payload is added to the notifications' data.pinpoint.jsonBody'
--   object</li>
--   <li><a>admmSmallImageIconURL</a> - The URL that points to an image
--   used as the small icon for the notification which will be used to
--   represent the notification in the status bar and content view</li>
--   <li><a>admmBody</a> - The message body of the notification, the email
--   body or the text message.</li>
--   <li><a>admmURL</a> - The URL to open in the user's mobile browser.
--   Used if the value for Action is URL.</li>
--   <li><a>admmSound</a> - Indicates a sound to play when the device
--   receives the notification. Supports default, or the filename of a
--   sound resource bundled in the app. Android sound files must reside in
--   <i>res</i>raw/</li>
--   <li><a>admmAction</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.
--   Possible values include: OPEN_APP | DEEP_LINK | URL</li>
--   <li><a>admmImageURL</a> - The URL that points to an image used in the
--   push notification.</li>
--   <li><a>admmConsolidationKey</a> - Optional. Arbitrary string used to
--   indicate multiple messages are logically the same and that ADM is
--   allowed to drop previously enqueued messages in favor of this
--   one.</li>
--   <li><a>admmTitle</a> - The message title that displays above the
--   message on the user's device.</li>
--   <li><a>admmIconReference</a> - The icon image name of the asset saved
--   in your application.</li>
--   </ul>
aDMMessage :: ADMMessage

-- | Default message substitutions. Can be overridden by individual address
--   substitutions.
admmSubstitutions :: Lens' ADMMessage (HashMap Text [Text])

-- | Optional. Number of seconds ADM should retain the message if the
--   device is offline
admmExpiresAfter :: Lens' ADMMessage (Maybe Text)

-- | Optional. Base-64-encoded MD5 checksum of the data parameter. Used to
--   verify data integrity
admmMD5 :: Lens' ADMMessage (Maybe Text)

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

-- | The URL that points to an image used as the large icon to the
--   notification content view.
admmImageIconURL :: Lens' ADMMessage (Maybe Text)

-- | The Raw JSON formatted string to be used as the payload. This value
--   overrides the message.
admmRawContent :: Lens' ADMMessage (Maybe Text)

-- | The data payload used for a silent push. This payload is added to the
--   notifications' data.pinpoint.jsonBody' object
admmData :: Lens' ADMMessage (HashMap Text Text)

-- | The URL that points to an image used as the small icon for the
--   notification which will be used to represent the notification in the
--   status bar and content view
admmSmallImageIconURL :: Lens' ADMMessage (Maybe Text)

-- | The message body of the notification, the email body or the text
--   message.
admmBody :: Lens' ADMMessage (Maybe Text)

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

-- | Indicates a sound to play when the device receives the notification.
--   Supports default, or the filename of a sound resource bundled in the
--   app. Android sound files must reside in <i>res</i>raw/
admmSound :: Lens' ADMMessage (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. Possible values
--   include: OPEN_APP | DEEP_LINK | URL
admmAction :: Lens' ADMMessage (Maybe Action)

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

-- | Optional. Arbitrary string used to indicate multiple messages are
--   logically the same and that ADM is allowed to drop previously enqueued
--   messages in favor of this one.
admmConsolidationKey :: Lens' ADMMessage (Maybe Text)

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

-- | The icon image name of the asset saved in your application.
admmIconReference :: Lens' ADMMessage (Maybe Text)

-- | Apple Push Notification Service channel definition.
--   
--   <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>acrTokenKey</a> - The token key used for APNs Tokens.</li>
--   <li><a>acrPrivateKey</a> - The certificate private key.</li>
--   <li><a>acrEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>acrTeamId</a> - The team id used for APNs Tokens.</li>
--   <li><a>acrBundleId</a> - The bundle id used for APNs Tokens.</li>
--   <li><a>acrDefaultAuthenticationMethod</a> - The default authentication
--   method used for APNs.</li>
--   <li><a>acrCertificate</a> - The distribution certificate from
--   Apple.</li>
--   <li><a>acrTokenKeyId</a> - The token key used for APNs Tokens.</li>
--   </ul>
apnsChannelRequest :: APNSChannelRequest

-- | The token key used for APNs Tokens.
acrTokenKey :: Lens' APNSChannelRequest (Maybe Text)

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

-- | If the channel is enabled for sending messages.
acrEnabled :: Lens' APNSChannelRequest (Maybe Bool)

-- | The team id used for APNs Tokens.
acrTeamId :: Lens' APNSChannelRequest (Maybe Text)

-- | The bundle id used for APNs Tokens.
acrBundleId :: Lens' APNSChannelRequest (Maybe Text)

-- | The default authentication method used for APNs.
acrDefaultAuthenticationMethod :: Lens' APNSChannelRequest (Maybe Text)

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

-- | The token key used for APNs Tokens.
acrTokenKeyId :: Lens' APNSChannelRequest (Maybe Text)

-- | Apple Distribution Push Notification Service channel definition.
--   
--   <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>acEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>acHasTokenKey</a> - Indicates whether the channel is configured
--   with a key for APNs token authentication. Provide a token key by
--   setting the TokenKey attribute.</li>
--   <li><a>acDefaultAuthenticationMethod</a> - The default authentication
--   method used for APNs.</li>
--   <li><a>acIsArchived</a> - Is this channel archived</li>
--   <li><a>acApplicationId</a> - The ID of the application to which the
--   channel applies.</li>
--   <li><a>acVersion</a> - Version of channel</li>
--   <li><a>acId</a> - Channel ID. Not used. Present only for backwards
--   compatibility.</li>
--   <li><a>acCreationDate</a> - When was this segment created</li>
--   <li><a>acLastModifiedBy</a> - Who last updated this entry</li>
--   <li><a>acHasCredential</a> - Indicates whether the channel is
--   configured with APNs credentials. Amazon Pinpoint uses your
--   credentials to authenticate push notifications with APNs. To use APNs
--   token authentication, set the BundleId, TeamId, TokenKey, and
--   TokenKeyId attributes. To use certificate authentication, set the
--   Certificate and PrivateKey attributes.</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)

-- | If the channel is enabled for sending messages.
acEnabled :: Lens' APNSChannelResponse (Maybe Bool)

-- | Indicates whether the channel is configured with a key for APNs token
--   authentication. Provide a token key by setting the TokenKey attribute.
acHasTokenKey :: Lens' APNSChannelResponse (Maybe Bool)

-- | The default authentication method used for APNs.
acDefaultAuthenticationMethod :: Lens' APNSChannelResponse (Maybe Text)

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

-- | The ID of the application to which the channel applies.
acApplicationId :: Lens' APNSChannelResponse (Maybe Text)

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

-- | Channel ID. Not used. Present only for backwards compatibility.
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)

-- | Indicates whether the channel is configured with APNs credentials.
--   Amazon Pinpoint uses your credentials to authenticate push
--   notifications with APNs. To use APNs token authentication, set the
--   BundleId, TeamId, TokenKey, and TokenKeyId attributes. To use
--   certificate authentication, set the Certificate and PrivateKey
--   attributes.
acHasCredential :: Lens' APNSChannelResponse (Maybe Bool)

-- | APNS Message.
--   
--   <i>See:</i> <a>apnsMessage</a> smart constructor.
data APNSMessage

-- | Creates a value of <a>APNSMessage</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>amSubstitutions</a> - Default message substitutions. Can be
--   overridden by individual address substitutions.</li>
--   <li><a>amSilentPush</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>amPriority</a> - The message priority. Amazon Pinpoint uses
--   this value to set the apns-priority request header when it sends the
--   message to APNs. Accepts the following values: "5" - Low priority.
--   Messages might be delayed, delivered in groups, and throttled. "10" -
--   High priority. Messages are sent immediately. High priority messages
--   must cause an alert, sound, or badge on the receiving device. The
--   default value is "10". The equivalent values for FCM or GCM messages
--   are "normal" and "high". Amazon Pinpoint accepts these values for APNs
--   messages and converts them. For more information about the
--   apns-priority parameter, see Communicating with APNs in the APNs Local
--   and Remote Notification Programming Guide.</li>
--   <li><a>amRawContent</a> - The Raw JSON formatted string to be used as
--   the payload. This value overrides the message.</li>
--   <li><a>amData</a> - The data payload used for a silent push. This
--   payload is added to the notifications' data.pinpoint.jsonBody'
--   object</li>
--   <li><a>amBody</a> - The message body of the notification, the email
--   body or the text message.</li>
--   <li><a>amCategory</a> - Provide this key with a string value that
--   represents the notification's type. This value corresponds to the
--   value in the identifier property of one of your app's registered
--   categories.</li>
--   <li><a>amTimeToLive</a> - The length of time (in seconds) that APNs
--   stores and attempts to deliver the message. If the value is 0, APNs
--   does not store the message or attempt to deliver it more than once.
--   Amazon Pinpoint uses this value to set the apns-expiration request
--   header when it sends the message to APNs.</li>
--   <li><a>amURL</a> - The URL to open in the user's mobile browser. Used
--   if the value for Action is URL.</li>
--   <li><a>amSound</a> - Include this key when you want the system to play
--   a sound. The value of this key is the name of a sound file in your
--   app's main bundle or in the Library/Sounds folder of your app's data
--   container. If the sound file cannot be found, or if you specify
--   defaultfor the value, the system plays the default alert sound.</li>
--   <li><a>amAction</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.
--   Possible values include: OPEN_APP | DEEP_LINK | URL</li>
--   <li><a>amMediaURL</a> - The URL that points to a video used in the
--   push notification.</li>
--   <li><a>amPreferredAuthenticationMethod</a> - The preferred
--   authentication method, either <a>CERTIFICATE</a> or <a>TOKEN</a></li>
--   <li><a>amBadge</a> - Include this key when you want the system to
--   modify the badge of your app icon. If this key is not included in the
--   dictionary, the badge is not changed. To remove the badge, set the
--   value of this key to 0.</li>
--   <li><a>amTitle</a> - The message title that displays above the message
--   on the user's device.</li>
--   <li><a>amThreadId</a> - Provide this key with a string value that
--   represents the app-specific identifier for grouping notifications. If
--   you provide a Notification Content app extension, you can use this
--   value to group your notifications together.</li>
--   <li><a>amCollapseId</a> - An ID that, if assigned to multiple
--   messages, causes APNs to coalesce the messages into a single push
--   notification instead of delivering each message individually. The
--   value must not exceed 64 bytes. Amazon Pinpoint uses this value to set
--   the apns-collapse-id request header when it sends the message to
--   APNs.</li>
--   </ul>
apnsMessage :: APNSMessage

-- | Default message substitutions. Can be overridden by individual address
--   substitutions.
amSubstitutions :: Lens' APNSMessage (HashMap Text [Text])

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

-- | The message priority. Amazon Pinpoint uses this value to set the
--   apns-priority request header when it sends the message to APNs.
--   Accepts the following values: "5" - Low priority. Messages might be
--   delayed, delivered in groups, and throttled. "10" - High priority.
--   Messages are sent immediately. High priority messages must cause an
--   alert, sound, or badge on the receiving device. The default value is
--   "10". The equivalent values for FCM or GCM messages are "normal" and
--   "high". Amazon Pinpoint accepts these values for APNs messages and
--   converts them. For more information about the apns-priority parameter,
--   see Communicating with APNs in the APNs Local and Remote Notification
--   Programming Guide.
amPriority :: Lens' APNSMessage (Maybe Text)

-- | The Raw JSON formatted string to be used as the payload. This value
--   overrides the message.
amRawContent :: Lens' APNSMessage (Maybe Text)

-- | The data payload used for a silent push. This payload is added to the
--   notifications' data.pinpoint.jsonBody' object
amData :: Lens' APNSMessage (HashMap Text Text)

-- | The message body of the notification, the email body or the text
--   message.
amBody :: Lens' APNSMessage (Maybe Text)

-- | Provide this key with a string value that represents the
--   notification's type. This value corresponds to the value in the
--   identifier property of one of your app's registered categories.
amCategory :: Lens' APNSMessage (Maybe Text)

-- | The length of time (in seconds) that APNs stores and attempts to
--   deliver the message. If the value is 0, APNs does not store the
--   message or attempt to deliver it more than once. Amazon Pinpoint uses
--   this value to set the apns-expiration request header when it sends the
--   message to APNs.
amTimeToLive :: Lens' APNSMessage (Maybe Int)

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

-- | Include this key when you want the system to play a sound. The value
--   of this key is the name of a sound file in your app's main bundle or
--   in the Library/Sounds folder of your app's data container. If the
--   sound file cannot be found, or if you specify defaultfor the value,
--   the system plays the default alert sound.
amSound :: Lens' APNSMessage (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. Possible values
--   include: OPEN_APP | DEEP_LINK | URL
amAction :: Lens' APNSMessage (Maybe Action)

-- | The URL that points to a video used in the push notification.
amMediaURL :: Lens' APNSMessage (Maybe Text)

-- | The preferred authentication method, either <a>CERTIFICATE</a> or
--   <a>TOKEN</a>
amPreferredAuthenticationMethod :: Lens' APNSMessage (Maybe Text)

-- | Include this key when you want the system to modify the badge of your
--   app icon. If this key is not included in the dictionary, the badge is
--   not changed. To remove the badge, set the value of this key to 0.
amBadge :: Lens' APNSMessage (Maybe Int)

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

-- | Provide this key with a string value that represents the app-specific
--   identifier for grouping notifications. If you provide a Notification
--   Content app extension, you can use this value to group your
--   notifications together.
amThreadId :: Lens' APNSMessage (Maybe Text)

-- | An ID that, if assigned to multiple messages, causes APNs to coalesce
--   the messages into a single push notification instead of delivering
--   each message individually. The value must not exceed 64 bytes. Amazon
--   Pinpoint uses this value to set the apns-collapse-id request header
--   when it sends the message to APNs.
amCollapseId :: Lens' APNSMessage (Maybe Text)

-- | Apple Development Push Notification Service channel definition.
--   
--   <i>See:</i> <a>apnsSandboxChannelRequest</a> smart constructor.
data APNSSandboxChannelRequest

-- | Creates a value of <a>APNSSandboxChannelRequest</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>ascrTokenKey</a> - The token key used for APNs Tokens.</li>
--   <li><a>ascrPrivateKey</a> - The certificate private key.</li>
--   <li><a>ascrEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>ascrTeamId</a> - The team id used for APNs Tokens.</li>
--   <li><a>ascrBundleId</a> - The bundle id used for APNs Tokens.</li>
--   <li><a>ascrDefaultAuthenticationMethod</a> - The default
--   authentication method used for APNs.</li>
--   <li><a>ascrCertificate</a> - The distribution certificate from
--   Apple.</li>
--   <li><a>ascrTokenKeyId</a> - The token key used for APNs Tokens.</li>
--   </ul>
apnsSandboxChannelRequest :: APNSSandboxChannelRequest

-- | The token key used for APNs Tokens.
ascrTokenKey :: Lens' APNSSandboxChannelRequest (Maybe Text)

-- | The certificate private key.
ascrPrivateKey :: Lens' APNSSandboxChannelRequest (Maybe Text)

-- | If the channel is enabled for sending messages.
ascrEnabled :: Lens' APNSSandboxChannelRequest (Maybe Bool)

-- | The team id used for APNs Tokens.
ascrTeamId :: Lens' APNSSandboxChannelRequest (Maybe Text)

-- | The bundle id used for APNs Tokens.
ascrBundleId :: Lens' APNSSandboxChannelRequest (Maybe Text)

-- | The default authentication method used for APNs.
ascrDefaultAuthenticationMethod :: Lens' APNSSandboxChannelRequest (Maybe Text)

-- | The distribution certificate from Apple.
ascrCertificate :: Lens' APNSSandboxChannelRequest (Maybe Text)

-- | The token key used for APNs Tokens.
ascrTokenKeyId :: Lens' APNSSandboxChannelRequest (Maybe Text)

-- | Apple Development Push Notification Service channel definition.
--   
--   <i>See:</i> <a>apnsSandboxChannelResponse</a> smart constructor.
data APNSSandboxChannelResponse

-- | Creates a value of <a>APNSSandboxChannelResponse</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>ascPlatform</a> - The platform type. Will be APNS_SANDBOX.</li>
--   <li><a>ascLastModifiedDate</a> - Last date this was updated</li>
--   <li><a>ascEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>ascHasTokenKey</a> - Indicates whether the channel is
--   configured with a key for APNs token authentication. Provide a token
--   key by setting the TokenKey attribute.</li>
--   <li><a>ascDefaultAuthenticationMethod</a> - The default authentication
--   method used for APNs.</li>
--   <li><a>ascIsArchived</a> - Is this channel archived</li>
--   <li><a>ascApplicationId</a> - The ID of the application to which the
--   channel applies.</li>
--   <li><a>ascVersion</a> - Version of channel</li>
--   <li><a>ascId</a> - Channel ID. Not used, only for backwards
--   compatibility.</li>
--   <li><a>ascCreationDate</a> - When was this segment created</li>
--   <li><a>ascLastModifiedBy</a> - Who last updated this entry</li>
--   <li><a>ascHasCredential</a> - Indicates whether the channel is
--   configured with APNs credentials. Amazon Pinpoint uses your
--   credentials to authenticate push notifications with APNs. To use APNs
--   token authentication, set the BundleId, TeamId, TokenKey, and
--   TokenKeyId attributes. To use certificate authentication, set the
--   Certificate and PrivateKey attributes.</li>
--   </ul>
apnsSandboxChannelResponse :: APNSSandboxChannelResponse

-- | The platform type. Will be APNS_SANDBOX.
ascPlatform :: Lens' APNSSandboxChannelResponse (Maybe Text)

-- | Last date this was updated
ascLastModifiedDate :: Lens' APNSSandboxChannelResponse (Maybe Text)

-- | If the channel is enabled for sending messages.
ascEnabled :: Lens' APNSSandboxChannelResponse (Maybe Bool)

-- | Indicates whether the channel is configured with a key for APNs token
--   authentication. Provide a token key by setting the TokenKey attribute.
ascHasTokenKey :: Lens' APNSSandboxChannelResponse (Maybe Bool)

-- | The default authentication method used for APNs.
ascDefaultAuthenticationMethod :: Lens' APNSSandboxChannelResponse (Maybe Text)

-- | Is this channel archived
ascIsArchived :: Lens' APNSSandboxChannelResponse (Maybe Bool)

-- | The ID of the application to which the channel applies.
ascApplicationId :: Lens' APNSSandboxChannelResponse (Maybe Text)

-- | Version of channel
ascVersion :: Lens' APNSSandboxChannelResponse (Maybe Int)

-- | Channel ID. Not used, only for backwards compatibility.
ascId :: Lens' APNSSandboxChannelResponse (Maybe Text)

-- | When was this segment created
ascCreationDate :: Lens' APNSSandboxChannelResponse (Maybe Text)

-- | Who last updated this entry
ascLastModifiedBy :: Lens' APNSSandboxChannelResponse (Maybe Text)

-- | Indicates whether the channel is configured with APNs credentials.
--   Amazon Pinpoint uses your credentials to authenticate push
--   notifications with APNs. To use APNs token authentication, set the
--   BundleId, TeamId, TokenKey, and TokenKeyId attributes. To use
--   certificate authentication, set the Certificate and PrivateKey
--   attributes.
ascHasCredential :: Lens' APNSSandboxChannelResponse (Maybe Bool)

-- | Apple VoIP Push Notification Service channel definition.
--   
--   <i>See:</i> <a>apnsVoipChannelRequest</a> smart constructor.
data APNSVoipChannelRequest

-- | Creates a value of <a>APNSVoipChannelRequest</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>avcrTokenKey</a> - The token key used for APNs Tokens.</li>
--   <li><a>avcrPrivateKey</a> - The certificate private key.</li>
--   <li><a>avcrEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>avcrTeamId</a> - The team id used for APNs Tokens.</li>
--   <li><a>avcrBundleId</a> - The bundle id used for APNs Tokens.</li>
--   <li><a>avcrDefaultAuthenticationMethod</a> - The default
--   authentication method used for APNs.</li>
--   <li><a>avcrCertificate</a> - The distribution certificate from
--   Apple.</li>
--   <li><a>avcrTokenKeyId</a> - The token key used for APNs Tokens.</li>
--   </ul>
apnsVoipChannelRequest :: APNSVoipChannelRequest

-- | The token key used for APNs Tokens.
avcrTokenKey :: Lens' APNSVoipChannelRequest (Maybe Text)

-- | The certificate private key.
avcrPrivateKey :: Lens' APNSVoipChannelRequest (Maybe Text)

-- | If the channel is enabled for sending messages.
avcrEnabled :: Lens' APNSVoipChannelRequest (Maybe Bool)

-- | The team id used for APNs Tokens.
avcrTeamId :: Lens' APNSVoipChannelRequest (Maybe Text)

-- | The bundle id used for APNs Tokens.
avcrBundleId :: Lens' APNSVoipChannelRequest (Maybe Text)

-- | The default authentication method used for APNs.
avcrDefaultAuthenticationMethod :: Lens' APNSVoipChannelRequest (Maybe Text)

-- | The distribution certificate from Apple.
avcrCertificate :: Lens' APNSVoipChannelRequest (Maybe Text)

-- | The token key used for APNs Tokens.
avcrTokenKeyId :: Lens' APNSVoipChannelRequest (Maybe Text)

-- | Apple VoIP Push Notification Service channel definition.
--   
--   <i>See:</i> <a>apnsVoipChannelResponse</a> smart constructor.
data APNSVoipChannelResponse

-- | Creates a value of <a>APNSVoipChannelResponse</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>avcPlatform</a> - The platform type. Will be APNS.</li>
--   <li><a>avcLastModifiedDate</a> - Last date this was updated</li>
--   <li><a>avcEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>avcHasTokenKey</a> - If the channel is registered with a token
--   key for authentication.</li>
--   <li><a>avcDefaultAuthenticationMethod</a> - The default authentication
--   method used for APNs.</li>
--   <li><a>avcIsArchived</a> - Is this channel archived</li>
--   <li><a>avcApplicationId</a> - Application id</li>
--   <li><a>avcVersion</a> - Version of channel</li>
--   <li><a>avcId</a> - Channel ID. Not used, only for backwards
--   compatibility.</li>
--   <li><a>avcCreationDate</a> - When was this segment created</li>
--   <li><a>avcLastModifiedBy</a> - Who made the last change</li>
--   <li><a>avcHasCredential</a> - If the channel is registered with a
--   credential for authentication.</li>
--   </ul>
apnsVoipChannelResponse :: APNSVoipChannelResponse

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

-- | Last date this was updated
avcLastModifiedDate :: Lens' APNSVoipChannelResponse (Maybe Text)

-- | If the channel is enabled for sending messages.
avcEnabled :: Lens' APNSVoipChannelResponse (Maybe Bool)

-- | If the channel is registered with a token key for authentication.
avcHasTokenKey :: Lens' APNSVoipChannelResponse (Maybe Bool)

-- | The default authentication method used for APNs.
avcDefaultAuthenticationMethod :: Lens' APNSVoipChannelResponse (Maybe Text)

-- | Is this channel archived
avcIsArchived :: Lens' APNSVoipChannelResponse (Maybe Bool)

-- | Application id
avcApplicationId :: Lens' APNSVoipChannelResponse (Maybe Text)

-- | Version of channel
avcVersion :: Lens' APNSVoipChannelResponse (Maybe Int)

-- | Channel ID. Not used, only for backwards compatibility.
avcId :: Lens' APNSVoipChannelResponse (Maybe Text)

-- | When was this segment created
avcCreationDate :: Lens' APNSVoipChannelResponse (Maybe Text)

-- | Who made the last change
avcLastModifiedBy :: Lens' APNSVoipChannelResponse (Maybe Text)

-- | If the channel is registered with a credential for authentication.
avcHasCredential :: Lens' APNSVoipChannelResponse (Maybe Bool)

-- | Apple VoIP Developer Push Notification Service channel definition.
--   
--   <i>See:</i> <a>apnsVoipSandboxChannelRequest</a> smart constructor.
data APNSVoipSandboxChannelRequest

-- | Creates a value of <a>APNSVoipSandboxChannelRequest</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>avscrTokenKey</a> - The token key used for APNs Tokens.</li>
--   <li><a>avscrPrivateKey</a> - The certificate private key.</li>
--   <li><a>avscrEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>avscrTeamId</a> - The team id used for APNs Tokens.</li>
--   <li><a>avscrBundleId</a> - The bundle id used for APNs Tokens.</li>
--   <li><a>avscrDefaultAuthenticationMethod</a> - The default
--   authentication method used for APNs.</li>
--   <li><a>avscrCertificate</a> - The distribution certificate from
--   Apple.</li>
--   <li><a>avscrTokenKeyId</a> - The token key used for APNs Tokens.</li>
--   </ul>
apnsVoipSandboxChannelRequest :: APNSVoipSandboxChannelRequest

-- | The token key used for APNs Tokens.
avscrTokenKey :: Lens' APNSVoipSandboxChannelRequest (Maybe Text)

-- | The certificate private key.
avscrPrivateKey :: Lens' APNSVoipSandboxChannelRequest (Maybe Text)

-- | If the channel is enabled for sending messages.
avscrEnabled :: Lens' APNSVoipSandboxChannelRequest (Maybe Bool)

-- | The team id used for APNs Tokens.
avscrTeamId :: Lens' APNSVoipSandboxChannelRequest (Maybe Text)

-- | The bundle id used for APNs Tokens.
avscrBundleId :: Lens' APNSVoipSandboxChannelRequest (Maybe Text)

-- | The default authentication method used for APNs.
avscrDefaultAuthenticationMethod :: Lens' APNSVoipSandboxChannelRequest (Maybe Text)

-- | The distribution certificate from Apple.
avscrCertificate :: Lens' APNSVoipSandboxChannelRequest (Maybe Text)

-- | The token key used for APNs Tokens.
avscrTokenKeyId :: Lens' APNSVoipSandboxChannelRequest (Maybe Text)

-- | Apple VoIP Developer Push Notification Service channel definition.
--   
--   <i>See:</i> <a>apnsVoipSandboxChannelResponse</a> smart constructor.
data APNSVoipSandboxChannelResponse

-- | Creates a value of <a>APNSVoipSandboxChannelResponse</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>avscPlatform</a> - The platform type. Will be APNS.</li>
--   <li><a>avscLastModifiedDate</a> - Last date this was updated</li>
--   <li><a>avscEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>avscHasTokenKey</a> - If the channel is registered with a token
--   key for authentication.</li>
--   <li><a>avscDefaultAuthenticationMethod</a> - The default
--   authentication method used for APNs.</li>
--   <li><a>avscIsArchived</a> - Is this channel archived</li>
--   <li><a>avscApplicationId</a> - Application id</li>
--   <li><a>avscVersion</a> - Version of channel</li>
--   <li><a>avscId</a> - Channel ID. Not used, only for backwards
--   compatibility.</li>
--   <li><a>avscCreationDate</a> - When was this segment created</li>
--   <li><a>avscLastModifiedBy</a> - Who made the last change</li>
--   <li><a>avscHasCredential</a> - If the channel is registered with a
--   credential for authentication.</li>
--   </ul>
apnsVoipSandboxChannelResponse :: APNSVoipSandboxChannelResponse

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

-- | Last date this was updated
avscLastModifiedDate :: Lens' APNSVoipSandboxChannelResponse (Maybe Text)

-- | If the channel is enabled for sending messages.
avscEnabled :: Lens' APNSVoipSandboxChannelResponse (Maybe Bool)

-- | If the channel is registered with a token key for authentication.
avscHasTokenKey :: Lens' APNSVoipSandboxChannelResponse (Maybe Bool)

-- | The default authentication method used for APNs.
avscDefaultAuthenticationMethod :: Lens' APNSVoipSandboxChannelResponse (Maybe Text)

-- | Is this channel archived
avscIsArchived :: Lens' APNSVoipSandboxChannelResponse (Maybe Bool)

-- | Application id
avscApplicationId :: Lens' APNSVoipSandboxChannelResponse (Maybe Text)

-- | Version of channel
avscVersion :: Lens' APNSVoipSandboxChannelResponse (Maybe Int)

-- | Channel ID. Not used, only for backwards compatibility.
avscId :: Lens' APNSVoipSandboxChannelResponse (Maybe Text)

-- | When was this segment created
avscCreationDate :: Lens' APNSVoipSandboxChannelResponse (Maybe Text)

-- | Who made the last change
avscLastModifiedBy :: Lens' APNSVoipSandboxChannelResponse (Maybe Text)

-- | If the channel is registered with a credential for authentication.
avscHasCredential :: Lens' APNSVoipSandboxChannelResponse (Maybe Bool)

-- | Activities for campaign.
--   
--   <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]

-- | Activity definition
--   
--   <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>aTimezonesCompletedCount</a> - The total number of timezones
--   completed.</li>
--   <li><a>aTimezonesTotalCount</a> - The total number of unique timezones
--   present in the segment.</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)

-- | The total number of timezones completed.
aTimezonesCompletedCount :: Lens' ActivityResponse (Maybe Int)

-- | The total number of unique timezones present in the segment.
aTimezonesTotalCount :: Lens' ActivityResponse (Maybe Int)

-- | 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)

-- | Address configuration.
--   
--   <i>See:</i> <a>addressConfiguration</a> smart constructor.
data AddressConfiguration

-- | Creates a value of <a>AddressConfiguration</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>acSubstitutions</a> - A map of substitution values for the
--   message to be merged with the DefaultMessage's substitutions.
--   Substitutions on this map take precedence over the all other
--   substitutions.</li>
--   <li><a>acTitleOverride</a> - Title override. If specified will
--   override default title if applicable.</li>
--   <li><a>acContext</a> - A map of custom attributes to attributes to be
--   attached to the message for this address. This payload is added to the
--   push notification's 'data.pinpoint' object or added to the email/sms
--   delivery receipt event attributes.</li>
--   <li><a>acRawContent</a> - The Raw JSON formatted string to be used as
--   the payload. This value overrides the message.</li>
--   <li><a>acBodyOverride</a> - Body override. If specified will override
--   default body.</li>
--   <li><a>acChannelType</a> - The channel type. Valid values: GCM | APNS
--   | APNS_SANDBOX | APNS_VOIP | APNS_VOIP_SANDBOX | ADM | SMS | EMAIL |
--   BAIDU</li>
--   </ul>
addressConfiguration :: AddressConfiguration

-- | A map of substitution values for the message to be merged with the
--   DefaultMessage's substitutions. Substitutions on this map take
--   precedence over the all other substitutions.
acSubstitutions :: Lens' AddressConfiguration (HashMap Text [Text])

-- | Title override. If specified will override default title if
--   applicable.
acTitleOverride :: Lens' AddressConfiguration (Maybe Text)

-- | A map of custom attributes to attributes to be attached to the message
--   for this address. This payload is added to the push notification's
--   'data.pinpoint' object or added to the email/sms delivery receipt
--   event attributes.
acContext :: Lens' AddressConfiguration (HashMap Text Text)

-- | The Raw JSON formatted string to be used as the payload. This value
--   overrides the message.
acRawContent :: Lens' AddressConfiguration (Maybe Text)

-- | Body override. If specified will override default body.
acBodyOverride :: Lens' AddressConfiguration (Maybe Text)

-- | The channel type. Valid values: GCM | APNS | APNS_SANDBOX | APNS_VOIP
--   | APNS_VOIP_SANDBOX | ADM | SMS | EMAIL | BAIDU
acChannelType :: Lens' AddressConfiguration (Maybe ChannelType)

-- | Application Response.
--   
--   <i>See:</i> <a>applicationResponse</a> smart constructor.
data ApplicationResponse

-- | Creates a value of <a>ApplicationResponse</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>appName</a> - The display name of the application.</li>
--   <li><a>appId</a> - The unique application ID.</li>
--   </ul>
applicationResponse :: ApplicationResponse

-- | The display name of the application.
appName :: Lens' ApplicationResponse (Maybe Text)

-- | The unique application ID.
appId :: Lens' ApplicationResponse (Maybe Text)

-- | Application settings.
--   
--   <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>
--   <li><a>asrCampaignHook</a> - Default campaign hook.</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)

-- | Default campaign hook.
asrCampaignHook :: Lens' ApplicationSettingsResource (Maybe CampaignHook)

-- | Get Applications Result.
--   
--   <i>See:</i> <a>applicationsResponse</a> smart constructor.
data ApplicationsResponse

-- | Creates a value of <a>ApplicationsResponse</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>appNextToken</a> - The string that you use in a subsequent
--   request to get the next page of results in a paginated response.</li>
--   <li><a>appItem</a> - List of applications returned in this page.</li>
--   </ul>
applicationsResponse :: ApplicationsResponse

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

-- | List of applications returned in this page.
appItem :: Lens' ApplicationsResponse [ApplicationResponse]

-- | Custom attibute dimension
--   
--   <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)

-- | Baidu Cloud Push credentials
--   
--   <i>See:</i> <a>baiduChannelRequest</a> smart constructor.
data BaiduChannelRequest

-- | Creates a value of <a>BaiduChannelRequest</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>bcrAPIKey</a> - Platform credential API key from Baidu.</li>
--   <li><a>bcrEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>bcrSecretKey</a> - Platform credential Secret key from
--   Baidu.</li>
--   </ul>
baiduChannelRequest :: BaiduChannelRequest

-- | Platform credential API key from Baidu.
bcrAPIKey :: Lens' BaiduChannelRequest (Maybe Text)

-- | If the channel is enabled for sending messages.
bcrEnabled :: Lens' BaiduChannelRequest (Maybe Bool)

-- | Platform credential Secret key from Baidu.
bcrSecretKey :: Lens' BaiduChannelRequest (Maybe Text)

-- | Baidu Cloud Messaging channel definition
--   
--   <i>See:</i> <a>baiduChannelResponse</a> smart constructor.
data BaiduChannelResponse

-- | Creates a value of <a>BaiduChannelResponse</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>bcPlatform</a> - The platform type. Will be BAIDU</li>
--   <li><a>bcLastModifiedDate</a> - Last date this was updated</li>
--   <li><a>bcEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>bcCredential</a> - The Baidu API key from Baidu.</li>
--   <li><a>bcIsArchived</a> - Is this channel archived</li>
--   <li><a>bcApplicationId</a> - Application id</li>
--   <li><a>bcVersion</a> - Version of channel</li>
--   <li><a>bcId</a> - Channel ID. Not used, only for backwards
--   compatibility.</li>
--   <li><a>bcCreationDate</a> - When was this segment created</li>
--   <li><a>bcLastModifiedBy</a> - Who made the last change</li>
--   <li><a>bcHasCredential</a> - Indicates whether the channel is
--   configured with Baidu Cloud Push credentials. Amazon Pinpoint uses
--   your credentials to authenticate push notifications with Baidu Cloud
--   Push. Provide your credentials by setting the ApiKey and SecretKey
--   attributes.</li>
--   </ul>
baiduChannelResponse :: BaiduChannelResponse

-- | The platform type. Will be BAIDU
bcPlatform :: Lens' BaiduChannelResponse (Maybe Text)

-- | Last date this was updated
bcLastModifiedDate :: Lens' BaiduChannelResponse (Maybe Text)

-- | If the channel is enabled for sending messages.
bcEnabled :: Lens' BaiduChannelResponse (Maybe Bool)

-- | The Baidu API key from Baidu.
bcCredential :: Lens' BaiduChannelResponse (Maybe Text)

-- | Is this channel archived
bcIsArchived :: Lens' BaiduChannelResponse (Maybe Bool)

-- | Application id
bcApplicationId :: Lens' BaiduChannelResponse (Maybe Text)

-- | Version of channel
bcVersion :: Lens' BaiduChannelResponse (Maybe Int)

-- | Channel ID. Not used, only for backwards compatibility.
bcId :: Lens' BaiduChannelResponse (Maybe Text)

-- | When was this segment created
bcCreationDate :: Lens' BaiduChannelResponse (Maybe Text)

-- | Who made the last change
bcLastModifiedBy :: Lens' BaiduChannelResponse (Maybe Text)

-- | Indicates whether the channel is configured with Baidu Cloud Push
--   credentials. Amazon Pinpoint uses your credentials to authenticate
--   push notifications with Baidu Cloud Push. Provide your credentials by
--   setting the ApiKey and SecretKey attributes.
bcHasCredential :: Lens' BaiduChannelResponse (Maybe Bool)

-- | Baidu Message.
--   
--   <i>See:</i> <a>baiduMessage</a> smart constructor.
data BaiduMessage

-- | Creates a value of <a>BaiduMessage</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>bmSubstitutions</a> - Default message substitutions. Can be
--   overridden by individual address substitutions.</li>
--   <li><a>bmSilentPush</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>bmImageIconURL</a> - The URL that points to an image used as
--   the large icon to the notification content view.</li>
--   <li><a>bmRawContent</a> - The Raw JSON formatted string to be used as
--   the payload. This value overrides the message.</li>
--   <li><a>bmData</a> - The data payload used for a silent push. This
--   payload is added to the notifications' data.pinpoint.jsonBody'
--   object</li>
--   <li><a>bmSmallImageIconURL</a> - The URL that points to an image used
--   as the small icon for the notification which will be used to represent
--   the notification in the status bar and content view</li>
--   <li><a>bmBody</a> - The message body of the notification, the email
--   body or the text message.</li>
--   <li><a>bmURL</a> - The URL to open in the user's mobile browser. Used
--   if the value for Action is URL.</li>
--   <li><a>bmSound</a> - Indicates a sound to play when the device
--   receives the notification. Supports default, or the filename of a
--   sound resource bundled in the app. Android sound files must reside in
--   <i>res</i>raw/</li>
--   <li><a>bmAction</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.
--   Possible values include: OPEN_APP | DEEP_LINK | URL</li>
--   <li><a>bmImageURL</a> - The URL that points to an image used in the
--   push notification.</li>
--   <li><a>bmTitle</a> - The message title that displays above the message
--   on the user's device.</li>
--   <li><a>bmIconReference</a> - The icon image name of the asset saved in
--   your application.</li>
--   </ul>
baiduMessage :: BaiduMessage

-- | Default message substitutions. Can be overridden by individual address
--   substitutions.
bmSubstitutions :: Lens' BaiduMessage (HashMap Text [Text])

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

-- | The URL that points to an image used as the large icon to the
--   notification content view.
bmImageIconURL :: Lens' BaiduMessage (Maybe Text)

-- | The Raw JSON formatted string to be used as the payload. This value
--   overrides the message.
bmRawContent :: Lens' BaiduMessage (Maybe Text)

-- | The data payload used for a silent push. This payload is added to the
--   notifications' data.pinpoint.jsonBody' object
bmData :: Lens' BaiduMessage (HashMap Text Text)

-- | The URL that points to an image used as the small icon for the
--   notification which will be used to represent the notification in the
--   status bar and content view
bmSmallImageIconURL :: Lens' BaiduMessage (Maybe Text)

-- | The message body of the notification, the email body or the text
--   message.
bmBody :: Lens' BaiduMessage (Maybe Text)

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

-- | Indicates a sound to play when the device receives the notification.
--   Supports default, or the filename of a sound resource bundled in the
--   app. Android sound files must reside in <i>res</i>raw/
bmSound :: Lens' BaiduMessage (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. Possible values
--   include: OPEN_APP | DEEP_LINK | URL
bmAction :: Lens' BaiduMessage (Maybe Action)

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

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

-- | The icon image name of the asset saved in your application.
bmIconReference :: Lens' BaiduMessage (Maybe Text)

-- | The email message configuration.
--   
--   <i>See:</i> <a>campaignEmailMessage</a> smart constructor.
data CampaignEmailMessage

-- | Creates a value of <a>CampaignEmailMessage</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>cemBody</a> - The email text body.</li>
--   <li><a>cemFromAddress</a> - The email address used to send the email
--   from. Defaults to use FromAddress specified in the Email Channel.</li>
--   <li><a>cemHTMLBody</a> - The email html body.</li>
--   <li><a>cemTitle</a> - The email title (Or subject).</li>
--   </ul>
campaignEmailMessage :: CampaignEmailMessage

-- | The email text body.
cemBody :: Lens' CampaignEmailMessage (Maybe Text)

-- | The email address used to send the email from. Defaults to use
--   FromAddress specified in the Email Channel.
cemFromAddress :: Lens' CampaignEmailMessage (Maybe Text)

-- | The email html body.
cemHTMLBody :: Lens' CampaignEmailMessage (Maybe Text)

-- | The email title (Or subject).
cemTitle :: Lens' CampaignEmailMessage (Maybe Text)

-- | <i>See:</i> <a>campaignHook</a> smart constructor.
data CampaignHook

-- | Creates a value of <a>CampaignHook</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>chLambdaFunctionName</a> - Lambda function name or arn to be
--   called for delivery</li>
--   <li><a>chMode</a> - What mode Lambda should be invoked in.</li>
--   <li><a>chWebURL</a> - Web URL to call for hook. If the URL has
--   authentication specified it will be added as authentication to the
--   request</li>
--   </ul>
campaignHook :: CampaignHook

-- | Lambda function name or arn to be called for delivery
chLambdaFunctionName :: Lens' CampaignHook (Maybe Text)

-- | What mode Lambda should be invoked in.
chMode :: Lens' CampaignHook (Maybe Mode)

-- | Web URL to call for hook. If the URL has authentication specified it
--   will be added as authentication to the request
chWebURL :: Lens' CampaignHook (Maybe Text)

-- | Campaign Limits are used to limit the number of messages that can be
--   sent to a user.
--   
--   <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>clMessagesPerSecond</a> - The number of messages that the
--   campaign can send per second. The minimum value is 50, and the maximum
--   is 20000.</li>
--   <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>
--   <li><a>clMaximumDuration</a> - The length of time (in seconds) that
--   the campaign can run before it ends and message deliveries stop. This
--   duration begins at the scheduled start time for the campaign. The
--   minimum value is 60.</li>
--   </ul>
campaignLimits :: CampaignLimits

-- | The number of messages that the campaign can send per second. The
--   minimum value is 50, and the maximum is 20000.
clMessagesPerSecond :: Lens' CampaignLimits (Maybe Int)

-- | 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)

-- | The length of time (in seconds) that the campaign can run before it
--   ends and message deliveries stop. This duration begins at the
--   scheduled start time for the campaign. The minimum value is 60.
clMaximumDuration :: Lens' CampaignLimits (Maybe Int)

-- | Campaign definition
--   
--   <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>cHook</a> - Campaign hook information.</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)

-- | Campaign hook information.
cHook :: Lens' CampaignResponse (Maybe CampaignHook)

-- | 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)

-- | SMS message configuration.
--   
--   <i>See:</i> <a>campaignSmsMessage</a> smart constructor.
data CampaignSmsMessage

-- | Creates a value of <a>CampaignSmsMessage</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>csmBody</a> - The SMS text body.</li>
--   <li><a>csmMessageType</a> - Is this is a transactional SMS message,
--   otherwise a promotional message.</li>
--   <li><a>csmSenderId</a> - Sender ID of sent message.</li>
--   </ul>
campaignSmsMessage :: CampaignSmsMessage

-- | The SMS text body.
csmBody :: Lens' CampaignSmsMessage (Maybe Text)

-- | Is this is a transactional SMS message, otherwise a promotional
--   message.
csmMessageType :: Lens' CampaignSmsMessage (Maybe MessageType)

-- | Sender ID of sent message.
csmSenderId :: Lens' CampaignSmsMessage (Maybe Text)

-- | State of the Campaign
--   
--   <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)

-- | List of available campaigns.
--   
--   <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]

-- | Application Request.
--   
--   <i>See:</i> <a>createApplicationRequest</a> smart constructor.
data CreateApplicationRequest

-- | Creates a value of <a>CreateApplicationRequest</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>carName</a> - The display name of the application. Used in the
--   Amazon Pinpoint console.</li>
--   </ul>
createApplicationRequest :: CreateApplicationRequest

-- | The display name of the application. Used in the Amazon Pinpoint
--   console.
carName :: Lens' CreateApplicationRequest (Maybe Text)

-- | Default Message across push notification, email, and sms.
--   
--   <i>See:</i> <a>defaultMessage</a> smart constructor.
data DefaultMessage

-- | Creates a value of <a>DefaultMessage</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>dmSubstitutions</a> - Default message substitutions. Can be
--   overridden by individual address substitutions.</li>
--   <li><a>dmBody</a> - The message body of the notification, the email
--   body or the text message.</li>
--   </ul>
defaultMessage :: DefaultMessage

-- | Default message substitutions. Can be overridden by individual address
--   substitutions.
dmSubstitutions :: Lens' DefaultMessage (HashMap Text [Text])

-- | The message body of the notification, the email body or the text
--   message.
dmBody :: Lens' DefaultMessage (Maybe Text)

-- | Default Push Notification Message.
--   
--   <i>See:</i> <a>defaultPushNotificationMessage</a> smart constructor.
data DefaultPushNotificationMessage

-- | Creates a value of <a>DefaultPushNotificationMessage</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>dpnmSubstitutions</a> - Default message substitutions. Can be
--   overridden by individual address substitutions.</li>
--   <li><a>dpnmSilentPush</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>dpnmData</a> - The data payload used for a silent push. This
--   payload is added to the notifications' data.pinpoint.jsonBody'
--   object</li>
--   <li><a>dpnmBody</a> - The message body of the notification, the email
--   body or the text message.</li>
--   <li><a>dpnmURL</a> - The URL to open in the user's mobile browser.
--   Used if the value for Action is URL.</li>
--   <li><a>dpnmAction</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.
--   Possible values include: OPEN_APP | DEEP_LINK | URL</li>
--   <li><a>dpnmTitle</a> - The message title that displays above the
--   message on the user's device.</li>
--   </ul>
defaultPushNotificationMessage :: DefaultPushNotificationMessage

-- | Default message substitutions. Can be overridden by individual address
--   substitutions.
dpnmSubstitutions :: Lens' DefaultPushNotificationMessage (HashMap Text [Text])

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

-- | The data payload used for a silent push. This payload is added to the
--   notifications' data.pinpoint.jsonBody' object
dpnmData :: Lens' DefaultPushNotificationMessage (HashMap Text Text)

-- | The message body of the notification, the email body or the text
--   message.
dpnmBody :: Lens' DefaultPushNotificationMessage (Maybe Text)

-- | The URL to open in the user's mobile browser. Used if the value for
--   Action is URL.
dpnmURL :: Lens' DefaultPushNotificationMessage (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. Possible values
--   include: OPEN_APP | DEEP_LINK | URL
dpnmAction :: Lens' DefaultPushNotificationMessage (Maybe Action)

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

-- | The message configuration.
--   
--   <i>See:</i> <a>directMessageConfiguration</a> smart constructor.
data DirectMessageConfiguration

-- | Creates a value of <a>DirectMessageConfiguration</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>dmcAPNSMessage</a> - The message to APNS channels. Overrides
--   the default push notification message.</li>
--   <li><a>dmcGCMMessage</a> - The message to GCM channels. Overrides the
--   default push notification message.</li>
--   <li><a>dmcDefaultMessage</a> - The default message for all
--   channels.</li>
--   <li><a>dmcADMMessage</a> - The message to ADM channels. Overrides the
--   default push notification message.</li>
--   <li><a>dmcSMSMessage</a> - The message to SMS channels. Overrides the
--   default message.</li>
--   <li><a>dmcBaiduMessage</a> - The message to Baidu GCM channels.
--   Overrides the default push notification message.</li>
--   <li><a>dmcDefaultPushNotificationMessage</a> - The default push
--   notification message for all push channels.</li>
--   </ul>
directMessageConfiguration :: DirectMessageConfiguration

-- | The message to APNS channels. Overrides the default push notification
--   message.
dmcAPNSMessage :: Lens' DirectMessageConfiguration (Maybe APNSMessage)

-- | The message to GCM channels. Overrides the default push notification
--   message.
dmcGCMMessage :: Lens' DirectMessageConfiguration (Maybe GCMMessage)

-- | The default message for all channels.
dmcDefaultMessage :: Lens' DirectMessageConfiguration (Maybe DefaultMessage)

-- | The message to ADM channels. Overrides the default push notification
--   message.
dmcADMMessage :: Lens' DirectMessageConfiguration (Maybe ADMMessage)

-- | The message to SMS channels. Overrides the default message.
dmcSMSMessage :: Lens' DirectMessageConfiguration (Maybe SMSMessage)

-- | The message to Baidu GCM channels. Overrides the default push
--   notification message.
dmcBaiduMessage :: Lens' DirectMessageConfiguration (Maybe BaiduMessage)

-- | The default push notification message for all push channels.
dmcDefaultPushNotificationMessage :: Lens' DirectMessageConfiguration (Maybe DefaultPushNotificationMessage)

-- | Email Channel Request
--   
--   <i>See:</i> <a>emailChannelRequest</a> smart constructor.
data EmailChannelRequest

-- | Creates a value of <a>EmailChannelRequest</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>ecrEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>ecrFromAddress</a> - The email address used to send emails
--   from.</li>
--   <li><a>ecrIdentity</a> - The ARN of an identity verified with
--   SES.</li>
--   <li><a>ecrRoleARN</a> - The ARN of an IAM Role used to submit events
--   to Mobile Analytics' event ingestion service</li>
--   </ul>
emailChannelRequest :: EmailChannelRequest

-- | If the channel is enabled for sending messages.
ecrEnabled :: Lens' EmailChannelRequest (Maybe Bool)

-- | The email address used to send emails from.
ecrFromAddress :: Lens' EmailChannelRequest (Maybe Text)

-- | The ARN of an identity verified with SES.
ecrIdentity :: Lens' EmailChannelRequest (Maybe Text)

-- | The ARN of an IAM Role used to submit events to Mobile Analytics'
--   event ingestion service
ecrRoleARN :: Lens' EmailChannelRequest (Maybe Text)

-- | Email Channel Response.
--   
--   <i>See:</i> <a>emailChannelResponse</a> smart constructor.
data EmailChannelResponse

-- | Creates a value of <a>EmailChannelResponse</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>ecPlatform</a> - Platform type. Will be <a>EMAIL</a></li>
--   <li><a>ecLastModifiedDate</a> - Last date this was updated</li>
--   <li><a>ecEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>ecFromAddress</a> - The email address used to send emails
--   from.</li>
--   <li><a>ecIsArchived</a> - Is this channel archived</li>
--   <li><a>ecApplicationId</a> - The unique ID of the application to which
--   the email channel belongs.</li>
--   <li><a>ecVersion</a> - Version of channel</li>
--   <li><a>ecId</a> - Channel ID. Not used, only for backwards
--   compatibility.</li>
--   <li><a>ecCreationDate</a> - The date that the settings were last
--   updated in ISO 8601 format.</li>
--   <li><a>ecLastModifiedBy</a> - Who last updated this entry</li>
--   <li><a>ecIdentity</a> - The ARN of an identity verified with SES.</li>
--   <li><a>ecHasCredential</a> - If the channel is registered with a
--   credential for authentication.</li>
--   <li><a>ecRoleARN</a> - The ARN of an IAM Role used to submit events to
--   Mobile Analytics' event ingestion service</li>
--   </ul>
emailChannelResponse :: EmailChannelResponse

-- | Platform type. Will be <a>EMAIL</a>
ecPlatform :: Lens' EmailChannelResponse (Maybe Text)

-- | Last date this was updated
ecLastModifiedDate :: Lens' EmailChannelResponse (Maybe Text)

-- | If the channel is enabled for sending messages.
ecEnabled :: Lens' EmailChannelResponse (Maybe Bool)

-- | The email address used to send emails from.
ecFromAddress :: Lens' EmailChannelResponse (Maybe Text)

-- | Is this channel archived
ecIsArchived :: Lens' EmailChannelResponse (Maybe Bool)

-- | The unique ID of the application to which the email channel belongs.
ecApplicationId :: Lens' EmailChannelResponse (Maybe Text)

-- | Version of channel
ecVersion :: Lens' EmailChannelResponse (Maybe Int)

-- | Channel ID. Not used, only for backwards compatibility.
ecId :: Lens' EmailChannelResponse (Maybe Text)

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

-- | Who last updated this entry
ecLastModifiedBy :: Lens' EmailChannelResponse (Maybe Text)

-- | The ARN of an identity verified with SES.
ecIdentity :: Lens' EmailChannelResponse (Maybe Text)

-- | If the channel is registered with a credential for authentication.
ecHasCredential :: Lens' EmailChannelResponse (Maybe Bool)

-- | The ARN of an IAM Role used to submit events to Mobile Analytics'
--   event ingestion service
ecRoleARN :: Lens' EmailChannelResponse (Maybe Text)

-- | Endpoint update request
--   
--   <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 as
--   provided by your push provider (e.g. DeviceToken or
--   RegistrationId).</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 describe the
--   endpoint by associating a name with an array of values. For example,
--   an attribute named "interests" might have the values ["science",
--   "politics", "travel"]. You can use these attributes as selection
--   criteria when you create a segment of users to engage with a messaging
--   campaign. The following characters are not recommended in attribute
--   names: # : ? /. The Amazon Pinpoint console does not display
--   attributes that include these characters in the name. This limitation
--   does not apply to attribute values.</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 has
--   opted out of all messages. NONE - Users has not opted out and receives
--   all messages.</li>
--   <li><a>ebiId</a> - The unique Id for the Endpoint in the batch.</li>
--   <li><a>ebiChannelType</a> - The channel type. Valid values: GCM | APNS
--   | APNS_SANDBOX | APNS_VOIP | APNS_VOIP_SANDBOX | ADM | SMS | EMAIL |
--   BAIDU</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 as provided by your push provider
--   (e.g. DeviceToken or RegistrationId).
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 describe the endpoint by associating a name
--   with an array of values. For example, an attribute named "interests"
--   might have the values ["science", "politics", "travel"]. You can use
--   these attributes as selection criteria when you create a segment of
--   users to engage with a messaging campaign. The following characters
--   are not recommended in attribute names: # : ? /. The Amazon Pinpoint
--   console does not display attributes that include these characters in
--   the name. This limitation does not apply to attribute values.
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 has opted out of all messages.
--   NONE - Users has not opted out and receives all messages.
ebiOptOut :: Lens' EndpointBatchItem (Maybe Text)

-- | The unique Id for the Endpoint in the batch.
ebiId :: Lens' EndpointBatchItem (Maybe Text)

-- | The channel type. Valid values: GCM | APNS | APNS_SANDBOX | APNS_VOIP
--   | APNS_VOIP_SANDBOX | ADM | SMS | EMAIL | BAIDU
ebiChannelType :: Lens' EndpointBatchItem (Maybe ChannelType)

-- | Endpoint batch update request.
--   
--   <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]

-- | Endpoint demographic data
--   
--   <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)

-- | Endpoint location data
--   
--   <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)

-- | The result from sending a message to an endpoint.
--   
--   <i>See:</i> <a>endpointMessageResult</a> smart constructor.
data EndpointMessageResult

-- | Creates a value of <a>EndpointMessageResult</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>emrDeliveryStatus</a> - Delivery status of message.</li>
--   <li><a>emrAddress</a> - Address that endpoint message was delivered
--   to.</li>
--   <li><a>emrStatusMessage</a> - Status message for message
--   delivery.</li>
--   <li><a>emrUpdatedToken</a> - If token was updated as part of delivery.
--   (This is GCM Specific)</li>
--   <li><a>emrStatusCode</a> - Downstream service status code.</li>
--   </ul>
endpointMessageResult :: EndpointMessageResult

-- | Delivery status of message.
emrDeliveryStatus :: Lens' EndpointMessageResult (Maybe DeliveryStatus)

-- | Address that endpoint message was delivered to.
emrAddress :: Lens' EndpointMessageResult (Maybe Text)

-- | Status message for message delivery.
emrStatusMessage :: Lens' EndpointMessageResult (Maybe Text)

-- | If token was updated as part of delivery. (This is GCM Specific)
emrUpdatedToken :: Lens' EndpointMessageResult (Maybe Text)

-- | Downstream service status code.
emrStatusCode :: Lens' EndpointMessageResult (Maybe Int)

-- | Endpoint update request
--   
--   <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 as
--   provided by your push provider (e.g. DeviceToken or
--   RegistrationId).</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 describe the endpoint
--   by associating a name with an array of values. For example, an
--   attribute named "interests" might have the values ["science",
--   "politics", "travel"]. You can use these attributes as selection
--   criteria when you create a segment of users to engage with a messaging
--   campaign. The following characters are not recommended in attribute
--   names: # : ? /. The Amazon Pinpoint console does not display
--   attributes that include these characters in the name. This limitation
--   does not apply to attribute values.</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 has
--   opted out of all messages. NONE - Users has not opted out and receives
--   all messages.</li>
--   <li><a>erChannelType</a> - The channel type. Valid values: GCM | APNS
--   | APNS_SANDBOX | APNS_VOIP | APNS_VOIP_SANDBOX | ADM | SMS | EMAIL |
--   BAIDU</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 as provided by your push provider
--   (e.g. DeviceToken or RegistrationId).
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 describe the endpoint by associating a name
--   with an array of values. For example, an attribute named "interests"
--   might have the values ["science", "politics", "travel"]. You can use
--   these attributes as selection criteria when you create a segment of
--   users to engage with a messaging campaign. The following characters
--   are not recommended in attribute names: # : ? /. The Amazon Pinpoint
--   console does not display attributes that include these characters in
--   the name. This limitation does not apply to attribute values.
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 has opted out of all messages.
--   NONE - Users has not opted out and receives all messages.
erOptOut :: Lens' EndpointRequest (Maybe Text)

-- | The channel type. Valid values: GCM | APNS | APNS_SANDBOX | APNS_VOIP
--   | APNS_VOIP_SANDBOX | ADM | SMS | EMAIL | BAIDU
erChannelType :: Lens' EndpointRequest (Maybe ChannelType)

-- | Endpoint response
--   
--   <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 as provided
--   by your push provider (e.g. DeviceToken or RegistrationId).</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 describe the endpoint
--   by associating a name with an array of values. For example, an
--   attribute named "interests" might have the values ["science",
--   "politics", "travel"]. You can use these attributes as selection
--   criteria when you create a segment of users to engage with a messaging
--   campaign. The following characters are not recommended in attribute
--   names: # : ? /. The Amazon Pinpoint console does not display
--   attributes that include these characters in the name. This limitation
--   does not apply to attribute values.</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 has
--   opted out of all messages. NONE - Users has not opted out and receives
--   all 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: GCM | APNS |
--   APNS_SANDBOX | APNS_VOIP | APNS_VOIP_SANDBOX | ADM | SMS | EMAIL |
--   BAIDU</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 as provided by your push provider
--   (e.g. DeviceToken or RegistrationId).
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 describe the endpoint by associating a name
--   with an array of values. For example, an attribute named "interests"
--   might have the values ["science", "politics", "travel"]. You can use
--   these attributes as selection criteria when you create a segment of
--   users to engage with a messaging campaign. The following characters
--   are not recommended in attribute names: # : ? /. The Amazon Pinpoint
--   console does not display attributes that include these characters in
--   the name. This limitation does not apply to attribute values.
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 has opted out of all messages.
--   NONE - Users has not opted out and receives all 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: GCM | APNS | APNS_SANDBOX | APNS_VOIP
--   | APNS_VOIP_SANDBOX | ADM | SMS | EMAIL | BAIDU
eChannelType :: Lens' EndpointResponse (Maybe ChannelType)

-- | Endpoint send configuration.
--   
--   <i>See:</i> <a>endpointSendConfiguration</a> smart constructor.
data EndpointSendConfiguration

-- | Creates a value of <a>EndpointSendConfiguration</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>escSubstitutions</a> - A map of substitution values for the
--   message to be merged with the DefaultMessage's substitutions.
--   Substitutions on this map take precedence over the all other
--   substitutions.</li>
--   <li><a>escTitleOverride</a> - Title override. If specified will
--   override default title if applicable.</li>
--   <li><a>escContext</a> - A map of custom attributes to attributes to be
--   attached to the message for this address. This payload is added to the
--   push notification's 'data.pinpoint' object or added to the email/sms
--   delivery receipt event attributes.</li>
--   <li><a>escRawContent</a> - The Raw JSON formatted string to be used as
--   the payload. This value overrides the message.</li>
--   <li><a>escBodyOverride</a> - Body override. If specified will override
--   default body.</li>
--   </ul>
endpointSendConfiguration :: EndpointSendConfiguration

-- | A map of substitution values for the message to be merged with the
--   DefaultMessage's substitutions. Substitutions on this map take
--   precedence over the all other substitutions.
escSubstitutions :: Lens' EndpointSendConfiguration (HashMap Text [Text])

-- | Title override. If specified will override default title if
--   applicable.
escTitleOverride :: Lens' EndpointSendConfiguration (Maybe Text)

-- | A map of custom attributes to attributes to be attached to the message
--   for this address. This payload is added to the push notification's
--   'data.pinpoint' object or added to the email/sms delivery receipt
--   event attributes.
escContext :: Lens' EndpointSendConfiguration (HashMap Text Text)

-- | The Raw JSON formatted string to be used as the payload. This value
--   overrides the message.
escRawContent :: Lens' EndpointSendConfiguration (Maybe Text)

-- | Body override. If specified will override default body.
escBodyOverride :: Lens' EndpointSendConfiguration (Maybe Text)

-- | Endpoint user specific custom userAttributes
--   
--   <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 attributes that describe an end
--   user by associating a name with an array of values. For example, an
--   attribute named "interests" might have the values ["science",
--   "politics", "travel"]. You can use these attributes as selection
--   criteria when you create a segment of users to engage with a messaging
--   campaign. The following characters are not recommended in attribute
--   names: # : ? /. The Amazon Pinpoint console does not display
--   attributes that include these characters in the name. This limitation
--   does not apply to attribute values.</li>
--   <li><a>euUserId</a> - The unique ID of the user.</li>
--   </ul>
endpointUser :: EndpointUser

-- | Custom attributes that describe an end user by associating a name with
--   an array of values. For example, an attribute named "interests" might
--   have the values ["science", "politics", "travel"]. You can use these
--   attributes as selection criteria when you create a segment of users to
--   engage with a messaging campaign. The following characters are not
--   recommended in attribute names: # : ? /. The Amazon Pinpoint console
--   does not display attributes that include these characters in the name.
--   This limitation does not apply to attribute values.
euUserAttributes :: Lens' EndpointUser (HashMap Text [Text])

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

-- | Model for an event publishing subscription export.
--   
--   <i>See:</i> <a>eventStream</a> smart constructor.
data EventStream

-- | Creates a value of <a>EventStream</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>esLastUpdatedBy</a> - The IAM user who last modified the event
--   stream.</li>
--   <li><a>esLastModifiedDate</a> - The date the event stream was last
--   updated in ISO 8601 format.</li>
--   <li><a>esDestinationStreamARN</a> - The Amazon Resource Name (ARN) of
--   the Amazon Kinesis stream or Firehose delivery stream to which you
--   want to publish events. Firehose ARN:
--   arn:aws:firehose:REGION:ACCOUNT_ID:deliverystream<i>STREAM_NAME
--   Kinesis ARN:
--   arn:aws:kinesis:REGION:ACCOUNT_ID:stream</i>STREAM_NAME</li>
--   <li><a>esApplicationId</a> - The ID of the application from which
--   events should be published.</li>
--   <li><a>esExternalId</a> - DEPRECATED. Your AWS account ID, which you
--   assigned to the ExternalID key in an IAM trust policy. Used by Amazon
--   Pinpoint to assume an IAM role. This requirement is removed, and
--   external IDs are not recommended for IAM roles assumed by Amazon
--   Pinpoint.</li>
--   <li><a>esRoleARN</a> - The IAM role that authorizes Amazon Pinpoint to
--   publish events to the stream in your account.</li>
--   </ul>
eventStream :: EventStream

-- | The IAM user who last modified the event stream.
esLastUpdatedBy :: Lens' EventStream (Maybe Text)

-- | The date the event stream was last updated in ISO 8601 format.
esLastModifiedDate :: Lens' EventStream (Maybe Text)

-- | The Amazon Resource Name (ARN) of the Amazon Kinesis stream or
--   Firehose delivery stream to which you want to publish events. Firehose
--   ARN: arn:aws:firehose:REGION:ACCOUNT_ID:deliverystream<i>STREAM_NAME
--   Kinesis ARN: arn:aws:kinesis:REGION:ACCOUNT_ID:stream</i>STREAM_NAME
esDestinationStreamARN :: Lens' EventStream (Maybe Text)

-- | The ID of the application from which events should be published.
esApplicationId :: Lens' EventStream (Maybe Text)

-- | DEPRECATED. Your AWS account ID, which you assigned to the ExternalID
--   key in an IAM trust policy. Used by Amazon Pinpoint to assume an IAM
--   role. This requirement is removed, and external IDs are not
--   recommended for IAM roles assumed by Amazon Pinpoint.
esExternalId :: Lens' EventStream (Maybe Text)

-- | The IAM role that authorizes Amazon Pinpoint to publish events to the
--   stream in your account.
esRoleARN :: Lens' EventStream (Maybe Text)

-- | <i>See:</i> <a>exportJobRequest</a> smart constructor.
data ExportJobRequest

-- | Creates a value of <a>ExportJobRequest</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>eS3URLPrefix</a> - A URL that points to the location within an
--   Amazon S3 bucket that will receive the export. The location is
--   typically a folder with multiple files. The URL should follow this
--   format: s3:/<i>bucket-name</i>folder-name/ Amazon Pinpoint will export
--   endpoints to this location.</li>
--   <li><a>eSegmentId</a> - The ID of the segment to export endpoints
--   from. If not present all endpoints will be exported.</li>
--   <li><a>eRoleARN</a> - The Amazon Resource Name (ARN) of an IAM role
--   that grants Amazon Pinpoint access to the Amazon S3 location that
--   endpoints will be exported to.</li>
--   </ul>
exportJobRequest :: ExportJobRequest

-- | A URL that points to the location within an Amazon S3 bucket that will
--   receive the export. The location is typically a folder with multiple
--   files. The URL should follow this format:
--   s3:/<i>bucket-name</i>folder-name/ Amazon Pinpoint will export
--   endpoints to this location.
eS3URLPrefix :: Lens' ExportJobRequest (Maybe Text)

-- | The ID of the segment to export endpoints from. If not present all
--   endpoints will be exported.
eSegmentId :: Lens' ExportJobRequest (Maybe Text)

-- | The Amazon Resource Name (ARN) of an IAM role that grants Amazon
--   Pinpoint access to the Amazon S3 location that endpoints will be
--   exported to.
eRoleARN :: Lens' ExportJobRequest (Maybe Text)

-- | <i>See:</i> <a>exportJobResource</a> smart constructor.
data ExportJobResource

-- | Creates a value of <a>ExportJobResource</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>ejrS3URLPrefix</a> - A URL that points to the location within
--   an Amazon S3 bucket that will receive the export. The location is
--   typically a folder with multiple files. The URL should follow this
--   format: s3:/<i>bucket-name</i>folder-name/ Amazon Pinpoint will export
--   endpoints to this location.</li>
--   <li><a>ejrSegmentId</a> - The ID of the segment to export endpoints
--   from. If not present, all endpoints are exported.</li>
--   <li><a>ejrRoleARN</a> - The Amazon Resource Name (ARN) of an IAM role
--   that grants Amazon Pinpoint access to the Amazon S3 location that
--   endpoints will be exported to.</li>
--   </ul>
exportJobResource :: ExportJobResource

-- | A URL that points to the location within an Amazon S3 bucket that will
--   receive the export. The location is typically a folder with multiple
--   files. The URL should follow this format:
--   s3:/<i>bucket-name</i>folder-name/ Amazon Pinpoint will export
--   endpoints to this location.
ejrS3URLPrefix :: Lens' ExportJobResource (Maybe Text)

-- | The ID of the segment to export endpoints from. If not present, all
--   endpoints are exported.
ejrSegmentId :: Lens' ExportJobResource (Maybe Text)

-- | The Amazon Resource Name (ARN) of an IAM role that grants Amazon
--   Pinpoint access to the Amazon S3 location that endpoints will be
--   exported to.
ejrRoleARN :: Lens' ExportJobResource (Maybe Text)

-- | <i>See:</i> <a>exportJobResponse</a> smart constructor.
data ExportJobResponse

-- | Creates a value of <a>ExportJobResponse</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>ejCompletedPieces</a> - The number of pieces that have
--   successfully completed as of the time of the request.</li>
--   <li><a>ejFailedPieces</a> - The number of pieces that failed to be
--   processed as of the time of the request.</li>
--   <li><a>ejDefinition</a> - The export job settings.</li>
--   <li><a>ejTotalProcessed</a> - The number of endpoints that were
--   processed by the job.</li>
--   <li><a>ejFailures</a> - Provides up to 100 of the first failed entries
--   for the job, if any exist.</li>
--   <li><a>ejTotalPieces</a> - The total number of pieces that must be
--   processed to finish the job. Each piece is an approximately equal
--   portion of the endpoints.</li>
--   <li><a>ejApplicationId</a> - The unique ID of the application to which
--   the job applies.</li>
--   <li><a>ejId</a> - The unique ID of the job.</li>
--   <li><a>ejCreationDate</a> - The date the job was created in ISO 8601
--   format.</li>
--   <li><a>ejType</a> - The job type. Will be <tt>EXPORT</tt>.</li>
--   <li><a>ejCompletionDate</a> - The date the job completed in ISO 8601
--   format.</li>
--   <li><a>ejJobStatus</a> - The status of the job. Valid values: CREATED,
--   INITIALIZING, PROCESSING, COMPLETING, COMPLETED, FAILING, FAILED The
--   job status is FAILED if one or more pieces failed.</li>
--   <li><a>ejTotalFailures</a> - The number of endpoints that were not
--   processed; for example, because of syntax errors.</li>
--   </ul>
exportJobResponse :: ExportJobResponse

-- | The number of pieces that have successfully completed as of the time
--   of the request.
ejCompletedPieces :: Lens' ExportJobResponse (Maybe Int)

-- | The number of pieces that failed to be processed as of the time of the
--   request.
ejFailedPieces :: Lens' ExportJobResponse (Maybe Int)

-- | The export job settings.
ejDefinition :: Lens' ExportJobResponse (Maybe ExportJobResource)

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

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

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

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

-- | The unique ID of the job.
ejId :: Lens' ExportJobResponse (Maybe Text)

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

-- | The job type. Will be <tt>EXPORT</tt>.
ejType :: Lens' ExportJobResponse (Maybe Text)

-- | The date the job completed in ISO 8601 format.
ejCompletionDate :: Lens' ExportJobResponse (Maybe Text)

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

-- | The number of endpoints that were not processed; for example, because
--   of syntax errors.
ejTotalFailures :: Lens' ExportJobResponse (Maybe Int)

-- | Export job list.
--   
--   <i>See:</i> <a>exportJobsResponse</a> smart constructor.
data ExportJobsResponse

-- | Creates a value of <a>ExportJobsResponse</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>ejNextToken</a> - The string that you use in a subsequent
--   request to get the next page of results in a paginated response.</li>
--   <li><a>ejItem</a> - A list of export jobs for the application.</li>
--   </ul>
exportJobsResponse :: ExportJobsResponse

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

-- | A list of export jobs for the application.
ejItem :: Lens' ExportJobsResponse [ExportJobResponse]

-- | Google Cloud Messaging credentials
--   
--   <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>
--   <li><a>gcrEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   </ul>
gcmChannelRequest :: GCMChannelRequest

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

-- | If the channel is enabled for sending messages.
gcrEnabled :: Lens' GCMChannelRequest (Maybe Bool)

-- | Google Cloud Messaging channel definition
--   
--   <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>gcEnabled</a> - If the channel is enabled for sending
--   messages.</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> - The ID of the application to which the
--   channel applies.</li>
--   <li><a>gcVersion</a> - Version of channel</li>
--   <li><a>gcId</a> - Channel ID. Not used. Present only for backwards
--   compatibility.</li>
--   <li><a>gcCreationDate</a> - When was this segment created</li>
--   <li><a>gcLastModifiedBy</a> - Who last updated this entry</li>
--   <li><a>gcHasCredential</a> - Indicates whether the channel is
--   configured with FCM or GCM credentials. Amazon Pinpoint uses your
--   credentials to authenticate push notifications with FCM or GCM.
--   Provide your credentials by setting the ApiKey attribute.</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)

-- | If the channel is enabled for sending messages.
gcEnabled :: Lens' GCMChannelResponse (Maybe Bool)

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

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

-- | The ID of the application to which the channel applies.
gcApplicationId :: Lens' GCMChannelResponse (Maybe Text)

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

-- | Channel ID. Not used. Present only for backwards compatibility.
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)

-- | Indicates whether the channel is configured with FCM or GCM
--   credentials. Amazon Pinpoint uses your credentials to authenticate
--   push notifications with FCM or GCM. Provide your credentials by
--   setting the ApiKey attribute.
gcHasCredential :: Lens' GCMChannelResponse (Maybe Bool)

-- | GCM Message.
--   
--   <i>See:</i> <a>gcmMessage</a> smart constructor.
data GCMMessage

-- | Creates a value of <a>GCMMessage</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>gmSubstitutions</a> - Default message substitutions. Can be
--   overridden by individual address substitutions.</li>
--   <li><a>gmSilentPush</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>gmImageIconURL</a> - The URL that points to an image used as
--   the large icon to the notification content view.</li>
--   <li><a>gmPriority</a> - The message priority. Amazon Pinpoint uses
--   this value to set the FCM or GCM priority parameter when it sends the
--   message. Accepts the following values: <a>Normal</a> - Messages might
--   be delayed. Delivery is optimized for battery usage on the receiving
--   device. Use normal priority unless immediate delivery is required.
--   <a>High</a> - Messages are sent immediately and might wake a sleeping
--   device. The equivalent values for APNs messages are "5" and "10".
--   Amazon Pinpoint accepts these values here and converts them. For more
--   information, see About FCM Messages in the Firebase
--   documentation.</li>
--   <li><a>gmRawContent</a> - The Raw JSON formatted string to be used as
--   the payload. This value overrides the message.</li>
--   <li><a>gmData</a> - The data payload used for a silent push. This
--   payload is added to the notifications' data.pinpoint.jsonBody'
--   object</li>
--   <li><a>gmRestrictedPackageName</a> - This parameter specifies the
--   package name of the application where the registration tokens must
--   match in order to receive the message.</li>
--   <li><a>gmSmallImageIconURL</a> - The URL that points to an image used
--   as the small icon for the notification which will be used to represent
--   the notification in the status bar and content view</li>
--   <li><a>gmBody</a> - The message body of the notification, the email
--   body or the text message.</li>
--   <li><a>gmTimeToLive</a> - The length of time (in seconds) that FCM or
--   GCM stores and attempts to deliver the message. If unspecified, the
--   value defaults to the maximum, which is 2,419,200 seconds (28 days).
--   Amazon Pinpoint uses this value to set the FCM or GCM time_to_live
--   parameter.</li>
--   <li><a>gmURL</a> - The URL to open in the user's mobile browser. Used
--   if the value for Action is URL.</li>
--   <li><a>gmSound</a> - Indicates a sound to play when the device
--   receives the notification. Supports default, or the filename of a
--   sound resource bundled in the app. Android sound files must reside in
--   <i>res</i>raw/</li>
--   <li><a>gmAction</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.
--   Possible values include: OPEN_APP | DEEP_LINK | URL</li>
--   <li><a>gmCollapseKey</a> - This parameter identifies a group of
--   messages (e.g., with collapse_key: "Updates Available") that can be
--   collapsed, so that only the last message gets sent when delivery can
--   be resumed. This is intended to avoid sending too many of the same
--   messages when the device comes back online or becomes active.</li>
--   <li><a>gmImageURL</a> - The URL that points to an image used in the
--   push notification.</li>
--   <li><a>gmTitle</a> - The message title that displays above the message
--   on the user's device.</li>
--   <li><a>gmIconReference</a> - The icon image name of the asset saved in
--   your application.</li>
--   </ul>
gcmMessage :: GCMMessage

-- | Default message substitutions. Can be overridden by individual address
--   substitutions.
gmSubstitutions :: Lens' GCMMessage (HashMap Text [Text])

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

-- | The URL that points to an image used as the large icon to the
--   notification content view.
gmImageIconURL :: Lens' GCMMessage (Maybe Text)

-- | The message priority. Amazon Pinpoint uses this value to set the FCM
--   or GCM priority parameter when it sends the message. Accepts the
--   following values: <a>Normal</a> - Messages might be delayed. Delivery
--   is optimized for battery usage on the receiving device. Use normal
--   priority unless immediate delivery is required. <a>High</a> - Messages
--   are sent immediately and might wake a sleeping device. The equivalent
--   values for APNs messages are "5" and "10". Amazon Pinpoint accepts
--   these values here and converts them. For more information, see About
--   FCM Messages in the Firebase documentation.
gmPriority :: Lens' GCMMessage (Maybe Text)

-- | The Raw JSON formatted string to be used as the payload. This value
--   overrides the message.
gmRawContent :: Lens' GCMMessage (Maybe Text)

-- | The data payload used for a silent push. This payload is added to the
--   notifications' data.pinpoint.jsonBody' object
gmData :: Lens' GCMMessage (HashMap Text Text)

-- | This parameter specifies the package name of the application where the
--   registration tokens must match in order to receive the message.
gmRestrictedPackageName :: Lens' GCMMessage (Maybe Text)

-- | The URL that points to an image used as the small icon for the
--   notification which will be used to represent the notification in the
--   status bar and content view
gmSmallImageIconURL :: Lens' GCMMessage (Maybe Text)

-- | The message body of the notification, the email body or the text
--   message.
gmBody :: Lens' GCMMessage (Maybe Text)

-- | The length of time (in seconds) that FCM or GCM stores and attempts to
--   deliver the message. If unspecified, the value defaults to the
--   maximum, which is 2,419,200 seconds (28 days). Amazon Pinpoint uses
--   this value to set the FCM or GCM time_to_live parameter.
gmTimeToLive :: Lens' GCMMessage (Maybe Int)

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

-- | Indicates a sound to play when the device receives the notification.
--   Supports default, or the filename of a sound resource bundled in the
--   app. Android sound files must reside in <i>res</i>raw/
gmSound :: Lens' GCMMessage (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. Possible values
--   include: OPEN_APP | DEEP_LINK | URL
gmAction :: Lens' GCMMessage (Maybe Action)

-- | This parameter identifies a group of messages (e.g., with
--   collapse_key: "Updates Available") that can be collapsed, so that only
--   the last message gets sent when delivery can be resumed. This is
--   intended to avoid sending too many of the same messages when the
--   device comes back online or becomes active.
gmCollapseKey :: Lens' GCMMessage (Maybe Text)

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

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

-- | The icon image name of the asset saved in your application.
gmIconReference :: Lens' GCMMessage (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> - DEPRECATED. Your AWS account ID, which you
--   assigned to the ExternalID key in an IAM trust policy. Used by Amazon
--   Pinpoint to assume an IAM role. This requirement is removed, and
--   external IDs are not recommended for IAM roles assumed by Amazon
--   Pinpoint.</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)

-- | DEPRECATED. Your AWS account ID, which you assigned to the ExternalID
--   key in an IAM trust policy. Used by Amazon Pinpoint to assume an IAM
--   role. This requirement is removed, and external IDs are not
--   recommended for IAM roles assumed by Amazon Pinpoint.
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> - DEPRECATED. Your AWS account ID, which you
--   assigned to the ExternalID key in an IAM trust policy. Used by Amazon
--   Pinpoint to assume an IAM role. This requirement is removed, and
--   external IDs are not recommended for IAM roles assumed by Amazon
--   Pinpoint.</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)

-- | DEPRECATED. Your AWS account ID, which you assigned to the ExternalID
--   key in an IAM trust policy. Used by Amazon Pinpoint to assume an IAM
--   role. This requirement is removed, and external IDs are not
--   recommended for IAM roles assumed by Amazon Pinpoint.
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)

-- | Import job list.
--   
--   <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>mRawContent</a> - The Raw JSON formatted string to be used as
--   the payload. This value overrides the message.</li>
--   <li><a>mBody</a> - The message body. Can include up to 140
--   characters.</li>
--   <li><a>mImageSmallIconURL</a> - The URL that points to the small icon
--   image for the push notification icon, for example, the app icon.</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 Raw JSON formatted string to be used as the payload. This value
--   overrides the message.
mRawContent :: Lens' Message (Maybe Text)

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

-- | The URL that points to the small icon image for the push notification
--   icon, for example, the app icon.
mImageSmallIconURL :: 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)

-- | Simple message object.
--   
--   <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> - The unique message body ID.</li>
--   <li><a>mbMessage</a> - The error message returned from the API.</li>
--   </ul>
messageBody :: MessageBody

-- | The unique message body ID.
mbRequestId :: Lens' MessageBody (Maybe Text)

-- | The error message returned from the API.
mbMessage :: Lens' MessageBody (Maybe Text)

-- | Message configuration for a campaign.
--   
--   <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>
--   <li><a>mcADMMessage</a> - The message that the campaign delivers to
--   ADM channels. Overrides the default message.</li>
--   <li><a>mcSMSMessage</a> - The SMS message configuration.</li>
--   <li><a>mcEmailMessage</a> - The email message configuration.</li>
--   <li><a>mcBaiduMessage</a> - The message that the campaign delivers to
--   Baidu channels. Overrides the default message.</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)

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

-- | The SMS message configuration.
mcSMSMessage :: Lens' MessageConfiguration (Maybe CampaignSmsMessage)

-- | The email message configuration.
mcEmailMessage :: Lens' MessageConfiguration (Maybe CampaignEmailMessage)

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

-- | Send message request.
--   
--   <i>See:</i> <a>messageRequest</a> smart constructor.
data MessageRequest

-- | Creates a value of <a>MessageRequest</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>mrContext</a> - A map of custom attributes to attributes to be
--   attached to the message. This payload is added to the push
--   notification's 'data.pinpoint' object or added to the email/sms
--   delivery receipt event attributes.</li>
--   <li><a>mrAddresses</a> - A map of destination addresses, with the
--   address as the key(Email address, phone number or push token) and the
--   Address Configuration as the value.</li>
--   <li><a>mrEndpoints</a> - A map of destination addresses, with the
--   address as the key(Email address, phone number or push token) and the
--   Address Configuration as the value.</li>
--   <li><a>mrMessageConfiguration</a> - Message configuration.</li>
--   </ul>
messageRequest :: MessageRequest

-- | A map of custom attributes to attributes to be attached to the
--   message. This payload is added to the push notification's
--   'data.pinpoint' object or added to the email/sms delivery receipt
--   event attributes.
mrContext :: Lens' MessageRequest (HashMap Text Text)

-- | A map of destination addresses, with the address as the key(Email
--   address, phone number or push token) and the Address Configuration as
--   the value.
mrAddresses :: Lens' MessageRequest (HashMap Text AddressConfiguration)

-- | A map of destination addresses, with the address as the key(Email
--   address, phone number or push token) and the Address Configuration as
--   the value.
mrEndpoints :: Lens' MessageRequest (HashMap Text EndpointSendConfiguration)

-- | Message configuration.
mrMessageConfiguration :: Lens' MessageRequest (Maybe DirectMessageConfiguration)

-- | Send message response.
--   
--   <i>See:</i> <a>messageResponse</a> smart constructor.
data MessageResponse

-- | Creates a value of <a>MessageResponse</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>mRequestId</a> - Original request Id for which this message was
--   delivered.</li>
--   <li><a>mResult</a> - A map containing a multi part response for each
--   address, with the address as the key(Email address, phone number or
--   push token) and the result as the value.</li>
--   <li><a>mApplicationId</a> - Application id of the message.</li>
--   <li><a>mEndpointResult</a> - A map containing a multi part response
--   for each address, with the endpointId as the key and the result as the
--   value.</li>
--   </ul>
messageResponse :: MessageResponse

-- | Original request Id for which this message was delivered.
mRequestId :: Lens' MessageResponse (Maybe Text)

-- | A map containing a multi part response for each address, with the
--   address as the key(Email address, phone number or push token) and the
--   result as the value.
mResult :: Lens' MessageResponse (HashMap Text MessageResult)

-- | Application id of the message.
mApplicationId :: Lens' MessageResponse (Maybe Text)

-- | A map containing a multi part response for each address, with the
--   endpointId as the key and the result as the value.
mEndpointResult :: Lens' MessageResponse (HashMap Text EndpointMessageResult)

-- | The result from sending a message to an address.
--   
--   <i>See:</i> <a>messageResult</a> smart constructor.
data MessageResult

-- | Creates a value of <a>MessageResult</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>mrDeliveryStatus</a> - Delivery status of message.</li>
--   <li><a>mrStatusMessage</a> - Status message for message delivery.</li>
--   <li><a>mrUpdatedToken</a> - If token was updated as part of delivery.
--   (This is GCM Specific)</li>
--   <li><a>mrStatusCode</a> - Downstream service status code.</li>
--   </ul>
messageResult :: MessageResult

-- | Delivery status of message.
mrDeliveryStatus :: Lens' MessageResult (Maybe DeliveryStatus)

-- | Status message for message delivery.
mrStatusMessage :: Lens' MessageResult (Maybe Text)

-- | If token was updated as part of delivery. (This is GCM Specific)
mrUpdatedToken :: Lens' MessageResult (Maybe Text)

-- | Downstream service status code.
mrStatusCode :: Lens' MessageResult (Maybe Int)

-- | Quiet Time
--   
--   <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)

-- | Define how a segment based on recency of use.
--   
--   <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)

-- | SMS Channel Request
--   
--   <i>See:</i> <a>sMSChannelRequest</a> smart constructor.
data SMSChannelRequest

-- | Creates a value of <a>SMSChannelRequest</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>smscrShortCode</a> - ShortCode registered with phone
--   provider.</li>
--   <li><a>smscrEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>smscrSenderId</a> - Sender identifier of your messages.</li>
--   </ul>
sMSChannelRequest :: SMSChannelRequest

-- | ShortCode registered with phone provider.
smscrShortCode :: Lens' SMSChannelRequest (Maybe Text)

-- | If the channel is enabled for sending messages.
smscrEnabled :: Lens' SMSChannelRequest (Maybe Bool)

-- | Sender identifier of your messages.
smscrSenderId :: Lens' SMSChannelRequest (Maybe Text)

-- | SMS Channel Response.
--   
--   <i>See:</i> <a>sMSChannelResponse</a> smart constructor.
data SMSChannelResponse

-- | Creates a value of <a>SMSChannelResponse</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>smscPlatform</a> - Platform type. Will be <a>SMS</a></li>
--   <li><a>smscShortCode</a> - The short code registered with the phone
--   provider.</li>
--   <li><a>smscLastModifiedDate</a> - Last date this was updated</li>
--   <li><a>smscEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>smscSenderId</a> - Sender identifier of your messages.</li>
--   <li><a>smscIsArchived</a> - Is this channel archived</li>
--   <li><a>smscApplicationId</a> - The unique ID of the application to
--   which the SMS channel belongs.</li>
--   <li><a>smscVersion</a> - Version of channel</li>
--   <li><a>smscId</a> - Channel ID. Not used, only for backwards
--   compatibility.</li>
--   <li><a>smscCreationDate</a> - The date that the settings were last
--   updated in ISO 8601 format.</li>
--   <li><a>smscLastModifiedBy</a> - Who last updated this entry</li>
--   <li><a>smscHasCredential</a> - If the channel is registered with a
--   credential for authentication.</li>
--   </ul>
sMSChannelResponse :: SMSChannelResponse

-- | Platform type. Will be <a>SMS</a>
smscPlatform :: Lens' SMSChannelResponse (Maybe Text)

-- | The short code registered with the phone provider.
smscShortCode :: Lens' SMSChannelResponse (Maybe Text)

-- | Last date this was updated
smscLastModifiedDate :: Lens' SMSChannelResponse (Maybe Text)

-- | If the channel is enabled for sending messages.
smscEnabled :: Lens' SMSChannelResponse (Maybe Bool)

-- | Sender identifier of your messages.
smscSenderId :: Lens' SMSChannelResponse (Maybe Text)

-- | Is this channel archived
smscIsArchived :: Lens' SMSChannelResponse (Maybe Bool)

-- | The unique ID of the application to which the SMS channel belongs.
smscApplicationId :: Lens' SMSChannelResponse (Maybe Text)

-- | Version of channel
smscVersion :: Lens' SMSChannelResponse (Maybe Int)

-- | Channel ID. Not used, only for backwards compatibility.
smscId :: Lens' SMSChannelResponse (Maybe Text)

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

-- | Who last updated this entry
smscLastModifiedBy :: Lens' SMSChannelResponse (Maybe Text)

-- | If the channel is registered with a credential for authentication.
smscHasCredential :: Lens' SMSChannelResponse (Maybe Bool)

-- | SMS Message.
--   
--   <i>See:</i> <a>sMSMessage</a> smart constructor.
data SMSMessage

-- | Creates a value of <a>SMSMessage</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>smsmSubstitutions</a> - Default message substitutions. Can be
--   overridden by individual address substitutions.</li>
--   <li><a>smsmOriginationNumber</a> - The phone number that the SMS
--   message originates from. Specify one of the dedicated long codes or
--   short codes that you requested from AWS Support and that is assigned
--   to your account. If this attribute is not specified, Amazon Pinpoint
--   randomly assigns a long code.</li>
--   <li><a>smsmBody</a> - The message body of the notification, the email
--   body or the text message.</li>
--   <li><a>smsmMessageType</a> - Is this a transaction priority message or
--   lower priority.</li>
--   <li><a>smsmSenderId</a> - The sender ID that is shown as the message
--   sender on the recipient's device. Support for sender IDs varies by
--   country or region.</li>
--   </ul>
sMSMessage :: SMSMessage

-- | Default message substitutions. Can be overridden by individual address
--   substitutions.
smsmSubstitutions :: Lens' SMSMessage (HashMap Text [Text])

-- | The phone number that the SMS message originates from. Specify one of
--   the dedicated long codes or short codes that you requested from AWS
--   Support and that is assigned to your account. If this attribute is not
--   specified, Amazon Pinpoint randomly assigns a long code.
smsmOriginationNumber :: Lens' SMSMessage (Maybe Text)

-- | The message body of the notification, the email body or the text
--   message.
smsmBody :: Lens' SMSMessage (Maybe Text)

-- | Is this a transaction priority message or lower priority.
smsmMessageType :: Lens' SMSMessage (Maybe MessageType)

-- | The sender ID that is shown as the message sender on the recipient's
--   device. Support for sender IDs varies by country or region.
smsmSenderId :: Lens' SMSMessage (Maybe Text)

-- | Shcedule that defines when a campaign is run.
--   
--   <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)

-- | Segment behavior dimensions
--   
--   <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)

-- | Segment demographic dimensions
--   
--   <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>sdChannel</a> - The channel 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 channel criteria for the segment.
sdChannel :: 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)

-- | Segment dimensions
--   
--   <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>sdUserAttributes</a> - Custom segment user 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)

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

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

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

-- | Segment import definition.
--   
--   <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>sirChannelCounts</a> - Channel type counts</li>
--   <li><a>sirExternalId</a> - DEPRECATED. Your AWS account ID, which you
--   assigned to the ExternalID key in an IAM trust policy. Used by Amazon
--   Pinpoint to assume an IAM role. This requirement is removed, and
--   external IDs are not recommended for IAM roles assumed by Amazon
--   Pinpoint.</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)

-- | Channel type counts
sirChannelCounts :: Lens' SegmentImportResource (HashMap Text Int)

-- | DEPRECATED. Your AWS account ID, which you assigned to the ExternalID
--   key in an IAM trust policy. Used by Amazon Pinpoint to assume an IAM
--   role. This requirement is removed, and external IDs are not
--   recommended for IAM roles assumed by Amazon Pinpoint.
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)

-- | Segment location dimensions
--   
--   <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)

-- | Segment definition.
--   
--   <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)

-- | Segments in your account.
--   
--   <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]

-- | Send message request.
--   
--   <i>See:</i> <a>sendUsersMessageRequest</a> smart constructor.
data SendUsersMessageRequest

-- | Creates a value of <a>SendUsersMessageRequest</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>sumrContext</a> - A map of custom attributes to attributes to
--   be attached to the message. This payload is added to the push
--   notification's 'data.pinpoint' object or added to the email/sms
--   delivery receipt event attributes.</li>
--   <li><a>sumrUsers</a> - A map of destination endpoints, with the
--   EndpointId as the key Endpoint Message Configuration as the
--   value.</li>
--   <li><a>sumrMessageConfiguration</a> - Message configuration.</li>
--   </ul>
sendUsersMessageRequest :: SendUsersMessageRequest

-- | A map of custom attributes to attributes to be attached to the
--   message. This payload is added to the push notification's
--   'data.pinpoint' object or added to the email/sms delivery receipt
--   event attributes.
sumrContext :: Lens' SendUsersMessageRequest (HashMap Text Text)

-- | A map of destination endpoints, with the EndpointId as the key
--   Endpoint Message Configuration as the value.
sumrUsers :: Lens' SendUsersMessageRequest (HashMap Text EndpointSendConfiguration)

-- | Message configuration.
sumrMessageConfiguration :: Lens' SendUsersMessageRequest (Maybe DirectMessageConfiguration)

-- | User send message response.
--   
--   <i>See:</i> <a>sendUsersMessageResponse</a> smart constructor.
data SendUsersMessageResponse

-- | Creates a value of <a>SendUsersMessageResponse</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>sumRequestId</a> - Original request Id for which this message
--   was delivered.</li>
--   <li><a>sumResult</a> - A map containing of UserId to Map of EndpointId
--   to Endpoint Message Result.</li>
--   <li><a>sumApplicationId</a> - Application id of the message.</li>
--   </ul>
sendUsersMessageResponse :: SendUsersMessageResponse

-- | Original request Id for which this message was delivered.
sumRequestId :: Lens' SendUsersMessageResponse (Maybe Text)

-- | A map containing of UserId to Map of EndpointId to Endpoint Message
--   Result.
sumResult :: Lens' SendUsersMessageResponse (HashMap Text (HashMap Text EndpointMessageResult))

-- | Application id of the message.
sumApplicationId :: Lens' SendUsersMessageResponse (Maybe Text)

-- | Dimension specification of a segment.
--   
--   <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)

-- | Treatment resource
--   
--   <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)

-- | Creating application setting request
--   
--   <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>
--   <li><a>wasrCampaignHook</a> - Default campaign hook information.</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)

-- | Default campaign hook information.
wasrCampaignHook :: Lens' WriteApplicationSettingsRequest (Maybe CampaignHook)

-- | Used to create a campaign.
--   
--   <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>wcrHook</a> - Campaign hook information.</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)

-- | Campaign hook information.
wcrHook :: Lens' WriteCampaignRequest (Maybe CampaignHook)

-- | 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)

-- | Request to save an EventStream.
--   
--   <i>See:</i> <a>writeEventStream</a> smart constructor.
data WriteEventStream

-- | Creates a value of <a>WriteEventStream</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>wesDestinationStreamARN</a> - The Amazon Resource Name (ARN) of
--   the Amazon Kinesis stream or Firehose delivery stream to which you
--   want to publish events. Firehose ARN:
--   arn:aws:firehose:REGION:ACCOUNT_ID:deliverystream<i>STREAM_NAME
--   Kinesis ARN:
--   arn:aws:kinesis:REGION:ACCOUNT_ID:stream</i>STREAM_NAME</li>
--   <li><a>wesRoleARN</a> - The IAM role that authorizes Amazon Pinpoint
--   to publish events to the stream in your account.</li>
--   </ul>
writeEventStream :: WriteEventStream

-- | The Amazon Resource Name (ARN) of the Amazon Kinesis stream or
--   Firehose delivery stream to which you want to publish events. Firehose
--   ARN: arn:aws:firehose:REGION:ACCOUNT_ID:deliverystream<i>STREAM_NAME
--   Kinesis ARN: arn:aws:kinesis:REGION:ACCOUNT_ID:stream</i>STREAM_NAME
wesDestinationStreamARN :: Lens' WriteEventStream (Maybe Text)

-- | The IAM role that authorizes Amazon Pinpoint to publish events to the
--   stream in your account.
wesRoleARN :: Lens' WriteEventStream (Maybe Text)

-- | Segment definition.
--   
--   <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)

-- | Used to create a campaign treatment.
--   
--   <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)


-- | Send a batch of messages to users
module Network.AWS.Pinpoint.SendUsersMessages

-- | Creates a value of <a>SendUsersMessages</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>sumsApplicationId</a> - Undocumented member.</li>
--   <li><a>sumsSendUsersMessageRequest</a> - Undocumented member.</li>
--   </ul>
sendUsersMessages :: Text -> SendUsersMessageRequest -> SendUsersMessages

-- | <i>See:</i> <a>sendUsersMessages</a> smart constructor.
data SendUsersMessages

-- | Undocumented member.
sumsApplicationId :: Lens' SendUsersMessages Text

-- | Undocumented member.
sumsSendUsersMessageRequest :: Lens' SendUsersMessages SendUsersMessageRequest

-- | Creates a value of <a>SendUsersMessagesResponse</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>sumrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>sumrsSendUsersMessageResponse</a> - Undocumented member.</li>
--   </ul>
sendUsersMessagesResponse :: Int -> SendUsersMessageResponse -> SendUsersMessagesResponse

-- | <i>See:</i> <a>sendUsersMessagesResponse</a> smart constructor.
data SendUsersMessagesResponse

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

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


-- | Send a batch of messages
module Network.AWS.Pinpoint.SendMessages

-- | Creates a value of <a>SendMessages</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>smApplicationId</a> - Undocumented member.</li>
--   <li><a>smMessageRequest</a> - Undocumented member.</li>
--   </ul>
sendMessages :: Text -> MessageRequest -> SendMessages

-- | <i>See:</i> <a>sendMessages</a> smart constructor.
data SendMessages

-- | Undocumented member.
smApplicationId :: Lens' SendMessages Text

-- | Undocumented member.
smMessageRequest :: Lens' SendMessages MessageRequest

-- | Creates a value of <a>SendMessagesResponse</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>smrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>smrsMessageResponse</a> - Undocumented member.</li>
--   </ul>
sendMessagesResponse :: Int -> MessageResponse -> SendMessagesResponse

-- | <i>See:</i> <a>sendMessagesResponse</a> smart constructor.
data SendMessagesResponse

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

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


-- | Use to create or update the event stream for an app.
module Network.AWS.Pinpoint.PutEventStream

-- | Creates a value of <a>PutEventStream</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>pesApplicationId</a> - ApplicationId</li>
--   <li><a>pesWriteEventStream</a> - EventStream to write.</li>
--   </ul>
putEventStream :: Text -> WriteEventStream -> PutEventStream

-- | <i>See:</i> <a>putEventStream</a> smart constructor.
data PutEventStream

-- | ApplicationId
pesApplicationId :: Lens' PutEventStream Text

-- | EventStream to write.
pesWriteEventStream :: Lens' PutEventStream WriteEventStream

-- | Creates a value of <a>PutEventStreamResponse</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>pesrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>pesrsEventStream</a> - Undocumented member.</li>
--   </ul>
putEventStreamResponse :: Int -> EventStream -> PutEventStreamResponse

-- | <i>See:</i> <a>putEventStreamResponse</a> smart constructor.
data PutEventStreamResponse

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

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


-- | Get an SMS channel
module Network.AWS.Pinpoint.GetSmsChannel

-- | Creates a value of <a>GetSmsChannel</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>gscApplicationId</a> - Undocumented member.</li>
--   </ul>
getSmsChannel :: Text -> GetSmsChannel

-- | <i>See:</i> <a>getSmsChannel</a> smart constructor.
data GetSmsChannel

-- | Undocumented member.
gscApplicationId :: Lens' GetSmsChannel Text

-- | Creates a value of <a>GetSmsChannelResponse</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>gscrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gscrsSMSChannelResponse</a> - Undocumented member.</li>
--   </ul>
getSmsChannelResponse :: Int -> SMSChannelResponse -> GetSmsChannelResponse

-- | <i>See:</i> <a>getSmsChannelResponse</a> smart constructor.
data GetSmsChannelResponse

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

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


-- | 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> - The NextToken string returned on a previous page
--   that you use to get the next page of results in a paginated
--   response.</li>
--   <li><a>gssPageSize</a> - The number of entries you want on each page
--   in the response.</li>
--   <li><a>gssApplicationId</a> - Undocumented member.</li>
--   </ul>
getSegments :: Text -> GetSegments

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

-- | The NextToken string returned on a previous page that you use to get
--   the next page of results in a paginated response.
gssToken :: Lens' GetSegments (Maybe Text)

-- | The number of entries you want on each page in the response.
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 Control.DeepSeq.NFData Network.AWS.Pinpoint.GetSegments.GetSegmentsResponse
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


-- | 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> - The NextToken string returned on a previous page
--   that you use to get the next page of results in a paginated
--   response.</li>
--   <li><a>gsvPageSize</a> - The number of entries you want on each page
--   in the response.</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

-- | The NextToken string returned on a previous page that you use to get
--   the next page of results in a paginated response.
gsvToken :: Lens' GetSegmentVersions (Maybe Text)

-- | The number of entries you want on each page in the response.
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 Control.DeepSeq.NFData Network.AWS.Pinpoint.GetSegmentVersions.GetSegmentVersionsResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.Pinpoint.GetSegmentVersion.GetSegmentVersionResponse
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


-- | 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> - The NextToken string returned on a previous
--   page that you use to get the next page of results in a paginated
--   response.</li>
--   <li><a>gsijPageSize</a> - The number of entries you want on each page
--   in the response.</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

-- | The NextToken string returned on a previous page that you use to get
--   the next page of results in a paginated response.
gsijToken :: Lens' GetSegmentImportJobs (Maybe Text)

-- | The number of entries you want on each page in the response.
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 Control.DeepSeq.NFData Network.AWS.Pinpoint.GetSegmentImportJobs.GetSegmentImportJobsResponse
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


-- | Returns a list of export jobs for a specific segment.
module Network.AWS.Pinpoint.GetSegmentExportJobs

-- | Creates a value of <a>GetSegmentExportJobs</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>gsejToken</a> - The NextToken string returned on a previous
--   page that you use to get the next page of results in a paginated
--   response.</li>
--   <li><a>gsejPageSize</a> - The number of entries you want on each page
--   in the response.</li>
--   <li><a>gsejSegmentId</a> - Undocumented member.</li>
--   <li><a>gsejApplicationId</a> - Undocumented member.</li>
--   </ul>
getSegmentExportJobs :: Text -> Text -> GetSegmentExportJobs

-- | <i>See:</i> <a>getSegmentExportJobs</a> smart constructor.
data GetSegmentExportJobs

-- | The NextToken string returned on a previous page that you use to get
--   the next page of results in a paginated response.
gsejToken :: Lens' GetSegmentExportJobs (Maybe Text)

-- | The number of entries you want on each page in the response.
gsejPageSize :: Lens' GetSegmentExportJobs (Maybe Text)

-- | Undocumented member.
gsejSegmentId :: Lens' GetSegmentExportJobs Text

-- | Undocumented member.
gsejApplicationId :: Lens' GetSegmentExportJobs Text

-- | Creates a value of <a>GetSegmentExportJobsResponse</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>gsejrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gsejrsExportJobsResponse</a> - Undocumented member.</li>
--   </ul>
getSegmentExportJobsResponse :: Int -> ExportJobsResponse -> GetSegmentExportJobsResponse

-- | <i>See:</i> <a>getSegmentExportJobsResponse</a> smart constructor.
data GetSegmentExportJobsResponse

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

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


-- | 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>gssrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gssrsSegmentResponse</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>
gssrsResponseStatus :: Lens' GetSegmentResponse Int

-- | Undocumented member.
gssrsSegmentResponse :: 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 Control.DeepSeq.NFData Network.AWS.Pinpoint.GetSegment.GetSegmentResponse
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


-- | 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> - The NextToken string returned on a previous
--   page that you use to get the next page of results in a paginated
--   response.</li>
--   <li><a>gijsPageSize</a> - The number of entries you want on each page
--   in the response.</li>
--   <li><a>gijsApplicationId</a> - Undocumented member.</li>
--   </ul>
getImportJobs :: Text -> GetImportJobs

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

-- | The NextToken string returned on a previous page that you use to get
--   the next page of results in a paginated response.
gijsToken :: Lens' GetImportJobs (Maybe Text)

-- | The number of entries you want on each page in the response.
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 Control.DeepSeq.NFData Network.AWS.Pinpoint.GetImportJobs.GetImportJobsResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.Pinpoint.GetImportJob.GetImportJobResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.Pinpoint.GetGCMChannel.GetGCMChannelResponse
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


-- | Returns information about your export jobs.
module Network.AWS.Pinpoint.GetExportJobs

-- | Creates a value of <a>GetExportJobs</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>gejsToken</a> - The NextToken string returned on a previous
--   page that you use to get the next page of results in a paginated
--   response.</li>
--   <li><a>gejsPageSize</a> - The number of entries you want on each page
--   in the response.</li>
--   <li><a>gejsApplicationId</a> - Undocumented member.</li>
--   </ul>
getExportJobs :: Text -> GetExportJobs

-- | <i>See:</i> <a>getExportJobs</a> smart constructor.
data GetExportJobs

-- | The NextToken string returned on a previous page that you use to get
--   the next page of results in a paginated response.
gejsToken :: Lens' GetExportJobs (Maybe Text)

-- | The number of entries you want on each page in the response.
gejsPageSize :: Lens' GetExportJobs (Maybe Text)

-- | Undocumented member.
gejsApplicationId :: Lens' GetExportJobs Text

-- | Creates a value of <a>GetExportJobsResponse</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>gejrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gejrsExportJobsResponse</a> - Undocumented member.</li>
--   </ul>
getExportJobsResponse :: Int -> ExportJobsResponse -> GetExportJobsResponse

-- | <i>See:</i> <a>getExportJobsResponse</a> smart constructor.
data GetExportJobsResponse

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

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


-- | Returns information about an export job.
module Network.AWS.Pinpoint.GetExportJob

-- | Creates a value of <a>GetExportJob</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>gejApplicationId</a> - Undocumented member.</li>
--   <li><a>gejJobId</a> - Undocumented member.</li>
--   </ul>
getExportJob :: Text -> Text -> GetExportJob

-- | <i>See:</i> <a>getExportJob</a> smart constructor.
data GetExportJob

-- | Undocumented member.
gejApplicationId :: Lens' GetExportJob Text

-- | Undocumented member.
gejJobId :: Lens' GetExportJob Text

-- | Creates a value of <a>GetExportJobResponse</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>getrsExportJobResponse</a> - Undocumented member.</li>
--   </ul>
getExportJobResponse :: Int -> ExportJobResponse -> GetExportJobResponse

-- | <i>See:</i> <a>getExportJobResponse</a> smart constructor.
data GetExportJobResponse

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

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


-- | Returns the event stream for an app.
module Network.AWS.Pinpoint.GetEventStream

-- | Creates a value of <a>GetEventStream</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>gesApplicationId</a> - ApplicationId</li>
--   </ul>
getEventStream :: Text -> GetEventStream

-- | GetEventStreamRequest
--   
--   <i>See:</i> <a>getEventStream</a> smart constructor.
data GetEventStream

-- | ApplicationId
gesApplicationId :: Lens' GetEventStream Text

-- | Creates a value of <a>GetEventStreamResponse</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>gesrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gesrsEventStream</a> - Undocumented member.</li>
--   </ul>
getEventStreamResponse :: Int -> EventStream -> GetEventStreamResponse

-- | <i>See:</i> <a>getEventStreamResponse</a> smart constructor.
data GetEventStreamResponse

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

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


-- | 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 Control.DeepSeq.NFData Network.AWS.Pinpoint.GetEndpoint.GetEndpointResponse
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


-- | Get an email channel
module Network.AWS.Pinpoint.GetEmailChannel

-- | Creates a value of <a>GetEmailChannel</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>gecApplicationId</a> - Undocumented member.</li>
--   </ul>
getEmailChannel :: Text -> GetEmailChannel

-- | <i>See:</i> <a>getEmailChannel</a> smart constructor.
data GetEmailChannel

-- | Undocumented member.
gecApplicationId :: Lens' GetEmailChannel Text

-- | Creates a value of <a>GetEmailChannelResponse</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>gecrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gecrsEmailChannelResponse</a> - Undocumented member.</li>
--   </ul>
getEmailChannelResponse :: Int -> EmailChannelResponse -> GetEmailChannelResponse

-- | <i>See:</i> <a>getEmailChannelResponse</a> smart constructor.
data GetEmailChannelResponse

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

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


-- | 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> - The NextToken string returned on a previous page
--   that you use to get the next page of results in a paginated
--   response.</li>
--   <li><a>gcsPageSize</a> - The number of entries you want on each page
--   in the response.</li>
--   <li><a>gcsApplicationId</a> - Undocumented member.</li>
--   </ul>
getCampaigns :: Text -> GetCampaigns

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

-- | The NextToken string returned on a previous page that you use to get
--   the next page of results in a paginated response.
gcsToken :: Lens' GetCampaigns (Maybe Text)

-- | The number of entries you want on each page in the response.
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 Control.DeepSeq.NFData Network.AWS.Pinpoint.GetCampaigns.GetCampaignsResponse
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


-- | 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> - The NextToken string returned on a previous page
--   that you use to get the next page of results in a paginated
--   response.</li>
--   <li><a>gcvPageSize</a> - The number of entries you want on each page
--   in the response.</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

-- | The NextToken string returned on a previous page that you use to get
--   the next page of results in a paginated response.
gcvToken :: Lens' GetCampaignVersions (Maybe Text)

-- | The number of entries you want on each page in the response.
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 Control.DeepSeq.NFData Network.AWS.Pinpoint.GetCampaignVersions.GetCampaignVersionsResponse
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


-- | Returns information about a specific version of a campaign.
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 Control.DeepSeq.NFData Network.AWS.Pinpoint.GetCampaignVersion.GetCampaignVersionResponse
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


-- | 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> - The NextToken string returned on a previous page
--   that you use to get the next page of results in a paginated
--   response.</li>
--   <li><a>gcaPageSize</a> - The number of entries you want on each page
--   in the response.</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

-- | The NextToken string returned on a previous page that you use to get
--   the next page of results in a paginated response.
gcaToken :: Lens' GetCampaignActivities (Maybe Text)

-- | The number of entries you want on each page in the response.
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 Control.DeepSeq.NFData Network.AWS.Pinpoint.GetCampaignActivities.GetCampaignActivitiesResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.Pinpoint.GetCampaign.GetCampaignResponse
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


-- | Get a BAIDU GCM channel
module Network.AWS.Pinpoint.GetBaiduChannel

-- | Creates a value of <a>GetBaiduChannel</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>gbcApplicationId</a> - Undocumented member.</li>
--   </ul>
getBaiduChannel :: Text -> GetBaiduChannel

-- | <i>See:</i> <a>getBaiduChannel</a> smart constructor.
data GetBaiduChannel

-- | Undocumented member.
gbcApplicationId :: Lens' GetBaiduChannel Text

-- | Creates a value of <a>GetBaiduChannelResponse</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>gbcrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gbcrsBaiduChannelResponse</a> - Undocumented member.</li>
--   </ul>
getBaiduChannelResponse :: Int -> BaiduChannelResponse -> GetBaiduChannelResponse

-- | <i>See:</i> <a>getBaiduChannelResponse</a> smart constructor.
data GetBaiduChannelResponse

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

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


-- | Returns information about your apps.
module Network.AWS.Pinpoint.GetApps

-- | Creates a value of <a>GetApps</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>gaToken</a> - Undocumented member.</li>
--   <li><a>gaPageSize</a> - Undocumented member.</li>
--   </ul>
getApps :: GetApps

-- | <i>See:</i> <a>getApps</a> smart constructor.
data GetApps

-- | Undocumented member.
gaToken :: Lens' GetApps (Maybe Text)

-- | Undocumented member.
gaPageSize :: Lens' GetApps (Maybe Text)

-- | Creates a value of <a>GetAppsResponse</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>gasrsApplicationsResponse</a> - Undocumented member.</li>
--   </ul>
getAppsResponse :: Int -> ApplicationsResponse -> GetAppsResponse

-- | <i>See:</i> <a>getAppsResponse</a> smart constructor.
data GetAppsResponse

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

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


-- | 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>gassrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gassrsApplicationSettingsResource</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>
gassrsResponseStatus :: Lens' GetApplicationSettingsResponse Int

-- | Undocumented member.
gassrsApplicationSettingsResource :: 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 Control.DeepSeq.NFData Network.AWS.Pinpoint.GetApplicationSettings.GetApplicationSettingsResponse
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


-- | Returns information about an app.
module Network.AWS.Pinpoint.GetApp

-- | Creates a value of <a>GetApp</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>gaApplicationId</a> - Undocumented member.</li>
--   </ul>
getApp :: Text -> GetApp

-- | <i>See:</i> <a>getApp</a> smart constructor.
data GetApp

-- | Undocumented member.
gaApplicationId :: Lens' GetApp Text

-- | Creates a value of <a>GetAppResponse</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>garsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>garsApplicationResponse</a> - Undocumented member.</li>
--   </ul>
getAppResponse :: Int -> ApplicationResponse -> GetAppResponse

-- | <i>See:</i> <a>getAppResponse</a> smart constructor.
data GetAppResponse

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

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


-- | Get an APNS VoIPSandbox channel
module Network.AWS.Pinpoint.GetAPNSVoipSandboxChannel

-- | Creates a value of <a>GetAPNSVoipSandboxChannel</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>gavscApplicationId</a> - Undocumented member.</li>
--   </ul>
getAPNSVoipSandboxChannel :: Text -> GetAPNSVoipSandboxChannel

-- | <i>See:</i> <a>getAPNSVoipSandboxChannel</a> smart constructor.
data GetAPNSVoipSandboxChannel

-- | Undocumented member.
gavscApplicationId :: Lens' GetAPNSVoipSandboxChannel Text

-- | Creates a value of <a>GetAPNSVoipSandboxChannelResponse</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>gavscrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gavscrsAPNSVoipSandboxChannelResponse</a> - Undocumented
--   member.</li>
--   </ul>
getAPNSVoipSandboxChannelResponse :: Int -> APNSVoipSandboxChannelResponse -> GetAPNSVoipSandboxChannelResponse

-- | <i>See:</i> <a>getAPNSVoipSandboxChannelResponse</a> smart
--   constructor.
data GetAPNSVoipSandboxChannelResponse

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

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


-- | Get an APNS VoIP channel
module Network.AWS.Pinpoint.GetAPNSVoipChannel

-- | Creates a value of <a>GetAPNSVoipChannel</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>gavcApplicationId</a> - Undocumented member.</li>
--   </ul>
getAPNSVoipChannel :: Text -> GetAPNSVoipChannel

-- | <i>See:</i> <a>getAPNSVoipChannel</a> smart constructor.
data GetAPNSVoipChannel

-- | Undocumented member.
gavcApplicationId :: Lens' GetAPNSVoipChannel Text

-- | Creates a value of <a>GetAPNSVoipChannelResponse</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>gavcrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gavcrsAPNSVoipChannelResponse</a> - Undocumented member.</li>
--   </ul>
getAPNSVoipChannelResponse :: Int -> APNSVoipChannelResponse -> GetAPNSVoipChannelResponse

-- | <i>See:</i> <a>getAPNSVoipChannelResponse</a> smart constructor.
data GetAPNSVoipChannelResponse

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

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


-- | Get an APNS sandbox channel
module Network.AWS.Pinpoint.GetAPNSSandboxChannel

-- | Creates a value of <a>GetAPNSSandboxChannel</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>gascApplicationId</a> - Undocumented member.</li>
--   </ul>
getAPNSSandboxChannel :: Text -> GetAPNSSandboxChannel

-- | <i>See:</i> <a>getAPNSSandboxChannel</a> smart constructor.
data GetAPNSSandboxChannel

-- | Undocumented member.
gascApplicationId :: Lens' GetAPNSSandboxChannel Text

-- | Creates a value of <a>GetAPNSSandboxChannelResponse</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>gascrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gascrsAPNSSandboxChannelResponse</a> - Undocumented
--   member.</li>
--   </ul>
getAPNSSandboxChannelResponse :: Int -> APNSSandboxChannelResponse -> GetAPNSSandboxChannelResponse

-- | <i>See:</i> <a>getAPNSSandboxChannelResponse</a> smart constructor.
data GetAPNSSandboxChannelResponse

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

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


-- | 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 Control.DeepSeq.NFData Network.AWS.Pinpoint.GetAPNSChannel.GetAPNSChannelResponse
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


-- | Get an ADM channel
module Network.AWS.Pinpoint.GetADMChannel

-- | Creates a value of <a>GetADMChannel</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>gadmcApplicationId</a> - Undocumented member.</li>
--   </ul>
getADMChannel :: Text -> GetADMChannel

-- | <i>See:</i> <a>getADMChannel</a> smart constructor.
data GetADMChannel

-- | Undocumented member.
gadmcApplicationId :: Lens' GetADMChannel Text

-- | Creates a value of <a>GetADMChannelResponse</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>gadmcrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>gadmcrsADMChannelResponse</a> - Undocumented member.</li>
--   </ul>
getADMChannelResponse :: Int -> ADMChannelResponse -> GetADMChannelResponse

-- | <i>See:</i> <a>getADMChannelResponse</a> smart constructor.
data GetADMChannelResponse

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

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


-- | Delete an SMS channel
module Network.AWS.Pinpoint.DeleteSmsChannel

-- | Creates a value of <a>DeleteSmsChannel</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>dscApplicationId</a> - Undocumented member.</li>
--   </ul>
deleteSmsChannel :: Text -> DeleteSmsChannel

-- | <i>See:</i> <a>deleteSmsChannel</a> smart constructor.
data DeleteSmsChannel

-- | Undocumented member.
dscApplicationId :: Lens' DeleteSmsChannel Text

-- | Creates a value of <a>DeleteSmsChannelResponse</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>dscrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>dscrsSMSChannelResponse</a> - Undocumented member.</li>
--   </ul>
deleteSmsChannelResponse :: Int -> SMSChannelResponse -> DeleteSmsChannelResponse

-- | <i>See:</i> <a>deleteSmsChannelResponse</a> smart constructor.
data DeleteSmsChannelResponse

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

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


-- | 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 Control.DeepSeq.NFData Network.AWS.Pinpoint.DeleteSegment.DeleteSegmentResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.Pinpoint.DeleteGCMChannel.DeleteGCMChannelResponse
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


-- | Deletes the event stream for an app.
module Network.AWS.Pinpoint.DeleteEventStream

-- | Creates a value of <a>DeleteEventStream</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>desApplicationId</a> - ApplicationId</li>
--   </ul>
deleteEventStream :: Text -> DeleteEventStream

-- | DeleteEventStream Request
--   
--   <i>See:</i> <a>deleteEventStream</a> smart constructor.
data DeleteEventStream

-- | ApplicationId
desApplicationId :: Lens' DeleteEventStream Text

-- | Creates a value of <a>DeleteEventStreamResponse</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>desrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>desrsEventStream</a> - Undocumented member.</li>
--   </ul>
deleteEventStreamResponse :: Int -> EventStream -> DeleteEventStreamResponse

-- | <i>See:</i> <a>deleteEventStreamResponse</a> smart constructor.
data DeleteEventStreamResponse

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

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


-- | Deletes an endpoint.
module Network.AWS.Pinpoint.DeleteEndpoint

-- | Creates a value of <a>DeleteEndpoint</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>deApplicationId</a> - Undocumented member.</li>
--   <li><a>deEndpointId</a> - Undocumented member.</li>
--   </ul>
deleteEndpoint :: Text -> Text -> DeleteEndpoint

-- | <i>See:</i> <a>deleteEndpoint</a> smart constructor.
data DeleteEndpoint

-- | Undocumented member.
deApplicationId :: Lens' DeleteEndpoint Text

-- | Undocumented member.
deEndpointId :: Lens' DeleteEndpoint Text

-- | Creates a value of <a>DeleteEndpointResponse</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>dersResponseStatus</a> - -- | The response status code.</li>
--   <li><a>dersEndpointResponse</a> - Undocumented member.</li>
--   </ul>
deleteEndpointResponse :: Int -> EndpointResponse -> DeleteEndpointResponse

-- | <i>See:</i> <a>deleteEndpointResponse</a> smart constructor.
data DeleteEndpointResponse

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

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


-- | Delete an email channel
module Network.AWS.Pinpoint.DeleteEmailChannel

-- | Creates a value of <a>DeleteEmailChannel</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>decApplicationId</a> - Undocumented member.</li>
--   </ul>
deleteEmailChannel :: Text -> DeleteEmailChannel

-- | <i>See:</i> <a>deleteEmailChannel</a> smart constructor.
data DeleteEmailChannel

-- | Undocumented member.
decApplicationId :: Lens' DeleteEmailChannel Text

-- | Creates a value of <a>DeleteEmailChannelResponse</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>decrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>decrsEmailChannelResponse</a> - Undocumented member.</li>
--   </ul>
deleteEmailChannelResponse :: Int -> EmailChannelResponse -> DeleteEmailChannelResponse

-- | <i>See:</i> <a>deleteEmailChannelResponse</a> smart constructor.
data DeleteEmailChannelResponse

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

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


-- | 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 Control.DeepSeq.NFData Network.AWS.Pinpoint.DeleteCampaign.DeleteCampaignResponse
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


-- | Delete a BAIDU GCM channel
module Network.AWS.Pinpoint.DeleteBaiduChannel

-- | Creates a value of <a>DeleteBaiduChannel</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>dbcApplicationId</a> - Undocumented member.</li>
--   </ul>
deleteBaiduChannel :: Text -> DeleteBaiduChannel

-- | <i>See:</i> <a>deleteBaiduChannel</a> smart constructor.
data DeleteBaiduChannel

-- | Undocumented member.
dbcApplicationId :: Lens' DeleteBaiduChannel Text

-- | Creates a value of <a>DeleteBaiduChannelResponse</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>dbcrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>dbcrsBaiduChannelResponse</a> - Undocumented member.</li>
--   </ul>
deleteBaiduChannelResponse :: Int -> BaiduChannelResponse -> DeleteBaiduChannelResponse

-- | <i>See:</i> <a>deleteBaiduChannelResponse</a> smart constructor.
data DeleteBaiduChannelResponse

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

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


-- | Deletes an app.
module Network.AWS.Pinpoint.DeleteApp

-- | Creates a value of <a>DeleteApp</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>daApplicationId</a> - Undocumented member.</li>
--   </ul>
deleteApp :: Text -> DeleteApp

-- | <i>See:</i> <a>deleteApp</a> smart constructor.
data DeleteApp

-- | Undocumented member.
daApplicationId :: Lens' DeleteApp Text

-- | Creates a value of <a>DeleteAppResponse</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>darsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>darsApplicationResponse</a> - Undocumented member.</li>
--   </ul>
deleteAppResponse :: Int -> ApplicationResponse -> DeleteAppResponse

-- | <i>See:</i> <a>deleteAppResponse</a> smart constructor.
data DeleteAppResponse

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

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


-- | Delete an APNS VoIP sandbox channel
module Network.AWS.Pinpoint.DeleteAPNSVoipSandboxChannel

-- | Creates a value of <a>DeleteAPNSVoipSandboxChannel</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>davscApplicationId</a> - Undocumented member.</li>
--   </ul>
deleteAPNSVoipSandboxChannel :: Text -> DeleteAPNSVoipSandboxChannel

-- | <i>See:</i> <a>deleteAPNSVoipSandboxChannel</a> smart constructor.
data DeleteAPNSVoipSandboxChannel

-- | Undocumented member.
davscApplicationId :: Lens' DeleteAPNSVoipSandboxChannel Text

-- | Creates a value of <a>DeleteAPNSVoipSandboxChannelResponse</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>davscrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>davscrsAPNSVoipSandboxChannelResponse</a> - Undocumented
--   member.</li>
--   </ul>
deleteAPNSVoipSandboxChannelResponse :: Int -> APNSVoipSandboxChannelResponse -> DeleteAPNSVoipSandboxChannelResponse

-- | <i>See:</i> <a>deleteAPNSVoipSandboxChannelResponse</a> smart
--   constructor.
data DeleteAPNSVoipSandboxChannelResponse

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

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


-- | Delete an APNS VoIP channel
module Network.AWS.Pinpoint.DeleteAPNSVoipChannel

-- | Creates a value of <a>DeleteAPNSVoipChannel</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>davcApplicationId</a> - Undocumented member.</li>
--   </ul>
deleteAPNSVoipChannel :: Text -> DeleteAPNSVoipChannel

-- | <i>See:</i> <a>deleteAPNSVoipChannel</a> smart constructor.
data DeleteAPNSVoipChannel

-- | Undocumented member.
davcApplicationId :: Lens' DeleteAPNSVoipChannel Text

-- | Creates a value of <a>DeleteAPNSVoipChannelResponse</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>davcrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>davcrsAPNSVoipChannelResponse</a> - Undocumented member.</li>
--   </ul>
deleteAPNSVoipChannelResponse :: Int -> APNSVoipChannelResponse -> DeleteAPNSVoipChannelResponse

-- | <i>See:</i> <a>deleteAPNSVoipChannelResponse</a> smart constructor.
data DeleteAPNSVoipChannelResponse

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

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


-- | Delete an APNS sandbox channel
module Network.AWS.Pinpoint.DeleteAPNSSandboxChannel

-- | Creates a value of <a>DeleteAPNSSandboxChannel</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>dascApplicationId</a> - Undocumented member.</li>
--   </ul>
deleteAPNSSandboxChannel :: Text -> DeleteAPNSSandboxChannel

-- | <i>See:</i> <a>deleteAPNSSandboxChannel</a> smart constructor.
data DeleteAPNSSandboxChannel

-- | Undocumented member.
dascApplicationId :: Lens' DeleteAPNSSandboxChannel Text

-- | Creates a value of <a>DeleteAPNSSandboxChannelResponse</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>dascrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>dascrsAPNSSandboxChannelResponse</a> - Undocumented
--   member.</li>
--   </ul>
deleteAPNSSandboxChannelResponse :: Int -> APNSSandboxChannelResponse -> DeleteAPNSSandboxChannelResponse

-- | <i>See:</i> <a>deleteAPNSSandboxChannelResponse</a> smart constructor.
data DeleteAPNSSandboxChannelResponse

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

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


-- | 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 Control.DeepSeq.NFData Network.AWS.Pinpoint.DeleteAPNSChannel.DeleteAPNSChannelResponse
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


-- | Delete an ADM channel
module Network.AWS.Pinpoint.DeleteADMChannel

-- | Creates a value of <a>DeleteADMChannel</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>dadmcApplicationId</a> - Undocumented member.</li>
--   </ul>
deleteADMChannel :: Text -> DeleteADMChannel

-- | <i>See:</i> <a>deleteADMChannel</a> smart constructor.
data DeleteADMChannel

-- | Undocumented member.
dadmcApplicationId :: Lens' DeleteADMChannel Text

-- | Creates a value of <a>DeleteADMChannelResponse</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>dadmcrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>dadmcrsADMChannelResponse</a> - Undocumented member.</li>
--   </ul>
deleteADMChannelResponse :: Int -> ADMChannelResponse -> DeleteADMChannelResponse

-- | <i>See:</i> <a>deleteADMChannelResponse</a> smart constructor.
data DeleteADMChannelResponse

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

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


-- | 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 Control.DeepSeq.NFData Network.AWS.Pinpoint.CreateSegment.CreateSegmentResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.Pinpoint.CreateImportJob.CreateImportJobResponse
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


-- | Creates an export job.
module Network.AWS.Pinpoint.CreateExportJob

-- | Creates a value of <a>CreateExportJob</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>cejApplicationId</a> - Undocumented member.</li>
--   <li><a>cejExportJobRequest</a> - Undocumented member.</li>
--   </ul>
createExportJob :: Text -> ExportJobRequest -> CreateExportJob

-- | <i>See:</i> <a>createExportJob</a> smart constructor.
data CreateExportJob

-- | Undocumented member.
cejApplicationId :: Lens' CreateExportJob Text

-- | Undocumented member.
cejExportJobRequest :: Lens' CreateExportJob ExportJobRequest

-- | Creates a value of <a>CreateExportJobResponse</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>cejrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>cejrsExportJobResponse</a> - Undocumented member.</li>
--   </ul>
createExportJobResponse :: Int -> ExportJobResponse -> CreateExportJobResponse

-- | <i>See:</i> <a>createExportJobResponse</a> smart constructor.
data CreateExportJobResponse

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

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


-- | 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 Control.DeepSeq.NFData Network.AWS.Pinpoint.CreateCampaign.CreateCampaignResponse
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


-- | Creates or updates an app.
module Network.AWS.Pinpoint.CreateApp

-- | Creates a value of <a>CreateApp</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>caCreateApplicationRequest</a> - Undocumented member.</li>
--   </ul>
createApp :: CreateApplicationRequest -> CreateApp

-- | <i>See:</i> <a>createApp</a> smart constructor.
data CreateApp

-- | Undocumented member.
caCreateApplicationRequest :: Lens' CreateApp CreateApplicationRequest

-- | Creates a value of <a>CreateAppResponse</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>carsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>carsApplicationResponse</a> - Undocumented member.</li>
--   </ul>
createAppResponse :: Int -> ApplicationResponse -> CreateAppResponse

-- | <i>See:</i> <a>createAppResponse</a> smart constructor.
data CreateAppResponse

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

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


-- | Update an ADM channel
module Network.AWS.Pinpoint.UpdateADMChannel

-- | Creates a value of <a>UpdateADMChannel</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>uadmcApplicationId</a> - Undocumented member.</li>
--   <li><a>uadmcADMChannelRequest</a> - Undocumented member.</li>
--   </ul>
updateADMChannel :: Text -> ADMChannelRequest -> UpdateADMChannel

-- | <i>See:</i> <a>updateADMChannel</a> smart constructor.
data UpdateADMChannel

-- | Undocumented member.
uadmcApplicationId :: Lens' UpdateADMChannel Text

-- | Undocumented member.
uadmcADMChannelRequest :: Lens' UpdateADMChannel ADMChannelRequest

-- | Creates a value of <a>UpdateADMChannelResponse</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>uadmcrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>uadmcrsADMChannelResponse</a> - Undocumented member.</li>
--   </ul>
updateADMChannelResponse :: Int -> ADMChannelResponse -> UpdateADMChannelResponse

-- | <i>See:</i> <a>updateADMChannelResponse</a> smart constructor.
data UpdateADMChannelResponse

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

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


-- | 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 Control.DeepSeq.NFData Network.AWS.Pinpoint.UpdateAPNSChannel.UpdateAPNSChannelResponse
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


-- | Update an APNS sandbox channel
module Network.AWS.Pinpoint.UpdateAPNSSandboxChannel

-- | Creates a value of <a>UpdateAPNSSandboxChannel</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>uascApplicationId</a> - Undocumented member.</li>
--   <li><a>uascAPNSSandboxChannelRequest</a> - Undocumented member.</li>
--   </ul>
updateAPNSSandboxChannel :: Text -> APNSSandboxChannelRequest -> UpdateAPNSSandboxChannel

-- | <i>See:</i> <a>updateAPNSSandboxChannel</a> smart constructor.
data UpdateAPNSSandboxChannel

-- | Undocumented member.
uascApplicationId :: Lens' UpdateAPNSSandboxChannel Text

-- | Undocumented member.
uascAPNSSandboxChannelRequest :: Lens' UpdateAPNSSandboxChannel APNSSandboxChannelRequest

-- | Creates a value of <a>UpdateAPNSSandboxChannelResponse</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>uascrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>uascrsAPNSSandboxChannelResponse</a> - Undocumented
--   member.</li>
--   </ul>
updateAPNSSandboxChannelResponse :: Int -> APNSSandboxChannelResponse -> UpdateAPNSSandboxChannelResponse

-- | <i>See:</i> <a>updateAPNSSandboxChannelResponse</a> smart constructor.
data UpdateAPNSSandboxChannelResponse

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

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


-- | Update an APNS VoIP channel
module Network.AWS.Pinpoint.UpdateAPNSVoipChannel

-- | Creates a value of <a>UpdateAPNSVoipChannel</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>uavcApplicationId</a> - Undocumented member.</li>
--   <li><a>uavcAPNSVoipChannelRequest</a> - Undocumented member.</li>
--   </ul>
updateAPNSVoipChannel :: Text -> APNSVoipChannelRequest -> UpdateAPNSVoipChannel

-- | <i>See:</i> <a>updateAPNSVoipChannel</a> smart constructor.
data UpdateAPNSVoipChannel

-- | Undocumented member.
uavcApplicationId :: Lens' UpdateAPNSVoipChannel Text

-- | Undocumented member.
uavcAPNSVoipChannelRequest :: Lens' UpdateAPNSVoipChannel APNSVoipChannelRequest

-- | Creates a value of <a>UpdateAPNSVoipChannelResponse</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>uavcrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>uavcrsAPNSVoipChannelResponse</a> - Undocumented member.</li>
--   </ul>
updateAPNSVoipChannelResponse :: Int -> APNSVoipChannelResponse -> UpdateAPNSVoipChannelResponse

-- | <i>See:</i> <a>updateAPNSVoipChannelResponse</a> smart constructor.
data UpdateAPNSVoipChannelResponse

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

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


-- | Update an APNS VoIP sandbox channel
module Network.AWS.Pinpoint.UpdateAPNSVoipSandboxChannel

-- | Creates a value of <a>UpdateAPNSVoipSandboxChannel</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>uavscApplicationId</a> - Undocumented member.</li>
--   <li><a>uavscAPNSVoipSandboxChannelRequest</a> - Undocumented
--   member.</li>
--   </ul>
updateAPNSVoipSandboxChannel :: Text -> APNSVoipSandboxChannelRequest -> UpdateAPNSVoipSandboxChannel

-- | <i>See:</i> <a>updateAPNSVoipSandboxChannel</a> smart constructor.
data UpdateAPNSVoipSandboxChannel

-- | Undocumented member.
uavscApplicationId :: Lens' UpdateAPNSVoipSandboxChannel Text

-- | Undocumented member.
uavscAPNSVoipSandboxChannelRequest :: Lens' UpdateAPNSVoipSandboxChannel APNSVoipSandboxChannelRequest

-- | Creates a value of <a>UpdateAPNSVoipSandboxChannelResponse</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>uavscrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>uavscrsAPNSVoipSandboxChannelResponse</a> - Undocumented
--   member.</li>
--   </ul>
updateAPNSVoipSandboxChannelResponse :: Int -> APNSVoipSandboxChannelResponse -> UpdateAPNSVoipSandboxChannelResponse

-- | <i>See:</i> <a>updateAPNSVoipSandboxChannelResponse</a> smart
--   constructor.
data UpdateAPNSVoipSandboxChannelResponse

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

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


-- | 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 Control.DeepSeq.NFData Network.AWS.Pinpoint.UpdateApplicationSettings.UpdateApplicationSettingsResponse
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


-- | Update a BAIDU GCM channel
module Network.AWS.Pinpoint.UpdateBaiduChannel

-- | Creates a value of <a>UpdateBaiduChannel</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>ubcApplicationId</a> - Undocumented member.</li>
--   <li><a>ubcBaiduChannelRequest</a> - Undocumented member.</li>
--   </ul>
updateBaiduChannel :: Text -> BaiduChannelRequest -> UpdateBaiduChannel

-- | <i>See:</i> <a>updateBaiduChannel</a> smart constructor.
data UpdateBaiduChannel

-- | Undocumented member.
ubcApplicationId :: Lens' UpdateBaiduChannel Text

-- | Undocumented member.
ubcBaiduChannelRequest :: Lens' UpdateBaiduChannel BaiduChannelRequest

-- | Creates a value of <a>UpdateBaiduChannelResponse</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>ubcrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>ubcrsBaiduChannelResponse</a> - Undocumented member.</li>
--   </ul>
updateBaiduChannelResponse :: Int -> BaiduChannelResponse -> UpdateBaiduChannelResponse

-- | <i>See:</i> <a>updateBaiduChannelResponse</a> smart constructor.
data UpdateBaiduChannelResponse

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

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


-- | 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 Control.DeepSeq.NFData Network.AWS.Pinpoint.UpdateCampaign.UpdateCampaignResponse
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


-- | Update an email channel
module Network.AWS.Pinpoint.UpdateEmailChannel

-- | Creates a value of <a>UpdateEmailChannel</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>uecApplicationId</a> - Undocumented member.</li>
--   <li><a>uecEmailChannelRequest</a> - Undocumented member.</li>
--   </ul>
updateEmailChannel :: Text -> EmailChannelRequest -> UpdateEmailChannel

-- | <i>See:</i> <a>updateEmailChannel</a> smart constructor.
data UpdateEmailChannel

-- | Undocumented member.
uecApplicationId :: Lens' UpdateEmailChannel Text

-- | Undocumented member.
uecEmailChannelRequest :: Lens' UpdateEmailChannel EmailChannelRequest

-- | Creates a value of <a>UpdateEmailChannelResponse</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>uecrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>uecrsEmailChannelResponse</a> - Undocumented member.</li>
--   </ul>
updateEmailChannelResponse :: Int -> EmailChannelResponse -> UpdateEmailChannelResponse

-- | <i>See:</i> <a>updateEmailChannelResponse</a> smart constructor.
data UpdateEmailChannelResponse

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

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


-- | 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 Control.DeepSeq.NFData Network.AWS.Pinpoint.UpdateEndpoint.UpdateEndpointResponse
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


-- | Use to update a batch of 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 Control.DeepSeq.NFData Network.AWS.Pinpoint.UpdateEndpointsBatch.UpdateEndpointsBatchResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.Pinpoint.UpdateGCMChannel.UpdateGCMChannelResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.Pinpoint.UpdateSegment.UpdateSegmentResponse
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


-- | Update an SMS channel
module Network.AWS.Pinpoint.UpdateSmsChannel

-- | Creates a value of <a>UpdateSmsChannel</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>uscApplicationId</a> - Undocumented member.</li>
--   <li><a>uscSMSChannelRequest</a> - Undocumented member.</li>
--   </ul>
updateSmsChannel :: Text -> SMSChannelRequest -> UpdateSmsChannel

-- | <i>See:</i> <a>updateSmsChannel</a> smart constructor.
data UpdateSmsChannel

-- | Undocumented member.
uscApplicationId :: Lens' UpdateSmsChannel Text

-- | Undocumented member.
uscSMSChannelRequest :: Lens' UpdateSmsChannel SMSChannelRequest

-- | Creates a value of <a>UpdateSmsChannelResponse</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>uscrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>uscrsSMSChannelResponse</a> - Undocumented member.</li>
--   </ul>
updateSmsChannelResponse :: Int -> SMSChannelResponse -> UpdateSmsChannelResponse

-- | <i>See:</i> <a>updateSmsChannelResponse</a> smart constructor.
data UpdateSmsChannelResponse

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

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


module Network.AWS.Pinpoint.Waiters


-- | 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

-- | Simple message object.
_ForbiddenException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Simple message object.
_NotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Simple message object.
_TooManyRequestsException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Simple message object.
_InternalServerErrorException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Simple message object.
_MethodNotAllowedException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Simple message object.
_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
ADM :: ChannelType
APNS :: ChannelType
APNSSandbox :: ChannelType
APNSVoip :: ChannelType
APNSVoipSandbox :: ChannelType
Baidu :: ChannelType
Custom :: ChannelType
Email :: ChannelType
GCM :: ChannelType
Sms :: ChannelType
data DefinitionFormat
CSV :: DefinitionFormat
JSON :: DefinitionFormat
data DeliveryStatus
Duplicate :: DeliveryStatus
OptOut :: DeliveryStatus
PermanentFailure :: DeliveryStatus
Successful :: DeliveryStatus
TemporaryFailure :: DeliveryStatus
Throttled :: DeliveryStatus
UnknownFailure :: DeliveryStatus
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 MessageType
Promotional :: MessageType
Transactional :: MessageType
data Mode
Delivery :: Mode
Filter :: Mode
data RecencyType
Active :: RecencyType
Inactive :: RecencyType
data SegmentType
Dimensional :: SegmentType
Import :: SegmentType

-- | Amazon Device Messaging channel definition.
--   
--   <i>See:</i> <a>aDMChannelRequest</a> smart constructor.
data ADMChannelRequest

-- | Creates a value of <a>ADMChannelRequest</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>admcrClientId</a> - Client ID as gotten from Amazon</li>
--   <li><a>admcrClientSecret</a> - Client secret as gotten from
--   Amazon</li>
--   <li><a>admcrEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   </ul>
aDMChannelRequest :: ADMChannelRequest

-- | Client ID as gotten from Amazon
admcrClientId :: Lens' ADMChannelRequest (Maybe Text)

-- | Client secret as gotten from Amazon
admcrClientSecret :: Lens' ADMChannelRequest (Maybe Text)

-- | If the channel is enabled for sending messages.
admcrEnabled :: Lens' ADMChannelRequest (Maybe Bool)

-- | Amazon Device Messaging channel definition.
--   
--   <i>See:</i> <a>aDMChannelResponse</a> smart constructor.
data ADMChannelResponse

-- | Creates a value of <a>ADMChannelResponse</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>admcPlatform</a> - Platform type. Will be <a>ADM</a></li>
--   <li><a>admcLastModifiedDate</a> - Last date this was updated</li>
--   <li><a>admcEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>admcIsArchived</a> - Is this channel archived</li>
--   <li><a>admcApplicationId</a> - The ID of the application to which the
--   channel applies.</li>
--   <li><a>admcVersion</a> - Version of channel</li>
--   <li><a>admcId</a> - Channel ID. Not used, only for backwards
--   compatibility.</li>
--   <li><a>admcCreationDate</a> - When was this segment created</li>
--   <li><a>admcLastModifiedBy</a> - Who last updated this entry</li>
--   <li><a>admcHasCredential</a> - Indicates whether the channel is
--   configured with ADM credentials. Amazon Pinpoint uses your credentials
--   to authenticate push notifications with ADM. Provide your credentials
--   by setting the ClientId and ClientSecret attributes.</li>
--   </ul>
aDMChannelResponse :: ADMChannelResponse

-- | Platform type. Will be <a>ADM</a>
admcPlatform :: Lens' ADMChannelResponse (Maybe Text)

-- | Last date this was updated
admcLastModifiedDate :: Lens' ADMChannelResponse (Maybe Text)

-- | If the channel is enabled for sending messages.
admcEnabled :: Lens' ADMChannelResponse (Maybe Bool)

-- | Is this channel archived
admcIsArchived :: Lens' ADMChannelResponse (Maybe Bool)

-- | The ID of the application to which the channel applies.
admcApplicationId :: Lens' ADMChannelResponse (Maybe Text)

-- | Version of channel
admcVersion :: Lens' ADMChannelResponse (Maybe Int)

-- | Channel ID. Not used, only for backwards compatibility.
admcId :: Lens' ADMChannelResponse (Maybe Text)

-- | When was this segment created
admcCreationDate :: Lens' ADMChannelResponse (Maybe Text)

-- | Who last updated this entry
admcLastModifiedBy :: Lens' ADMChannelResponse (Maybe Text)

-- | Indicates whether the channel is configured with ADM credentials.
--   Amazon Pinpoint uses your credentials to authenticate push
--   notifications with ADM. Provide your credentials by setting the
--   ClientId and ClientSecret attributes.
admcHasCredential :: Lens' ADMChannelResponse (Maybe Bool)

-- | ADM Message.
--   
--   <i>See:</i> <a>aDMMessage</a> smart constructor.
data ADMMessage

-- | Creates a value of <a>ADMMessage</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>admmSubstitutions</a> - Default message substitutions. Can be
--   overridden by individual address substitutions.</li>
--   <li><a>admmExpiresAfter</a> - Optional. Number of seconds ADM should
--   retain the message if the device is offline</li>
--   <li><a>admmMD5</a> - Optional. Base-64-encoded MD5 checksum of the
--   data parameter. Used to verify data integrity</li>
--   <li><a>admmSilentPush</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>admmImageIconURL</a> - The URL that points to an image used as
--   the large icon to the notification content view.</li>
--   <li><a>admmRawContent</a> - The Raw JSON formatted string to be used
--   as the payload. This value overrides the message.</li>
--   <li><a>admmData</a> - The data payload used for a silent push. This
--   payload is added to the notifications' data.pinpoint.jsonBody'
--   object</li>
--   <li><a>admmSmallImageIconURL</a> - The URL that points to an image
--   used as the small icon for the notification which will be used to
--   represent the notification in the status bar and content view</li>
--   <li><a>admmBody</a> - The message body of the notification, the email
--   body or the text message.</li>
--   <li><a>admmURL</a> - The URL to open in the user's mobile browser.
--   Used if the value for Action is URL.</li>
--   <li><a>admmSound</a> - Indicates a sound to play when the device
--   receives the notification. Supports default, or the filename of a
--   sound resource bundled in the app. Android sound files must reside in
--   <i>res</i>raw/</li>
--   <li><a>admmAction</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.
--   Possible values include: OPEN_APP | DEEP_LINK | URL</li>
--   <li><a>admmImageURL</a> - The URL that points to an image used in the
--   push notification.</li>
--   <li><a>admmConsolidationKey</a> - Optional. Arbitrary string used to
--   indicate multiple messages are logically the same and that ADM is
--   allowed to drop previously enqueued messages in favor of this
--   one.</li>
--   <li><a>admmTitle</a> - The message title that displays above the
--   message on the user's device.</li>
--   <li><a>admmIconReference</a> - The icon image name of the asset saved
--   in your application.</li>
--   </ul>
aDMMessage :: ADMMessage

-- | Default message substitutions. Can be overridden by individual address
--   substitutions.
admmSubstitutions :: Lens' ADMMessage (HashMap Text [Text])

-- | Optional. Number of seconds ADM should retain the message if the
--   device is offline
admmExpiresAfter :: Lens' ADMMessage (Maybe Text)

-- | Optional. Base-64-encoded MD5 checksum of the data parameter. Used to
--   verify data integrity
admmMD5 :: Lens' ADMMessage (Maybe Text)

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

-- | The URL that points to an image used as the large icon to the
--   notification content view.
admmImageIconURL :: Lens' ADMMessage (Maybe Text)

-- | The Raw JSON formatted string to be used as the payload. This value
--   overrides the message.
admmRawContent :: Lens' ADMMessage (Maybe Text)

-- | The data payload used for a silent push. This payload is added to the
--   notifications' data.pinpoint.jsonBody' object
admmData :: Lens' ADMMessage (HashMap Text Text)

-- | The URL that points to an image used as the small icon for the
--   notification which will be used to represent the notification in the
--   status bar and content view
admmSmallImageIconURL :: Lens' ADMMessage (Maybe Text)

-- | The message body of the notification, the email body or the text
--   message.
admmBody :: Lens' ADMMessage (Maybe Text)

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

-- | Indicates a sound to play when the device receives the notification.
--   Supports default, or the filename of a sound resource bundled in the
--   app. Android sound files must reside in <i>res</i>raw/
admmSound :: Lens' ADMMessage (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. Possible values
--   include: OPEN_APP | DEEP_LINK | URL
admmAction :: Lens' ADMMessage (Maybe Action)

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

-- | Optional. Arbitrary string used to indicate multiple messages are
--   logically the same and that ADM is allowed to drop previously enqueued
--   messages in favor of this one.
admmConsolidationKey :: Lens' ADMMessage (Maybe Text)

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

-- | The icon image name of the asset saved in your application.
admmIconReference :: Lens' ADMMessage (Maybe Text)

-- | Apple Push Notification Service channel definition.
--   
--   <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>acrTokenKey</a> - The token key used for APNs Tokens.</li>
--   <li><a>acrPrivateKey</a> - The certificate private key.</li>
--   <li><a>acrEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>acrTeamId</a> - The team id used for APNs Tokens.</li>
--   <li><a>acrBundleId</a> - The bundle id used for APNs Tokens.</li>
--   <li><a>acrDefaultAuthenticationMethod</a> - The default authentication
--   method used for APNs.</li>
--   <li><a>acrCertificate</a> - The distribution certificate from
--   Apple.</li>
--   <li><a>acrTokenKeyId</a> - The token key used for APNs Tokens.</li>
--   </ul>
apnsChannelRequest :: APNSChannelRequest

-- | The token key used for APNs Tokens.
acrTokenKey :: Lens' APNSChannelRequest (Maybe Text)

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

-- | If the channel is enabled for sending messages.
acrEnabled :: Lens' APNSChannelRequest (Maybe Bool)

-- | The team id used for APNs Tokens.
acrTeamId :: Lens' APNSChannelRequest (Maybe Text)

-- | The bundle id used for APNs Tokens.
acrBundleId :: Lens' APNSChannelRequest (Maybe Text)

-- | The default authentication method used for APNs.
acrDefaultAuthenticationMethod :: Lens' APNSChannelRequest (Maybe Text)

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

-- | The token key used for APNs Tokens.
acrTokenKeyId :: Lens' APNSChannelRequest (Maybe Text)

-- | Apple Distribution Push Notification Service channel definition.
--   
--   <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>acEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>acHasTokenKey</a> - Indicates whether the channel is configured
--   with a key for APNs token authentication. Provide a token key by
--   setting the TokenKey attribute.</li>
--   <li><a>acDefaultAuthenticationMethod</a> - The default authentication
--   method used for APNs.</li>
--   <li><a>acIsArchived</a> - Is this channel archived</li>
--   <li><a>acApplicationId</a> - The ID of the application to which the
--   channel applies.</li>
--   <li><a>acVersion</a> - Version of channel</li>
--   <li><a>acId</a> - Channel ID. Not used. Present only for backwards
--   compatibility.</li>
--   <li><a>acCreationDate</a> - When was this segment created</li>
--   <li><a>acLastModifiedBy</a> - Who last updated this entry</li>
--   <li><a>acHasCredential</a> - Indicates whether the channel is
--   configured with APNs credentials. Amazon Pinpoint uses your
--   credentials to authenticate push notifications with APNs. To use APNs
--   token authentication, set the BundleId, TeamId, TokenKey, and
--   TokenKeyId attributes. To use certificate authentication, set the
--   Certificate and PrivateKey attributes.</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)

-- | If the channel is enabled for sending messages.
acEnabled :: Lens' APNSChannelResponse (Maybe Bool)

-- | Indicates whether the channel is configured with a key for APNs token
--   authentication. Provide a token key by setting the TokenKey attribute.
acHasTokenKey :: Lens' APNSChannelResponse (Maybe Bool)

-- | The default authentication method used for APNs.
acDefaultAuthenticationMethod :: Lens' APNSChannelResponse (Maybe Text)

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

-- | The ID of the application to which the channel applies.
acApplicationId :: Lens' APNSChannelResponse (Maybe Text)

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

-- | Channel ID. Not used. Present only for backwards compatibility.
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)

-- | Indicates whether the channel is configured with APNs credentials.
--   Amazon Pinpoint uses your credentials to authenticate push
--   notifications with APNs. To use APNs token authentication, set the
--   BundleId, TeamId, TokenKey, and TokenKeyId attributes. To use
--   certificate authentication, set the Certificate and PrivateKey
--   attributes.
acHasCredential :: Lens' APNSChannelResponse (Maybe Bool)

-- | APNS Message.
--   
--   <i>See:</i> <a>apnsMessage</a> smart constructor.
data APNSMessage

-- | Creates a value of <a>APNSMessage</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>amSubstitutions</a> - Default message substitutions. Can be
--   overridden by individual address substitutions.</li>
--   <li><a>amSilentPush</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>amPriority</a> - The message priority. Amazon Pinpoint uses
--   this value to set the apns-priority request header when it sends the
--   message to APNs. Accepts the following values: "5" - Low priority.
--   Messages might be delayed, delivered in groups, and throttled. "10" -
--   High priority. Messages are sent immediately. High priority messages
--   must cause an alert, sound, or badge on the receiving device. The
--   default value is "10". The equivalent values for FCM or GCM messages
--   are "normal" and "high". Amazon Pinpoint accepts these values for APNs
--   messages and converts them. For more information about the
--   apns-priority parameter, see Communicating with APNs in the APNs Local
--   and Remote Notification Programming Guide.</li>
--   <li><a>amRawContent</a> - The Raw JSON formatted string to be used as
--   the payload. This value overrides the message.</li>
--   <li><a>amData</a> - The data payload used for a silent push. This
--   payload is added to the notifications' data.pinpoint.jsonBody'
--   object</li>
--   <li><a>amBody</a> - The message body of the notification, the email
--   body or the text message.</li>
--   <li><a>amCategory</a> - Provide this key with a string value that
--   represents the notification's type. This value corresponds to the
--   value in the identifier property of one of your app's registered
--   categories.</li>
--   <li><a>amTimeToLive</a> - The length of time (in seconds) that APNs
--   stores and attempts to deliver the message. If the value is 0, APNs
--   does not store the message or attempt to deliver it more than once.
--   Amazon Pinpoint uses this value to set the apns-expiration request
--   header when it sends the message to APNs.</li>
--   <li><a>amURL</a> - The URL to open in the user's mobile browser. Used
--   if the value for Action is URL.</li>
--   <li><a>amSound</a> - Include this key when you want the system to play
--   a sound. The value of this key is the name of a sound file in your
--   app's main bundle or in the Library/Sounds folder of your app's data
--   container. If the sound file cannot be found, or if you specify
--   defaultfor the value, the system plays the default alert sound.</li>
--   <li><a>amAction</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.
--   Possible values include: OPEN_APP | DEEP_LINK | URL</li>
--   <li><a>amMediaURL</a> - The URL that points to a video used in the
--   push notification.</li>
--   <li><a>amPreferredAuthenticationMethod</a> - The preferred
--   authentication method, either <a>CERTIFICATE</a> or <a>TOKEN</a></li>
--   <li><a>amBadge</a> - Include this key when you want the system to
--   modify the badge of your app icon. If this key is not included in the
--   dictionary, the badge is not changed. To remove the badge, set the
--   value of this key to 0.</li>
--   <li><a>amTitle</a> - The message title that displays above the message
--   on the user's device.</li>
--   <li><a>amThreadId</a> - Provide this key with a string value that
--   represents the app-specific identifier for grouping notifications. If
--   you provide a Notification Content app extension, you can use this
--   value to group your notifications together.</li>
--   <li><a>amCollapseId</a> - An ID that, if assigned to multiple
--   messages, causes APNs to coalesce the messages into a single push
--   notification instead of delivering each message individually. The
--   value must not exceed 64 bytes. Amazon Pinpoint uses this value to set
--   the apns-collapse-id request header when it sends the message to
--   APNs.</li>
--   </ul>
apnsMessage :: APNSMessage

-- | Default message substitutions. Can be overridden by individual address
--   substitutions.
amSubstitutions :: Lens' APNSMessage (HashMap Text [Text])

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

-- | The message priority. Amazon Pinpoint uses this value to set the
--   apns-priority request header when it sends the message to APNs.
--   Accepts the following values: "5" - Low priority. Messages might be
--   delayed, delivered in groups, and throttled. "10" - High priority.
--   Messages are sent immediately. High priority messages must cause an
--   alert, sound, or badge on the receiving device. The default value is
--   "10". The equivalent values for FCM or GCM messages are "normal" and
--   "high". Amazon Pinpoint accepts these values for APNs messages and
--   converts them. For more information about the apns-priority parameter,
--   see Communicating with APNs in the APNs Local and Remote Notification
--   Programming Guide.
amPriority :: Lens' APNSMessage (Maybe Text)

-- | The Raw JSON formatted string to be used as the payload. This value
--   overrides the message.
amRawContent :: Lens' APNSMessage (Maybe Text)

-- | The data payload used for a silent push. This payload is added to the
--   notifications' data.pinpoint.jsonBody' object
amData :: Lens' APNSMessage (HashMap Text Text)

-- | The message body of the notification, the email body or the text
--   message.
amBody :: Lens' APNSMessage (Maybe Text)

-- | Provide this key with a string value that represents the
--   notification's type. This value corresponds to the value in the
--   identifier property of one of your app's registered categories.
amCategory :: Lens' APNSMessage (Maybe Text)

-- | The length of time (in seconds) that APNs stores and attempts to
--   deliver the message. If the value is 0, APNs does not store the
--   message or attempt to deliver it more than once. Amazon Pinpoint uses
--   this value to set the apns-expiration request header when it sends the
--   message to APNs.
amTimeToLive :: Lens' APNSMessage (Maybe Int)

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

-- | Include this key when you want the system to play a sound. The value
--   of this key is the name of a sound file in your app's main bundle or
--   in the Library/Sounds folder of your app's data container. If the
--   sound file cannot be found, or if you specify defaultfor the value,
--   the system plays the default alert sound.
amSound :: Lens' APNSMessage (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. Possible values
--   include: OPEN_APP | DEEP_LINK | URL
amAction :: Lens' APNSMessage (Maybe Action)

-- | The URL that points to a video used in the push notification.
amMediaURL :: Lens' APNSMessage (Maybe Text)

-- | The preferred authentication method, either <a>CERTIFICATE</a> or
--   <a>TOKEN</a>
amPreferredAuthenticationMethod :: Lens' APNSMessage (Maybe Text)

-- | Include this key when you want the system to modify the badge of your
--   app icon. If this key is not included in the dictionary, the badge is
--   not changed. To remove the badge, set the value of this key to 0.
amBadge :: Lens' APNSMessage (Maybe Int)

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

-- | Provide this key with a string value that represents the app-specific
--   identifier for grouping notifications. If you provide a Notification
--   Content app extension, you can use this value to group your
--   notifications together.
amThreadId :: Lens' APNSMessage (Maybe Text)

-- | An ID that, if assigned to multiple messages, causes APNs to coalesce
--   the messages into a single push notification instead of delivering
--   each message individually. The value must not exceed 64 bytes. Amazon
--   Pinpoint uses this value to set the apns-collapse-id request header
--   when it sends the message to APNs.
amCollapseId :: Lens' APNSMessage (Maybe Text)

-- | Apple Development Push Notification Service channel definition.
--   
--   <i>See:</i> <a>apnsSandboxChannelRequest</a> smart constructor.
data APNSSandboxChannelRequest

-- | Creates a value of <a>APNSSandboxChannelRequest</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>ascrTokenKey</a> - The token key used for APNs Tokens.</li>
--   <li><a>ascrPrivateKey</a> - The certificate private key.</li>
--   <li><a>ascrEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>ascrTeamId</a> - The team id used for APNs Tokens.</li>
--   <li><a>ascrBundleId</a> - The bundle id used for APNs Tokens.</li>
--   <li><a>ascrDefaultAuthenticationMethod</a> - The default
--   authentication method used for APNs.</li>
--   <li><a>ascrCertificate</a> - The distribution certificate from
--   Apple.</li>
--   <li><a>ascrTokenKeyId</a> - The token key used for APNs Tokens.</li>
--   </ul>
apnsSandboxChannelRequest :: APNSSandboxChannelRequest

-- | The token key used for APNs Tokens.
ascrTokenKey :: Lens' APNSSandboxChannelRequest (Maybe Text)

-- | The certificate private key.
ascrPrivateKey :: Lens' APNSSandboxChannelRequest (Maybe Text)

-- | If the channel is enabled for sending messages.
ascrEnabled :: Lens' APNSSandboxChannelRequest (Maybe Bool)

-- | The team id used for APNs Tokens.
ascrTeamId :: Lens' APNSSandboxChannelRequest (Maybe Text)

-- | The bundle id used for APNs Tokens.
ascrBundleId :: Lens' APNSSandboxChannelRequest (Maybe Text)

-- | The default authentication method used for APNs.
ascrDefaultAuthenticationMethod :: Lens' APNSSandboxChannelRequest (Maybe Text)

-- | The distribution certificate from Apple.
ascrCertificate :: Lens' APNSSandboxChannelRequest (Maybe Text)

-- | The token key used for APNs Tokens.
ascrTokenKeyId :: Lens' APNSSandboxChannelRequest (Maybe Text)

-- | Apple Development Push Notification Service channel definition.
--   
--   <i>See:</i> <a>apnsSandboxChannelResponse</a> smart constructor.
data APNSSandboxChannelResponse

-- | Creates a value of <a>APNSSandboxChannelResponse</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>ascPlatform</a> - The platform type. Will be APNS_SANDBOX.</li>
--   <li><a>ascLastModifiedDate</a> - Last date this was updated</li>
--   <li><a>ascEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>ascHasTokenKey</a> - Indicates whether the channel is
--   configured with a key for APNs token authentication. Provide a token
--   key by setting the TokenKey attribute.</li>
--   <li><a>ascDefaultAuthenticationMethod</a> - The default authentication
--   method used for APNs.</li>
--   <li><a>ascIsArchived</a> - Is this channel archived</li>
--   <li><a>ascApplicationId</a> - The ID of the application to which the
--   channel applies.</li>
--   <li><a>ascVersion</a> - Version of channel</li>
--   <li><a>ascId</a> - Channel ID. Not used, only for backwards
--   compatibility.</li>
--   <li><a>ascCreationDate</a> - When was this segment created</li>
--   <li><a>ascLastModifiedBy</a> - Who last updated this entry</li>
--   <li><a>ascHasCredential</a> - Indicates whether the channel is
--   configured with APNs credentials. Amazon Pinpoint uses your
--   credentials to authenticate push notifications with APNs. To use APNs
--   token authentication, set the BundleId, TeamId, TokenKey, and
--   TokenKeyId attributes. To use certificate authentication, set the
--   Certificate and PrivateKey attributes.</li>
--   </ul>
apnsSandboxChannelResponse :: APNSSandboxChannelResponse

-- | The platform type. Will be APNS_SANDBOX.
ascPlatform :: Lens' APNSSandboxChannelResponse (Maybe Text)

-- | Last date this was updated
ascLastModifiedDate :: Lens' APNSSandboxChannelResponse (Maybe Text)

-- | If the channel is enabled for sending messages.
ascEnabled :: Lens' APNSSandboxChannelResponse (Maybe Bool)

-- | Indicates whether the channel is configured with a key for APNs token
--   authentication. Provide a token key by setting the TokenKey attribute.
ascHasTokenKey :: Lens' APNSSandboxChannelResponse (Maybe Bool)

-- | The default authentication method used for APNs.
ascDefaultAuthenticationMethod :: Lens' APNSSandboxChannelResponse (Maybe Text)

-- | Is this channel archived
ascIsArchived :: Lens' APNSSandboxChannelResponse (Maybe Bool)

-- | The ID of the application to which the channel applies.
ascApplicationId :: Lens' APNSSandboxChannelResponse (Maybe Text)

-- | Version of channel
ascVersion :: Lens' APNSSandboxChannelResponse (Maybe Int)

-- | Channel ID. Not used, only for backwards compatibility.
ascId :: Lens' APNSSandboxChannelResponse (Maybe Text)

-- | When was this segment created
ascCreationDate :: Lens' APNSSandboxChannelResponse (Maybe Text)

-- | Who last updated this entry
ascLastModifiedBy :: Lens' APNSSandboxChannelResponse (Maybe Text)

-- | Indicates whether the channel is configured with APNs credentials.
--   Amazon Pinpoint uses your credentials to authenticate push
--   notifications with APNs. To use APNs token authentication, set the
--   BundleId, TeamId, TokenKey, and TokenKeyId attributes. To use
--   certificate authentication, set the Certificate and PrivateKey
--   attributes.
ascHasCredential :: Lens' APNSSandboxChannelResponse (Maybe Bool)

-- | Apple VoIP Push Notification Service channel definition.
--   
--   <i>See:</i> <a>apnsVoipChannelRequest</a> smart constructor.
data APNSVoipChannelRequest

-- | Creates a value of <a>APNSVoipChannelRequest</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>avcrTokenKey</a> - The token key used for APNs Tokens.</li>
--   <li><a>avcrPrivateKey</a> - The certificate private key.</li>
--   <li><a>avcrEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>avcrTeamId</a> - The team id used for APNs Tokens.</li>
--   <li><a>avcrBundleId</a> - The bundle id used for APNs Tokens.</li>
--   <li><a>avcrDefaultAuthenticationMethod</a> - The default
--   authentication method used for APNs.</li>
--   <li><a>avcrCertificate</a> - The distribution certificate from
--   Apple.</li>
--   <li><a>avcrTokenKeyId</a> - The token key used for APNs Tokens.</li>
--   </ul>
apnsVoipChannelRequest :: APNSVoipChannelRequest

-- | The token key used for APNs Tokens.
avcrTokenKey :: Lens' APNSVoipChannelRequest (Maybe Text)

-- | The certificate private key.
avcrPrivateKey :: Lens' APNSVoipChannelRequest (Maybe Text)

-- | If the channel is enabled for sending messages.
avcrEnabled :: Lens' APNSVoipChannelRequest (Maybe Bool)

-- | The team id used for APNs Tokens.
avcrTeamId :: Lens' APNSVoipChannelRequest (Maybe Text)

-- | The bundle id used for APNs Tokens.
avcrBundleId :: Lens' APNSVoipChannelRequest (Maybe Text)

-- | The default authentication method used for APNs.
avcrDefaultAuthenticationMethod :: Lens' APNSVoipChannelRequest (Maybe Text)

-- | The distribution certificate from Apple.
avcrCertificate :: Lens' APNSVoipChannelRequest (Maybe Text)

-- | The token key used for APNs Tokens.
avcrTokenKeyId :: Lens' APNSVoipChannelRequest (Maybe Text)

-- | Apple VoIP Push Notification Service channel definition.
--   
--   <i>See:</i> <a>apnsVoipChannelResponse</a> smart constructor.
data APNSVoipChannelResponse

-- | Creates a value of <a>APNSVoipChannelResponse</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>avcPlatform</a> - The platform type. Will be APNS.</li>
--   <li><a>avcLastModifiedDate</a> - Last date this was updated</li>
--   <li><a>avcEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>avcHasTokenKey</a> - If the channel is registered with a token
--   key for authentication.</li>
--   <li><a>avcDefaultAuthenticationMethod</a> - The default authentication
--   method used for APNs.</li>
--   <li><a>avcIsArchived</a> - Is this channel archived</li>
--   <li><a>avcApplicationId</a> - Application id</li>
--   <li><a>avcVersion</a> - Version of channel</li>
--   <li><a>avcId</a> - Channel ID. Not used, only for backwards
--   compatibility.</li>
--   <li><a>avcCreationDate</a> - When was this segment created</li>
--   <li><a>avcLastModifiedBy</a> - Who made the last change</li>
--   <li><a>avcHasCredential</a> - If the channel is registered with a
--   credential for authentication.</li>
--   </ul>
apnsVoipChannelResponse :: APNSVoipChannelResponse

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

-- | Last date this was updated
avcLastModifiedDate :: Lens' APNSVoipChannelResponse (Maybe Text)

-- | If the channel is enabled for sending messages.
avcEnabled :: Lens' APNSVoipChannelResponse (Maybe Bool)

-- | If the channel is registered with a token key for authentication.
avcHasTokenKey :: Lens' APNSVoipChannelResponse (Maybe Bool)

-- | The default authentication method used for APNs.
avcDefaultAuthenticationMethod :: Lens' APNSVoipChannelResponse (Maybe Text)

-- | Is this channel archived
avcIsArchived :: Lens' APNSVoipChannelResponse (Maybe Bool)

-- | Application id
avcApplicationId :: Lens' APNSVoipChannelResponse (Maybe Text)

-- | Version of channel
avcVersion :: Lens' APNSVoipChannelResponse (Maybe Int)

-- | Channel ID. Not used, only for backwards compatibility.
avcId :: Lens' APNSVoipChannelResponse (Maybe Text)

-- | When was this segment created
avcCreationDate :: Lens' APNSVoipChannelResponse (Maybe Text)

-- | Who made the last change
avcLastModifiedBy :: Lens' APNSVoipChannelResponse (Maybe Text)

-- | If the channel is registered with a credential for authentication.
avcHasCredential :: Lens' APNSVoipChannelResponse (Maybe Bool)

-- | Apple VoIP Developer Push Notification Service channel definition.
--   
--   <i>See:</i> <a>apnsVoipSandboxChannelRequest</a> smart constructor.
data APNSVoipSandboxChannelRequest

-- | Creates a value of <a>APNSVoipSandboxChannelRequest</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>avscrTokenKey</a> - The token key used for APNs Tokens.</li>
--   <li><a>avscrPrivateKey</a> - The certificate private key.</li>
--   <li><a>avscrEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>avscrTeamId</a> - The team id used for APNs Tokens.</li>
--   <li><a>avscrBundleId</a> - The bundle id used for APNs Tokens.</li>
--   <li><a>avscrDefaultAuthenticationMethod</a> - The default
--   authentication method used for APNs.</li>
--   <li><a>avscrCertificate</a> - The distribution certificate from
--   Apple.</li>
--   <li><a>avscrTokenKeyId</a> - The token key used for APNs Tokens.</li>
--   </ul>
apnsVoipSandboxChannelRequest :: APNSVoipSandboxChannelRequest

-- | The token key used for APNs Tokens.
avscrTokenKey :: Lens' APNSVoipSandboxChannelRequest (Maybe Text)

-- | The certificate private key.
avscrPrivateKey :: Lens' APNSVoipSandboxChannelRequest (Maybe Text)

-- | If the channel is enabled for sending messages.
avscrEnabled :: Lens' APNSVoipSandboxChannelRequest (Maybe Bool)

-- | The team id used for APNs Tokens.
avscrTeamId :: Lens' APNSVoipSandboxChannelRequest (Maybe Text)

-- | The bundle id used for APNs Tokens.
avscrBundleId :: Lens' APNSVoipSandboxChannelRequest (Maybe Text)

-- | The default authentication method used for APNs.
avscrDefaultAuthenticationMethod :: Lens' APNSVoipSandboxChannelRequest (Maybe Text)

-- | The distribution certificate from Apple.
avscrCertificate :: Lens' APNSVoipSandboxChannelRequest (Maybe Text)

-- | The token key used for APNs Tokens.
avscrTokenKeyId :: Lens' APNSVoipSandboxChannelRequest (Maybe Text)

-- | Apple VoIP Developer Push Notification Service channel definition.
--   
--   <i>See:</i> <a>apnsVoipSandboxChannelResponse</a> smart constructor.
data APNSVoipSandboxChannelResponse

-- | Creates a value of <a>APNSVoipSandboxChannelResponse</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>avscPlatform</a> - The platform type. Will be APNS.</li>
--   <li><a>avscLastModifiedDate</a> - Last date this was updated</li>
--   <li><a>avscEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>avscHasTokenKey</a> - If the channel is registered with a token
--   key for authentication.</li>
--   <li><a>avscDefaultAuthenticationMethod</a> - The default
--   authentication method used for APNs.</li>
--   <li><a>avscIsArchived</a> - Is this channel archived</li>
--   <li><a>avscApplicationId</a> - Application id</li>
--   <li><a>avscVersion</a> - Version of channel</li>
--   <li><a>avscId</a> - Channel ID. Not used, only for backwards
--   compatibility.</li>
--   <li><a>avscCreationDate</a> - When was this segment created</li>
--   <li><a>avscLastModifiedBy</a> - Who made the last change</li>
--   <li><a>avscHasCredential</a> - If the channel is registered with a
--   credential for authentication.</li>
--   </ul>
apnsVoipSandboxChannelResponse :: APNSVoipSandboxChannelResponse

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

-- | Last date this was updated
avscLastModifiedDate :: Lens' APNSVoipSandboxChannelResponse (Maybe Text)

-- | If the channel is enabled for sending messages.
avscEnabled :: Lens' APNSVoipSandboxChannelResponse (Maybe Bool)

-- | If the channel is registered with a token key for authentication.
avscHasTokenKey :: Lens' APNSVoipSandboxChannelResponse (Maybe Bool)

-- | The default authentication method used for APNs.
avscDefaultAuthenticationMethod :: Lens' APNSVoipSandboxChannelResponse (Maybe Text)

-- | Is this channel archived
avscIsArchived :: Lens' APNSVoipSandboxChannelResponse (Maybe Bool)

-- | Application id
avscApplicationId :: Lens' APNSVoipSandboxChannelResponse (Maybe Text)

-- | Version of channel
avscVersion :: Lens' APNSVoipSandboxChannelResponse (Maybe Int)

-- | Channel ID. Not used, only for backwards compatibility.
avscId :: Lens' APNSVoipSandboxChannelResponse (Maybe Text)

-- | When was this segment created
avscCreationDate :: Lens' APNSVoipSandboxChannelResponse (Maybe Text)

-- | Who made the last change
avscLastModifiedBy :: Lens' APNSVoipSandboxChannelResponse (Maybe Text)

-- | If the channel is registered with a credential for authentication.
avscHasCredential :: Lens' APNSVoipSandboxChannelResponse (Maybe Bool)

-- | Activities for campaign.
--   
--   <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]

-- | Activity definition
--   
--   <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>aTimezonesCompletedCount</a> - The total number of timezones
--   completed.</li>
--   <li><a>aTimezonesTotalCount</a> - The total number of unique timezones
--   present in the segment.</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)

-- | The total number of timezones completed.
aTimezonesCompletedCount :: Lens' ActivityResponse (Maybe Int)

-- | The total number of unique timezones present in the segment.
aTimezonesTotalCount :: Lens' ActivityResponse (Maybe Int)

-- | 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)

-- | Address configuration.
--   
--   <i>See:</i> <a>addressConfiguration</a> smart constructor.
data AddressConfiguration

-- | Creates a value of <a>AddressConfiguration</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>acSubstitutions</a> - A map of substitution values for the
--   message to be merged with the DefaultMessage's substitutions.
--   Substitutions on this map take precedence over the all other
--   substitutions.</li>
--   <li><a>acTitleOverride</a> - Title override. If specified will
--   override default title if applicable.</li>
--   <li><a>acContext</a> - A map of custom attributes to attributes to be
--   attached to the message for this address. This payload is added to the
--   push notification's 'data.pinpoint' object or added to the email/sms
--   delivery receipt event attributes.</li>
--   <li><a>acRawContent</a> - The Raw JSON formatted string to be used as
--   the payload. This value overrides the message.</li>
--   <li><a>acBodyOverride</a> - Body override. If specified will override
--   default body.</li>
--   <li><a>acChannelType</a> - The channel type. Valid values: GCM | APNS
--   | APNS_SANDBOX | APNS_VOIP | APNS_VOIP_SANDBOX | ADM | SMS | EMAIL |
--   BAIDU</li>
--   </ul>
addressConfiguration :: AddressConfiguration

-- | A map of substitution values for the message to be merged with the
--   DefaultMessage's substitutions. Substitutions on this map take
--   precedence over the all other substitutions.
acSubstitutions :: Lens' AddressConfiguration (HashMap Text [Text])

-- | Title override. If specified will override default title if
--   applicable.
acTitleOverride :: Lens' AddressConfiguration (Maybe Text)

-- | A map of custom attributes to attributes to be attached to the message
--   for this address. This payload is added to the push notification's
--   'data.pinpoint' object or added to the email/sms delivery receipt
--   event attributes.
acContext :: Lens' AddressConfiguration (HashMap Text Text)

-- | The Raw JSON formatted string to be used as the payload. This value
--   overrides the message.
acRawContent :: Lens' AddressConfiguration (Maybe Text)

-- | Body override. If specified will override default body.
acBodyOverride :: Lens' AddressConfiguration (Maybe Text)

-- | The channel type. Valid values: GCM | APNS | APNS_SANDBOX | APNS_VOIP
--   | APNS_VOIP_SANDBOX | ADM | SMS | EMAIL | BAIDU
acChannelType :: Lens' AddressConfiguration (Maybe ChannelType)

-- | Application Response.
--   
--   <i>See:</i> <a>applicationResponse</a> smart constructor.
data ApplicationResponse

-- | Creates a value of <a>ApplicationResponse</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>appName</a> - The display name of the application.</li>
--   <li><a>appId</a> - The unique application ID.</li>
--   </ul>
applicationResponse :: ApplicationResponse

-- | The display name of the application.
appName :: Lens' ApplicationResponse (Maybe Text)

-- | The unique application ID.
appId :: Lens' ApplicationResponse (Maybe Text)

-- | Application settings.
--   
--   <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>
--   <li><a>asrCampaignHook</a> - Default campaign hook.</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)

-- | Default campaign hook.
asrCampaignHook :: Lens' ApplicationSettingsResource (Maybe CampaignHook)

-- | Get Applications Result.
--   
--   <i>See:</i> <a>applicationsResponse</a> smart constructor.
data ApplicationsResponse

-- | Creates a value of <a>ApplicationsResponse</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>appNextToken</a> - The string that you use in a subsequent
--   request to get the next page of results in a paginated response.</li>
--   <li><a>appItem</a> - List of applications returned in this page.</li>
--   </ul>
applicationsResponse :: ApplicationsResponse

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

-- | List of applications returned in this page.
appItem :: Lens' ApplicationsResponse [ApplicationResponse]

-- | Custom attibute dimension
--   
--   <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)

-- | Baidu Cloud Push credentials
--   
--   <i>See:</i> <a>baiduChannelRequest</a> smart constructor.
data BaiduChannelRequest

-- | Creates a value of <a>BaiduChannelRequest</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>bcrAPIKey</a> - Platform credential API key from Baidu.</li>
--   <li><a>bcrEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>bcrSecretKey</a> - Platform credential Secret key from
--   Baidu.</li>
--   </ul>
baiduChannelRequest :: BaiduChannelRequest

-- | Platform credential API key from Baidu.
bcrAPIKey :: Lens' BaiduChannelRequest (Maybe Text)

-- | If the channel is enabled for sending messages.
bcrEnabled :: Lens' BaiduChannelRequest (Maybe Bool)

-- | Platform credential Secret key from Baidu.
bcrSecretKey :: Lens' BaiduChannelRequest (Maybe Text)

-- | Baidu Cloud Messaging channel definition
--   
--   <i>See:</i> <a>baiduChannelResponse</a> smart constructor.
data BaiduChannelResponse

-- | Creates a value of <a>BaiduChannelResponse</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>bcPlatform</a> - The platform type. Will be BAIDU</li>
--   <li><a>bcLastModifiedDate</a> - Last date this was updated</li>
--   <li><a>bcEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>bcCredential</a> - The Baidu API key from Baidu.</li>
--   <li><a>bcIsArchived</a> - Is this channel archived</li>
--   <li><a>bcApplicationId</a> - Application id</li>
--   <li><a>bcVersion</a> - Version of channel</li>
--   <li><a>bcId</a> - Channel ID. Not used, only for backwards
--   compatibility.</li>
--   <li><a>bcCreationDate</a> - When was this segment created</li>
--   <li><a>bcLastModifiedBy</a> - Who made the last change</li>
--   <li><a>bcHasCredential</a> - Indicates whether the channel is
--   configured with Baidu Cloud Push credentials. Amazon Pinpoint uses
--   your credentials to authenticate push notifications with Baidu Cloud
--   Push. Provide your credentials by setting the ApiKey and SecretKey
--   attributes.</li>
--   </ul>
baiduChannelResponse :: BaiduChannelResponse

-- | The platform type. Will be BAIDU
bcPlatform :: Lens' BaiduChannelResponse (Maybe Text)

-- | Last date this was updated
bcLastModifiedDate :: Lens' BaiduChannelResponse (Maybe Text)

-- | If the channel is enabled for sending messages.
bcEnabled :: Lens' BaiduChannelResponse (Maybe Bool)

-- | The Baidu API key from Baidu.
bcCredential :: Lens' BaiduChannelResponse (Maybe Text)

-- | Is this channel archived
bcIsArchived :: Lens' BaiduChannelResponse (Maybe Bool)

-- | Application id
bcApplicationId :: Lens' BaiduChannelResponse (Maybe Text)

-- | Version of channel
bcVersion :: Lens' BaiduChannelResponse (Maybe Int)

-- | Channel ID. Not used, only for backwards compatibility.
bcId :: Lens' BaiduChannelResponse (Maybe Text)

-- | When was this segment created
bcCreationDate :: Lens' BaiduChannelResponse (Maybe Text)

-- | Who made the last change
bcLastModifiedBy :: Lens' BaiduChannelResponse (Maybe Text)

-- | Indicates whether the channel is configured with Baidu Cloud Push
--   credentials. Amazon Pinpoint uses your credentials to authenticate
--   push notifications with Baidu Cloud Push. Provide your credentials by
--   setting the ApiKey and SecretKey attributes.
bcHasCredential :: Lens' BaiduChannelResponse (Maybe Bool)

-- | Baidu Message.
--   
--   <i>See:</i> <a>baiduMessage</a> smart constructor.
data BaiduMessage

-- | Creates a value of <a>BaiduMessage</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>bmSubstitutions</a> - Default message substitutions. Can be
--   overridden by individual address substitutions.</li>
--   <li><a>bmSilentPush</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>bmImageIconURL</a> - The URL that points to an image used as
--   the large icon to the notification content view.</li>
--   <li><a>bmRawContent</a> - The Raw JSON formatted string to be used as
--   the payload. This value overrides the message.</li>
--   <li><a>bmData</a> - The data payload used for a silent push. This
--   payload is added to the notifications' data.pinpoint.jsonBody'
--   object</li>
--   <li><a>bmSmallImageIconURL</a> - The URL that points to an image used
--   as the small icon for the notification which will be used to represent
--   the notification in the status bar and content view</li>
--   <li><a>bmBody</a> - The message body of the notification, the email
--   body or the text message.</li>
--   <li><a>bmURL</a> - The URL to open in the user's mobile browser. Used
--   if the value for Action is URL.</li>
--   <li><a>bmSound</a> - Indicates a sound to play when the device
--   receives the notification. Supports default, or the filename of a
--   sound resource bundled in the app. Android sound files must reside in
--   <i>res</i>raw/</li>
--   <li><a>bmAction</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.
--   Possible values include: OPEN_APP | DEEP_LINK | URL</li>
--   <li><a>bmImageURL</a> - The URL that points to an image used in the
--   push notification.</li>
--   <li><a>bmTitle</a> - The message title that displays above the message
--   on the user's device.</li>
--   <li><a>bmIconReference</a> - The icon image name of the asset saved in
--   your application.</li>
--   </ul>
baiduMessage :: BaiduMessage

-- | Default message substitutions. Can be overridden by individual address
--   substitutions.
bmSubstitutions :: Lens' BaiduMessage (HashMap Text [Text])

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

-- | The URL that points to an image used as the large icon to the
--   notification content view.
bmImageIconURL :: Lens' BaiduMessage (Maybe Text)

-- | The Raw JSON formatted string to be used as the payload. This value
--   overrides the message.
bmRawContent :: Lens' BaiduMessage (Maybe Text)

-- | The data payload used for a silent push. This payload is added to the
--   notifications' data.pinpoint.jsonBody' object
bmData :: Lens' BaiduMessage (HashMap Text Text)

-- | The URL that points to an image used as the small icon for the
--   notification which will be used to represent the notification in the
--   status bar and content view
bmSmallImageIconURL :: Lens' BaiduMessage (Maybe Text)

-- | The message body of the notification, the email body or the text
--   message.
bmBody :: Lens' BaiduMessage (Maybe Text)

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

-- | Indicates a sound to play when the device receives the notification.
--   Supports default, or the filename of a sound resource bundled in the
--   app. Android sound files must reside in <i>res</i>raw/
bmSound :: Lens' BaiduMessage (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. Possible values
--   include: OPEN_APP | DEEP_LINK | URL
bmAction :: Lens' BaiduMessage (Maybe Action)

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

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

-- | The icon image name of the asset saved in your application.
bmIconReference :: Lens' BaiduMessage (Maybe Text)

-- | The email message configuration.
--   
--   <i>See:</i> <a>campaignEmailMessage</a> smart constructor.
data CampaignEmailMessage

-- | Creates a value of <a>CampaignEmailMessage</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>cemBody</a> - The email text body.</li>
--   <li><a>cemFromAddress</a> - The email address used to send the email
--   from. Defaults to use FromAddress specified in the Email Channel.</li>
--   <li><a>cemHTMLBody</a> - The email html body.</li>
--   <li><a>cemTitle</a> - The email title (Or subject).</li>
--   </ul>
campaignEmailMessage :: CampaignEmailMessage

-- | The email text body.
cemBody :: Lens' CampaignEmailMessage (Maybe Text)

-- | The email address used to send the email from. Defaults to use
--   FromAddress specified in the Email Channel.
cemFromAddress :: Lens' CampaignEmailMessage (Maybe Text)

-- | The email html body.
cemHTMLBody :: Lens' CampaignEmailMessage (Maybe Text)

-- | The email title (Or subject).
cemTitle :: Lens' CampaignEmailMessage (Maybe Text)

-- | <i>See:</i> <a>campaignHook</a> smart constructor.
data CampaignHook

-- | Creates a value of <a>CampaignHook</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>chLambdaFunctionName</a> - Lambda function name or arn to be
--   called for delivery</li>
--   <li><a>chMode</a> - What mode Lambda should be invoked in.</li>
--   <li><a>chWebURL</a> - Web URL to call for hook. If the URL has
--   authentication specified it will be added as authentication to the
--   request</li>
--   </ul>
campaignHook :: CampaignHook

-- | Lambda function name or arn to be called for delivery
chLambdaFunctionName :: Lens' CampaignHook (Maybe Text)

-- | What mode Lambda should be invoked in.
chMode :: Lens' CampaignHook (Maybe Mode)

-- | Web URL to call for hook. If the URL has authentication specified it
--   will be added as authentication to the request
chWebURL :: Lens' CampaignHook (Maybe Text)

-- | Campaign Limits are used to limit the number of messages that can be
--   sent to a user.
--   
--   <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>clMessagesPerSecond</a> - The number of messages that the
--   campaign can send per second. The minimum value is 50, and the maximum
--   is 20000.</li>
--   <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>
--   <li><a>clMaximumDuration</a> - The length of time (in seconds) that
--   the campaign can run before it ends and message deliveries stop. This
--   duration begins at the scheduled start time for the campaign. The
--   minimum value is 60.</li>
--   </ul>
campaignLimits :: CampaignLimits

-- | The number of messages that the campaign can send per second. The
--   minimum value is 50, and the maximum is 20000.
clMessagesPerSecond :: Lens' CampaignLimits (Maybe Int)

-- | 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)

-- | The length of time (in seconds) that the campaign can run before it
--   ends and message deliveries stop. This duration begins at the
--   scheduled start time for the campaign. The minimum value is 60.
clMaximumDuration :: Lens' CampaignLimits (Maybe Int)

-- | Campaign definition
--   
--   <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>cHook</a> - Campaign hook information.</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)

-- | Campaign hook information.
cHook :: Lens' CampaignResponse (Maybe CampaignHook)

-- | 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)

-- | SMS message configuration.
--   
--   <i>See:</i> <a>campaignSmsMessage</a> smart constructor.
data CampaignSmsMessage

-- | Creates a value of <a>CampaignSmsMessage</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>csmBody</a> - The SMS text body.</li>
--   <li><a>csmMessageType</a> - Is this is a transactional SMS message,
--   otherwise a promotional message.</li>
--   <li><a>csmSenderId</a> - Sender ID of sent message.</li>
--   </ul>
campaignSmsMessage :: CampaignSmsMessage

-- | The SMS text body.
csmBody :: Lens' CampaignSmsMessage (Maybe Text)

-- | Is this is a transactional SMS message, otherwise a promotional
--   message.
csmMessageType :: Lens' CampaignSmsMessage (Maybe MessageType)

-- | Sender ID of sent message.
csmSenderId :: Lens' CampaignSmsMessage (Maybe Text)

-- | State of the Campaign
--   
--   <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)

-- | List of available campaigns.
--   
--   <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]

-- | Application Request.
--   
--   <i>See:</i> <a>createApplicationRequest</a> smart constructor.
data CreateApplicationRequest

-- | Creates a value of <a>CreateApplicationRequest</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>carName</a> - The display name of the application. Used in the
--   Amazon Pinpoint console.</li>
--   </ul>
createApplicationRequest :: CreateApplicationRequest

-- | The display name of the application. Used in the Amazon Pinpoint
--   console.
carName :: Lens' CreateApplicationRequest (Maybe Text)

-- | Default Message across push notification, email, and sms.
--   
--   <i>See:</i> <a>defaultMessage</a> smart constructor.
data DefaultMessage

-- | Creates a value of <a>DefaultMessage</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>dmSubstitutions</a> - Default message substitutions. Can be
--   overridden by individual address substitutions.</li>
--   <li><a>dmBody</a> - The message body of the notification, the email
--   body or the text message.</li>
--   </ul>
defaultMessage :: DefaultMessage

-- | Default message substitutions. Can be overridden by individual address
--   substitutions.
dmSubstitutions :: Lens' DefaultMessage (HashMap Text [Text])

-- | The message body of the notification, the email body or the text
--   message.
dmBody :: Lens' DefaultMessage (Maybe Text)

-- | Default Push Notification Message.
--   
--   <i>See:</i> <a>defaultPushNotificationMessage</a> smart constructor.
data DefaultPushNotificationMessage

-- | Creates a value of <a>DefaultPushNotificationMessage</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>dpnmSubstitutions</a> - Default message substitutions. Can be
--   overridden by individual address substitutions.</li>
--   <li><a>dpnmSilentPush</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>dpnmData</a> - The data payload used for a silent push. This
--   payload is added to the notifications' data.pinpoint.jsonBody'
--   object</li>
--   <li><a>dpnmBody</a> - The message body of the notification, the email
--   body or the text message.</li>
--   <li><a>dpnmURL</a> - The URL to open in the user's mobile browser.
--   Used if the value for Action is URL.</li>
--   <li><a>dpnmAction</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.
--   Possible values include: OPEN_APP | DEEP_LINK | URL</li>
--   <li><a>dpnmTitle</a> - The message title that displays above the
--   message on the user's device.</li>
--   </ul>
defaultPushNotificationMessage :: DefaultPushNotificationMessage

-- | Default message substitutions. Can be overridden by individual address
--   substitutions.
dpnmSubstitutions :: Lens' DefaultPushNotificationMessage (HashMap Text [Text])

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

-- | The data payload used for a silent push. This payload is added to the
--   notifications' data.pinpoint.jsonBody' object
dpnmData :: Lens' DefaultPushNotificationMessage (HashMap Text Text)

-- | The message body of the notification, the email body or the text
--   message.
dpnmBody :: Lens' DefaultPushNotificationMessage (Maybe Text)

-- | The URL to open in the user's mobile browser. Used if the value for
--   Action is URL.
dpnmURL :: Lens' DefaultPushNotificationMessage (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. Possible values
--   include: OPEN_APP | DEEP_LINK | URL
dpnmAction :: Lens' DefaultPushNotificationMessage (Maybe Action)

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

-- | The message configuration.
--   
--   <i>See:</i> <a>directMessageConfiguration</a> smart constructor.
data DirectMessageConfiguration

-- | Creates a value of <a>DirectMessageConfiguration</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>dmcAPNSMessage</a> - The message to APNS channels. Overrides
--   the default push notification message.</li>
--   <li><a>dmcGCMMessage</a> - The message to GCM channels. Overrides the
--   default push notification message.</li>
--   <li><a>dmcDefaultMessage</a> - The default message for all
--   channels.</li>
--   <li><a>dmcADMMessage</a> - The message to ADM channels. Overrides the
--   default push notification message.</li>
--   <li><a>dmcSMSMessage</a> - The message to SMS channels. Overrides the
--   default message.</li>
--   <li><a>dmcBaiduMessage</a> - The message to Baidu GCM channels.
--   Overrides the default push notification message.</li>
--   <li><a>dmcDefaultPushNotificationMessage</a> - The default push
--   notification message for all push channels.</li>
--   </ul>
directMessageConfiguration :: DirectMessageConfiguration

-- | The message to APNS channels. Overrides the default push notification
--   message.
dmcAPNSMessage :: Lens' DirectMessageConfiguration (Maybe APNSMessage)

-- | The message to GCM channels. Overrides the default push notification
--   message.
dmcGCMMessage :: Lens' DirectMessageConfiguration (Maybe GCMMessage)

-- | The default message for all channels.
dmcDefaultMessage :: Lens' DirectMessageConfiguration (Maybe DefaultMessage)

-- | The message to ADM channels. Overrides the default push notification
--   message.
dmcADMMessage :: Lens' DirectMessageConfiguration (Maybe ADMMessage)

-- | The message to SMS channels. Overrides the default message.
dmcSMSMessage :: Lens' DirectMessageConfiguration (Maybe SMSMessage)

-- | The message to Baidu GCM channels. Overrides the default push
--   notification message.
dmcBaiduMessage :: Lens' DirectMessageConfiguration (Maybe BaiduMessage)

-- | The default push notification message for all push channels.
dmcDefaultPushNotificationMessage :: Lens' DirectMessageConfiguration (Maybe DefaultPushNotificationMessage)

-- | Email Channel Request
--   
--   <i>See:</i> <a>emailChannelRequest</a> smart constructor.
data EmailChannelRequest

-- | Creates a value of <a>EmailChannelRequest</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>ecrEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>ecrFromAddress</a> - The email address used to send emails
--   from.</li>
--   <li><a>ecrIdentity</a> - The ARN of an identity verified with
--   SES.</li>
--   <li><a>ecrRoleARN</a> - The ARN of an IAM Role used to submit events
--   to Mobile Analytics' event ingestion service</li>
--   </ul>
emailChannelRequest :: EmailChannelRequest

-- | If the channel is enabled for sending messages.
ecrEnabled :: Lens' EmailChannelRequest (Maybe Bool)

-- | The email address used to send emails from.
ecrFromAddress :: Lens' EmailChannelRequest (Maybe Text)

-- | The ARN of an identity verified with SES.
ecrIdentity :: Lens' EmailChannelRequest (Maybe Text)

-- | The ARN of an IAM Role used to submit events to Mobile Analytics'
--   event ingestion service
ecrRoleARN :: Lens' EmailChannelRequest (Maybe Text)

-- | Email Channel Response.
--   
--   <i>See:</i> <a>emailChannelResponse</a> smart constructor.
data EmailChannelResponse

-- | Creates a value of <a>EmailChannelResponse</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>ecPlatform</a> - Platform type. Will be <a>EMAIL</a></li>
--   <li><a>ecLastModifiedDate</a> - Last date this was updated</li>
--   <li><a>ecEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>ecFromAddress</a> - The email address used to send emails
--   from.</li>
--   <li><a>ecIsArchived</a> - Is this channel archived</li>
--   <li><a>ecApplicationId</a> - The unique ID of the application to which
--   the email channel belongs.</li>
--   <li><a>ecVersion</a> - Version of channel</li>
--   <li><a>ecId</a> - Channel ID. Not used, only for backwards
--   compatibility.</li>
--   <li><a>ecCreationDate</a> - The date that the settings were last
--   updated in ISO 8601 format.</li>
--   <li><a>ecLastModifiedBy</a> - Who last updated this entry</li>
--   <li><a>ecIdentity</a> - The ARN of an identity verified with SES.</li>
--   <li><a>ecHasCredential</a> - If the channel is registered with a
--   credential for authentication.</li>
--   <li><a>ecRoleARN</a> - The ARN of an IAM Role used to submit events to
--   Mobile Analytics' event ingestion service</li>
--   </ul>
emailChannelResponse :: EmailChannelResponse

-- | Platform type. Will be <a>EMAIL</a>
ecPlatform :: Lens' EmailChannelResponse (Maybe Text)

-- | Last date this was updated
ecLastModifiedDate :: Lens' EmailChannelResponse (Maybe Text)

-- | If the channel is enabled for sending messages.
ecEnabled :: Lens' EmailChannelResponse (Maybe Bool)

-- | The email address used to send emails from.
ecFromAddress :: Lens' EmailChannelResponse (Maybe Text)

-- | Is this channel archived
ecIsArchived :: Lens' EmailChannelResponse (Maybe Bool)

-- | The unique ID of the application to which the email channel belongs.
ecApplicationId :: Lens' EmailChannelResponse (Maybe Text)

-- | Version of channel
ecVersion :: Lens' EmailChannelResponse (Maybe Int)

-- | Channel ID. Not used, only for backwards compatibility.
ecId :: Lens' EmailChannelResponse (Maybe Text)

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

-- | Who last updated this entry
ecLastModifiedBy :: Lens' EmailChannelResponse (Maybe Text)

-- | The ARN of an identity verified with SES.
ecIdentity :: Lens' EmailChannelResponse (Maybe Text)

-- | If the channel is registered with a credential for authentication.
ecHasCredential :: Lens' EmailChannelResponse (Maybe Bool)

-- | The ARN of an IAM Role used to submit events to Mobile Analytics'
--   event ingestion service
ecRoleARN :: Lens' EmailChannelResponse (Maybe Text)

-- | Endpoint update request
--   
--   <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 as
--   provided by your push provider (e.g. DeviceToken or
--   RegistrationId).</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 describe the
--   endpoint by associating a name with an array of values. For example,
--   an attribute named "interests" might have the values ["science",
--   "politics", "travel"]. You can use these attributes as selection
--   criteria when you create a segment of users to engage with a messaging
--   campaign. The following characters are not recommended in attribute
--   names: # : ? /. The Amazon Pinpoint console does not display
--   attributes that include these characters in the name. This limitation
--   does not apply to attribute values.</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 has
--   opted out of all messages. NONE - Users has not opted out and receives
--   all messages.</li>
--   <li><a>ebiId</a> - The unique Id for the Endpoint in the batch.</li>
--   <li><a>ebiChannelType</a> - The channel type. Valid values: GCM | APNS
--   | APNS_SANDBOX | APNS_VOIP | APNS_VOIP_SANDBOX | ADM | SMS | EMAIL |
--   BAIDU</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 as provided by your push provider
--   (e.g. DeviceToken or RegistrationId).
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 describe the endpoint by associating a name
--   with an array of values. For example, an attribute named "interests"
--   might have the values ["science", "politics", "travel"]. You can use
--   these attributes as selection criteria when you create a segment of
--   users to engage with a messaging campaign. The following characters
--   are not recommended in attribute names: # : ? /. The Amazon Pinpoint
--   console does not display attributes that include these characters in
--   the name. This limitation does not apply to attribute values.
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 has opted out of all messages.
--   NONE - Users has not opted out and receives all messages.
ebiOptOut :: Lens' EndpointBatchItem (Maybe Text)

-- | The unique Id for the Endpoint in the batch.
ebiId :: Lens' EndpointBatchItem (Maybe Text)

-- | The channel type. Valid values: GCM | APNS | APNS_SANDBOX | APNS_VOIP
--   | APNS_VOIP_SANDBOX | ADM | SMS | EMAIL | BAIDU
ebiChannelType :: Lens' EndpointBatchItem (Maybe ChannelType)

-- | Endpoint batch update request.
--   
--   <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]

-- | Endpoint demographic data
--   
--   <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)

-- | Endpoint location data
--   
--   <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)

-- | The result from sending a message to an endpoint.
--   
--   <i>See:</i> <a>endpointMessageResult</a> smart constructor.
data EndpointMessageResult

-- | Creates a value of <a>EndpointMessageResult</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>emrDeliveryStatus</a> - Delivery status of message.</li>
--   <li><a>emrAddress</a> - Address that endpoint message was delivered
--   to.</li>
--   <li><a>emrStatusMessage</a> - Status message for message
--   delivery.</li>
--   <li><a>emrUpdatedToken</a> - If token was updated as part of delivery.
--   (This is GCM Specific)</li>
--   <li><a>emrStatusCode</a> - Downstream service status code.</li>
--   </ul>
endpointMessageResult :: EndpointMessageResult

-- | Delivery status of message.
emrDeliveryStatus :: Lens' EndpointMessageResult (Maybe DeliveryStatus)

-- | Address that endpoint message was delivered to.
emrAddress :: Lens' EndpointMessageResult (Maybe Text)

-- | Status message for message delivery.
emrStatusMessage :: Lens' EndpointMessageResult (Maybe Text)

-- | If token was updated as part of delivery. (This is GCM Specific)
emrUpdatedToken :: Lens' EndpointMessageResult (Maybe Text)

-- | Downstream service status code.
emrStatusCode :: Lens' EndpointMessageResult (Maybe Int)

-- | Endpoint update request
--   
--   <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 as
--   provided by your push provider (e.g. DeviceToken or
--   RegistrationId).</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 describe the endpoint
--   by associating a name with an array of values. For example, an
--   attribute named "interests" might have the values ["science",
--   "politics", "travel"]. You can use these attributes as selection
--   criteria when you create a segment of users to engage with a messaging
--   campaign. The following characters are not recommended in attribute
--   names: # : ? /. The Amazon Pinpoint console does not display
--   attributes that include these characters in the name. This limitation
--   does not apply to attribute values.</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 has
--   opted out of all messages. NONE - Users has not opted out and receives
--   all messages.</li>
--   <li><a>erChannelType</a> - The channel type. Valid values: GCM | APNS
--   | APNS_SANDBOX | APNS_VOIP | APNS_VOIP_SANDBOX | ADM | SMS | EMAIL |
--   BAIDU</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 as provided by your push provider
--   (e.g. DeviceToken or RegistrationId).
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 describe the endpoint by associating a name
--   with an array of values. For example, an attribute named "interests"
--   might have the values ["science", "politics", "travel"]. You can use
--   these attributes as selection criteria when you create a segment of
--   users to engage with a messaging campaign. The following characters
--   are not recommended in attribute names: # : ? /. The Amazon Pinpoint
--   console does not display attributes that include these characters in
--   the name. This limitation does not apply to attribute values.
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 has opted out of all messages.
--   NONE - Users has not opted out and receives all messages.
erOptOut :: Lens' EndpointRequest (Maybe Text)

-- | The channel type. Valid values: GCM | APNS | APNS_SANDBOX | APNS_VOIP
--   | APNS_VOIP_SANDBOX | ADM | SMS | EMAIL | BAIDU
erChannelType :: Lens' EndpointRequest (Maybe ChannelType)

-- | Endpoint response
--   
--   <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 as provided
--   by your push provider (e.g. DeviceToken or RegistrationId).</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 describe the endpoint
--   by associating a name with an array of values. For example, an
--   attribute named "interests" might have the values ["science",
--   "politics", "travel"]. You can use these attributes as selection
--   criteria when you create a segment of users to engage with a messaging
--   campaign. The following characters are not recommended in attribute
--   names: # : ? /. The Amazon Pinpoint console does not display
--   attributes that include these characters in the name. This limitation
--   does not apply to attribute values.</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 has
--   opted out of all messages. NONE - Users has not opted out and receives
--   all 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: GCM | APNS |
--   APNS_SANDBOX | APNS_VOIP | APNS_VOIP_SANDBOX | ADM | SMS | EMAIL |
--   BAIDU</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 as provided by your push provider
--   (e.g. DeviceToken or RegistrationId).
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 describe the endpoint by associating a name
--   with an array of values. For example, an attribute named "interests"
--   might have the values ["science", "politics", "travel"]. You can use
--   these attributes as selection criteria when you create a segment of
--   users to engage with a messaging campaign. The following characters
--   are not recommended in attribute names: # : ? /. The Amazon Pinpoint
--   console does not display attributes that include these characters in
--   the name. This limitation does not apply to attribute values.
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 has opted out of all messages.
--   NONE - Users has not opted out and receives all 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: GCM | APNS | APNS_SANDBOX | APNS_VOIP
--   | APNS_VOIP_SANDBOX | ADM | SMS | EMAIL | BAIDU
eChannelType :: Lens' EndpointResponse (Maybe ChannelType)

-- | Endpoint send configuration.
--   
--   <i>See:</i> <a>endpointSendConfiguration</a> smart constructor.
data EndpointSendConfiguration

-- | Creates a value of <a>EndpointSendConfiguration</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>escSubstitutions</a> - A map of substitution values for the
--   message to be merged with the DefaultMessage's substitutions.
--   Substitutions on this map take precedence over the all other
--   substitutions.</li>
--   <li><a>escTitleOverride</a> - Title override. If specified will
--   override default title if applicable.</li>
--   <li><a>escContext</a> - A map of custom attributes to attributes to be
--   attached to the message for this address. This payload is added to the
--   push notification's 'data.pinpoint' object or added to the email/sms
--   delivery receipt event attributes.</li>
--   <li><a>escRawContent</a> - The Raw JSON formatted string to be used as
--   the payload. This value overrides the message.</li>
--   <li><a>escBodyOverride</a> - Body override. If specified will override
--   default body.</li>
--   </ul>
endpointSendConfiguration :: EndpointSendConfiguration

-- | A map of substitution values for the message to be merged with the
--   DefaultMessage's substitutions. Substitutions on this map take
--   precedence over the all other substitutions.
escSubstitutions :: Lens' EndpointSendConfiguration (HashMap Text [Text])

-- | Title override. If specified will override default title if
--   applicable.
escTitleOverride :: Lens' EndpointSendConfiguration (Maybe Text)

-- | A map of custom attributes to attributes to be attached to the message
--   for this address. This payload is added to the push notification's
--   'data.pinpoint' object or added to the email/sms delivery receipt
--   event attributes.
escContext :: Lens' EndpointSendConfiguration (HashMap Text Text)

-- | The Raw JSON formatted string to be used as the payload. This value
--   overrides the message.
escRawContent :: Lens' EndpointSendConfiguration (Maybe Text)

-- | Body override. If specified will override default body.
escBodyOverride :: Lens' EndpointSendConfiguration (Maybe Text)

-- | Endpoint user specific custom userAttributes
--   
--   <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 attributes that describe an end
--   user by associating a name with an array of values. For example, an
--   attribute named "interests" might have the values ["science",
--   "politics", "travel"]. You can use these attributes as selection
--   criteria when you create a segment of users to engage with a messaging
--   campaign. The following characters are not recommended in attribute
--   names: # : ? /. The Amazon Pinpoint console does not display
--   attributes that include these characters in the name. This limitation
--   does not apply to attribute values.</li>
--   <li><a>euUserId</a> - The unique ID of the user.</li>
--   </ul>
endpointUser :: EndpointUser

-- | Custom attributes that describe an end user by associating a name with
--   an array of values. For example, an attribute named "interests" might
--   have the values ["science", "politics", "travel"]. You can use these
--   attributes as selection criteria when you create a segment of users to
--   engage with a messaging campaign. The following characters are not
--   recommended in attribute names: # : ? /. The Amazon Pinpoint console
--   does not display attributes that include these characters in the name.
--   This limitation does not apply to attribute values.
euUserAttributes :: Lens' EndpointUser (HashMap Text [Text])

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

-- | Model for an event publishing subscription export.
--   
--   <i>See:</i> <a>eventStream</a> smart constructor.
data EventStream

-- | Creates a value of <a>EventStream</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>esLastUpdatedBy</a> - The IAM user who last modified the event
--   stream.</li>
--   <li><a>esLastModifiedDate</a> - The date the event stream was last
--   updated in ISO 8601 format.</li>
--   <li><a>esDestinationStreamARN</a> - The Amazon Resource Name (ARN) of
--   the Amazon Kinesis stream or Firehose delivery stream to which you
--   want to publish events. Firehose ARN:
--   arn:aws:firehose:REGION:ACCOUNT_ID:deliverystream<i>STREAM_NAME
--   Kinesis ARN:
--   arn:aws:kinesis:REGION:ACCOUNT_ID:stream</i>STREAM_NAME</li>
--   <li><a>esApplicationId</a> - The ID of the application from which
--   events should be published.</li>
--   <li><a>esExternalId</a> - DEPRECATED. Your AWS account ID, which you
--   assigned to the ExternalID key in an IAM trust policy. Used by Amazon
--   Pinpoint to assume an IAM role. This requirement is removed, and
--   external IDs are not recommended for IAM roles assumed by Amazon
--   Pinpoint.</li>
--   <li><a>esRoleARN</a> - The IAM role that authorizes Amazon Pinpoint to
--   publish events to the stream in your account.</li>
--   </ul>
eventStream :: EventStream

-- | The IAM user who last modified the event stream.
esLastUpdatedBy :: Lens' EventStream (Maybe Text)

-- | The date the event stream was last updated in ISO 8601 format.
esLastModifiedDate :: Lens' EventStream (Maybe Text)

-- | The Amazon Resource Name (ARN) of the Amazon Kinesis stream or
--   Firehose delivery stream to which you want to publish events. Firehose
--   ARN: arn:aws:firehose:REGION:ACCOUNT_ID:deliverystream<i>STREAM_NAME
--   Kinesis ARN: arn:aws:kinesis:REGION:ACCOUNT_ID:stream</i>STREAM_NAME
esDestinationStreamARN :: Lens' EventStream (Maybe Text)

-- | The ID of the application from which events should be published.
esApplicationId :: Lens' EventStream (Maybe Text)

-- | DEPRECATED. Your AWS account ID, which you assigned to the ExternalID
--   key in an IAM trust policy. Used by Amazon Pinpoint to assume an IAM
--   role. This requirement is removed, and external IDs are not
--   recommended for IAM roles assumed by Amazon Pinpoint.
esExternalId :: Lens' EventStream (Maybe Text)

-- | The IAM role that authorizes Amazon Pinpoint to publish events to the
--   stream in your account.
esRoleARN :: Lens' EventStream (Maybe Text)

-- | <i>See:</i> <a>exportJobRequest</a> smart constructor.
data ExportJobRequest

-- | Creates a value of <a>ExportJobRequest</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>eS3URLPrefix</a> - A URL that points to the location within an
--   Amazon S3 bucket that will receive the export. The location is
--   typically a folder with multiple files. The URL should follow this
--   format: s3:/<i>bucket-name</i>folder-name/ Amazon Pinpoint will export
--   endpoints to this location.</li>
--   <li><a>eSegmentId</a> - The ID of the segment to export endpoints
--   from. If not present all endpoints will be exported.</li>
--   <li><a>eRoleARN</a> - The Amazon Resource Name (ARN) of an IAM role
--   that grants Amazon Pinpoint access to the Amazon S3 location that
--   endpoints will be exported to.</li>
--   </ul>
exportJobRequest :: ExportJobRequest

-- | A URL that points to the location within an Amazon S3 bucket that will
--   receive the export. The location is typically a folder with multiple
--   files. The URL should follow this format:
--   s3:/<i>bucket-name</i>folder-name/ Amazon Pinpoint will export
--   endpoints to this location.
eS3URLPrefix :: Lens' ExportJobRequest (Maybe Text)

-- | The ID of the segment to export endpoints from. If not present all
--   endpoints will be exported.
eSegmentId :: Lens' ExportJobRequest (Maybe Text)

-- | The Amazon Resource Name (ARN) of an IAM role that grants Amazon
--   Pinpoint access to the Amazon S3 location that endpoints will be
--   exported to.
eRoleARN :: Lens' ExportJobRequest (Maybe Text)

-- | <i>See:</i> <a>exportJobResource</a> smart constructor.
data ExportJobResource

-- | Creates a value of <a>ExportJobResource</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>ejrS3URLPrefix</a> - A URL that points to the location within
--   an Amazon S3 bucket that will receive the export. The location is
--   typically a folder with multiple files. The URL should follow this
--   format: s3:/<i>bucket-name</i>folder-name/ Amazon Pinpoint will export
--   endpoints to this location.</li>
--   <li><a>ejrSegmentId</a> - The ID of the segment to export endpoints
--   from. If not present, all endpoints are exported.</li>
--   <li><a>ejrRoleARN</a> - The Amazon Resource Name (ARN) of an IAM role
--   that grants Amazon Pinpoint access to the Amazon S3 location that
--   endpoints will be exported to.</li>
--   </ul>
exportJobResource :: ExportJobResource

-- | A URL that points to the location within an Amazon S3 bucket that will
--   receive the export. The location is typically a folder with multiple
--   files. The URL should follow this format:
--   s3:/<i>bucket-name</i>folder-name/ Amazon Pinpoint will export
--   endpoints to this location.
ejrS3URLPrefix :: Lens' ExportJobResource (Maybe Text)

-- | The ID of the segment to export endpoints from. If not present, all
--   endpoints are exported.
ejrSegmentId :: Lens' ExportJobResource (Maybe Text)

-- | The Amazon Resource Name (ARN) of an IAM role that grants Amazon
--   Pinpoint access to the Amazon S3 location that endpoints will be
--   exported to.
ejrRoleARN :: Lens' ExportJobResource (Maybe Text)

-- | <i>See:</i> <a>exportJobResponse</a> smart constructor.
data ExportJobResponse

-- | Creates a value of <a>ExportJobResponse</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>ejCompletedPieces</a> - The number of pieces that have
--   successfully completed as of the time of the request.</li>
--   <li><a>ejFailedPieces</a> - The number of pieces that failed to be
--   processed as of the time of the request.</li>
--   <li><a>ejDefinition</a> - The export job settings.</li>
--   <li><a>ejTotalProcessed</a> - The number of endpoints that were
--   processed by the job.</li>
--   <li><a>ejFailures</a> - Provides up to 100 of the first failed entries
--   for the job, if any exist.</li>
--   <li><a>ejTotalPieces</a> - The total number of pieces that must be
--   processed to finish the job. Each piece is an approximately equal
--   portion of the endpoints.</li>
--   <li><a>ejApplicationId</a> - The unique ID of the application to which
--   the job applies.</li>
--   <li><a>ejId</a> - The unique ID of the job.</li>
--   <li><a>ejCreationDate</a> - The date the job was created in ISO 8601
--   format.</li>
--   <li><a>ejType</a> - The job type. Will be <tt>EXPORT</tt>.</li>
--   <li><a>ejCompletionDate</a> - The date the job completed in ISO 8601
--   format.</li>
--   <li><a>ejJobStatus</a> - The status of the job. Valid values: CREATED,
--   INITIALIZING, PROCESSING, COMPLETING, COMPLETED, FAILING, FAILED The
--   job status is FAILED if one or more pieces failed.</li>
--   <li><a>ejTotalFailures</a> - The number of endpoints that were not
--   processed; for example, because of syntax errors.</li>
--   </ul>
exportJobResponse :: ExportJobResponse

-- | The number of pieces that have successfully completed as of the time
--   of the request.
ejCompletedPieces :: Lens' ExportJobResponse (Maybe Int)

-- | The number of pieces that failed to be processed as of the time of the
--   request.
ejFailedPieces :: Lens' ExportJobResponse (Maybe Int)

-- | The export job settings.
ejDefinition :: Lens' ExportJobResponse (Maybe ExportJobResource)

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

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

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

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

-- | The unique ID of the job.
ejId :: Lens' ExportJobResponse (Maybe Text)

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

-- | The job type. Will be <tt>EXPORT</tt>.
ejType :: Lens' ExportJobResponse (Maybe Text)

-- | The date the job completed in ISO 8601 format.
ejCompletionDate :: Lens' ExportJobResponse (Maybe Text)

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

-- | The number of endpoints that were not processed; for example, because
--   of syntax errors.
ejTotalFailures :: Lens' ExportJobResponse (Maybe Int)

-- | Export job list.
--   
--   <i>See:</i> <a>exportJobsResponse</a> smart constructor.
data ExportJobsResponse

-- | Creates a value of <a>ExportJobsResponse</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>ejNextToken</a> - The string that you use in a subsequent
--   request to get the next page of results in a paginated response.</li>
--   <li><a>ejItem</a> - A list of export jobs for the application.</li>
--   </ul>
exportJobsResponse :: ExportJobsResponse

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

-- | A list of export jobs for the application.
ejItem :: Lens' ExportJobsResponse [ExportJobResponse]

-- | Google Cloud Messaging credentials
--   
--   <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>
--   <li><a>gcrEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   </ul>
gcmChannelRequest :: GCMChannelRequest

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

-- | If the channel is enabled for sending messages.
gcrEnabled :: Lens' GCMChannelRequest (Maybe Bool)

-- | Google Cloud Messaging channel definition
--   
--   <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>gcEnabled</a> - If the channel is enabled for sending
--   messages.</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> - The ID of the application to which the
--   channel applies.</li>
--   <li><a>gcVersion</a> - Version of channel</li>
--   <li><a>gcId</a> - Channel ID. Not used. Present only for backwards
--   compatibility.</li>
--   <li><a>gcCreationDate</a> - When was this segment created</li>
--   <li><a>gcLastModifiedBy</a> - Who last updated this entry</li>
--   <li><a>gcHasCredential</a> - Indicates whether the channel is
--   configured with FCM or GCM credentials. Amazon Pinpoint uses your
--   credentials to authenticate push notifications with FCM or GCM.
--   Provide your credentials by setting the ApiKey attribute.</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)

-- | If the channel is enabled for sending messages.
gcEnabled :: Lens' GCMChannelResponse (Maybe Bool)

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

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

-- | The ID of the application to which the channel applies.
gcApplicationId :: Lens' GCMChannelResponse (Maybe Text)

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

-- | Channel ID. Not used. Present only for backwards compatibility.
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)

-- | Indicates whether the channel is configured with FCM or GCM
--   credentials. Amazon Pinpoint uses your credentials to authenticate
--   push notifications with FCM or GCM. Provide your credentials by
--   setting the ApiKey attribute.
gcHasCredential :: Lens' GCMChannelResponse (Maybe Bool)

-- | GCM Message.
--   
--   <i>See:</i> <a>gcmMessage</a> smart constructor.
data GCMMessage

-- | Creates a value of <a>GCMMessage</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>gmSubstitutions</a> - Default message substitutions. Can be
--   overridden by individual address substitutions.</li>
--   <li><a>gmSilentPush</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>gmImageIconURL</a> - The URL that points to an image used as
--   the large icon to the notification content view.</li>
--   <li><a>gmPriority</a> - The message priority. Amazon Pinpoint uses
--   this value to set the FCM or GCM priority parameter when it sends the
--   message. Accepts the following values: <a>Normal</a> - Messages might
--   be delayed. Delivery is optimized for battery usage on the receiving
--   device. Use normal priority unless immediate delivery is required.
--   <a>High</a> - Messages are sent immediately and might wake a sleeping
--   device. The equivalent values for APNs messages are "5" and "10".
--   Amazon Pinpoint accepts these values here and converts them. For more
--   information, see About FCM Messages in the Firebase
--   documentation.</li>
--   <li><a>gmRawContent</a> - The Raw JSON formatted string to be used as
--   the payload. This value overrides the message.</li>
--   <li><a>gmData</a> - The data payload used for a silent push. This
--   payload is added to the notifications' data.pinpoint.jsonBody'
--   object</li>
--   <li><a>gmRestrictedPackageName</a> - This parameter specifies the
--   package name of the application where the registration tokens must
--   match in order to receive the message.</li>
--   <li><a>gmSmallImageIconURL</a> - The URL that points to an image used
--   as the small icon for the notification which will be used to represent
--   the notification in the status bar and content view</li>
--   <li><a>gmBody</a> - The message body of the notification, the email
--   body or the text message.</li>
--   <li><a>gmTimeToLive</a> - The length of time (in seconds) that FCM or
--   GCM stores and attempts to deliver the message. If unspecified, the
--   value defaults to the maximum, which is 2,419,200 seconds (28 days).
--   Amazon Pinpoint uses this value to set the FCM or GCM time_to_live
--   parameter.</li>
--   <li><a>gmURL</a> - The URL to open in the user's mobile browser. Used
--   if the value for Action is URL.</li>
--   <li><a>gmSound</a> - Indicates a sound to play when the device
--   receives the notification. Supports default, or the filename of a
--   sound resource bundled in the app. Android sound files must reside in
--   <i>res</i>raw/</li>
--   <li><a>gmAction</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.
--   Possible values include: OPEN_APP | DEEP_LINK | URL</li>
--   <li><a>gmCollapseKey</a> - This parameter identifies a group of
--   messages (e.g., with collapse_key: "Updates Available") that can be
--   collapsed, so that only the last message gets sent when delivery can
--   be resumed. This is intended to avoid sending too many of the same
--   messages when the device comes back online or becomes active.</li>
--   <li><a>gmImageURL</a> - The URL that points to an image used in the
--   push notification.</li>
--   <li><a>gmTitle</a> - The message title that displays above the message
--   on the user's device.</li>
--   <li><a>gmIconReference</a> - The icon image name of the asset saved in
--   your application.</li>
--   </ul>
gcmMessage :: GCMMessage

-- | Default message substitutions. Can be overridden by individual address
--   substitutions.
gmSubstitutions :: Lens' GCMMessage (HashMap Text [Text])

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

-- | The URL that points to an image used as the large icon to the
--   notification content view.
gmImageIconURL :: Lens' GCMMessage (Maybe Text)

-- | The message priority. Amazon Pinpoint uses this value to set the FCM
--   or GCM priority parameter when it sends the message. Accepts the
--   following values: <a>Normal</a> - Messages might be delayed. Delivery
--   is optimized for battery usage on the receiving device. Use normal
--   priority unless immediate delivery is required. <a>High</a> - Messages
--   are sent immediately and might wake a sleeping device. The equivalent
--   values for APNs messages are "5" and "10". Amazon Pinpoint accepts
--   these values here and converts them. For more information, see About
--   FCM Messages in the Firebase documentation.
gmPriority :: Lens' GCMMessage (Maybe Text)

-- | The Raw JSON formatted string to be used as the payload. This value
--   overrides the message.
gmRawContent :: Lens' GCMMessage (Maybe Text)

-- | The data payload used for a silent push. This payload is added to the
--   notifications' data.pinpoint.jsonBody' object
gmData :: Lens' GCMMessage (HashMap Text Text)

-- | This parameter specifies the package name of the application where the
--   registration tokens must match in order to receive the message.
gmRestrictedPackageName :: Lens' GCMMessage (Maybe Text)

-- | The URL that points to an image used as the small icon for the
--   notification which will be used to represent the notification in the
--   status bar and content view
gmSmallImageIconURL :: Lens' GCMMessage (Maybe Text)

-- | The message body of the notification, the email body or the text
--   message.
gmBody :: Lens' GCMMessage (Maybe Text)

-- | The length of time (in seconds) that FCM or GCM stores and attempts to
--   deliver the message. If unspecified, the value defaults to the
--   maximum, which is 2,419,200 seconds (28 days). Amazon Pinpoint uses
--   this value to set the FCM or GCM time_to_live parameter.
gmTimeToLive :: Lens' GCMMessage (Maybe Int)

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

-- | Indicates a sound to play when the device receives the notification.
--   Supports default, or the filename of a sound resource bundled in the
--   app. Android sound files must reside in <i>res</i>raw/
gmSound :: Lens' GCMMessage (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. Possible values
--   include: OPEN_APP | DEEP_LINK | URL
gmAction :: Lens' GCMMessage (Maybe Action)

-- | This parameter identifies a group of messages (e.g., with
--   collapse_key: "Updates Available") that can be collapsed, so that only
--   the last message gets sent when delivery can be resumed. This is
--   intended to avoid sending too many of the same messages when the
--   device comes back online or becomes active.
gmCollapseKey :: Lens' GCMMessage (Maybe Text)

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

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

-- | The icon image name of the asset saved in your application.
gmIconReference :: Lens' GCMMessage (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> - DEPRECATED. Your AWS account ID, which you
--   assigned to the ExternalID key in an IAM trust policy. Used by Amazon
--   Pinpoint to assume an IAM role. This requirement is removed, and
--   external IDs are not recommended for IAM roles assumed by Amazon
--   Pinpoint.</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)

-- | DEPRECATED. Your AWS account ID, which you assigned to the ExternalID
--   key in an IAM trust policy. Used by Amazon Pinpoint to assume an IAM
--   role. This requirement is removed, and external IDs are not
--   recommended for IAM roles assumed by Amazon Pinpoint.
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> - DEPRECATED. Your AWS account ID, which you
--   assigned to the ExternalID key in an IAM trust policy. Used by Amazon
--   Pinpoint to assume an IAM role. This requirement is removed, and
--   external IDs are not recommended for IAM roles assumed by Amazon
--   Pinpoint.</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)

-- | DEPRECATED. Your AWS account ID, which you assigned to the ExternalID
--   key in an IAM trust policy. Used by Amazon Pinpoint to assume an IAM
--   role. This requirement is removed, and external IDs are not
--   recommended for IAM roles assumed by Amazon Pinpoint.
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)

-- | Import job list.
--   
--   <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>mRawContent</a> - The Raw JSON formatted string to be used as
--   the payload. This value overrides the message.</li>
--   <li><a>mBody</a> - The message body. Can include up to 140
--   characters.</li>
--   <li><a>mImageSmallIconURL</a> - The URL that points to the small icon
--   image for the push notification icon, for example, the app icon.</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 Raw JSON formatted string to be used as the payload. This value
--   overrides the message.
mRawContent :: Lens' Message (Maybe Text)

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

-- | The URL that points to the small icon image for the push notification
--   icon, for example, the app icon.
mImageSmallIconURL :: 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)

-- | Simple message object.
--   
--   <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> - The unique message body ID.</li>
--   <li><a>mbMessage</a> - The error message returned from the API.</li>
--   </ul>
messageBody :: MessageBody

-- | The unique message body ID.
mbRequestId :: Lens' MessageBody (Maybe Text)

-- | The error message returned from the API.
mbMessage :: Lens' MessageBody (Maybe Text)

-- | Message configuration for a campaign.
--   
--   <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>
--   <li><a>mcADMMessage</a> - The message that the campaign delivers to
--   ADM channels. Overrides the default message.</li>
--   <li><a>mcSMSMessage</a> - The SMS message configuration.</li>
--   <li><a>mcEmailMessage</a> - The email message configuration.</li>
--   <li><a>mcBaiduMessage</a> - The message that the campaign delivers to
--   Baidu channels. Overrides the default message.</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)

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

-- | The SMS message configuration.
mcSMSMessage :: Lens' MessageConfiguration (Maybe CampaignSmsMessage)

-- | The email message configuration.
mcEmailMessage :: Lens' MessageConfiguration (Maybe CampaignEmailMessage)

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

-- | Send message request.
--   
--   <i>See:</i> <a>messageRequest</a> smart constructor.
data MessageRequest

-- | Creates a value of <a>MessageRequest</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>mrContext</a> - A map of custom attributes to attributes to be
--   attached to the message. This payload is added to the push
--   notification's 'data.pinpoint' object or added to the email/sms
--   delivery receipt event attributes.</li>
--   <li><a>mrAddresses</a> - A map of destination addresses, with the
--   address as the key(Email address, phone number or push token) and the
--   Address Configuration as the value.</li>
--   <li><a>mrEndpoints</a> - A map of destination addresses, with the
--   address as the key(Email address, phone number or push token) and the
--   Address Configuration as the value.</li>
--   <li><a>mrMessageConfiguration</a> - Message configuration.</li>
--   </ul>
messageRequest :: MessageRequest

-- | A map of custom attributes to attributes to be attached to the
--   message. This payload is added to the push notification's
--   'data.pinpoint' object or added to the email/sms delivery receipt
--   event attributes.
mrContext :: Lens' MessageRequest (HashMap Text Text)

-- | A map of destination addresses, with the address as the key(Email
--   address, phone number or push token) and the Address Configuration as
--   the value.
mrAddresses :: Lens' MessageRequest (HashMap Text AddressConfiguration)

-- | A map of destination addresses, with the address as the key(Email
--   address, phone number or push token) and the Address Configuration as
--   the value.
mrEndpoints :: Lens' MessageRequest (HashMap Text EndpointSendConfiguration)

-- | Message configuration.
mrMessageConfiguration :: Lens' MessageRequest (Maybe DirectMessageConfiguration)

-- | Send message response.
--   
--   <i>See:</i> <a>messageResponse</a> smart constructor.
data MessageResponse

-- | Creates a value of <a>MessageResponse</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>mRequestId</a> - Original request Id for which this message was
--   delivered.</li>
--   <li><a>mResult</a> - A map containing a multi part response for each
--   address, with the address as the key(Email address, phone number or
--   push token) and the result as the value.</li>
--   <li><a>mApplicationId</a> - Application id of the message.</li>
--   <li><a>mEndpointResult</a> - A map containing a multi part response
--   for each address, with the endpointId as the key and the result as the
--   value.</li>
--   </ul>
messageResponse :: MessageResponse

-- | Original request Id for which this message was delivered.
mRequestId :: Lens' MessageResponse (Maybe Text)

-- | A map containing a multi part response for each address, with the
--   address as the key(Email address, phone number or push token) and the
--   result as the value.
mResult :: Lens' MessageResponse (HashMap Text MessageResult)

-- | Application id of the message.
mApplicationId :: Lens' MessageResponse (Maybe Text)

-- | A map containing a multi part response for each address, with the
--   endpointId as the key and the result as the value.
mEndpointResult :: Lens' MessageResponse (HashMap Text EndpointMessageResult)

-- | The result from sending a message to an address.
--   
--   <i>See:</i> <a>messageResult</a> smart constructor.
data MessageResult

-- | Creates a value of <a>MessageResult</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>mrDeliveryStatus</a> - Delivery status of message.</li>
--   <li><a>mrStatusMessage</a> - Status message for message delivery.</li>
--   <li><a>mrUpdatedToken</a> - If token was updated as part of delivery.
--   (This is GCM Specific)</li>
--   <li><a>mrStatusCode</a> - Downstream service status code.</li>
--   </ul>
messageResult :: MessageResult

-- | Delivery status of message.
mrDeliveryStatus :: Lens' MessageResult (Maybe DeliveryStatus)

-- | Status message for message delivery.
mrStatusMessage :: Lens' MessageResult (Maybe Text)

-- | If token was updated as part of delivery. (This is GCM Specific)
mrUpdatedToken :: Lens' MessageResult (Maybe Text)

-- | Downstream service status code.
mrStatusCode :: Lens' MessageResult (Maybe Int)

-- | Quiet Time
--   
--   <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)

-- | Define how a segment based on recency of use.
--   
--   <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)

-- | SMS Channel Request
--   
--   <i>See:</i> <a>sMSChannelRequest</a> smart constructor.
data SMSChannelRequest

-- | Creates a value of <a>SMSChannelRequest</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>smscrShortCode</a> - ShortCode registered with phone
--   provider.</li>
--   <li><a>smscrEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>smscrSenderId</a> - Sender identifier of your messages.</li>
--   </ul>
sMSChannelRequest :: SMSChannelRequest

-- | ShortCode registered with phone provider.
smscrShortCode :: Lens' SMSChannelRequest (Maybe Text)

-- | If the channel is enabled for sending messages.
smscrEnabled :: Lens' SMSChannelRequest (Maybe Bool)

-- | Sender identifier of your messages.
smscrSenderId :: Lens' SMSChannelRequest (Maybe Text)

-- | SMS Channel Response.
--   
--   <i>See:</i> <a>sMSChannelResponse</a> smart constructor.
data SMSChannelResponse

-- | Creates a value of <a>SMSChannelResponse</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>smscPlatform</a> - Platform type. Will be <a>SMS</a></li>
--   <li><a>smscShortCode</a> - The short code registered with the phone
--   provider.</li>
--   <li><a>smscLastModifiedDate</a> - Last date this was updated</li>
--   <li><a>smscEnabled</a> - If the channel is enabled for sending
--   messages.</li>
--   <li><a>smscSenderId</a> - Sender identifier of your messages.</li>
--   <li><a>smscIsArchived</a> - Is this channel archived</li>
--   <li><a>smscApplicationId</a> - The unique ID of the application to
--   which the SMS channel belongs.</li>
--   <li><a>smscVersion</a> - Version of channel</li>
--   <li><a>smscId</a> - Channel ID. Not used, only for backwards
--   compatibility.</li>
--   <li><a>smscCreationDate</a> - The date that the settings were last
--   updated in ISO 8601 format.</li>
--   <li><a>smscLastModifiedBy</a> - Who last updated this entry</li>
--   <li><a>smscHasCredential</a> - If the channel is registered with a
--   credential for authentication.</li>
--   </ul>
sMSChannelResponse :: SMSChannelResponse

-- | Platform type. Will be <a>SMS</a>
smscPlatform :: Lens' SMSChannelResponse (Maybe Text)

-- | The short code registered with the phone provider.
smscShortCode :: Lens' SMSChannelResponse (Maybe Text)

-- | Last date this was updated
smscLastModifiedDate :: Lens' SMSChannelResponse (Maybe Text)

-- | If the channel is enabled for sending messages.
smscEnabled :: Lens' SMSChannelResponse (Maybe Bool)

-- | Sender identifier of your messages.
smscSenderId :: Lens' SMSChannelResponse (Maybe Text)

-- | Is this channel archived
smscIsArchived :: Lens' SMSChannelResponse (Maybe Bool)

-- | The unique ID of the application to which the SMS channel belongs.
smscApplicationId :: Lens' SMSChannelResponse (Maybe Text)

-- | Version of channel
smscVersion :: Lens' SMSChannelResponse (Maybe Int)

-- | Channel ID. Not used, only for backwards compatibility.
smscId :: Lens' SMSChannelResponse (Maybe Text)

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

-- | Who last updated this entry
smscLastModifiedBy :: Lens' SMSChannelResponse (Maybe Text)

-- | If the channel is registered with a credential for authentication.
smscHasCredential :: Lens' SMSChannelResponse (Maybe Bool)

-- | SMS Message.
--   
--   <i>See:</i> <a>sMSMessage</a> smart constructor.
data SMSMessage

-- | Creates a value of <a>SMSMessage</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>smsmSubstitutions</a> - Default message substitutions. Can be
--   overridden by individual address substitutions.</li>
--   <li><a>smsmOriginationNumber</a> - The phone number that the SMS
--   message originates from. Specify one of the dedicated long codes or
--   short codes that you requested from AWS Support and that is assigned
--   to your account. If this attribute is not specified, Amazon Pinpoint
--   randomly assigns a long code.</li>
--   <li><a>smsmBody</a> - The message body of the notification, the email
--   body or the text message.</li>
--   <li><a>smsmMessageType</a> - Is this a transaction priority message or
--   lower priority.</li>
--   <li><a>smsmSenderId</a> - The sender ID that is shown as the message
--   sender on the recipient's device. Support for sender IDs varies by
--   country or region.</li>
--   </ul>
sMSMessage :: SMSMessage

-- | Default message substitutions. Can be overridden by individual address
--   substitutions.
smsmSubstitutions :: Lens' SMSMessage (HashMap Text [Text])

-- | The phone number that the SMS message originates from. Specify one of
--   the dedicated long codes or short codes that you requested from AWS
--   Support and that is assigned to your account. If this attribute is not
--   specified, Amazon Pinpoint randomly assigns a long code.
smsmOriginationNumber :: Lens' SMSMessage (Maybe Text)

-- | The message body of the notification, the email body or the text
--   message.
smsmBody :: Lens' SMSMessage (Maybe Text)

-- | Is this a transaction priority message or lower priority.
smsmMessageType :: Lens' SMSMessage (Maybe MessageType)

-- | The sender ID that is shown as the message sender on the recipient's
--   device. Support for sender IDs varies by country or region.
smsmSenderId :: Lens' SMSMessage (Maybe Text)

-- | Shcedule that defines when a campaign is run.
--   
--   <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)

-- | Segment behavior dimensions
--   
--   <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)

-- | Segment demographic dimensions
--   
--   <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>sdChannel</a> - The channel 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 channel criteria for the segment.
sdChannel :: 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)

-- | Segment dimensions
--   
--   <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>sdUserAttributes</a> - Custom segment user 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)

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

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

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

-- | Segment import definition.
--   
--   <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>sirChannelCounts</a> - Channel type counts</li>
--   <li><a>sirExternalId</a> - DEPRECATED. Your AWS account ID, which you
--   assigned to the ExternalID key in an IAM trust policy. Used by Amazon
--   Pinpoint to assume an IAM role. This requirement is removed, and
--   external IDs are not recommended for IAM roles assumed by Amazon
--   Pinpoint.</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)

-- | Channel type counts
sirChannelCounts :: Lens' SegmentImportResource (HashMap Text Int)

-- | DEPRECATED. Your AWS account ID, which you assigned to the ExternalID
--   key in an IAM trust policy. Used by Amazon Pinpoint to assume an IAM
--   role. This requirement is removed, and external IDs are not
--   recommended for IAM roles assumed by Amazon Pinpoint.
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)

-- | Segment location dimensions
--   
--   <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)

-- | Segment definition.
--   
--   <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)

-- | Segments in your account.
--   
--   <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]

-- | Send message request.
--   
--   <i>See:</i> <a>sendUsersMessageRequest</a> smart constructor.
data SendUsersMessageRequest

-- | Creates a value of <a>SendUsersMessageRequest</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>sumrContext</a> - A map of custom attributes to attributes to
--   be attached to the message. This payload is added to the push
--   notification's 'data.pinpoint' object or added to the email/sms
--   delivery receipt event attributes.</li>
--   <li><a>sumrUsers</a> - A map of destination endpoints, with the
--   EndpointId as the key Endpoint Message Configuration as the
--   value.</li>
--   <li><a>sumrMessageConfiguration</a> - Message configuration.</li>
--   </ul>
sendUsersMessageRequest :: SendUsersMessageRequest

-- | A map of custom attributes to attributes to be attached to the
--   message. This payload is added to the push notification's
--   'data.pinpoint' object or added to the email/sms delivery receipt
--   event attributes.
sumrContext :: Lens' SendUsersMessageRequest (HashMap Text Text)

-- | A map of destination endpoints, with the EndpointId as the key
--   Endpoint Message Configuration as the value.
sumrUsers :: Lens' SendUsersMessageRequest (HashMap Text EndpointSendConfiguration)

-- | Message configuration.
sumrMessageConfiguration :: Lens' SendUsersMessageRequest (Maybe DirectMessageConfiguration)

-- | User send message response.
--   
--   <i>See:</i> <a>sendUsersMessageResponse</a> smart constructor.
data SendUsersMessageResponse

-- | Creates a value of <a>SendUsersMessageResponse</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>sumRequestId</a> - Original request Id for which this message
--   was delivered.</li>
--   <li><a>sumResult</a> - A map containing of UserId to Map of EndpointId
--   to Endpoint Message Result.</li>
--   <li><a>sumApplicationId</a> - Application id of the message.</li>
--   </ul>
sendUsersMessageResponse :: SendUsersMessageResponse

-- | Original request Id for which this message was delivered.
sumRequestId :: Lens' SendUsersMessageResponse (Maybe Text)

-- | A map containing of UserId to Map of EndpointId to Endpoint Message
--   Result.
sumResult :: Lens' SendUsersMessageResponse (HashMap Text (HashMap Text EndpointMessageResult))

-- | Application id of the message.
sumApplicationId :: Lens' SendUsersMessageResponse (Maybe Text)

-- | Dimension specification of a segment.
--   
--   <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)

-- | Treatment resource
--   
--   <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)

-- | Creating application setting request
--   
--   <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>
--   <li><a>wasrCampaignHook</a> - Default campaign hook information.</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)

-- | Default campaign hook information.
wasrCampaignHook :: Lens' WriteApplicationSettingsRequest (Maybe CampaignHook)

-- | Used to create a campaign.
--   
--   <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>wcrHook</a> - Campaign hook information.</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)

-- | Campaign hook information.
wcrHook :: Lens' WriteCampaignRequest (Maybe CampaignHook)

-- | 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)

-- | Request to save an EventStream.
--   
--   <i>See:</i> <a>writeEventStream</a> smart constructor.
data WriteEventStream

-- | Creates a value of <a>WriteEventStream</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>wesDestinationStreamARN</a> - The Amazon Resource Name (ARN) of
--   the Amazon Kinesis stream or Firehose delivery stream to which you
--   want to publish events. Firehose ARN:
--   arn:aws:firehose:REGION:ACCOUNT_ID:deliverystream<i>STREAM_NAME
--   Kinesis ARN:
--   arn:aws:kinesis:REGION:ACCOUNT_ID:stream</i>STREAM_NAME</li>
--   <li><a>wesRoleARN</a> - The IAM role that authorizes Amazon Pinpoint
--   to publish events to the stream in your account.</li>
--   </ul>
writeEventStream :: WriteEventStream

-- | The Amazon Resource Name (ARN) of the Amazon Kinesis stream or
--   Firehose delivery stream to which you want to publish events. Firehose
--   ARN: arn:aws:firehose:REGION:ACCOUNT_ID:deliverystream<i>STREAM_NAME
--   Kinesis ARN: arn:aws:kinesis:REGION:ACCOUNT_ID:stream</i>STREAM_NAME
wesDestinationStreamARN :: Lens' WriteEventStream (Maybe Text)

-- | The IAM role that authorizes Amazon Pinpoint to publish events to the
--   stream in your account.
wesRoleARN :: Lens' WriteEventStream (Maybe Text)

-- | Segment definition.
--   
--   <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)

-- | Used to create a campaign treatment.
--   
--   <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)
