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


-- | Amazon Simple Notification Service 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.SNS</a> or <a>the AWS documentation</a> to get
--   started.
@package amazonka-sns
@version 1.6.1


module Network.AWS.SNS.Types

-- | API version <tt>2010-03-31</tt> of the Amazon Simple Notification
--   Service SDK configuration.
sns :: Service

-- | Exception error indicating endpoint disabled.
_EndpointDisabledException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Indicates that the user has been denied access to the requested
--   resource.
_AuthorizationErrorException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Indicates that a request parameter does not comply with the associated
--   constraints.
_InvalidParameterException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Indicates that the customer already owns the maximum allowed number of
--   subscriptions.
_SubscriptionLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Exception error indicating platform application disabled.
_PlatformApplicationDisabledException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Indicates an internal service error.
_InternalErrorException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Indicates that the rate at which requests have been submitted for this
--   action exceeds the limit for your account.
_ThrottledException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Indicates that a request parameter does not comply with the associated
--   constraints.
_InvalidParameterValueException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Indicates that the requested resource does not exist.
_NotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Indicates that the customer already owns the maximum allowed number of
--   topics.
_TopicLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Endpoint for mobile app and device.
--   
--   <i>See:</i> <a>endpoint</a> smart constructor.
data Endpoint

-- | Creates a value of <a>Endpoint</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eAttributes</a> - Attributes for endpoint.</li>
--   <li><a>eEndpointARN</a> - EndpointArn for mobile app and device.</li>
--   </ul>
endpoint :: Endpoint

-- | Attributes for endpoint.
eAttributes :: Lens' Endpoint (HashMap Text Text)

-- | EndpointArn for mobile app and device.
eEndpointARN :: Lens' Endpoint (Maybe Text)

-- | The user-specified message attribute value. For string data types, the
--   value attribute has the same restrictions on the content as the
--   message body. For more information, see <a>Publish</a> .
--   
--   Name, type, and value must not be empty or null. In addition, the
--   message body should not be empty or null. All parts of the message
--   attribute, including name, type, and value, are included in the
--   message size restriction, which is currently 256 KB (262,144 bytes).
--   For more information, see <a>Using Amazon SNS Message Attributes</a> .
--   
--   <i>See:</i> <a>messageAttributeValue</a> smart constructor.
data MessageAttributeValue

-- | Creates a value of <a>MessageAttributeValue</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mavBinaryValue</a> - Binary type attributes can store any
--   binary data, for example, compressed data, encrypted data, or
--   images.-- <i>Note:</i> This <tt>Lens</tt> automatically encodes and
--   decodes Base64 data. The underlying isomorphism will encode to Base64
--   representation during serialisation, and decode from Base64
--   representation during deserialisation. This <tt>Lens</tt> accepts and
--   returns only raw unencoded data.</li>
--   <li><a>mavStringValue</a> - Strings are Unicode with UTF8 binary
--   encoding. For a list of code values, see
--   <a>http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters</a>
--   .</li>
--   <li><a>mavDataType</a> - Amazon SNS supports the following logical
--   data types: String, Number, and Binary. For more information, see
--   <a>Message Attribute Data Types</a> .</li>
--   </ul>
messageAttributeValue :: Text -> MessageAttributeValue

-- | Binary type attributes can store any binary data, for example,
--   compressed data, encrypted data, or images.-- <i>Note:</i> This
--   <tt>Lens</tt> automatically encodes and decodes Base64 data. The
--   underlying isomorphism will encode to Base64 representation during
--   serialisation, and decode from Base64 representation during
--   deserialisation. This <tt>Lens</tt> accepts and returns only raw
--   unencoded data.
mavBinaryValue :: Lens' MessageAttributeValue (Maybe ByteString)

-- | Strings are Unicode with UTF8 binary encoding. For a list of code
--   values, see
--   <a>http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters</a> .
mavStringValue :: Lens' MessageAttributeValue (Maybe Text)

-- | Amazon SNS supports the following logical data types: String, Number,
--   and Binary. For more information, see <a>Message Attribute Data
--   Types</a> .
mavDataType :: Lens' MessageAttributeValue Text

-- | Platform application object.
--   
--   <i>See:</i> <a>platformApplication</a> smart constructor.
data PlatformApplication

-- | Creates a value of <a>PlatformApplication</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>paPlatformApplicationARN</a> - PlatformApplicationArn for
--   platform application object.</li>
--   <li><a>paAttributes</a> - Attributes for platform application
--   object.</li>
--   </ul>
platformApplication :: PlatformApplication

-- | PlatformApplicationArn for platform application object.
paPlatformApplicationARN :: Lens' PlatformApplication (Maybe Text)

-- | Attributes for platform application object.
paAttributes :: Lens' PlatformApplication (HashMap Text Text)

-- | A wrapper type for the attributes of an Amazon SNS subscription.
--   
--   <i>See:</i> <a>subscription</a> smart constructor.
data Subscription

-- | Creates a value of <a>Subscription</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sProtocol</a> - The subscription's protocol.</li>
--   <li><a>sOwner</a> - The subscription's owner.</li>
--   <li><a>sTopicARN</a> - The ARN of the subscription's topic.</li>
--   <li><a>sEndpoint</a> - The subscription's endpoint (format depends on
--   the protocol).</li>
--   <li><a>sSubscriptionARN</a> - The subscription's ARN.</li>
--   </ul>
subscription :: Subscription

-- | The subscription's protocol.
sProtocol :: Lens' Subscription (Maybe Text)

-- | The subscription's owner.
sOwner :: Lens' Subscription (Maybe Text)

-- | The ARN of the subscription's topic.
sTopicARN :: Lens' Subscription (Maybe Text)

-- | The subscription's endpoint (format depends on the protocol).
sEndpoint :: Lens' Subscription (Maybe Text)

-- | The subscription's ARN.
sSubscriptionARN :: Lens' Subscription (Maybe Text)

-- | A wrapper type for the topic's Amazon Resource Name (ARN). To retrieve
--   a topic's attributes, use <tt>GetTopicAttributes</tt> .
--   
--   <i>See:</i> <a>topic</a> smart constructor.
data Topic

-- | Creates a value of <a>Topic</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tTopicARN</a> - The topic's ARN.</li>
--   </ul>
topic :: Topic

-- | The topic's ARN.
tTopicARN :: Lens' Topic (Maybe Text)


-- | Prepares to subscribe an endpoint by sending the endpoint a
--   confirmation message. To actually create a subscription, the endpoint
--   owner must call the <tt>ConfirmSubscription</tt> action with the token
--   from the confirmation message. Confirmation tokens are valid for three
--   days.
module Network.AWS.SNS.Subscribe

-- | Creates a value of <a>Subscribe</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>subEndpoint</a> - The endpoint that you want to receive
--   notifications. Endpoints vary by protocol: * For the <tt>http</tt>
--   protocol, the endpoint is an URL beginning with "<a>http://"</a> * For
--   the <tt>https</tt> protocol, the endpoint is a URL beginning with
--   "<a>https://"</a> * For the <tt>email</tt> protocol, the endpoint is
--   an email address * For the <tt>email-json</tt> protocol, the endpoint
--   is an email address * For the <tt>sms</tt> protocol, the endpoint is a
--   phone number of an SMS-enabled device * For the <tt>sqs</tt> protocol,
--   the endpoint is the ARN of an Amazon SQS queue * For the
--   <tt>application</tt> protocol, the endpoint is the EndpointArn of a
--   mobile app and device. * For the <tt>lambda</tt> protocol, the
--   endpoint is the ARN of an AWS Lambda function.</li>
--   <li><a>subTopicARN</a> - The ARN of the topic you want to subscribe
--   to.</li>
--   <li><a>subProtocol</a> - The protocol you want to use. Supported
--   protocols include: * <tt>http</tt> -- delivery of JSON-encoded message
--   via HTTP POST * <tt>https</tt> -- delivery of JSON-encoded message via
--   HTTPS POST * <tt>email</tt> -- delivery of message via SMTP *
--   <tt>email-json</tt> -- delivery of JSON-encoded message via SMTP *
--   <tt>sms</tt> -- delivery of message via SMS * <tt>sqs</tt> -- delivery
--   of JSON-encoded message to an Amazon SQS queue * <tt>application</tt>
--   -- delivery of JSON-encoded message to an EndpointArn for a mobile app
--   and device. * <tt>lambda</tt> -- delivery of JSON-encoded message to
--   an AWS Lambda function.</li>
--   </ul>
subscribe :: Text -> Text -> Subscribe

-- | Input for Subscribe action.
--   
--   <i>See:</i> <a>subscribe</a> smart constructor.
data Subscribe

-- | The endpoint that you want to receive notifications. Endpoints vary by
--   protocol: * For the <tt>http</tt> protocol, the endpoint is an URL
--   beginning with "<a>http://"</a> * For the <tt>https</tt> protocol, the
--   endpoint is a URL beginning with "<a>https://"</a> * For the
--   <tt>email</tt> protocol, the endpoint is an email address * For the
--   <tt>email-json</tt> protocol, the endpoint is an email address * For
--   the <tt>sms</tt> protocol, the endpoint is a phone number of an
--   SMS-enabled device * For the <tt>sqs</tt> protocol, the endpoint is
--   the ARN of an Amazon SQS queue * For the <tt>application</tt>
--   protocol, the endpoint is the EndpointArn of a mobile app and device.
--   * For the <tt>lambda</tt> protocol, the endpoint is the ARN of an AWS
--   Lambda function.
subEndpoint :: Lens' Subscribe (Maybe Text)

-- | The ARN of the topic you want to subscribe to.
subTopicARN :: Lens' Subscribe Text

-- | The protocol you want to use. Supported protocols include: *
--   <tt>http</tt> -- delivery of JSON-encoded message via HTTP POST *
--   <tt>https</tt> -- delivery of JSON-encoded message via HTTPS POST *
--   <tt>email</tt> -- delivery of message via SMTP * <tt>email-json</tt>
--   -- delivery of JSON-encoded message via SMTP * <tt>sms</tt> --
--   delivery of message via SMS * <tt>sqs</tt> -- delivery of JSON-encoded
--   message to an Amazon SQS queue * <tt>application</tt> -- delivery of
--   JSON-encoded message to an EndpointArn for a mobile app and device. *
--   <tt>lambda</tt> -- delivery of JSON-encoded message to an AWS Lambda
--   function.
subProtocol :: Lens' Subscribe Text

-- | Creates a value of <a>SubscribeResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>srsSubscriptionARN</a> - The ARN of the subscription, if the
--   service was able to create a subscription immediately (without
--   requiring endpoint owner confirmation).</li>
--   <li><a>srsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
subscribeResponse :: Int -> SubscribeResponse

-- | Response for Subscribe action.
--   
--   <i>See:</i> <a>subscribeResponse</a> smart constructor.
data SubscribeResponse

-- | The ARN of the subscription, if the service was able to create a
--   subscription immediately (without requiring endpoint owner
--   confirmation).
srsSubscriptionARN :: Lens' SubscribeResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
srsResponseStatus :: Lens' SubscribeResponse Int
instance GHC.Generics.Generic Network.AWS.SNS.Subscribe.SubscribeResponse
instance Data.Data.Data Network.AWS.SNS.Subscribe.SubscribeResponse
instance GHC.Show.Show Network.AWS.SNS.Subscribe.SubscribeResponse
instance GHC.Read.Read Network.AWS.SNS.Subscribe.SubscribeResponse
instance GHC.Classes.Eq Network.AWS.SNS.Subscribe.SubscribeResponse
instance GHC.Generics.Generic Network.AWS.SNS.Subscribe.Subscribe
instance Data.Data.Data Network.AWS.SNS.Subscribe.Subscribe
instance GHC.Show.Show Network.AWS.SNS.Subscribe.Subscribe
instance GHC.Read.Read Network.AWS.SNS.Subscribe.Subscribe
instance GHC.Classes.Eq Network.AWS.SNS.Subscribe.Subscribe
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.Subscribe.Subscribe
instance Control.DeepSeq.NFData Network.AWS.SNS.Subscribe.SubscribeResponse
instance Data.Hashable.Class.Hashable Network.AWS.SNS.Subscribe.Subscribe
instance Control.DeepSeq.NFData Network.AWS.SNS.Subscribe.Subscribe
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.Subscribe.Subscribe
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.Subscribe.Subscribe
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.Subscribe.Subscribe


-- | Allows a topic owner to set an attribute of the topic to a new value.
module Network.AWS.SNS.SetTopicAttributes

-- | Creates a value of <a>SetTopicAttributes</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>staAttributeValue</a> - The new value for the attribute.</li>
--   <li><a>staTopicARN</a> - The ARN of the topic to modify.</li>
--   <li><a>staAttributeName</a> - The name of the attribute you want to
--   set. Only a subset of the topic's attributes are mutable. Valid
--   values: <tt>Policy</tt> | <tt>DisplayName</tt> |
--   <tt>DeliveryPolicy</tt></li>
--   </ul>
setTopicAttributes :: Text -> Text -> SetTopicAttributes

-- | Input for SetTopicAttributes action.
--   
--   <i>See:</i> <a>setTopicAttributes</a> smart constructor.
data SetTopicAttributes

-- | The new value for the attribute.
staAttributeValue :: Lens' SetTopicAttributes (Maybe Text)

-- | The ARN of the topic to modify.
staTopicARN :: Lens' SetTopicAttributes Text

-- | The name of the attribute you want to set. Only a subset of the
--   topic's attributes are mutable. Valid values: <tt>Policy</tt> |
--   <tt>DisplayName</tt> | <tt>DeliveryPolicy</tt>
staAttributeName :: Lens' SetTopicAttributes Text

-- | Creates a value of <a>SetTopicAttributesResponse</a> with the minimum
--   fields required to make a request.
setTopicAttributesResponse :: SetTopicAttributesResponse

-- | <i>See:</i> <a>setTopicAttributesResponse</a> smart constructor.
data SetTopicAttributesResponse
instance GHC.Generics.Generic Network.AWS.SNS.SetTopicAttributes.SetTopicAttributesResponse
instance Data.Data.Data Network.AWS.SNS.SetTopicAttributes.SetTopicAttributesResponse
instance GHC.Show.Show Network.AWS.SNS.SetTopicAttributes.SetTopicAttributesResponse
instance GHC.Read.Read Network.AWS.SNS.SetTopicAttributes.SetTopicAttributesResponse
instance GHC.Classes.Eq Network.AWS.SNS.SetTopicAttributes.SetTopicAttributesResponse
instance GHC.Generics.Generic Network.AWS.SNS.SetTopicAttributes.SetTopicAttributes
instance Data.Data.Data Network.AWS.SNS.SetTopicAttributes.SetTopicAttributes
instance GHC.Show.Show Network.AWS.SNS.SetTopicAttributes.SetTopicAttributes
instance GHC.Read.Read Network.AWS.SNS.SetTopicAttributes.SetTopicAttributes
instance GHC.Classes.Eq Network.AWS.SNS.SetTopicAttributes.SetTopicAttributes
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.SetTopicAttributes.SetTopicAttributes
instance Control.DeepSeq.NFData Network.AWS.SNS.SetTopicAttributes.SetTopicAttributesResponse
instance Data.Hashable.Class.Hashable Network.AWS.SNS.SetTopicAttributes.SetTopicAttributes
instance Control.DeepSeq.NFData Network.AWS.SNS.SetTopicAttributes.SetTopicAttributes
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.SetTopicAttributes.SetTopicAttributes
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.SetTopicAttributes.SetTopicAttributes
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.SetTopicAttributes.SetTopicAttributes


-- | Allows a subscription owner to set an attribute of the topic to a new
--   value.
module Network.AWS.SNS.SetSubscriptionAttributes

-- | Creates a value of <a>SetSubscriptionAttributes</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ssaAttributeValue</a> - The new value for the attribute in JSON
--   format.</li>
--   <li><a>ssaSubscriptionARN</a> - The ARN of the subscription to
--   modify.</li>
--   <li><a>ssaAttributeName</a> - The name of the attribute you want to
--   set. Only a subset of the subscriptions attributes are mutable. Valid
--   values: <tt>DeliveryPolicy</tt> | <tt>RawMessageDelivery</tt></li>
--   </ul>
setSubscriptionAttributes :: Text -> Text -> SetSubscriptionAttributes

-- | Input for SetSubscriptionAttributes action.
--   
--   <i>See:</i> <a>setSubscriptionAttributes</a> smart constructor.
data SetSubscriptionAttributes

-- | The new value for the attribute in JSON format.
ssaAttributeValue :: Lens' SetSubscriptionAttributes (Maybe Text)

-- | The ARN of the subscription to modify.
ssaSubscriptionARN :: Lens' SetSubscriptionAttributes Text

-- | The name of the attribute you want to set. Only a subset of the
--   subscriptions attributes are mutable. Valid values:
--   <tt>DeliveryPolicy</tt> | <tt>RawMessageDelivery</tt>
ssaAttributeName :: Lens' SetSubscriptionAttributes Text

-- | Creates a value of <a>SetSubscriptionAttributesResponse</a> with the
--   minimum fields required to make a request.
setSubscriptionAttributesResponse :: SetSubscriptionAttributesResponse

-- | <i>See:</i> <a>setSubscriptionAttributesResponse</a> smart
--   constructor.
data SetSubscriptionAttributesResponse
instance GHC.Generics.Generic Network.AWS.SNS.SetSubscriptionAttributes.SetSubscriptionAttributesResponse
instance Data.Data.Data Network.AWS.SNS.SetSubscriptionAttributes.SetSubscriptionAttributesResponse
instance GHC.Show.Show Network.AWS.SNS.SetSubscriptionAttributes.SetSubscriptionAttributesResponse
instance GHC.Read.Read Network.AWS.SNS.SetSubscriptionAttributes.SetSubscriptionAttributesResponse
instance GHC.Classes.Eq Network.AWS.SNS.SetSubscriptionAttributes.SetSubscriptionAttributesResponse
instance GHC.Generics.Generic Network.AWS.SNS.SetSubscriptionAttributes.SetSubscriptionAttributes
instance Data.Data.Data Network.AWS.SNS.SetSubscriptionAttributes.SetSubscriptionAttributes
instance GHC.Show.Show Network.AWS.SNS.SetSubscriptionAttributes.SetSubscriptionAttributes
instance GHC.Read.Read Network.AWS.SNS.SetSubscriptionAttributes.SetSubscriptionAttributes
instance GHC.Classes.Eq Network.AWS.SNS.SetSubscriptionAttributes.SetSubscriptionAttributes
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.SetSubscriptionAttributes.SetSubscriptionAttributes
instance Control.DeepSeq.NFData Network.AWS.SNS.SetSubscriptionAttributes.SetSubscriptionAttributesResponse
instance Data.Hashable.Class.Hashable Network.AWS.SNS.SetSubscriptionAttributes.SetSubscriptionAttributes
instance Control.DeepSeq.NFData Network.AWS.SNS.SetSubscriptionAttributes.SetSubscriptionAttributes
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.SetSubscriptionAttributes.SetSubscriptionAttributes
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.SetSubscriptionAttributes.SetSubscriptionAttributes
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.SetSubscriptionAttributes.SetSubscriptionAttributes


-- | Use this request to set the default settings for sending SMS messages
--   and receiving daily SMS usage reports.
--   
--   You can override some of these settings for a single message when you
--   use the <tt>Publish</tt> action with the
--   <tt>MessageAttributes.entry.N</tt> parameter. For more information,
--   see <a>Sending an SMS Message</a> in the <i>Amazon SNS Developer
--   Guide</i> .
module Network.AWS.SNS.SetSMSAttributes

-- | Creates a value of <a>SetSMSAttributes</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ssmsaAttributes</a> - The default settings for sending SMS
--   messages from your account. You can set values for the following
--   attribute names: <tt>MonthlySpendLimit</tt> – The maximum amount in
--   USD that you are willing to spend each month to send SMS messages.
--   When Amazon SNS determines that sending an SMS message would incur a
--   cost that exceeds this limit, it stops sending SMS messages within
--   minutes. <i>Important:</i> Amazon SNS stops sending SMS messages
--   within minutes of the limit being crossed. During that interval, if
--   you continue to send SMS messages, you will incur costs that exceed
--   your limit. By default, the spend limit is set to the maximum allowed
--   by Amazon SNS. If you want to exceed the maximum, contact <a>AWS
--   Support</a> or your AWS sales representative for a service limit
--   increase. <tt>DeliveryStatusIAMRole</tt> – The ARN of the IAM role
--   that allows Amazon SNS to write logs about SMS deliveries in
--   CloudWatch Logs. For each SMS message that you send, Amazon SNS writes
--   a log that includes the message price, the success or failure status,
--   the reason for failure (if the message failed), the message dwell
--   time, and other information.
--   <tt>DeliveryStatusSuccessSamplingRate</tt> – The percentage of
--   successful SMS deliveries for which Amazon SNS will write logs in
--   CloudWatch Logs. The value can be an integer from 0 - 100. For
--   example, to write logs only for failed deliveries, set this value to
--   <tt>0</tt> . To write logs for 10% of your successful deliveries, set
--   it to <tt>10</tt> . <tt>DefaultSenderID</tt> – A string, such as your
--   business brand, that is displayed as the sender on the receiving
--   device. Support for sender IDs varies by country. The sender ID can be
--   1 - 11 alphanumeric characters, and it must contain at least one
--   letter. <tt>DefaultSMSType</tt> – The type of SMS message that you
--   will send by default. You can assign the following values: *
--   <tt>Promotional</tt> – (Default) Noncritical messages, such as
--   marketing messages. Amazon SNS optimizes the message delivery to incur
--   the lowest cost. * <tt>Transactional</tt> – Critical messages that
--   support customer transactions, such as one-time passcodes for
--   multi-factor authentication. Amazon SNS optimizes the message delivery
--   to achieve the highest reliability. <tt>UsageReportS3Bucket</tt> – The
--   name of the Amazon S3 bucket to receive daily SMS usage reports from
--   Amazon SNS. Each day, Amazon SNS will deliver a usage report as a CSV
--   file to the bucket. The report includes the following information for
--   each SMS message that was successfully delivered by your account: *
--   Time that the message was published (in UTC) * Message ID *
--   Destination phone number * Message type * Delivery status * Message
--   price (in USD) * Part number (a message is split into multiple parts
--   if it is too long for a single message) * Total number of parts To
--   receive the report, the bucket must have a policy that allows the
--   Amazon SNS service principle to perform the <tt>s3:PutObject</tt> and
--   <tt>s3:GetBucketLocation</tt> actions. For an example bucket policy
--   and usage report, see <a>Monitoring SMS Activity</a> in the <i>Amazon
--   SNS Developer Guide</i> .</li>
--   </ul>
setSMSAttributes :: SetSMSAttributes

-- | The input for the SetSMSAttributes action.
--   
--   <i>See:</i> <a>setSMSAttributes</a> smart constructor.
data SetSMSAttributes

-- | The default settings for sending SMS messages from your account. You
--   can set values for the following attribute names:
--   <tt>MonthlySpendLimit</tt> – The maximum amount in USD that you are
--   willing to spend each month to send SMS messages. When Amazon SNS
--   determines that sending an SMS message would incur a cost that exceeds
--   this limit, it stops sending SMS messages within minutes.
--   <i>Important:</i> Amazon SNS stops sending SMS messages within minutes
--   of the limit being crossed. During that interval, if you continue to
--   send SMS messages, you will incur costs that exceed your limit. By
--   default, the spend limit is set to the maximum allowed by Amazon SNS.
--   If you want to exceed the maximum, contact <a>AWS Support</a> or your
--   AWS sales representative for a service limit increase.
--   <tt>DeliveryStatusIAMRole</tt> – The ARN of the IAM role that allows
--   Amazon SNS to write logs about SMS deliveries in CloudWatch Logs. For
--   each SMS message that you send, Amazon SNS writes a log that includes
--   the message price, the success or failure status, the reason for
--   failure (if the message failed), the message dwell time, and other
--   information. <tt>DeliveryStatusSuccessSamplingRate</tt> – The
--   percentage of successful SMS deliveries for which Amazon SNS will
--   write logs in CloudWatch Logs. The value can be an integer from 0 -
--   100. For example, to write logs only for failed deliveries, set this
--   value to <tt>0</tt> . To write logs for 10% of your successful
--   deliveries, set it to <tt>10</tt> . <tt>DefaultSenderID</tt> – A
--   string, such as your business brand, that is displayed as the sender
--   on the receiving device. Support for sender IDs varies by country. The
--   sender ID can be 1 - 11 alphanumeric characters, and it must contain
--   at least one letter. <tt>DefaultSMSType</tt> – The type of SMS message
--   that you will send by default. You can assign the following values: *
--   <tt>Promotional</tt> – (Default) Noncritical messages, such as
--   marketing messages. Amazon SNS optimizes the message delivery to incur
--   the lowest cost. * <tt>Transactional</tt> – Critical messages that
--   support customer transactions, such as one-time passcodes for
--   multi-factor authentication. Amazon SNS optimizes the message delivery
--   to achieve the highest reliability. <tt>UsageReportS3Bucket</tt> – The
--   name of the Amazon S3 bucket to receive daily SMS usage reports from
--   Amazon SNS. Each day, Amazon SNS will deliver a usage report as a CSV
--   file to the bucket. The report includes the following information for
--   each SMS message that was successfully delivered by your account: *
--   Time that the message was published (in UTC) * Message ID *
--   Destination phone number * Message type * Delivery status * Message
--   price (in USD) * Part number (a message is split into multiple parts
--   if it is too long for a single message) * Total number of parts To
--   receive the report, the bucket must have a policy that allows the
--   Amazon SNS service principle to perform the <tt>s3:PutObject</tt> and
--   <tt>s3:GetBucketLocation</tt> actions. For an example bucket policy
--   and usage report, see <a>Monitoring SMS Activity</a> in the <i>Amazon
--   SNS Developer Guide</i> .
ssmsaAttributes :: Lens' SetSMSAttributes (HashMap Text Text)

-- | Creates a value of <a>SetSMSAttributesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ssmsarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
setSMSAttributesResponse :: Int -> SetSMSAttributesResponse

-- | The response for the SetSMSAttributes action.
--   
--   <i>See:</i> <a>setSMSAttributesResponse</a> smart constructor.
data SetSMSAttributesResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ssmsarsResponseStatus :: Lens' SetSMSAttributesResponse Int
instance GHC.Generics.Generic Network.AWS.SNS.SetSMSAttributes.SetSMSAttributesResponse
instance Data.Data.Data Network.AWS.SNS.SetSMSAttributes.SetSMSAttributesResponse
instance GHC.Show.Show Network.AWS.SNS.SetSMSAttributes.SetSMSAttributesResponse
instance GHC.Read.Read Network.AWS.SNS.SetSMSAttributes.SetSMSAttributesResponse
instance GHC.Classes.Eq Network.AWS.SNS.SetSMSAttributes.SetSMSAttributesResponse
instance GHC.Generics.Generic Network.AWS.SNS.SetSMSAttributes.SetSMSAttributes
instance Data.Data.Data Network.AWS.SNS.SetSMSAttributes.SetSMSAttributes
instance GHC.Show.Show Network.AWS.SNS.SetSMSAttributes.SetSMSAttributes
instance GHC.Read.Read Network.AWS.SNS.SetSMSAttributes.SetSMSAttributes
instance GHC.Classes.Eq Network.AWS.SNS.SetSMSAttributes.SetSMSAttributes
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.SetSMSAttributes.SetSMSAttributes
instance Control.DeepSeq.NFData Network.AWS.SNS.SetSMSAttributes.SetSMSAttributesResponse
instance Data.Hashable.Class.Hashable Network.AWS.SNS.SetSMSAttributes.SetSMSAttributes
instance Control.DeepSeq.NFData Network.AWS.SNS.SetSMSAttributes.SetSMSAttributes
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.SetSMSAttributes.SetSMSAttributes
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.SetSMSAttributes.SetSMSAttributes
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.SetSMSAttributes.SetSMSAttributes


-- | Sets the attributes of the platform application object for the
--   supported push notification services, such as APNS and GCM. For more
--   information, see <a>Using Amazon SNS Mobile Push Notifications</a> .
--   For information on configuring attributes for message delivery status,
--   see <a>Using Amazon SNS Application Attributes for Message Delivery
--   Status</a> .
module Network.AWS.SNS.SetPlatformApplicationAttributes

-- | Creates a value of <a>SetPlatformApplicationAttributes</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>spaaPlatformApplicationARN</a> - PlatformApplicationArn for
--   SetPlatformApplicationAttributes action.</li>
--   <li><a>spaaAttributes</a> - A map of the platform application
--   attributes. Attributes in this map include the following: *
--   <tt>PlatformCredential</tt> -- The credential received from the
--   notification service. For APNS<i>APNS_SANDBOX, PlatformCredential is
--   private key. For GCM, PlatformCredential is "API key". For ADM,
--   PlatformCredential is "client secret". * <tt>PlatformPrincipal</tt> --
--   The principal received from the notification service. For
--   APNS</i>APNS_SANDBOX, PlatformPrincipal is SSL certificate. For GCM,
--   PlatformPrincipal is not applicable. For ADM, PlatformPrincipal is
--   "client id". * <tt>EventEndpointCreated</tt> -- Topic ARN to which
--   EndpointCreated event notifications should be sent. *
--   <tt>EventEndpointDeleted</tt> -- Topic ARN to which EndpointDeleted
--   event notifications should be sent. * <tt>EventEndpointUpdated</tt> --
--   Topic ARN to which EndpointUpdate event notifications should be sent.
--   * <tt>EventDeliveryFailure</tt> -- Topic ARN to which DeliveryFailure
--   event notifications should be sent upon Direct Publish delivery
--   failure (permanent) to one of the application's endpoints. *
--   <tt>SuccessFeedbackRoleArn</tt> -- IAM role ARN used to give Amazon
--   SNS write access to use CloudWatch Logs on your behalf. *
--   <tt>FailureFeedbackRoleArn</tt> -- IAM role ARN used to give Amazon
--   SNS write access to use CloudWatch Logs on your behalf. *
--   <tt>SuccessFeedbackSampleRate</tt> -- Sample rate percentage (0-100)
--   of successfully delivered messages.</li>
--   </ul>
setPlatformApplicationAttributes :: Text -> SetPlatformApplicationAttributes

-- | Input for SetPlatformApplicationAttributes action.
--   
--   <i>See:</i> <a>setPlatformApplicationAttributes</a> smart constructor.
data SetPlatformApplicationAttributes

-- | PlatformApplicationArn for SetPlatformApplicationAttributes action.
spaaPlatformApplicationARN :: Lens' SetPlatformApplicationAttributes Text

-- | A map of the platform application attributes. Attributes in this map
--   include the following: * <tt>PlatformCredential</tt> -- The credential
--   received from the notification service. For APNS<i>APNS_SANDBOX,
--   PlatformCredential is private key. For GCM, PlatformCredential is "API
--   key". For ADM, PlatformCredential is "client secret". *
--   <tt>PlatformPrincipal</tt> -- The principal received from the
--   notification service. For APNS</i>APNS_SANDBOX, PlatformPrincipal is
--   SSL certificate. For GCM, PlatformPrincipal is not applicable. For
--   ADM, PlatformPrincipal is "client id". * <tt>EventEndpointCreated</tt>
--   -- Topic ARN to which EndpointCreated event notifications should be
--   sent. * <tt>EventEndpointDeleted</tt> -- Topic ARN to which
--   EndpointDeleted event notifications should be sent. *
--   <tt>EventEndpointUpdated</tt> -- Topic ARN to which EndpointUpdate
--   event notifications should be sent. * <tt>EventDeliveryFailure</tt> --
--   Topic ARN to which DeliveryFailure event notifications should be sent
--   upon Direct Publish delivery failure (permanent) to one of the
--   application's endpoints. * <tt>SuccessFeedbackRoleArn</tt> -- IAM role
--   ARN used to give Amazon SNS write access to use CloudWatch Logs on
--   your behalf. * <tt>FailureFeedbackRoleArn</tt> -- IAM role ARN used to
--   give Amazon SNS write access to use CloudWatch Logs on your behalf. *
--   <tt>SuccessFeedbackSampleRate</tt> -- Sample rate percentage (0-100)
--   of successfully delivered messages.
spaaAttributes :: Lens' SetPlatformApplicationAttributes (HashMap Text Text)

-- | Creates a value of <a>SetPlatformApplicationAttributesResponse</a>
--   with the minimum fields required to make a request.
setPlatformApplicationAttributesResponse :: SetPlatformApplicationAttributesResponse

-- | <i>See:</i> <a>setPlatformApplicationAttributesResponse</a> smart
--   constructor.
data SetPlatformApplicationAttributesResponse
instance GHC.Generics.Generic Network.AWS.SNS.SetPlatformApplicationAttributes.SetPlatformApplicationAttributesResponse
instance Data.Data.Data Network.AWS.SNS.SetPlatformApplicationAttributes.SetPlatformApplicationAttributesResponse
instance GHC.Show.Show Network.AWS.SNS.SetPlatformApplicationAttributes.SetPlatformApplicationAttributesResponse
instance GHC.Read.Read Network.AWS.SNS.SetPlatformApplicationAttributes.SetPlatformApplicationAttributesResponse
instance GHC.Classes.Eq Network.AWS.SNS.SetPlatformApplicationAttributes.SetPlatformApplicationAttributesResponse
instance GHC.Generics.Generic Network.AWS.SNS.SetPlatformApplicationAttributes.SetPlatformApplicationAttributes
instance Data.Data.Data Network.AWS.SNS.SetPlatformApplicationAttributes.SetPlatformApplicationAttributes
instance GHC.Show.Show Network.AWS.SNS.SetPlatformApplicationAttributes.SetPlatformApplicationAttributes
instance GHC.Read.Read Network.AWS.SNS.SetPlatformApplicationAttributes.SetPlatformApplicationAttributes
instance GHC.Classes.Eq Network.AWS.SNS.SetPlatformApplicationAttributes.SetPlatformApplicationAttributes
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.SetPlatformApplicationAttributes.SetPlatformApplicationAttributes
instance Control.DeepSeq.NFData Network.AWS.SNS.SetPlatformApplicationAttributes.SetPlatformApplicationAttributesResponse
instance Data.Hashable.Class.Hashable Network.AWS.SNS.SetPlatformApplicationAttributes.SetPlatformApplicationAttributes
instance Control.DeepSeq.NFData Network.AWS.SNS.SetPlatformApplicationAttributes.SetPlatformApplicationAttributes
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.SetPlatformApplicationAttributes.SetPlatformApplicationAttributes
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.SetPlatformApplicationAttributes.SetPlatformApplicationAttributes
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.SetPlatformApplicationAttributes.SetPlatformApplicationAttributes


-- | Sets the attributes for an endpoint for a device on one of the
--   supported push notification services, such as GCM and APNS. For more
--   information, see <a>Using Amazon SNS Mobile Push Notifications</a> .
module Network.AWS.SNS.SetEndpointAttributes

-- | Creates a value of <a>SetEndpointAttributes</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>seaEndpointARN</a> - EndpointArn used for SetEndpointAttributes
--   action.</li>
--   <li><a>seaAttributes</a> - A map of the endpoint attributes.
--   Attributes in this map include the following: *
--   <tt>CustomUserData</tt> -- arbitrary user data to associate with the
--   endpoint. Amazon SNS does not use this data. The data must be in UTF-8
--   format and less than 2KB. * <tt>Enabled</tt> -- flag that
--   enables/disables delivery to the endpoint. Amazon SNS will set this to
--   false when a notification service indicates to Amazon SNS that the
--   endpoint is invalid. Users can set it back to true, typically after
--   updating Token. * <tt>Token</tt> -- device token, also referred to as
--   a registration id, for an app and mobile device. This is returned from
--   the notification service when an app and mobile device are registered
--   with the notification service.</li>
--   </ul>
setEndpointAttributes :: Text -> SetEndpointAttributes

-- | Input for SetEndpointAttributes action.
--   
--   <i>See:</i> <a>setEndpointAttributes</a> smart constructor.
data SetEndpointAttributes

-- | EndpointArn used for SetEndpointAttributes action.
seaEndpointARN :: Lens' SetEndpointAttributes Text

-- | A map of the endpoint attributes. Attributes in this map include the
--   following: * <tt>CustomUserData</tt> -- arbitrary user data to
--   associate with the endpoint. Amazon SNS does not use this data. The
--   data must be in UTF-8 format and less than 2KB. * <tt>Enabled</tt> --
--   flag that enables/disables delivery to the endpoint. Amazon SNS will
--   set this to false when a notification service indicates to Amazon SNS
--   that the endpoint is invalid. Users can set it back to true, typically
--   after updating Token. * <tt>Token</tt> -- device token, also referred
--   to as a registration id, for an app and mobile device. This is
--   returned from the notification service when an app and mobile device
--   are registered with the notification service.
seaAttributes :: Lens' SetEndpointAttributes (HashMap Text Text)

-- | Creates a value of <a>SetEndpointAttributesResponse</a> with the
--   minimum fields required to make a request.
setEndpointAttributesResponse :: SetEndpointAttributesResponse

-- | <i>See:</i> <a>setEndpointAttributesResponse</a> smart constructor.
data SetEndpointAttributesResponse
instance GHC.Generics.Generic Network.AWS.SNS.SetEndpointAttributes.SetEndpointAttributesResponse
instance Data.Data.Data Network.AWS.SNS.SetEndpointAttributes.SetEndpointAttributesResponse
instance GHC.Show.Show Network.AWS.SNS.SetEndpointAttributes.SetEndpointAttributesResponse
instance GHC.Read.Read Network.AWS.SNS.SetEndpointAttributes.SetEndpointAttributesResponse
instance GHC.Classes.Eq Network.AWS.SNS.SetEndpointAttributes.SetEndpointAttributesResponse
instance GHC.Generics.Generic Network.AWS.SNS.SetEndpointAttributes.SetEndpointAttributes
instance Data.Data.Data Network.AWS.SNS.SetEndpointAttributes.SetEndpointAttributes
instance GHC.Show.Show Network.AWS.SNS.SetEndpointAttributes.SetEndpointAttributes
instance GHC.Read.Read Network.AWS.SNS.SetEndpointAttributes.SetEndpointAttributes
instance GHC.Classes.Eq Network.AWS.SNS.SetEndpointAttributes.SetEndpointAttributes
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.SetEndpointAttributes.SetEndpointAttributes
instance Control.DeepSeq.NFData Network.AWS.SNS.SetEndpointAttributes.SetEndpointAttributesResponse
instance Data.Hashable.Class.Hashable Network.AWS.SNS.SetEndpointAttributes.SetEndpointAttributes
instance Control.DeepSeq.NFData Network.AWS.SNS.SetEndpointAttributes.SetEndpointAttributes
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.SetEndpointAttributes.SetEndpointAttributes
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.SetEndpointAttributes.SetEndpointAttributes
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.SetEndpointAttributes.SetEndpointAttributes


-- | Removes a statement from a topic's access control policy.
module Network.AWS.SNS.RemovePermission

-- | Creates a value of <a>RemovePermission</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rpTopicARN</a> - The ARN of the topic whose access control
--   policy you wish to modify.</li>
--   <li><a>rpLabel</a> - The unique label of the statement you want to
--   remove.</li>
--   </ul>
removePermission :: Text -> Text -> RemovePermission

-- | Input for RemovePermission action.
--   
--   <i>See:</i> <a>removePermission</a> smart constructor.
data RemovePermission

-- | The ARN of the topic whose access control policy you wish to modify.
rpTopicARN :: Lens' RemovePermission Text

-- | The unique label of the statement you want to remove.
rpLabel :: Lens' RemovePermission Text

-- | Creates a value of <a>RemovePermissionResponse</a> with the minimum
--   fields required to make a request.
removePermissionResponse :: RemovePermissionResponse

-- | <i>See:</i> <a>removePermissionResponse</a> smart constructor.
data RemovePermissionResponse
instance GHC.Generics.Generic Network.AWS.SNS.RemovePermission.RemovePermissionResponse
instance Data.Data.Data Network.AWS.SNS.RemovePermission.RemovePermissionResponse
instance GHC.Show.Show Network.AWS.SNS.RemovePermission.RemovePermissionResponse
instance GHC.Read.Read Network.AWS.SNS.RemovePermission.RemovePermissionResponse
instance GHC.Classes.Eq Network.AWS.SNS.RemovePermission.RemovePermissionResponse
instance GHC.Generics.Generic Network.AWS.SNS.RemovePermission.RemovePermission
instance Data.Data.Data Network.AWS.SNS.RemovePermission.RemovePermission
instance GHC.Show.Show Network.AWS.SNS.RemovePermission.RemovePermission
instance GHC.Read.Read Network.AWS.SNS.RemovePermission.RemovePermission
instance GHC.Classes.Eq Network.AWS.SNS.RemovePermission.RemovePermission
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.RemovePermission.RemovePermission
instance Control.DeepSeq.NFData Network.AWS.SNS.RemovePermission.RemovePermissionResponse
instance Data.Hashable.Class.Hashable Network.AWS.SNS.RemovePermission.RemovePermission
instance Control.DeepSeq.NFData Network.AWS.SNS.RemovePermission.RemovePermission
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.RemovePermission.RemovePermission
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.RemovePermission.RemovePermission
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.RemovePermission.RemovePermission


-- | Sends a message to all of a topic's subscribed endpoints. When a
--   <tt>messageId</tt> is returned, the message has been saved and Amazon
--   SNS will attempt to deliver it to the topic's subscribers shortly. The
--   format of the outgoing message to each subscribed endpoint depends on
--   the notification protocol.
--   
--   To use the <tt>Publish</tt> action for sending a message to a mobile
--   endpoint, such as an app on a Kindle device or mobile phone, you must
--   specify the EndpointArn for the TargetArn parameter. The EndpointArn
--   is returned when making a call with the
--   <tt>CreatePlatformEndpoint</tt> action.
--   
--   For more information about formatting messages, see <a>Send Custom
--   Platform-Specific Payloads in Messages to Mobile Devices</a> .
module Network.AWS.SNS.Publish

-- | Creates a value of <a>Publish</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pSubject</a> - Optional parameter to be used as the
--   <a>Subject</a> line when the message is delivered to email endpoints.
--   This field will also be included, if present, in the standard JSON
--   messages delivered to other endpoints. Constraints: Subjects must be
--   ASCII text that begins with a letter, number, or punctuation mark;
--   must not include line breaks or control characters; and must be less
--   than 100 characters long.</li>
--   <li><a>pTargetARN</a> - Either TopicArn or EndpointArn, but not both.
--   If you don't specify a value for the <tt>TargetArn</tt> parameter, you
--   must specify a value for the <tt>PhoneNumber</tt> or <tt>TopicArn</tt>
--   parameters.</li>
--   <li><a>pMessageAttributes</a> - Message attributes for Publish
--   action.</li>
--   <li><a>pTopicARN</a> - The topic you want to publish to. If you don't
--   specify a value for the <tt>TopicArn</tt> parameter, you must specify
--   a value for the <tt>PhoneNumber</tt> or <tt>TargetArn</tt>
--   parameters.</li>
--   <li><a>pPhoneNumber</a> - The phone number to which you want to
--   deliver an SMS message. Use E.164 format. If you don't specify a value
--   for the <tt>PhoneNumber</tt> parameter, you must specify a value for
--   the <tt>TargetArn</tt> or <tt>TopicArn</tt> parameters.</li>
--   <li><a>pMessageStructure</a> - Set <tt>MessageStructure</tt> to
--   <tt>json</tt> if you want to send a different message for each
--   protocol. For example, using one publish action, you can send a short
--   message to your SMS subscribers and a longer message to your email
--   subscribers. If you set <tt>MessageStructure</tt> to <tt>json</tt> ,
--   the value of the <tt>Message</tt> parameter must: * be a syntactically
--   valid JSON object; and * contain at least a top-level JSON key of
--   "default" with a value that is a string. You can define other
--   top-level keys that define the message you want to send to a specific
--   transport protocol (e.g., "http"). For information about sending
--   different messages for each protocol using the AWS Management Console,
--   go to <a>Create Different Messages for Each Protocol</a> in the
--   <i>Amazon Simple Notification Service Getting Started Guide</i> .
--   Valid value: <tt>json</tt></li>
--   <li><a>pMessage</a> - The message you want to send to the topic. If
--   you want to send the same message to all transport protocols, include
--   the text of the message as a String value. If you want to send
--   different messages for each transport protocol, set the value of the
--   <tt>MessageStructure</tt> parameter to <tt>json</tt> and use a JSON
--   object for the <tt>Message</tt> parameter. Constraints: Messages must
--   be UTF-8 encoded strings at most 256 KB in size (262144 bytes, not
--   262144 characters). JSON-specific constraints: * Keys in the JSON
--   object that correspond to supported transport protocols must have
--   simple JSON string values. * The values will be parsed (unescaped)
--   before they are used in outgoing messages. * Outbound notifications
--   are JSON encoded (meaning that the characters will be reescaped for
--   sending). * Values have a minimum length of 0 (the empty string, "",
--   is allowed). * Values have a maximum length bounded by the overall
--   message size (so, including multiple protocols may limit message
--   sizes). * Non-string values will cause the key to be ignored. * Keys
--   that do not correspond to supported transport protocols are ignored. *
--   Duplicate keys are not allowed. * Failure to parse or validate any key
--   or value in the message will cause the <tt>Publish</tt> call to return
--   an error (no partial delivery).</li>
--   </ul>
publish :: Text -> Publish

-- | Input for Publish action.
--   
--   <i>See:</i> <a>publish</a> smart constructor.
data Publish

-- | Optional parameter to be used as the <a>Subject</a> line when the
--   message is delivered to email endpoints. This field will also be
--   included, if present, in the standard JSON messages delivered to other
--   endpoints. Constraints: Subjects must be ASCII text that begins with a
--   letter, number, or punctuation mark; must not include line breaks or
--   control characters; and must be less than 100 characters long.
pSubject :: Lens' Publish (Maybe Text)

-- | Either TopicArn or EndpointArn, but not both. If you don't specify a
--   value for the <tt>TargetArn</tt> parameter, you must specify a value
--   for the <tt>PhoneNumber</tt> or <tt>TopicArn</tt> parameters.
pTargetARN :: Lens' Publish (Maybe Text)

-- | Message attributes for Publish action.
pMessageAttributes :: Lens' Publish (HashMap Text MessageAttributeValue)

-- | The topic you want to publish to. If you don't specify a value for the
--   <tt>TopicArn</tt> parameter, you must specify a value for the
--   <tt>PhoneNumber</tt> or <tt>TargetArn</tt> parameters.
pTopicARN :: Lens' Publish (Maybe Text)

-- | The phone number to which you want to deliver an SMS message. Use
--   E.164 format. If you don't specify a value for the
--   <tt>PhoneNumber</tt> parameter, you must specify a value for the
--   <tt>TargetArn</tt> or <tt>TopicArn</tt> parameters.
pPhoneNumber :: Lens' Publish (Maybe Text)

-- | Set <tt>MessageStructure</tt> to <tt>json</tt> if you want to send a
--   different message for each protocol. For example, using one publish
--   action, you can send a short message to your SMS subscribers and a
--   longer message to your email subscribers. If you set
--   <tt>MessageStructure</tt> to <tt>json</tt> , the value of the
--   <tt>Message</tt> parameter must: * be a syntactically valid JSON
--   object; and * contain at least a top-level JSON key of "default" with
--   a value that is a string. You can define other top-level keys that
--   define the message you want to send to a specific transport protocol
--   (e.g., "http"). For information about sending different messages for
--   each protocol using the AWS Management Console, go to <a>Create
--   Different Messages for Each Protocol</a> in the <i>Amazon Simple
--   Notification Service Getting Started Guide</i> . Valid value:
--   <tt>json</tt>
pMessageStructure :: Lens' Publish (Maybe Text)

-- | The message you want to send to the topic. If you want to send the
--   same message to all transport protocols, include the text of the
--   message as a String value. If you want to send different messages for
--   each transport protocol, set the value of the
--   <tt>MessageStructure</tt> parameter to <tt>json</tt> and use a JSON
--   object for the <tt>Message</tt> parameter. Constraints: Messages must
--   be UTF-8 encoded strings at most 256 KB in size (262144 bytes, not
--   262144 characters). JSON-specific constraints: * Keys in the JSON
--   object that correspond to supported transport protocols must have
--   simple JSON string values. * The values will be parsed (unescaped)
--   before they are used in outgoing messages. * Outbound notifications
--   are JSON encoded (meaning that the characters will be reescaped for
--   sending). * Values have a minimum length of 0 (the empty string, "",
--   is allowed). * Values have a maximum length bounded by the overall
--   message size (so, including multiple protocols may limit message
--   sizes). * Non-string values will cause the key to be ignored. * Keys
--   that do not correspond to supported transport protocols are ignored. *
--   Duplicate keys are not allowed. * Failure to parse or validate any key
--   or value in the message will cause the <tt>Publish</tt> call to return
--   an error (no partial delivery).
pMessage :: Lens' Publish Text

-- | Creates a value of <a>PublishResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>prsMessageId</a> - Unique identifier assigned to the published
--   message. Length Constraint: Maximum 100 characters</li>
--   <li><a>prsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
publishResponse :: Int -> PublishResponse

-- | Response for Publish action.
--   
--   <i>See:</i> <a>publishResponse</a> smart constructor.
data PublishResponse

-- | Unique identifier assigned to the published message. Length
--   Constraint: Maximum 100 characters
prsMessageId :: Lens' PublishResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
prsResponseStatus :: Lens' PublishResponse Int
instance GHC.Generics.Generic Network.AWS.SNS.Publish.PublishResponse
instance Data.Data.Data Network.AWS.SNS.Publish.PublishResponse
instance GHC.Show.Show Network.AWS.SNS.Publish.PublishResponse
instance GHC.Read.Read Network.AWS.SNS.Publish.PublishResponse
instance GHC.Classes.Eq Network.AWS.SNS.Publish.PublishResponse
instance GHC.Generics.Generic Network.AWS.SNS.Publish.Publish
instance Data.Data.Data Network.AWS.SNS.Publish.Publish
instance GHC.Show.Show Network.AWS.SNS.Publish.Publish
instance GHC.Read.Read Network.AWS.SNS.Publish.Publish
instance GHC.Classes.Eq Network.AWS.SNS.Publish.Publish
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.Publish.Publish
instance Control.DeepSeq.NFData Network.AWS.SNS.Publish.PublishResponse
instance Data.Hashable.Class.Hashable Network.AWS.SNS.Publish.Publish
instance Control.DeepSeq.NFData Network.AWS.SNS.Publish.Publish
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.Publish.Publish
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.Publish.Publish
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.Publish.Publish


-- | Use this request to opt in a phone number that is opted out, which
--   enables you to resume sending SMS messages to the number.
--   
--   You can opt in a phone number only once every 30 days.
module Network.AWS.SNS.OptInPhoneNumber

-- | Creates a value of <a>OptInPhoneNumber</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oipnPhoneNumber</a> - The phone number to opt in.</li>
--   </ul>
optInPhoneNumber :: Text -> OptInPhoneNumber

-- | Input for the OptInPhoneNumber action.
--   
--   <i>See:</i> <a>optInPhoneNumber</a> smart constructor.
data OptInPhoneNumber

-- | The phone number to opt in.
oipnPhoneNumber :: Lens' OptInPhoneNumber Text

-- | Creates a value of <a>OptInPhoneNumberResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oipnrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
optInPhoneNumberResponse :: Int -> OptInPhoneNumberResponse

-- | The response for the OptInPhoneNumber action.
--   
--   <i>See:</i> <a>optInPhoneNumberResponse</a> smart constructor.
data OptInPhoneNumberResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
oipnrsResponseStatus :: Lens' OptInPhoneNumberResponse Int
instance GHC.Generics.Generic Network.AWS.SNS.OptInPhoneNumber.OptInPhoneNumberResponse
instance Data.Data.Data Network.AWS.SNS.OptInPhoneNumber.OptInPhoneNumberResponse
instance GHC.Show.Show Network.AWS.SNS.OptInPhoneNumber.OptInPhoneNumberResponse
instance GHC.Read.Read Network.AWS.SNS.OptInPhoneNumber.OptInPhoneNumberResponse
instance GHC.Classes.Eq Network.AWS.SNS.OptInPhoneNumber.OptInPhoneNumberResponse
instance GHC.Generics.Generic Network.AWS.SNS.OptInPhoneNumber.OptInPhoneNumber
instance Data.Data.Data Network.AWS.SNS.OptInPhoneNumber.OptInPhoneNumber
instance GHC.Show.Show Network.AWS.SNS.OptInPhoneNumber.OptInPhoneNumber
instance GHC.Read.Read Network.AWS.SNS.OptInPhoneNumber.OptInPhoneNumber
instance GHC.Classes.Eq Network.AWS.SNS.OptInPhoneNumber.OptInPhoneNumber
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.OptInPhoneNumber.OptInPhoneNumber
instance Control.DeepSeq.NFData Network.AWS.SNS.OptInPhoneNumber.OptInPhoneNumberResponse
instance Data.Hashable.Class.Hashable Network.AWS.SNS.OptInPhoneNumber.OptInPhoneNumber
instance Control.DeepSeq.NFData Network.AWS.SNS.OptInPhoneNumber.OptInPhoneNumber
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.OptInPhoneNumber.OptInPhoneNumber
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.OptInPhoneNumber.OptInPhoneNumber
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.OptInPhoneNumber.OptInPhoneNumber


-- | Returns a list of the requester's topics. Each call returns a limited
--   list of topics, up to 100. If there are more topics, a
--   <tt>NextToken</tt> is also returned. Use the <tt>NextToken</tt>
--   parameter in a new <tt>ListTopics</tt> call to get further results.
--   
--   This operation returns paginated results.
module Network.AWS.SNS.ListTopics

-- | Creates a value of <a>ListTopics</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltNextToken</a> - Token returned by the previous
--   <tt>ListTopics</tt> request.</li>
--   </ul>
listTopics :: ListTopics

-- | <i>See:</i> <a>listTopics</a> smart constructor.
data ListTopics

-- | Token returned by the previous <tt>ListTopics</tt> request.
ltNextToken :: Lens' ListTopics (Maybe Text)

-- | Creates a value of <a>ListTopicsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ltrsTopics</a> - A list of topic ARNs.</li>
--   <li><a>ltrsNextToken</a> - Token to pass along to the next
--   <tt>ListTopics</tt> request. This element is returned if there are
--   additional topics to retrieve.</li>
--   <li><a>ltrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listTopicsResponse :: Int -> ListTopicsResponse

-- | Response for ListTopics action.
--   
--   <i>See:</i> <a>listTopicsResponse</a> smart constructor.
data ListTopicsResponse

-- | A list of topic ARNs.
ltrsTopics :: Lens' ListTopicsResponse [Topic]

-- | Token to pass along to the next <tt>ListTopics</tt> request. This
--   element is returned if there are additional topics to retrieve.
ltrsNextToken :: Lens' ListTopicsResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ltrsResponseStatus :: Lens' ListTopicsResponse Int
instance GHC.Generics.Generic Network.AWS.SNS.ListTopics.ListTopicsResponse
instance Data.Data.Data Network.AWS.SNS.ListTopics.ListTopicsResponse
instance GHC.Show.Show Network.AWS.SNS.ListTopics.ListTopicsResponse
instance GHC.Read.Read Network.AWS.SNS.ListTopics.ListTopicsResponse
instance GHC.Classes.Eq Network.AWS.SNS.ListTopics.ListTopicsResponse
instance GHC.Generics.Generic Network.AWS.SNS.ListTopics.ListTopics
instance Data.Data.Data Network.AWS.SNS.ListTopics.ListTopics
instance GHC.Show.Show Network.AWS.SNS.ListTopics.ListTopics
instance GHC.Read.Read Network.AWS.SNS.ListTopics.ListTopics
instance GHC.Classes.Eq Network.AWS.SNS.ListTopics.ListTopics
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.ListTopics.ListTopics
instance Control.DeepSeq.NFData Network.AWS.SNS.ListTopics.ListTopicsResponse
instance Network.AWS.Pager.AWSPager Network.AWS.SNS.ListTopics.ListTopics
instance Data.Hashable.Class.Hashable Network.AWS.SNS.ListTopics.ListTopics
instance Control.DeepSeq.NFData Network.AWS.SNS.ListTopics.ListTopics
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.ListTopics.ListTopics
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.ListTopics.ListTopics
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.ListTopics.ListTopics


-- | Returns a list of the subscriptions to a specific topic. Each call
--   returns a limited list of subscriptions, up to 100. If there are more
--   subscriptions, a <tt>NextToken</tt> is also returned. Use the
--   <tt>NextToken</tt> parameter in a new
--   <tt>ListSubscriptionsByTopic</tt> call to get further results.
--   
--   This operation returns paginated results.
module Network.AWS.SNS.ListSubscriptionsByTopic

-- | Creates a value of <a>ListSubscriptionsByTopic</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lsbtNextToken</a> - Token returned by the previous
--   <tt>ListSubscriptionsByTopic</tt> request.</li>
--   <li><a>lsbtTopicARN</a> - The ARN of the topic for which you wish to
--   find subscriptions.</li>
--   </ul>
listSubscriptionsByTopic :: Text -> ListSubscriptionsByTopic

-- | Input for ListSubscriptionsByTopic action.
--   
--   <i>See:</i> <a>listSubscriptionsByTopic</a> smart constructor.
data ListSubscriptionsByTopic

-- | Token returned by the previous <tt>ListSubscriptionsByTopic</tt>
--   request.
lsbtNextToken :: Lens' ListSubscriptionsByTopic (Maybe Text)

-- | The ARN of the topic for which you wish to find subscriptions.
lsbtTopicARN :: Lens' ListSubscriptionsByTopic Text

-- | Creates a value of <a>ListSubscriptionsByTopicResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lsbtrsNextToken</a> - Token to pass along to the next
--   <tt>ListSubscriptionsByTopic</tt> request. This element is returned if
--   there are more subscriptions to retrieve.</li>
--   <li><a>lsbtrsSubscriptions</a> - A list of subscriptions.</li>
--   <li><a>lsbtrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listSubscriptionsByTopicResponse :: Int -> ListSubscriptionsByTopicResponse

-- | Response for ListSubscriptionsByTopic action.
--   
--   <i>See:</i> <a>listSubscriptionsByTopicResponse</a> smart constructor.
data ListSubscriptionsByTopicResponse

-- | Token to pass along to the next <tt>ListSubscriptionsByTopic</tt>
--   request. This element is returned if there are more subscriptions to
--   retrieve.
lsbtrsNextToken :: Lens' ListSubscriptionsByTopicResponse (Maybe Text)

-- | A list of subscriptions.
lsbtrsSubscriptions :: Lens' ListSubscriptionsByTopicResponse [Subscription]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
lsbtrsResponseStatus :: Lens' ListSubscriptionsByTopicResponse Int
instance GHC.Generics.Generic Network.AWS.SNS.ListSubscriptionsByTopic.ListSubscriptionsByTopicResponse
instance Data.Data.Data Network.AWS.SNS.ListSubscriptionsByTopic.ListSubscriptionsByTopicResponse
instance GHC.Show.Show Network.AWS.SNS.ListSubscriptionsByTopic.ListSubscriptionsByTopicResponse
instance GHC.Read.Read Network.AWS.SNS.ListSubscriptionsByTopic.ListSubscriptionsByTopicResponse
instance GHC.Classes.Eq Network.AWS.SNS.ListSubscriptionsByTopic.ListSubscriptionsByTopicResponse
instance GHC.Generics.Generic Network.AWS.SNS.ListSubscriptionsByTopic.ListSubscriptionsByTopic
instance Data.Data.Data Network.AWS.SNS.ListSubscriptionsByTopic.ListSubscriptionsByTopic
instance GHC.Show.Show Network.AWS.SNS.ListSubscriptionsByTopic.ListSubscriptionsByTopic
instance GHC.Read.Read Network.AWS.SNS.ListSubscriptionsByTopic.ListSubscriptionsByTopic
instance GHC.Classes.Eq Network.AWS.SNS.ListSubscriptionsByTopic.ListSubscriptionsByTopic
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.ListSubscriptionsByTopic.ListSubscriptionsByTopic
instance Control.DeepSeq.NFData Network.AWS.SNS.ListSubscriptionsByTopic.ListSubscriptionsByTopicResponse
instance Network.AWS.Pager.AWSPager Network.AWS.SNS.ListSubscriptionsByTopic.ListSubscriptionsByTopic
instance Data.Hashable.Class.Hashable Network.AWS.SNS.ListSubscriptionsByTopic.ListSubscriptionsByTopic
instance Control.DeepSeq.NFData Network.AWS.SNS.ListSubscriptionsByTopic.ListSubscriptionsByTopic
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.ListSubscriptionsByTopic.ListSubscriptionsByTopic
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.ListSubscriptionsByTopic.ListSubscriptionsByTopic
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.ListSubscriptionsByTopic.ListSubscriptionsByTopic


-- | Returns a list of the requester's subscriptions. Each call returns a
--   limited list of subscriptions, up to 100. If there are more
--   subscriptions, a <tt>NextToken</tt> is also returned. Use the
--   <tt>NextToken</tt> parameter in a new <tt>ListSubscriptions</tt> call
--   to get further results.
--   
--   This operation returns paginated results.
module Network.AWS.SNS.ListSubscriptions

-- | Creates a value of <a>ListSubscriptions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lsNextToken</a> - Token returned by the previous
--   <tt>ListSubscriptions</tt> request.</li>
--   </ul>
listSubscriptions :: ListSubscriptions

-- | Input for ListSubscriptions action.
--   
--   <i>See:</i> <a>listSubscriptions</a> smart constructor.
data ListSubscriptions

-- | Token returned by the previous <tt>ListSubscriptions</tt> request.
lsNextToken :: Lens' ListSubscriptions (Maybe Text)

-- | Creates a value of <a>ListSubscriptionsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lsrsNextToken</a> - Token to pass along to the next
--   <tt>ListSubscriptions</tt> request. This element is returned if there
--   are more subscriptions to retrieve.</li>
--   <li><a>lsrsSubscriptions</a> - A list of subscriptions.</li>
--   <li><a>lsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listSubscriptionsResponse :: Int -> ListSubscriptionsResponse

-- | Response for ListSubscriptions action
--   
--   <i>See:</i> <a>listSubscriptionsResponse</a> smart constructor.
data ListSubscriptionsResponse

-- | Token to pass along to the next <tt>ListSubscriptions</tt> request.
--   This element is returned if there are more subscriptions to retrieve.
lsrsNextToken :: Lens' ListSubscriptionsResponse (Maybe Text)

-- | A list of subscriptions.
lsrsSubscriptions :: Lens' ListSubscriptionsResponse [Subscription]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
lsrsResponseStatus :: Lens' ListSubscriptionsResponse Int
instance GHC.Generics.Generic Network.AWS.SNS.ListSubscriptions.ListSubscriptionsResponse
instance Data.Data.Data Network.AWS.SNS.ListSubscriptions.ListSubscriptionsResponse
instance GHC.Show.Show Network.AWS.SNS.ListSubscriptions.ListSubscriptionsResponse
instance GHC.Read.Read Network.AWS.SNS.ListSubscriptions.ListSubscriptionsResponse
instance GHC.Classes.Eq Network.AWS.SNS.ListSubscriptions.ListSubscriptionsResponse
instance GHC.Generics.Generic Network.AWS.SNS.ListSubscriptions.ListSubscriptions
instance Data.Data.Data Network.AWS.SNS.ListSubscriptions.ListSubscriptions
instance GHC.Show.Show Network.AWS.SNS.ListSubscriptions.ListSubscriptions
instance GHC.Read.Read Network.AWS.SNS.ListSubscriptions.ListSubscriptions
instance GHC.Classes.Eq Network.AWS.SNS.ListSubscriptions.ListSubscriptions
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.ListSubscriptions.ListSubscriptions
instance Control.DeepSeq.NFData Network.AWS.SNS.ListSubscriptions.ListSubscriptionsResponse
instance Network.AWS.Pager.AWSPager Network.AWS.SNS.ListSubscriptions.ListSubscriptions
instance Data.Hashable.Class.Hashable Network.AWS.SNS.ListSubscriptions.ListSubscriptions
instance Control.DeepSeq.NFData Network.AWS.SNS.ListSubscriptions.ListSubscriptions
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.ListSubscriptions.ListSubscriptions
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.ListSubscriptions.ListSubscriptions
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.ListSubscriptions.ListSubscriptions


-- | Lists the platform application objects for the supported push
--   notification services, such as APNS and GCM. The results for
--   <tt>ListPlatformApplications</tt> are paginated and return a limited
--   list of applications, up to 100. If additional records are available
--   after the first page results, then a NextToken string will be
--   returned. To receive the next page, you call
--   <tt>ListPlatformApplications</tt> using the NextToken string received
--   from the previous call. When there are no more records to return,
--   NextToken will be null. For more information, see <a>Using Amazon SNS
--   Mobile Push Notifications</a> .
--   
--   This operation returns paginated results.
module Network.AWS.SNS.ListPlatformApplications

-- | Creates a value of <a>ListPlatformApplications</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lpaNextToken</a> - NextToken string is used when calling
--   ListPlatformApplications action to retrieve additional records that
--   are available after the first page results.</li>
--   </ul>
listPlatformApplications :: ListPlatformApplications

-- | Input for ListPlatformApplications action.
--   
--   <i>See:</i> <a>listPlatformApplications</a> smart constructor.
data ListPlatformApplications

-- | NextToken string is used when calling ListPlatformApplications action
--   to retrieve additional records that are available after the first page
--   results.
lpaNextToken :: Lens' ListPlatformApplications (Maybe Text)

-- | Creates a value of <a>ListPlatformApplicationsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lparsPlatformApplications</a> - Platform applications returned
--   when calling ListPlatformApplications action.</li>
--   <li><a>lparsNextToken</a> - NextToken string is returned when calling
--   ListPlatformApplications action if additional records are available
--   after the first page results.</li>
--   <li><a>lparsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listPlatformApplicationsResponse :: Int -> ListPlatformApplicationsResponse

-- | Response for ListPlatformApplications action.
--   
--   <i>See:</i> <a>listPlatformApplicationsResponse</a> smart constructor.
data ListPlatformApplicationsResponse

-- | Platform applications returned when calling ListPlatformApplications
--   action.
lparsPlatformApplications :: Lens' ListPlatformApplicationsResponse [PlatformApplication]

-- | NextToken string is returned when calling ListPlatformApplications
--   action if additional records are available after the first page
--   results.
lparsNextToken :: Lens' ListPlatformApplicationsResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
lparsResponseStatus :: Lens' ListPlatformApplicationsResponse Int
instance GHC.Generics.Generic Network.AWS.SNS.ListPlatformApplications.ListPlatformApplicationsResponse
instance Data.Data.Data Network.AWS.SNS.ListPlatformApplications.ListPlatformApplicationsResponse
instance GHC.Show.Show Network.AWS.SNS.ListPlatformApplications.ListPlatformApplicationsResponse
instance GHC.Read.Read Network.AWS.SNS.ListPlatformApplications.ListPlatformApplicationsResponse
instance GHC.Classes.Eq Network.AWS.SNS.ListPlatformApplications.ListPlatformApplicationsResponse
instance GHC.Generics.Generic Network.AWS.SNS.ListPlatformApplications.ListPlatformApplications
instance Data.Data.Data Network.AWS.SNS.ListPlatformApplications.ListPlatformApplications
instance GHC.Show.Show Network.AWS.SNS.ListPlatformApplications.ListPlatformApplications
instance GHC.Read.Read Network.AWS.SNS.ListPlatformApplications.ListPlatformApplications
instance GHC.Classes.Eq Network.AWS.SNS.ListPlatformApplications.ListPlatformApplications
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.ListPlatformApplications.ListPlatformApplications
instance Control.DeepSeq.NFData Network.AWS.SNS.ListPlatformApplications.ListPlatformApplicationsResponse
instance Network.AWS.Pager.AWSPager Network.AWS.SNS.ListPlatformApplications.ListPlatformApplications
instance Data.Hashable.Class.Hashable Network.AWS.SNS.ListPlatformApplications.ListPlatformApplications
instance Control.DeepSeq.NFData Network.AWS.SNS.ListPlatformApplications.ListPlatformApplications
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.ListPlatformApplications.ListPlatformApplications
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.ListPlatformApplications.ListPlatformApplications
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.ListPlatformApplications.ListPlatformApplications


-- | Returns a list of phone numbers that are opted out, meaning you cannot
--   send SMS messages to them.
--   
--   The results for <tt>ListPhoneNumbersOptedOut</tt> are paginated, and
--   each page returns up to 100 phone numbers. If additional phone numbers
--   are available after the first page of results, then a
--   <tt>NextToken</tt> string will be returned. To receive the next page,
--   you call <tt>ListPhoneNumbersOptedOut</tt> again using the
--   <tt>NextToken</tt> string received from the previous call. When there
--   are no more records to return, <tt>NextToken</tt> will be null.
module Network.AWS.SNS.ListPhoneNumbersOptedOut

-- | Creates a value of <a>ListPhoneNumbersOptedOut</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lpnooNextToken</a> - A <tt>NextToken</tt> string is used when
--   you call the <tt>ListPhoneNumbersOptedOut</tt> action to retrieve
--   additional records that are available after the first page of
--   results.</li>
--   </ul>
listPhoneNumbersOptedOut :: ListPhoneNumbersOptedOut

-- | The input for the <tt>ListPhoneNumbersOptedOut</tt> action.
--   
--   <i>See:</i> <a>listPhoneNumbersOptedOut</a> smart constructor.
data ListPhoneNumbersOptedOut

-- | A <tt>NextToken</tt> string is used when you call the
--   <tt>ListPhoneNumbersOptedOut</tt> action to retrieve additional
--   records that are available after the first page of results.
lpnooNextToken :: Lens' ListPhoneNumbersOptedOut (Maybe Text)

-- | Creates a value of <a>ListPhoneNumbersOptedOutResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lpnoorsPhoneNumbers</a> - A list of phone numbers that are
--   opted out of receiving SMS messages. The list is paginated, and each
--   page can contain up to 100 phone numbers.</li>
--   <li><a>lpnoorsNextToken</a> - A <tt>NextToken</tt> string is returned
--   when you call the <tt>ListPhoneNumbersOptedOut</tt> action if
--   additional records are available after the first page of results.</li>
--   <li><a>lpnoorsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listPhoneNumbersOptedOutResponse :: Int -> ListPhoneNumbersOptedOutResponse

-- | The response from the <tt>ListPhoneNumbersOptedOut</tt> action.
--   
--   <i>See:</i> <a>listPhoneNumbersOptedOutResponse</a> smart constructor.
data ListPhoneNumbersOptedOutResponse

-- | A list of phone numbers that are opted out of receiving SMS messages.
--   The list is paginated, and each page can contain up to 100 phone
--   numbers.
lpnoorsPhoneNumbers :: Lens' ListPhoneNumbersOptedOutResponse [Text]

-- | A <tt>NextToken</tt> string is returned when you call the
--   <tt>ListPhoneNumbersOptedOut</tt> action if additional records are
--   available after the first page of results.
lpnoorsNextToken :: Lens' ListPhoneNumbersOptedOutResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
lpnoorsResponseStatus :: Lens' ListPhoneNumbersOptedOutResponse Int
instance GHC.Generics.Generic Network.AWS.SNS.ListPhoneNumbersOptedOut.ListPhoneNumbersOptedOutResponse
instance Data.Data.Data Network.AWS.SNS.ListPhoneNumbersOptedOut.ListPhoneNumbersOptedOutResponse
instance GHC.Show.Show Network.AWS.SNS.ListPhoneNumbersOptedOut.ListPhoneNumbersOptedOutResponse
instance GHC.Read.Read Network.AWS.SNS.ListPhoneNumbersOptedOut.ListPhoneNumbersOptedOutResponse
instance GHC.Classes.Eq Network.AWS.SNS.ListPhoneNumbersOptedOut.ListPhoneNumbersOptedOutResponse
instance GHC.Generics.Generic Network.AWS.SNS.ListPhoneNumbersOptedOut.ListPhoneNumbersOptedOut
instance Data.Data.Data Network.AWS.SNS.ListPhoneNumbersOptedOut.ListPhoneNumbersOptedOut
instance GHC.Show.Show Network.AWS.SNS.ListPhoneNumbersOptedOut.ListPhoneNumbersOptedOut
instance GHC.Read.Read Network.AWS.SNS.ListPhoneNumbersOptedOut.ListPhoneNumbersOptedOut
instance GHC.Classes.Eq Network.AWS.SNS.ListPhoneNumbersOptedOut.ListPhoneNumbersOptedOut
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.ListPhoneNumbersOptedOut.ListPhoneNumbersOptedOut
instance Control.DeepSeq.NFData Network.AWS.SNS.ListPhoneNumbersOptedOut.ListPhoneNumbersOptedOutResponse
instance Data.Hashable.Class.Hashable Network.AWS.SNS.ListPhoneNumbersOptedOut.ListPhoneNumbersOptedOut
instance Control.DeepSeq.NFData Network.AWS.SNS.ListPhoneNumbersOptedOut.ListPhoneNumbersOptedOut
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.ListPhoneNumbersOptedOut.ListPhoneNumbersOptedOut
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.ListPhoneNumbersOptedOut.ListPhoneNumbersOptedOut
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.ListPhoneNumbersOptedOut.ListPhoneNumbersOptedOut


-- | Lists the endpoints and endpoint attributes for devices in a supported
--   push notification service, such as GCM and APNS. The results for
--   <tt>ListEndpointsByPlatformApplication</tt> are paginated and return a
--   limited list of endpoints, up to 100. If additional records are
--   available after the first page results, then a NextToken string will
--   be returned. To receive the next page, you call
--   <tt>ListEndpointsByPlatformApplication</tt> again using the NextToken
--   string received from the previous call. When there are no more records
--   to return, NextToken will be null. For more information, see <a>Using
--   Amazon SNS Mobile Push Notifications</a> .
--   
--   This operation returns paginated results.
module Network.AWS.SNS.ListEndpointsByPlatformApplication

-- | Creates a value of <a>ListEndpointsByPlatformApplication</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lebpaNextToken</a> - NextToken string is used when calling
--   ListEndpointsByPlatformApplication action to retrieve additional
--   records that are available after the first page results.</li>
--   <li><a>lebpaPlatformApplicationARN</a> - PlatformApplicationArn for
--   ListEndpointsByPlatformApplicationInput action.</li>
--   </ul>
listEndpointsByPlatformApplication :: Text -> ListEndpointsByPlatformApplication

-- | Input for ListEndpointsByPlatformApplication action.
--   
--   <i>See:</i> <a>listEndpointsByPlatformApplication</a> smart
--   constructor.
data ListEndpointsByPlatformApplication

-- | NextToken string is used when calling
--   ListEndpointsByPlatformApplication action to retrieve additional
--   records that are available after the first page results.
lebpaNextToken :: Lens' ListEndpointsByPlatformApplication (Maybe Text)

-- | PlatformApplicationArn for ListEndpointsByPlatformApplicationInput
--   action.
lebpaPlatformApplicationARN :: Lens' ListEndpointsByPlatformApplication Text

-- | Creates a value of <a>ListEndpointsByPlatformApplicationResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lebparsNextToken</a> - NextToken string is returned when
--   calling ListEndpointsByPlatformApplication action if additional
--   records are available after the first page results.</li>
--   <li><a>lebparsEndpoints</a> - Endpoints returned for
--   ListEndpointsByPlatformApplication action.</li>
--   <li><a>lebparsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listEndpointsByPlatformApplicationResponse :: Int -> ListEndpointsByPlatformApplicationResponse

-- | Response for ListEndpointsByPlatformApplication action.
--   
--   <i>See:</i> <a>listEndpointsByPlatformApplicationResponse</a> smart
--   constructor.
data ListEndpointsByPlatformApplicationResponse

-- | NextToken string is returned when calling
--   ListEndpointsByPlatformApplication action if additional records are
--   available after the first page results.
lebparsNextToken :: Lens' ListEndpointsByPlatformApplicationResponse (Maybe Text)

-- | Endpoints returned for ListEndpointsByPlatformApplication action.
lebparsEndpoints :: Lens' ListEndpointsByPlatformApplicationResponse [Endpoint]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
lebparsResponseStatus :: Lens' ListEndpointsByPlatformApplicationResponse Int
instance GHC.Generics.Generic Network.AWS.SNS.ListEndpointsByPlatformApplication.ListEndpointsByPlatformApplicationResponse
instance Data.Data.Data Network.AWS.SNS.ListEndpointsByPlatformApplication.ListEndpointsByPlatformApplicationResponse
instance GHC.Show.Show Network.AWS.SNS.ListEndpointsByPlatformApplication.ListEndpointsByPlatformApplicationResponse
instance GHC.Read.Read Network.AWS.SNS.ListEndpointsByPlatformApplication.ListEndpointsByPlatformApplicationResponse
instance GHC.Classes.Eq Network.AWS.SNS.ListEndpointsByPlatformApplication.ListEndpointsByPlatformApplicationResponse
instance GHC.Generics.Generic Network.AWS.SNS.ListEndpointsByPlatformApplication.ListEndpointsByPlatformApplication
instance Data.Data.Data Network.AWS.SNS.ListEndpointsByPlatformApplication.ListEndpointsByPlatformApplication
instance GHC.Show.Show Network.AWS.SNS.ListEndpointsByPlatformApplication.ListEndpointsByPlatformApplication
instance GHC.Read.Read Network.AWS.SNS.ListEndpointsByPlatformApplication.ListEndpointsByPlatformApplication
instance GHC.Classes.Eq Network.AWS.SNS.ListEndpointsByPlatformApplication.ListEndpointsByPlatformApplication
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.ListEndpointsByPlatformApplication.ListEndpointsByPlatformApplication
instance Control.DeepSeq.NFData Network.AWS.SNS.ListEndpointsByPlatformApplication.ListEndpointsByPlatformApplicationResponse
instance Network.AWS.Pager.AWSPager Network.AWS.SNS.ListEndpointsByPlatformApplication.ListEndpointsByPlatformApplication
instance Data.Hashable.Class.Hashable Network.AWS.SNS.ListEndpointsByPlatformApplication.ListEndpointsByPlatformApplication
instance Control.DeepSeq.NFData Network.AWS.SNS.ListEndpointsByPlatformApplication.ListEndpointsByPlatformApplication
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.ListEndpointsByPlatformApplication.ListEndpointsByPlatformApplication
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.ListEndpointsByPlatformApplication.ListEndpointsByPlatformApplication
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.ListEndpointsByPlatformApplication.ListEndpointsByPlatformApplication


-- | Returns all of the properties of a topic. Topic properties returned
--   might differ based on the authorization of the user.
module Network.AWS.SNS.GetTopicAttributes

-- | Creates a value of <a>GetTopicAttributes</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gtaTopicARN</a> - The ARN of the topic whose properties you
--   want to get.</li>
--   </ul>
getTopicAttributes :: Text -> GetTopicAttributes

-- | Input for GetTopicAttributes action.
--   
--   <i>See:</i> <a>getTopicAttributes</a> smart constructor.
data GetTopicAttributes

-- | The ARN of the topic whose properties you want to get.
gtaTopicARN :: Lens' GetTopicAttributes Text

-- | Creates a value of <a>GetTopicAttributesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gtarsAttributes</a> - A map of the topic's attributes.
--   Attributes in this map include the following: * <tt>TopicArn</tt> --
--   the topic's ARN * <tt>Owner</tt> -- the AWS account ID of the topic's
--   owner * <tt>Policy</tt> -- the JSON serialization of the topic's
--   access control policy * <tt>DisplayName</tt> -- the human-readable
--   name used in the <a>From</a> field for notifications to email and
--   email-json endpoints * <tt>SubscriptionsPending</tt> -- the number of
--   subscriptions pending confirmation on this topic *
--   <tt>SubscriptionsConfirmed</tt> -- the number of confirmed
--   subscriptions on this topic * <tt>SubscriptionsDeleted</tt> -- the
--   number of deleted subscriptions on this topic *
--   <tt>DeliveryPolicy</tt> -- the JSON serialization of the topic's
--   delivery policy * <tt>EffectiveDeliveryPolicy</tt> -- the JSON
--   serialization of the effective delivery policy that takes into account
--   system defaults</li>
--   <li><a>gtarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getTopicAttributesResponse :: Int -> GetTopicAttributesResponse

-- | Response for GetTopicAttributes action.
--   
--   <i>See:</i> <a>getTopicAttributesResponse</a> smart constructor.
data GetTopicAttributesResponse

-- | A map of the topic's attributes. Attributes in this map include the
--   following: * <tt>TopicArn</tt> -- the topic's ARN * <tt>Owner</tt> --
--   the AWS account ID of the topic's owner * <tt>Policy</tt> -- the JSON
--   serialization of the topic's access control policy *
--   <tt>DisplayName</tt> -- the human-readable name used in the
--   <a>From</a> field for notifications to email and email-json endpoints
--   * <tt>SubscriptionsPending</tt> -- the number of subscriptions pending
--   confirmation on this topic * <tt>SubscriptionsConfirmed</tt> -- the
--   number of confirmed subscriptions on this topic *
--   <tt>SubscriptionsDeleted</tt> -- the number of deleted subscriptions
--   on this topic * <tt>DeliveryPolicy</tt> -- the JSON serialization of
--   the topic's delivery policy * <tt>EffectiveDeliveryPolicy</tt> -- the
--   JSON serialization of the effective delivery policy that takes into
--   account system defaults
gtarsAttributes :: Lens' GetTopicAttributesResponse (HashMap Text Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gtarsResponseStatus :: Lens' GetTopicAttributesResponse Int
instance GHC.Generics.Generic Network.AWS.SNS.GetTopicAttributes.GetTopicAttributesResponse
instance Data.Data.Data Network.AWS.SNS.GetTopicAttributes.GetTopicAttributesResponse
instance GHC.Show.Show Network.AWS.SNS.GetTopicAttributes.GetTopicAttributesResponse
instance GHC.Read.Read Network.AWS.SNS.GetTopicAttributes.GetTopicAttributesResponse
instance GHC.Classes.Eq Network.AWS.SNS.GetTopicAttributes.GetTopicAttributesResponse
instance GHC.Generics.Generic Network.AWS.SNS.GetTopicAttributes.GetTopicAttributes
instance Data.Data.Data Network.AWS.SNS.GetTopicAttributes.GetTopicAttributes
instance GHC.Show.Show Network.AWS.SNS.GetTopicAttributes.GetTopicAttributes
instance GHC.Read.Read Network.AWS.SNS.GetTopicAttributes.GetTopicAttributes
instance GHC.Classes.Eq Network.AWS.SNS.GetTopicAttributes.GetTopicAttributes
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.GetTopicAttributes.GetTopicAttributes
instance Control.DeepSeq.NFData Network.AWS.SNS.GetTopicAttributes.GetTopicAttributesResponse
instance Data.Hashable.Class.Hashable Network.AWS.SNS.GetTopicAttributes.GetTopicAttributes
instance Control.DeepSeq.NFData Network.AWS.SNS.GetTopicAttributes.GetTopicAttributes
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.GetTopicAttributes.GetTopicAttributes
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.GetTopicAttributes.GetTopicAttributes
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.GetTopicAttributes.GetTopicAttributes


-- | Returns all of the properties of a subscription.
module Network.AWS.SNS.GetSubscriptionAttributes

-- | Creates a value of <a>GetSubscriptionAttributes</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsaSubscriptionARN</a> - The ARN of the subscription whose
--   properties you want to get.</li>
--   </ul>
getSubscriptionAttributes :: Text -> GetSubscriptionAttributes

-- | Input for GetSubscriptionAttributes.
--   
--   <i>See:</i> <a>getSubscriptionAttributes</a> smart constructor.
data GetSubscriptionAttributes

-- | The ARN of the subscription whose properties you want to get.
gsaSubscriptionARN :: Lens' GetSubscriptionAttributes Text

-- | Creates a value of <a>GetSubscriptionAttributesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsarsAttributes</a> - A map of the subscription's attributes.
--   Attributes in this map include the following: *
--   <tt>SubscriptionArn</tt> -- the subscription's ARN * <tt>TopicArn</tt>
--   -- the topic ARN that the subscription is associated with *
--   <tt>Owner</tt> -- the AWS account ID of the subscription's owner *
--   <tt>ConfirmationWasAuthenticated</tt> -- true if the subscription
--   confirmation request was authenticated * <tt>DeliveryPolicy</tt> --
--   the JSON serialization of the subscription's delivery policy *
--   <tt>EffectiveDeliveryPolicy</tt> -- the JSON serialization of the
--   effective delivery policy that takes into account the topic delivery
--   policy and account system defaults</li>
--   <li><a>gsarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getSubscriptionAttributesResponse :: Int -> GetSubscriptionAttributesResponse

-- | Response for GetSubscriptionAttributes action.
--   
--   <i>See:</i> <a>getSubscriptionAttributesResponse</a> smart
--   constructor.
data GetSubscriptionAttributesResponse

-- | A map of the subscription's attributes. Attributes in this map include
--   the following: * <tt>SubscriptionArn</tt> -- the subscription's ARN *
--   <tt>TopicArn</tt> -- the topic ARN that the subscription is associated
--   with * <tt>Owner</tt> -- the AWS account ID of the subscription's
--   owner * <tt>ConfirmationWasAuthenticated</tt> -- true if the
--   subscription confirmation request was authenticated *
--   <tt>DeliveryPolicy</tt> -- the JSON serialization of the
--   subscription's delivery policy * <tt>EffectiveDeliveryPolicy</tt> --
--   the JSON serialization of the effective delivery policy that takes
--   into account the topic delivery policy and account system defaults
gsarsAttributes :: Lens' GetSubscriptionAttributesResponse (HashMap Text Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gsarsResponseStatus :: Lens' GetSubscriptionAttributesResponse Int
instance GHC.Generics.Generic Network.AWS.SNS.GetSubscriptionAttributes.GetSubscriptionAttributesResponse
instance Data.Data.Data Network.AWS.SNS.GetSubscriptionAttributes.GetSubscriptionAttributesResponse
instance GHC.Show.Show Network.AWS.SNS.GetSubscriptionAttributes.GetSubscriptionAttributesResponse
instance GHC.Read.Read Network.AWS.SNS.GetSubscriptionAttributes.GetSubscriptionAttributesResponse
instance GHC.Classes.Eq Network.AWS.SNS.GetSubscriptionAttributes.GetSubscriptionAttributesResponse
instance GHC.Generics.Generic Network.AWS.SNS.GetSubscriptionAttributes.GetSubscriptionAttributes
instance Data.Data.Data Network.AWS.SNS.GetSubscriptionAttributes.GetSubscriptionAttributes
instance GHC.Show.Show Network.AWS.SNS.GetSubscriptionAttributes.GetSubscriptionAttributes
instance GHC.Read.Read Network.AWS.SNS.GetSubscriptionAttributes.GetSubscriptionAttributes
instance GHC.Classes.Eq Network.AWS.SNS.GetSubscriptionAttributes.GetSubscriptionAttributes
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.GetSubscriptionAttributes.GetSubscriptionAttributes
instance Control.DeepSeq.NFData Network.AWS.SNS.GetSubscriptionAttributes.GetSubscriptionAttributesResponse
instance Data.Hashable.Class.Hashable Network.AWS.SNS.GetSubscriptionAttributes.GetSubscriptionAttributes
instance Control.DeepSeq.NFData Network.AWS.SNS.GetSubscriptionAttributes.GetSubscriptionAttributes
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.GetSubscriptionAttributes.GetSubscriptionAttributes
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.GetSubscriptionAttributes.GetSubscriptionAttributes
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.GetSubscriptionAttributes.GetSubscriptionAttributes


-- | Returns the settings for sending SMS messages from your account.
--   
--   These settings are set with the <tt>SetSMSAttributes</tt> action.
module Network.AWS.SNS.GetSMSAttributes

-- | Creates a value of <a>GetSMSAttributes</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsmsaAttributes</a> - A list of the individual attribute names,
--   such as <tt>MonthlySpendLimit</tt> , for which you want values. For
--   all attribute names, see <a>SetSMSAttributes</a> . If you don't use
--   this parameter, Amazon SNS returns all SMS attributes.</li>
--   </ul>
getSMSAttributes :: GetSMSAttributes

-- | The input for the <tt>GetSMSAttributes</tt> request.
--   
--   <i>See:</i> <a>getSMSAttributes</a> smart constructor.
data GetSMSAttributes

-- | A list of the individual attribute names, such as
--   <tt>MonthlySpendLimit</tt> , for which you want values. For all
--   attribute names, see <a>SetSMSAttributes</a> . If you don't use this
--   parameter, Amazon SNS returns all SMS attributes.
gsmsaAttributes :: Lens' GetSMSAttributes [Text]

-- | Creates a value of <a>GetSMSAttributesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsmsarsAttributes</a> - The SMS attribute names and their
--   values.</li>
--   <li><a>gsmsarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getSMSAttributesResponse :: Int -> GetSMSAttributesResponse

-- | The response from the <tt>GetSMSAttributes</tt> request.
--   
--   <i>See:</i> <a>getSMSAttributesResponse</a> smart constructor.
data GetSMSAttributesResponse

-- | The SMS attribute names and their values.
gsmsarsAttributes :: Lens' GetSMSAttributesResponse (HashMap Text Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gsmsarsResponseStatus :: Lens' GetSMSAttributesResponse Int
instance GHC.Generics.Generic Network.AWS.SNS.GetSMSAttributes.GetSMSAttributesResponse
instance Data.Data.Data Network.AWS.SNS.GetSMSAttributes.GetSMSAttributesResponse
instance GHC.Show.Show Network.AWS.SNS.GetSMSAttributes.GetSMSAttributesResponse
instance GHC.Read.Read Network.AWS.SNS.GetSMSAttributes.GetSMSAttributesResponse
instance GHC.Classes.Eq Network.AWS.SNS.GetSMSAttributes.GetSMSAttributesResponse
instance GHC.Generics.Generic Network.AWS.SNS.GetSMSAttributes.GetSMSAttributes
instance Data.Data.Data Network.AWS.SNS.GetSMSAttributes.GetSMSAttributes
instance GHC.Show.Show Network.AWS.SNS.GetSMSAttributes.GetSMSAttributes
instance GHC.Read.Read Network.AWS.SNS.GetSMSAttributes.GetSMSAttributes
instance GHC.Classes.Eq Network.AWS.SNS.GetSMSAttributes.GetSMSAttributes
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.GetSMSAttributes.GetSMSAttributes
instance Control.DeepSeq.NFData Network.AWS.SNS.GetSMSAttributes.GetSMSAttributesResponse
instance Data.Hashable.Class.Hashable Network.AWS.SNS.GetSMSAttributes.GetSMSAttributes
instance Control.DeepSeq.NFData Network.AWS.SNS.GetSMSAttributes.GetSMSAttributes
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.GetSMSAttributes.GetSMSAttributes
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.GetSMSAttributes.GetSMSAttributes
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.GetSMSAttributes.GetSMSAttributes


-- | Retrieves the attributes of the platform application object for the
--   supported push notification services, such as APNS and GCM. For more
--   information, see <a>Using Amazon SNS Mobile Push Notifications</a> .
module Network.AWS.SNS.GetPlatformApplicationAttributes

-- | Creates a value of <a>GetPlatformApplicationAttributes</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gpaaPlatformApplicationARN</a> - PlatformApplicationArn for
--   GetPlatformApplicationAttributesInput.</li>
--   </ul>
getPlatformApplicationAttributes :: Text -> GetPlatformApplicationAttributes

-- | Input for GetPlatformApplicationAttributes action.
--   
--   <i>See:</i> <a>getPlatformApplicationAttributes</a> smart constructor.
data GetPlatformApplicationAttributes

-- | PlatformApplicationArn for GetPlatformApplicationAttributesInput.
gpaaPlatformApplicationARN :: Lens' GetPlatformApplicationAttributes Text

-- | Creates a value of <a>GetPlatformApplicationAttributesResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gpaarsAttributes</a> - Attributes include the following: *
--   <tt>EventEndpointCreated</tt> -- Topic ARN to which EndpointCreated
--   event notifications should be sent. * <tt>EventEndpointDeleted</tt> --
--   Topic ARN to which EndpointDeleted event notifications should be sent.
--   * <tt>EventEndpointUpdated</tt> -- Topic ARN to which EndpointUpdate
--   event notifications should be sent. * <tt>EventDeliveryFailure</tt> --
--   Topic ARN to which DeliveryFailure event notifications should be sent
--   upon Direct Publish delivery failure (permanent) to one of the
--   application's endpoints.</li>
--   <li><a>gpaarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getPlatformApplicationAttributesResponse :: Int -> GetPlatformApplicationAttributesResponse

-- | Response for GetPlatformApplicationAttributes action.
--   
--   <i>See:</i> <a>getPlatformApplicationAttributesResponse</a> smart
--   constructor.
data GetPlatformApplicationAttributesResponse

-- | Attributes include the following: * <tt>EventEndpointCreated</tt> --
--   Topic ARN to which EndpointCreated event notifications should be sent.
--   * <tt>EventEndpointDeleted</tt> -- Topic ARN to which EndpointDeleted
--   event notifications should be sent. * <tt>EventEndpointUpdated</tt> --
--   Topic ARN to which EndpointUpdate event notifications should be sent.
--   * <tt>EventDeliveryFailure</tt> -- Topic ARN to which DeliveryFailure
--   event notifications should be sent upon Direct Publish delivery
--   failure (permanent) to one of the application's endpoints.
gpaarsAttributes :: Lens' GetPlatformApplicationAttributesResponse (HashMap Text Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gpaarsResponseStatus :: Lens' GetPlatformApplicationAttributesResponse Int
instance GHC.Generics.Generic Network.AWS.SNS.GetPlatformApplicationAttributes.GetPlatformApplicationAttributesResponse
instance Data.Data.Data Network.AWS.SNS.GetPlatformApplicationAttributes.GetPlatformApplicationAttributesResponse
instance GHC.Show.Show Network.AWS.SNS.GetPlatformApplicationAttributes.GetPlatformApplicationAttributesResponse
instance GHC.Read.Read Network.AWS.SNS.GetPlatformApplicationAttributes.GetPlatformApplicationAttributesResponse
instance GHC.Classes.Eq Network.AWS.SNS.GetPlatformApplicationAttributes.GetPlatformApplicationAttributesResponse
instance GHC.Generics.Generic Network.AWS.SNS.GetPlatformApplicationAttributes.GetPlatformApplicationAttributes
instance Data.Data.Data Network.AWS.SNS.GetPlatformApplicationAttributes.GetPlatformApplicationAttributes
instance GHC.Show.Show Network.AWS.SNS.GetPlatformApplicationAttributes.GetPlatformApplicationAttributes
instance GHC.Read.Read Network.AWS.SNS.GetPlatformApplicationAttributes.GetPlatformApplicationAttributes
instance GHC.Classes.Eq Network.AWS.SNS.GetPlatformApplicationAttributes.GetPlatformApplicationAttributes
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.GetPlatformApplicationAttributes.GetPlatformApplicationAttributes
instance Control.DeepSeq.NFData Network.AWS.SNS.GetPlatformApplicationAttributes.GetPlatformApplicationAttributesResponse
instance Data.Hashable.Class.Hashable Network.AWS.SNS.GetPlatformApplicationAttributes.GetPlatformApplicationAttributes
instance Control.DeepSeq.NFData Network.AWS.SNS.GetPlatformApplicationAttributes.GetPlatformApplicationAttributes
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.GetPlatformApplicationAttributes.GetPlatformApplicationAttributes
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.GetPlatformApplicationAttributes.GetPlatformApplicationAttributes
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.GetPlatformApplicationAttributes.GetPlatformApplicationAttributes


-- | Retrieves the endpoint attributes for a device on one of the supported
--   push notification services, such as GCM and APNS. For more
--   information, see <a>Using Amazon SNS Mobile Push Notifications</a> .
module Network.AWS.SNS.GetEndpointAttributes

-- | Creates a value of <a>GetEndpointAttributes</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>geaEndpointARN</a> - EndpointArn for GetEndpointAttributes
--   input.</li>
--   </ul>
getEndpointAttributes :: Text -> GetEndpointAttributes

-- | Input for GetEndpointAttributes action.
--   
--   <i>See:</i> <a>getEndpointAttributes</a> smart constructor.
data GetEndpointAttributes

-- | EndpointArn for GetEndpointAttributes input.
geaEndpointARN :: Lens' GetEndpointAttributes Text

-- | Creates a value of <a>GetEndpointAttributesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gearsAttributes</a> - Attributes include the following: *
--   <tt>CustomUserData</tt> -- arbitrary user data to associate with the
--   endpoint. Amazon SNS does not use this data. The data must be in UTF-8
--   format and less than 2KB. * <tt>Enabled</tt> -- flag that
--   enables/disables delivery to the endpoint. Amazon SNS will set this to
--   false when a notification service indicates to Amazon SNS that the
--   endpoint is invalid. Users can set it back to true, typically after
--   updating Token. * <tt>Token</tt> -- device token, also referred to as
--   a registration id, for an app and mobile device. This is returned from
--   the notification service when an app and mobile device are registered
--   with the notification service.</li>
--   <li><a>gearsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getEndpointAttributesResponse :: Int -> GetEndpointAttributesResponse

-- | Response from GetEndpointAttributes of the EndpointArn.
--   
--   <i>See:</i> <a>getEndpointAttributesResponse</a> smart constructor.
data GetEndpointAttributesResponse

-- | Attributes include the following: * <tt>CustomUserData</tt> --
--   arbitrary user data to associate with the endpoint. Amazon SNS does
--   not use this data. The data must be in UTF-8 format and less than 2KB.
--   * <tt>Enabled</tt> -- flag that enables/disables delivery to the
--   endpoint. Amazon SNS will set this to false when a notification
--   service indicates to Amazon SNS that the endpoint is invalid. Users
--   can set it back to true, typically after updating Token. *
--   <tt>Token</tt> -- device token, also referred to as a registration id,
--   for an app and mobile device. This is returned from the notification
--   service when an app and mobile device are registered with the
--   notification service.
gearsAttributes :: Lens' GetEndpointAttributesResponse (HashMap Text Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gearsResponseStatus :: Lens' GetEndpointAttributesResponse Int
instance GHC.Generics.Generic Network.AWS.SNS.GetEndpointAttributes.GetEndpointAttributesResponse
instance Data.Data.Data Network.AWS.SNS.GetEndpointAttributes.GetEndpointAttributesResponse
instance GHC.Show.Show Network.AWS.SNS.GetEndpointAttributes.GetEndpointAttributesResponse
instance GHC.Read.Read Network.AWS.SNS.GetEndpointAttributes.GetEndpointAttributesResponse
instance GHC.Classes.Eq Network.AWS.SNS.GetEndpointAttributes.GetEndpointAttributesResponse
instance GHC.Generics.Generic Network.AWS.SNS.GetEndpointAttributes.GetEndpointAttributes
instance Data.Data.Data Network.AWS.SNS.GetEndpointAttributes.GetEndpointAttributes
instance GHC.Show.Show Network.AWS.SNS.GetEndpointAttributes.GetEndpointAttributes
instance GHC.Read.Read Network.AWS.SNS.GetEndpointAttributes.GetEndpointAttributes
instance GHC.Classes.Eq Network.AWS.SNS.GetEndpointAttributes.GetEndpointAttributes
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.GetEndpointAttributes.GetEndpointAttributes
instance Control.DeepSeq.NFData Network.AWS.SNS.GetEndpointAttributes.GetEndpointAttributesResponse
instance Data.Hashable.Class.Hashable Network.AWS.SNS.GetEndpointAttributes.GetEndpointAttributes
instance Control.DeepSeq.NFData Network.AWS.SNS.GetEndpointAttributes.GetEndpointAttributes
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.GetEndpointAttributes.GetEndpointAttributes
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.GetEndpointAttributes.GetEndpointAttributes
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.GetEndpointAttributes.GetEndpointAttributes


-- | Deletes a topic and all its subscriptions. Deleting a topic might
--   prevent some messages previously sent to the topic from being
--   delivered to subscribers. This action is idempotent, so deleting a
--   topic that does not exist does not result in an error.
module Network.AWS.SNS.DeleteTopic

-- | Creates a value of <a>DeleteTopic</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dtTopicARN</a> - The ARN of the topic you want to delete.</li>
--   </ul>
deleteTopic :: Text -> DeleteTopic

-- | <i>See:</i> <a>deleteTopic</a> smart constructor.
data DeleteTopic

-- | The ARN of the topic you want to delete.
dtTopicARN :: Lens' DeleteTopic Text

-- | Creates a value of <a>DeleteTopicResponse</a> with the minimum fields
--   required to make a request.
deleteTopicResponse :: DeleteTopicResponse

-- | <i>See:</i> <a>deleteTopicResponse</a> smart constructor.
data DeleteTopicResponse
instance GHC.Generics.Generic Network.AWS.SNS.DeleteTopic.DeleteTopicResponse
instance Data.Data.Data Network.AWS.SNS.DeleteTopic.DeleteTopicResponse
instance GHC.Show.Show Network.AWS.SNS.DeleteTopic.DeleteTopicResponse
instance GHC.Read.Read Network.AWS.SNS.DeleteTopic.DeleteTopicResponse
instance GHC.Classes.Eq Network.AWS.SNS.DeleteTopic.DeleteTopicResponse
instance GHC.Generics.Generic Network.AWS.SNS.DeleteTopic.DeleteTopic
instance Data.Data.Data Network.AWS.SNS.DeleteTopic.DeleteTopic
instance GHC.Show.Show Network.AWS.SNS.DeleteTopic.DeleteTopic
instance GHC.Read.Read Network.AWS.SNS.DeleteTopic.DeleteTopic
instance GHC.Classes.Eq Network.AWS.SNS.DeleteTopic.DeleteTopic
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.DeleteTopic.DeleteTopic
instance Control.DeepSeq.NFData Network.AWS.SNS.DeleteTopic.DeleteTopicResponse
instance Data.Hashable.Class.Hashable Network.AWS.SNS.DeleteTopic.DeleteTopic
instance Control.DeepSeq.NFData Network.AWS.SNS.DeleteTopic.DeleteTopic
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.DeleteTopic.DeleteTopic
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.DeleteTopic.DeleteTopic
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.DeleteTopic.DeleteTopic


-- | Deletes a platform application object for one of the supported push
--   notification services, such as APNS and GCM. For more information, see
--   <a>Using Amazon SNS Mobile Push Notifications</a> .
module Network.AWS.SNS.DeletePlatformApplication

-- | Creates a value of <a>DeletePlatformApplication</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dpaPlatformApplicationARN</a> - PlatformApplicationArn of
--   platform application object to delete.</li>
--   </ul>
deletePlatformApplication :: Text -> DeletePlatformApplication

-- | Input for DeletePlatformApplication action.
--   
--   <i>See:</i> <a>deletePlatformApplication</a> smart constructor.
data DeletePlatformApplication

-- | PlatformApplicationArn of platform application object to delete.
dpaPlatformApplicationARN :: Lens' DeletePlatformApplication Text

-- | Creates a value of <a>DeletePlatformApplicationResponse</a> with the
--   minimum fields required to make a request.
deletePlatformApplicationResponse :: DeletePlatformApplicationResponse

-- | <i>See:</i> <a>deletePlatformApplicationResponse</a> smart
--   constructor.
data DeletePlatformApplicationResponse
instance GHC.Generics.Generic Network.AWS.SNS.DeletePlatformApplication.DeletePlatformApplicationResponse
instance Data.Data.Data Network.AWS.SNS.DeletePlatformApplication.DeletePlatformApplicationResponse
instance GHC.Show.Show Network.AWS.SNS.DeletePlatformApplication.DeletePlatformApplicationResponse
instance GHC.Read.Read Network.AWS.SNS.DeletePlatformApplication.DeletePlatformApplicationResponse
instance GHC.Classes.Eq Network.AWS.SNS.DeletePlatformApplication.DeletePlatformApplicationResponse
instance GHC.Generics.Generic Network.AWS.SNS.DeletePlatformApplication.DeletePlatformApplication
instance Data.Data.Data Network.AWS.SNS.DeletePlatformApplication.DeletePlatformApplication
instance GHC.Show.Show Network.AWS.SNS.DeletePlatformApplication.DeletePlatformApplication
instance GHC.Read.Read Network.AWS.SNS.DeletePlatformApplication.DeletePlatformApplication
instance GHC.Classes.Eq Network.AWS.SNS.DeletePlatformApplication.DeletePlatformApplication
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.DeletePlatformApplication.DeletePlatformApplication
instance Control.DeepSeq.NFData Network.AWS.SNS.DeletePlatformApplication.DeletePlatformApplicationResponse
instance Data.Hashable.Class.Hashable Network.AWS.SNS.DeletePlatformApplication.DeletePlatformApplication
instance Control.DeepSeq.NFData Network.AWS.SNS.DeletePlatformApplication.DeletePlatformApplication
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.DeletePlatformApplication.DeletePlatformApplication
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.DeletePlatformApplication.DeletePlatformApplication
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.DeletePlatformApplication.DeletePlatformApplication


-- | Deletes the endpoint for a device and mobile app from Amazon SNS. This
--   action is idempotent. For more information, see <a>Using Amazon SNS
--   Mobile Push Notifications</a> .
--   
--   When you delete an endpoint that is also subscribed to a topic, then
--   you must also unsubscribe the endpoint from the topic.
module Network.AWS.SNS.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>deEndpointARN</a> - EndpointArn of endpoint to delete.</li>
--   </ul>
deleteEndpoint :: Text -> DeleteEndpoint

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

-- | EndpointArn of endpoint to delete.
deEndpointARN :: Lens' DeleteEndpoint Text

-- | Creates a value of <a>DeleteEndpointResponse</a> with the minimum
--   fields required to make a request.
deleteEndpointResponse :: DeleteEndpointResponse

-- | <i>See:</i> <a>deleteEndpointResponse</a> smart constructor.
data DeleteEndpointResponse
instance GHC.Generics.Generic Network.AWS.SNS.DeleteEndpoint.DeleteEndpointResponse
instance Data.Data.Data Network.AWS.SNS.DeleteEndpoint.DeleteEndpointResponse
instance GHC.Show.Show Network.AWS.SNS.DeleteEndpoint.DeleteEndpointResponse
instance GHC.Read.Read Network.AWS.SNS.DeleteEndpoint.DeleteEndpointResponse
instance GHC.Classes.Eq Network.AWS.SNS.DeleteEndpoint.DeleteEndpointResponse
instance GHC.Generics.Generic Network.AWS.SNS.DeleteEndpoint.DeleteEndpoint
instance Data.Data.Data Network.AWS.SNS.DeleteEndpoint.DeleteEndpoint
instance GHC.Show.Show Network.AWS.SNS.DeleteEndpoint.DeleteEndpoint
instance GHC.Read.Read Network.AWS.SNS.DeleteEndpoint.DeleteEndpoint
instance GHC.Classes.Eq Network.AWS.SNS.DeleteEndpoint.DeleteEndpoint
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.DeleteEndpoint.DeleteEndpoint
instance Control.DeepSeq.NFData Network.AWS.SNS.DeleteEndpoint.DeleteEndpointResponse
instance Data.Hashable.Class.Hashable Network.AWS.SNS.DeleteEndpoint.DeleteEndpoint
instance Control.DeepSeq.NFData Network.AWS.SNS.DeleteEndpoint.DeleteEndpoint
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.DeleteEndpoint.DeleteEndpoint
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.DeleteEndpoint.DeleteEndpoint
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.DeleteEndpoint.DeleteEndpoint


-- | Creates a topic to which notifications can be published. Users can
--   create at most 100,000 topics. For more information, see
--   <a>http://aws.amazon.com/sns</a> . This action is idempotent, so if
--   the requester already owns a topic with the specified name, that
--   topic's ARN is returned without creating a new topic.
module Network.AWS.SNS.CreateTopic

-- | Creates a value of <a>CreateTopic</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ctName</a> - The name of the topic you want to create.
--   Constraints: Topic names must be made up of only uppercase and
--   lowercase ASCII letters, numbers, underscores, and hyphens, and must
--   be between 1 and 256 characters long.</li>
--   </ul>
createTopic :: Text -> CreateTopic

-- | Input for CreateTopic action.
--   
--   <i>See:</i> <a>createTopic</a> smart constructor.
data CreateTopic

-- | The name of the topic you want to create. Constraints: Topic names
--   must be made up of only uppercase and lowercase ASCII letters,
--   numbers, underscores, and hyphens, and must be between 1 and 256
--   characters long.
ctName :: Lens' CreateTopic Text

-- | Creates a value of <a>CreateTopicResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ctrsTopicARN</a> - The Amazon Resource Name (ARN) assigned to
--   the created topic.</li>
--   <li><a>ctrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createTopicResponse :: Int -> CreateTopicResponse

-- | Response from CreateTopic action.
--   
--   <i>See:</i> <a>createTopicResponse</a> smart constructor.
data CreateTopicResponse

-- | The Amazon Resource Name (ARN) assigned to the created topic.
ctrsTopicARN :: Lens' CreateTopicResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ctrsResponseStatus :: Lens' CreateTopicResponse Int
instance GHC.Generics.Generic Network.AWS.SNS.CreateTopic.CreateTopicResponse
instance Data.Data.Data Network.AWS.SNS.CreateTopic.CreateTopicResponse
instance GHC.Show.Show Network.AWS.SNS.CreateTopic.CreateTopicResponse
instance GHC.Read.Read Network.AWS.SNS.CreateTopic.CreateTopicResponse
instance GHC.Classes.Eq Network.AWS.SNS.CreateTopic.CreateTopicResponse
instance GHC.Generics.Generic Network.AWS.SNS.CreateTopic.CreateTopic
instance Data.Data.Data Network.AWS.SNS.CreateTopic.CreateTopic
instance GHC.Show.Show Network.AWS.SNS.CreateTopic.CreateTopic
instance GHC.Read.Read Network.AWS.SNS.CreateTopic.CreateTopic
instance GHC.Classes.Eq Network.AWS.SNS.CreateTopic.CreateTopic
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.CreateTopic.CreateTopic
instance Control.DeepSeq.NFData Network.AWS.SNS.CreateTopic.CreateTopicResponse
instance Data.Hashable.Class.Hashable Network.AWS.SNS.CreateTopic.CreateTopic
instance Control.DeepSeq.NFData Network.AWS.SNS.CreateTopic.CreateTopic
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.CreateTopic.CreateTopic
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.CreateTopic.CreateTopic
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.CreateTopic.CreateTopic


-- | Creates an endpoint for a device and mobile app on one of the
--   supported push notification services, such as GCM and APNS.
--   <tt>CreatePlatformEndpoint</tt> requires the PlatformApplicationArn
--   that is returned from <tt>CreatePlatformApplication</tt> . The
--   EndpointArn that is returned when using
--   <tt>CreatePlatformEndpoint</tt> can then be used by the
--   <tt>Publish</tt> action to send a message to a mobile app or by the
--   <tt>Subscribe</tt> action for subscription to a topic. The
--   <tt>CreatePlatformEndpoint</tt> action is idempotent, so if the
--   requester already owns an endpoint with the same device token and
--   attributes, that endpoint's ARN is returned without creating a new
--   endpoint. For more information, see <a>Using Amazon SNS Mobile Push
--   Notifications</a> .
--   
--   When using <tt>CreatePlatformEndpoint</tt> with Baidu, two attributes
--   must be provided: ChannelId and UserId. The token field must also
--   contain the ChannelId. For more information, see <a>Creating an Amazon
--   SNS Endpoint for Baidu</a> .
module Network.AWS.SNS.CreatePlatformEndpoint

-- | Creates a value of <a>CreatePlatformEndpoint</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cpeCustomUserData</a> - Arbitrary user data to associate with
--   the endpoint. Amazon SNS does not use this data. The data must be in
--   UTF-8 format and less than 2KB.</li>
--   <li><a>cpeAttributes</a> - For a list of attributes, see
--   <a>SetEndpointAttributes</a> .</li>
--   <li><a>cpePlatformApplicationARN</a> - PlatformApplicationArn returned
--   from CreatePlatformApplication is used to create a an endpoint.</li>
--   <li><a>cpeToken</a> - Unique identifier created by the notification
--   service for an app on a device. The specific name for Token will vary,
--   depending on which notification service is being used. For example,
--   when using APNS as the notification service, you need the device
--   token. Alternatively, when using GCM or ADM, the device token
--   equivalent is called the registration ID.</li>
--   </ul>
createPlatformEndpoint :: Text -> Text -> CreatePlatformEndpoint

-- | Input for CreatePlatformEndpoint action.
--   
--   <i>See:</i> <a>createPlatformEndpoint</a> smart constructor.
data CreatePlatformEndpoint

-- | Arbitrary user data to associate with the endpoint. Amazon SNS does
--   not use this data. The data must be in UTF-8 format and less than 2KB.
cpeCustomUserData :: Lens' CreatePlatformEndpoint (Maybe Text)

-- | For a list of attributes, see <a>SetEndpointAttributes</a> .
cpeAttributes :: Lens' CreatePlatformEndpoint (HashMap Text Text)

-- | PlatformApplicationArn returned from CreatePlatformApplication is used
--   to create a an endpoint.
cpePlatformApplicationARN :: Lens' CreatePlatformEndpoint Text

-- | Unique identifier created by the notification service for an app on a
--   device. The specific name for Token will vary, depending on which
--   notification service is being used. For example, when using APNS as
--   the notification service, you need the device token. Alternatively,
--   when using GCM or ADM, the device token equivalent is called the
--   registration ID.
cpeToken :: Lens' CreatePlatformEndpoint Text

-- | Creates a value of <a>CreatePlatformEndpointResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cpersEndpointARN</a> - EndpointArn returned from CreateEndpoint
--   action.</li>
--   <li><a>cpersResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createPlatformEndpointResponse :: Int -> CreatePlatformEndpointResponse

-- | Response from CreateEndpoint action.
--   
--   <i>See:</i> <a>createPlatformEndpointResponse</a> smart constructor.
data CreatePlatformEndpointResponse

-- | EndpointArn returned from CreateEndpoint action.
cpersEndpointARN :: Lens' CreatePlatformEndpointResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cpersResponseStatus :: Lens' CreatePlatformEndpointResponse Int
instance GHC.Generics.Generic Network.AWS.SNS.CreatePlatformEndpoint.CreatePlatformEndpointResponse
instance Data.Data.Data Network.AWS.SNS.CreatePlatformEndpoint.CreatePlatformEndpointResponse
instance GHC.Show.Show Network.AWS.SNS.CreatePlatformEndpoint.CreatePlatformEndpointResponse
instance GHC.Read.Read Network.AWS.SNS.CreatePlatformEndpoint.CreatePlatformEndpointResponse
instance GHC.Classes.Eq Network.AWS.SNS.CreatePlatformEndpoint.CreatePlatformEndpointResponse
instance GHC.Generics.Generic Network.AWS.SNS.CreatePlatformEndpoint.CreatePlatformEndpoint
instance Data.Data.Data Network.AWS.SNS.CreatePlatformEndpoint.CreatePlatformEndpoint
instance GHC.Show.Show Network.AWS.SNS.CreatePlatformEndpoint.CreatePlatformEndpoint
instance GHC.Read.Read Network.AWS.SNS.CreatePlatformEndpoint.CreatePlatformEndpoint
instance GHC.Classes.Eq Network.AWS.SNS.CreatePlatformEndpoint.CreatePlatformEndpoint
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.CreatePlatformEndpoint.CreatePlatformEndpoint
instance Control.DeepSeq.NFData Network.AWS.SNS.CreatePlatformEndpoint.CreatePlatformEndpointResponse
instance Data.Hashable.Class.Hashable Network.AWS.SNS.CreatePlatformEndpoint.CreatePlatformEndpoint
instance Control.DeepSeq.NFData Network.AWS.SNS.CreatePlatformEndpoint.CreatePlatformEndpoint
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.CreatePlatformEndpoint.CreatePlatformEndpoint
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.CreatePlatformEndpoint.CreatePlatformEndpoint
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.CreatePlatformEndpoint.CreatePlatformEndpoint


-- | Creates a platform application object for one of the supported push
--   notification services, such as APNS and GCM, to which devices and
--   mobile apps may register. You must specify PlatformPrincipal and
--   PlatformCredential attributes when using the
--   <tt>CreatePlatformApplication</tt> action. The PlatformPrincipal is
--   received from the notification service. For APNS/APNS_SANDBOX,
--   PlatformPrincipal is "SSL certificate". For GCM, PlatformPrincipal is
--   not applicable. For ADM, PlatformPrincipal is "client id". The
--   PlatformCredential is also received from the notification service. For
--   WNS, PlatformPrincipal is "Package Security Identifier". For MPNS,
--   PlatformPrincipal is "TLS certificate". For Baidu, PlatformPrincipal
--   is "API key".
--   
--   For APNS<i>APNS_SANDBOX, PlatformCredential is "private key". For GCM,
--   PlatformCredential is "API key". For ADM, PlatformCredential is
--   "client secret". For WNS, PlatformCredential is "secret key". For
--   MPNS, PlatformCredential is "private key". For Baidu,
--   PlatformCredential is "secret key". The PlatformApplicationArn that is
--   returned when using <tt>CreatePlatformApplication</tt> is then used as
--   an attribute for the <tt>CreatePlatformEndpoint</tt> action. For more
--   information, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>sns<i>latest</i>dg<i>SNSMobilePush.html
--   Using Amazon SNS Mobile Push Notifications&gt; . For more information
--   about obtaining the PlatformPrincipal and PlatformCredential for each
--   of the supported push notification services, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>sns<i>latest</i>dg<i>mobile-push-apns.html
--   Getting Started with Apple Push Notification Service&gt; ,
--   &lt;http:</i><i>docs.aws.amazon.com</i>sns<i>latest</i>dg<i>mobile-push-adm.html
--   Getting Started with Amazon Device Messaging&gt; ,
--   &lt;http:</i><i>docs.aws.amazon.com</i>sns<i>latest</i>dg<i>mobile-push-baidu.html
--   Getting Started with Baidu Cloud Push&gt; ,
--   &lt;http:</i><i>docs.aws.amazon.com</i>sns<i>latest</i>dg<i>mobile-push-gcm.html
--   Getting Started with Google Cloud Messaging for Android&gt; ,
--   &lt;http:</i><i>docs.aws.amazon.com</i>sns<i>latest</i>dg<i>mobile-push-mpns.html
--   Getting Started with MPNS&gt; , or
--   &lt;http:</i><i>docs.aws.amazon.com</i>sns<i>latest</i>dg/mobile-push-wns.html
--   Getting Started with WNS&gt; .
module Network.AWS.SNS.CreatePlatformApplication

-- | Creates a value of <a>CreatePlatformApplication</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cpaName</a> - Application names must be made up of only
--   uppercase and lowercase ASCII letters, numbers, underscores, hyphens,
--   and periods, and must be between 1 and 256 characters long.</li>
--   <li><a>cpaPlatform</a> - The following platforms are supported: ADM
--   (Amazon Device Messaging), APNS (Apple Push Notification Service),
--   APNS_SANDBOX, and GCM (Google Cloud Messaging).</li>
--   <li><a>cpaAttributes</a> - For a list of attributes, see
--   <a>SetPlatformApplicationAttributes</a></li>
--   </ul>
createPlatformApplication :: Text -> Text -> CreatePlatformApplication

-- | Input for CreatePlatformApplication action.
--   
--   <i>See:</i> <a>createPlatformApplication</a> smart constructor.
data CreatePlatformApplication

-- | Application names must be made up of only uppercase and lowercase
--   ASCII letters, numbers, underscores, hyphens, and periods, and must be
--   between 1 and 256 characters long.
cpaName :: Lens' CreatePlatformApplication Text

-- | The following platforms are supported: ADM (Amazon Device Messaging),
--   APNS (Apple Push Notification Service), APNS_SANDBOX, and GCM (Google
--   Cloud Messaging).
cpaPlatform :: Lens' CreatePlatformApplication Text

-- | For a list of attributes, see <a>SetPlatformApplicationAttributes</a>
cpaAttributes :: Lens' CreatePlatformApplication (HashMap Text Text)

-- | Creates a value of <a>CreatePlatformApplicationResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cparsPlatformApplicationARN</a> - PlatformApplicationArn is
--   returned.</li>
--   <li><a>cparsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createPlatformApplicationResponse :: Int -> CreatePlatformApplicationResponse

-- | Response from CreatePlatformApplication action.
--   
--   <i>See:</i> <a>createPlatformApplicationResponse</a> smart
--   constructor.
data CreatePlatformApplicationResponse

-- | PlatformApplicationArn is returned.
cparsPlatformApplicationARN :: Lens' CreatePlatformApplicationResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cparsResponseStatus :: Lens' CreatePlatformApplicationResponse Int
instance GHC.Generics.Generic Network.AWS.SNS.CreatePlatformApplication.CreatePlatformApplicationResponse
instance Data.Data.Data Network.AWS.SNS.CreatePlatformApplication.CreatePlatformApplicationResponse
instance GHC.Show.Show Network.AWS.SNS.CreatePlatformApplication.CreatePlatformApplicationResponse
instance GHC.Read.Read Network.AWS.SNS.CreatePlatformApplication.CreatePlatformApplicationResponse
instance GHC.Classes.Eq Network.AWS.SNS.CreatePlatformApplication.CreatePlatformApplicationResponse
instance GHC.Generics.Generic Network.AWS.SNS.CreatePlatformApplication.CreatePlatformApplication
instance Data.Data.Data Network.AWS.SNS.CreatePlatformApplication.CreatePlatformApplication
instance GHC.Show.Show Network.AWS.SNS.CreatePlatformApplication.CreatePlatformApplication
instance GHC.Read.Read Network.AWS.SNS.CreatePlatformApplication.CreatePlatformApplication
instance GHC.Classes.Eq Network.AWS.SNS.CreatePlatformApplication.CreatePlatformApplication
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.CreatePlatformApplication.CreatePlatformApplication
instance Control.DeepSeq.NFData Network.AWS.SNS.CreatePlatformApplication.CreatePlatformApplicationResponse
instance Data.Hashable.Class.Hashable Network.AWS.SNS.CreatePlatformApplication.CreatePlatformApplication
instance Control.DeepSeq.NFData Network.AWS.SNS.CreatePlatformApplication.CreatePlatformApplication
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.CreatePlatformApplication.CreatePlatformApplication
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.CreatePlatformApplication.CreatePlatformApplication
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.CreatePlatformApplication.CreatePlatformApplication


-- | Verifies an endpoint owner's intent to receive messages by validating
--   the token sent to the endpoint by an earlier <tt>Subscribe</tt>
--   action. If the token is valid, the action creates a new subscription
--   and returns its Amazon Resource Name (ARN). This call requires an AWS
--   signature only when the <tt>AuthenticateOnUnsubscribe</tt> flag is set
--   to "true".
module Network.AWS.SNS.ConfirmSubscription

-- | Creates a value of <a>ConfirmSubscription</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csAuthenticateOnUnsubscribe</a> - Disallows unauthenticated
--   unsubscribes of the subscription. If the value of this parameter is
--   <tt>true</tt> and the request has an AWS signature, then only the
--   topic owner and the subscription owner can unsubscribe the endpoint.
--   The unsubscribe action requires AWS authentication.</li>
--   <li><a>csTopicARN</a> - The ARN of the topic for which you wish to
--   confirm a subscription.</li>
--   <li><a>csToken</a> - Short-lived token sent to an endpoint during the
--   <tt>Subscribe</tt> action.</li>
--   </ul>
confirmSubscription :: Text -> Text -> ConfirmSubscription

-- | Input for ConfirmSubscription action.
--   
--   <i>See:</i> <a>confirmSubscription</a> smart constructor.
data ConfirmSubscription

-- | Disallows unauthenticated unsubscribes of the subscription. If the
--   value of this parameter is <tt>true</tt> and the request has an AWS
--   signature, then only the topic owner and the subscription owner can
--   unsubscribe the endpoint. The unsubscribe action requires AWS
--   authentication.
csAuthenticateOnUnsubscribe :: Lens' ConfirmSubscription (Maybe Text)

-- | The ARN of the topic for which you wish to confirm a subscription.
csTopicARN :: Lens' ConfirmSubscription Text

-- | Short-lived token sent to an endpoint during the <tt>Subscribe</tt>
--   action.
csToken :: Lens' ConfirmSubscription Text

-- | Creates a value of <a>ConfirmSubscriptionResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csrsSubscriptionARN</a> - The ARN of the created
--   subscription.</li>
--   <li><a>csrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
confirmSubscriptionResponse :: Int -> ConfirmSubscriptionResponse

-- | Response for ConfirmSubscriptions action.
--   
--   <i>See:</i> <a>confirmSubscriptionResponse</a> smart constructor.
data ConfirmSubscriptionResponse

-- | The ARN of the created subscription.
csrsSubscriptionARN :: Lens' ConfirmSubscriptionResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
csrsResponseStatus :: Lens' ConfirmSubscriptionResponse Int
instance GHC.Generics.Generic Network.AWS.SNS.ConfirmSubscription.ConfirmSubscriptionResponse
instance Data.Data.Data Network.AWS.SNS.ConfirmSubscription.ConfirmSubscriptionResponse
instance GHC.Show.Show Network.AWS.SNS.ConfirmSubscription.ConfirmSubscriptionResponse
instance GHC.Read.Read Network.AWS.SNS.ConfirmSubscription.ConfirmSubscriptionResponse
instance GHC.Classes.Eq Network.AWS.SNS.ConfirmSubscription.ConfirmSubscriptionResponse
instance GHC.Generics.Generic Network.AWS.SNS.ConfirmSubscription.ConfirmSubscription
instance Data.Data.Data Network.AWS.SNS.ConfirmSubscription.ConfirmSubscription
instance GHC.Show.Show Network.AWS.SNS.ConfirmSubscription.ConfirmSubscription
instance GHC.Read.Read Network.AWS.SNS.ConfirmSubscription.ConfirmSubscription
instance GHC.Classes.Eq Network.AWS.SNS.ConfirmSubscription.ConfirmSubscription
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.ConfirmSubscription.ConfirmSubscription
instance Control.DeepSeq.NFData Network.AWS.SNS.ConfirmSubscription.ConfirmSubscriptionResponse
instance Data.Hashable.Class.Hashable Network.AWS.SNS.ConfirmSubscription.ConfirmSubscription
instance Control.DeepSeq.NFData Network.AWS.SNS.ConfirmSubscription.ConfirmSubscription
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.ConfirmSubscription.ConfirmSubscription
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.ConfirmSubscription.ConfirmSubscription
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.ConfirmSubscription.ConfirmSubscription


-- | Accepts a phone number and indicates whether the phone holder has
--   opted out of receiving SMS messages from your account. You cannot send
--   SMS messages to a number that is opted out.
--   
--   To resume sending messages, you can opt in the number by using the
--   <tt>OptInPhoneNumber</tt> action.
module Network.AWS.SNS.CheckIfPhoneNumberIsOptedOut

-- | Creates a value of <a>CheckIfPhoneNumberIsOptedOut</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cipniooPhoneNumber</a> - The phone number for which you want to
--   check the opt out status.</li>
--   </ul>
checkIfPhoneNumberIsOptedOut :: Text -> CheckIfPhoneNumberIsOptedOut

-- | The input for the <tt>CheckIfPhoneNumberIsOptedOut</tt> action.
--   
--   <i>See:</i> <a>checkIfPhoneNumberIsOptedOut</a> smart constructor.
data CheckIfPhoneNumberIsOptedOut

-- | The phone number for which you want to check the opt out status.
cipniooPhoneNumber :: Lens' CheckIfPhoneNumberIsOptedOut Text

-- | Creates a value of <a>CheckIfPhoneNumberIsOptedOutResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cipnioorsIsOptedOut</a> - Indicates whether the phone number is
--   opted out: * <tt>true</tt> – The phone number is opted out, meaning
--   you cannot publish SMS messages to it. * <tt>false</tt> – The phone
--   number is opted in, meaning you can publish SMS messages to it.</li>
--   <li><a>cipnioorsResponseStatus</a> - -- | The response status
--   code.</li>
--   </ul>
checkIfPhoneNumberIsOptedOutResponse :: Int -> CheckIfPhoneNumberIsOptedOutResponse

-- | The response from the <tt>CheckIfPhoneNumberIsOptedOut</tt> action.
--   
--   <i>See:</i> <a>checkIfPhoneNumberIsOptedOutResponse</a> smart
--   constructor.
data CheckIfPhoneNumberIsOptedOutResponse

-- | Indicates whether the phone number is opted out: * <tt>true</tt> – The
--   phone number is opted out, meaning you cannot publish SMS messages to
--   it. * <tt>false</tt> – The phone number is opted in, meaning you can
--   publish SMS messages to it.
cipnioorsIsOptedOut :: Lens' CheckIfPhoneNumberIsOptedOutResponse (Maybe Bool)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cipnioorsResponseStatus :: Lens' CheckIfPhoneNumberIsOptedOutResponse Int
instance GHC.Generics.Generic Network.AWS.SNS.CheckIfPhoneNumberIsOptedOut.CheckIfPhoneNumberIsOptedOutResponse
instance Data.Data.Data Network.AWS.SNS.CheckIfPhoneNumberIsOptedOut.CheckIfPhoneNumberIsOptedOutResponse
instance GHC.Show.Show Network.AWS.SNS.CheckIfPhoneNumberIsOptedOut.CheckIfPhoneNumberIsOptedOutResponse
instance GHC.Read.Read Network.AWS.SNS.CheckIfPhoneNumberIsOptedOut.CheckIfPhoneNumberIsOptedOutResponse
instance GHC.Classes.Eq Network.AWS.SNS.CheckIfPhoneNumberIsOptedOut.CheckIfPhoneNumberIsOptedOutResponse
instance GHC.Generics.Generic Network.AWS.SNS.CheckIfPhoneNumberIsOptedOut.CheckIfPhoneNumberIsOptedOut
instance Data.Data.Data Network.AWS.SNS.CheckIfPhoneNumberIsOptedOut.CheckIfPhoneNumberIsOptedOut
instance GHC.Show.Show Network.AWS.SNS.CheckIfPhoneNumberIsOptedOut.CheckIfPhoneNumberIsOptedOut
instance GHC.Read.Read Network.AWS.SNS.CheckIfPhoneNumberIsOptedOut.CheckIfPhoneNumberIsOptedOut
instance GHC.Classes.Eq Network.AWS.SNS.CheckIfPhoneNumberIsOptedOut.CheckIfPhoneNumberIsOptedOut
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.CheckIfPhoneNumberIsOptedOut.CheckIfPhoneNumberIsOptedOut
instance Control.DeepSeq.NFData Network.AWS.SNS.CheckIfPhoneNumberIsOptedOut.CheckIfPhoneNumberIsOptedOutResponse
instance Data.Hashable.Class.Hashable Network.AWS.SNS.CheckIfPhoneNumberIsOptedOut.CheckIfPhoneNumberIsOptedOut
instance Control.DeepSeq.NFData Network.AWS.SNS.CheckIfPhoneNumberIsOptedOut.CheckIfPhoneNumberIsOptedOut
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.CheckIfPhoneNumberIsOptedOut.CheckIfPhoneNumberIsOptedOut
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.CheckIfPhoneNumberIsOptedOut.CheckIfPhoneNumberIsOptedOut
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.CheckIfPhoneNumberIsOptedOut.CheckIfPhoneNumberIsOptedOut


-- | Adds a statement to a topic's access control policy, granting access
--   for the specified AWS accounts to the specified actions.
module Network.AWS.SNS.AddPermission

-- | Creates a value of <a>AddPermission</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>apTopicARN</a> - The ARN of the topic whose access control
--   policy you wish to modify.</li>
--   <li><a>apLabel</a> - A unique identifier for the new policy
--   statement.</li>
--   <li><a>apAWSAccountId</a> - The AWS account IDs of the users
--   (principals) who will be given access to the specified actions. The
--   users must have AWS accounts, but do not need to be signed up for this
--   service.</li>
--   <li><a>apActionName</a> - The action you want to allow for the
--   specified principal(s). Valid values: any Amazon SNS action name.</li>
--   </ul>
addPermission :: Text -> Text -> AddPermission

-- | <i>See:</i> <a>addPermission</a> smart constructor.
data AddPermission

-- | The ARN of the topic whose access control policy you wish to modify.
apTopicARN :: Lens' AddPermission Text

-- | A unique identifier for the new policy statement.
apLabel :: Lens' AddPermission Text

-- | The AWS account IDs of the users (principals) who will be given access
--   to the specified actions. The users must have AWS accounts, but do not
--   need to be signed up for this service.
apAWSAccountId :: Lens' AddPermission [Text]

-- | The action you want to allow for the specified principal(s). Valid
--   values: any Amazon SNS action name.
apActionName :: Lens' AddPermission [Text]

-- | Creates a value of <a>AddPermissionResponse</a> with the minimum
--   fields required to make a request.
addPermissionResponse :: AddPermissionResponse

-- | <i>See:</i> <a>addPermissionResponse</a> smart constructor.
data AddPermissionResponse
instance GHC.Generics.Generic Network.AWS.SNS.AddPermission.AddPermissionResponse
instance Data.Data.Data Network.AWS.SNS.AddPermission.AddPermissionResponse
instance GHC.Show.Show Network.AWS.SNS.AddPermission.AddPermissionResponse
instance GHC.Read.Read Network.AWS.SNS.AddPermission.AddPermissionResponse
instance GHC.Classes.Eq Network.AWS.SNS.AddPermission.AddPermissionResponse
instance GHC.Generics.Generic Network.AWS.SNS.AddPermission.AddPermission
instance Data.Data.Data Network.AWS.SNS.AddPermission.AddPermission
instance GHC.Show.Show Network.AWS.SNS.AddPermission.AddPermission
instance GHC.Read.Read Network.AWS.SNS.AddPermission.AddPermission
instance GHC.Classes.Eq Network.AWS.SNS.AddPermission.AddPermission
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.AddPermission.AddPermission
instance Control.DeepSeq.NFData Network.AWS.SNS.AddPermission.AddPermissionResponse
instance Data.Hashable.Class.Hashable Network.AWS.SNS.AddPermission.AddPermission
instance Control.DeepSeq.NFData Network.AWS.SNS.AddPermission.AddPermission
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.AddPermission.AddPermission
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.AddPermission.AddPermission
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.AddPermission.AddPermission


-- | Deletes a subscription. If the subscription requires authentication
--   for deletion, only the owner of the subscription or the topic's owner
--   can unsubscribe, and an AWS signature is required. If the
--   <tt>Unsubscribe</tt> call does not require authentication and the
--   requester is not the subscription owner, a final cancellation message
--   is delivered to the endpoint, so that the endpoint owner can easily
--   resubscribe to the topic if the <tt>Unsubscribe</tt> request was
--   unintended.
module Network.AWS.SNS.Unsubscribe

-- | Creates a value of <a>Unsubscribe</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uSubscriptionARN</a> - The ARN of the subscription to be
--   deleted.</li>
--   </ul>
unsubscribe :: Text -> Unsubscribe

-- | Input for Unsubscribe action.
--   
--   <i>See:</i> <a>unsubscribe</a> smart constructor.
data Unsubscribe

-- | The ARN of the subscription to be deleted.
uSubscriptionARN :: Lens' Unsubscribe Text

-- | Creates a value of <a>UnsubscribeResponse</a> with the minimum fields
--   required to make a request.
unsubscribeResponse :: UnsubscribeResponse

-- | <i>See:</i> <a>unsubscribeResponse</a> smart constructor.
data UnsubscribeResponse
instance GHC.Generics.Generic Network.AWS.SNS.Unsubscribe.UnsubscribeResponse
instance Data.Data.Data Network.AWS.SNS.Unsubscribe.UnsubscribeResponse
instance GHC.Show.Show Network.AWS.SNS.Unsubscribe.UnsubscribeResponse
instance GHC.Read.Read Network.AWS.SNS.Unsubscribe.UnsubscribeResponse
instance GHC.Classes.Eq Network.AWS.SNS.Unsubscribe.UnsubscribeResponse
instance GHC.Generics.Generic Network.AWS.SNS.Unsubscribe.Unsubscribe
instance Data.Data.Data Network.AWS.SNS.Unsubscribe.Unsubscribe
instance GHC.Show.Show Network.AWS.SNS.Unsubscribe.Unsubscribe
instance GHC.Read.Read Network.AWS.SNS.Unsubscribe.Unsubscribe
instance GHC.Classes.Eq Network.AWS.SNS.Unsubscribe.Unsubscribe
instance Network.AWS.Types.AWSRequest Network.AWS.SNS.Unsubscribe.Unsubscribe
instance Control.DeepSeq.NFData Network.AWS.SNS.Unsubscribe.UnsubscribeResponse
instance Data.Hashable.Class.Hashable Network.AWS.SNS.Unsubscribe.Unsubscribe
instance Control.DeepSeq.NFData Network.AWS.SNS.Unsubscribe.Unsubscribe
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.SNS.Unsubscribe.Unsubscribe
instance Network.AWS.Data.Path.ToPath Network.AWS.SNS.Unsubscribe.Unsubscribe
instance Network.AWS.Data.Query.ToQuery Network.AWS.SNS.Unsubscribe.Unsubscribe


module Network.AWS.SNS.Waiters


-- | <b>Amazon Simple Notification Service</b>
--   
--   Amazon Simple Notification Service (Amazon SNS) is a web service that
--   enables you to build distributed web-enabled applications.
--   Applications can use Amazon SNS to easily push real-time notification
--   messages to interested subscribers over multiple delivery protocols.
--   For more information about this product see
--   <a>http://aws.amazon.com/sns</a> . For detailed information about
--   Amazon SNS features and their associated API calls, see the <a>Amazon
--   SNS Developer Guide</a> .
--   
--   We also provide SDKs that enable you to access Amazon SNS from your
--   preferred programming language. The SDKs contain functionality that
--   automatically takes care of tasks such as: cryptographically signing
--   your service requests, retrying requests, and handling error
--   responses. For a list of available SDKs, go to <a>Tools for Amazon Web
--   Services</a> .
module Network.AWS.SNS

-- | API version <tt>2010-03-31</tt> of the Amazon Simple Notification
--   Service SDK configuration.
sns :: Service

-- | Exception error indicating endpoint disabled.
_EndpointDisabledException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Indicates that the user has been denied access to the requested
--   resource.
_AuthorizationErrorException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Indicates that a request parameter does not comply with the associated
--   constraints.
_InvalidParameterException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Indicates that the customer already owns the maximum allowed number of
--   subscriptions.
_SubscriptionLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Exception error indicating platform application disabled.
_PlatformApplicationDisabledException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Indicates an internal service error.
_InternalErrorException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Indicates that the rate at which requests have been submitted for this
--   action exceeds the limit for your account.
_ThrottledException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Indicates that a request parameter does not comply with the associated
--   constraints.
_InvalidParameterValueException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Indicates that the requested resource does not exist.
_NotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Indicates that the customer already owns the maximum allowed number of
--   topics.
_TopicLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Endpoint for mobile app and device.
--   
--   <i>See:</i> <a>endpoint</a> smart constructor.
data Endpoint

-- | Creates a value of <a>Endpoint</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eAttributes</a> - Attributes for endpoint.</li>
--   <li><a>eEndpointARN</a> - EndpointArn for mobile app and device.</li>
--   </ul>
endpoint :: Endpoint

-- | Attributes for endpoint.
eAttributes :: Lens' Endpoint (HashMap Text Text)

-- | EndpointArn for mobile app and device.
eEndpointARN :: Lens' Endpoint (Maybe Text)

-- | The user-specified message attribute value. For string data types, the
--   value attribute has the same restrictions on the content as the
--   message body. For more information, see <a>Publish</a> .
--   
--   Name, type, and value must not be empty or null. In addition, the
--   message body should not be empty or null. All parts of the message
--   attribute, including name, type, and value, are included in the
--   message size restriction, which is currently 256 KB (262,144 bytes).
--   For more information, see <a>Using Amazon SNS Message Attributes</a> .
--   
--   <i>See:</i> <a>messageAttributeValue</a> smart constructor.
data MessageAttributeValue

-- | Creates a value of <a>MessageAttributeValue</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mavBinaryValue</a> - Binary type attributes can store any
--   binary data, for example, compressed data, encrypted data, or
--   images.-- <i>Note:</i> This <tt>Lens</tt> automatically encodes and
--   decodes Base64 data. The underlying isomorphism will encode to Base64
--   representation during serialisation, and decode from Base64
--   representation during deserialisation. This <tt>Lens</tt> accepts and
--   returns only raw unencoded data.</li>
--   <li><a>mavStringValue</a> - Strings are Unicode with UTF8 binary
--   encoding. For a list of code values, see
--   <a>http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters</a>
--   .</li>
--   <li><a>mavDataType</a> - Amazon SNS supports the following logical
--   data types: String, Number, and Binary. For more information, see
--   <a>Message Attribute Data Types</a> .</li>
--   </ul>
messageAttributeValue :: Text -> MessageAttributeValue

-- | Binary type attributes can store any binary data, for example,
--   compressed data, encrypted data, or images.-- <i>Note:</i> This
--   <tt>Lens</tt> automatically encodes and decodes Base64 data. The
--   underlying isomorphism will encode to Base64 representation during
--   serialisation, and decode from Base64 representation during
--   deserialisation. This <tt>Lens</tt> accepts and returns only raw
--   unencoded data.
mavBinaryValue :: Lens' MessageAttributeValue (Maybe ByteString)

-- | Strings are Unicode with UTF8 binary encoding. For a list of code
--   values, see
--   <a>http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters</a> .
mavStringValue :: Lens' MessageAttributeValue (Maybe Text)

-- | Amazon SNS supports the following logical data types: String, Number,
--   and Binary. For more information, see <a>Message Attribute Data
--   Types</a> .
mavDataType :: Lens' MessageAttributeValue Text

-- | Platform application object.
--   
--   <i>See:</i> <a>platformApplication</a> smart constructor.
data PlatformApplication

-- | Creates a value of <a>PlatformApplication</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>paPlatformApplicationARN</a> - PlatformApplicationArn for
--   platform application object.</li>
--   <li><a>paAttributes</a> - Attributes for platform application
--   object.</li>
--   </ul>
platformApplication :: PlatformApplication

-- | PlatformApplicationArn for platform application object.
paPlatformApplicationARN :: Lens' PlatformApplication (Maybe Text)

-- | Attributes for platform application object.
paAttributes :: Lens' PlatformApplication (HashMap Text Text)

-- | A wrapper type for the attributes of an Amazon SNS subscription.
--   
--   <i>See:</i> <a>subscription</a> smart constructor.
data Subscription

-- | Creates a value of <a>Subscription</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sProtocol</a> - The subscription's protocol.</li>
--   <li><a>sOwner</a> - The subscription's owner.</li>
--   <li><a>sTopicARN</a> - The ARN of the subscription's topic.</li>
--   <li><a>sEndpoint</a> - The subscription's endpoint (format depends on
--   the protocol).</li>
--   <li><a>sSubscriptionARN</a> - The subscription's ARN.</li>
--   </ul>
subscription :: Subscription

-- | The subscription's protocol.
sProtocol :: Lens' Subscription (Maybe Text)

-- | The subscription's owner.
sOwner :: Lens' Subscription (Maybe Text)

-- | The ARN of the subscription's topic.
sTopicARN :: Lens' Subscription (Maybe Text)

-- | The subscription's endpoint (format depends on the protocol).
sEndpoint :: Lens' Subscription (Maybe Text)

-- | The subscription's ARN.
sSubscriptionARN :: Lens' Subscription (Maybe Text)

-- | A wrapper type for the topic's Amazon Resource Name (ARN). To retrieve
--   a topic's attributes, use <tt>GetTopicAttributes</tt> .
--   
--   <i>See:</i> <a>topic</a> smart constructor.
data Topic

-- | Creates a value of <a>Topic</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tTopicARN</a> - The topic's ARN.</li>
--   </ul>
topic :: Topic

-- | The topic's ARN.
tTopicARN :: Lens' Topic (Maybe Text)
