class Aws::SNS::Types::SubscribeInput

Input for Subscribe action.

@note When making an API call, you may pass SubscribeInput

data as a hash:

    {
      topic_arn: "topicARN", # required
      protocol: "protocol", # required
      endpoint: "endpoint",
      attributes: {
        "attributeName" => "attributeValue",
      },
      return_subscription_arn: false,
    }

@!attribute [rw] topic_arn

The ARN of the topic you want to subscribe to.
@return [String]

@!attribute [rw] protocol

The protocol that you want to use. Supported protocols include:

* `http` – delivery of JSON-encoded message via HTTP POST

* `https` – delivery of JSON-encoded message via HTTPS POST

* `email` – delivery of message via SMTP

* `email-json` – delivery of JSON-encoded message via SMTP

* `sms` – delivery of message via SMS

* `sqs` – delivery of JSON-encoded message to an Amazon SQS queue

* `application` – delivery of JSON-encoded message to an EndpointArn
  for a mobile app and device

* `lambda` – delivery of JSON-encoded message to an Lambda function

* `firehose` – delivery of JSON-encoded message to an Amazon Kinesis
  Data Firehose delivery stream.
@return [String]

@!attribute [rw] endpoint

The endpoint that you want to receive notifications. Endpoints vary
by protocol:

* For the `http` protocol, the (public) endpoint is a URL beginning
  with `http://`.

* For the `https` protocol, the (public) endpoint is a URL beginning
  with `https://`.

* For the `email` protocol, the endpoint is an email address.

* For the `email-json` protocol, the endpoint is an email address.

* For the `sms` protocol, the endpoint is a phone number of an
  SMS-enabled device.

* For the `sqs` protocol, the endpoint is the ARN of an Amazon SQS
  queue.

* For the `application` protocol, the endpoint is the EndpointArn of
  a mobile app and device.

* For the `lambda` protocol, the endpoint is the ARN of an Lambda
  function.

* For the `firehose` protocol, the endpoint is the ARN of an Amazon
  Kinesis Data Firehose delivery stream.
@return [String]

@!attribute [rw] attributes

A map of attributes with their corresponding values.

The following lists the names, descriptions, and values of the
special request parameters that the `Subscribe` action uses:

* `DeliveryPolicy` – The policy that defines how Amazon SNS retries
  failed deliveries to HTTP/S endpoints.

* `FilterPolicy` – The simple JSON object that lets your subscriber
  receive only a subset of messages, rather than receiving every
  message published to the topic.

* `RawMessageDelivery` – When set to `true`, enables raw message
  delivery to Amazon SQS or HTTP/S endpoints. This eliminates the
  need for the endpoints to process JSON formatting, which is
  otherwise created for Amazon SNS metadata.

* `RedrivePolicy` – When specified, sends undeliverable messages to
  the specified Amazon SQS dead-letter queue. Messages that can't
  be delivered due to client errors (for example, when the
  subscribed endpoint is unreachable) or server errors (for example,
  when the service that powers the subscribed endpoint becomes
  unavailable) are held in the dead-letter queue for further
  analysis or reprocessing.

The following attribute applies only to Amazon Kinesis Data Firehose
delivery stream subscriptions:

* `SubscriptionRoleArn` – The ARN of the IAM role that has the
  following:

  * Permission to write to the Kinesis Data Firehose delivery stream

  * Amazon SNS listed as a trusted entity

  Specifying a valid ARN for this attribute is required for Kinesis
  Data Firehose delivery stream subscriptions. For more information,
  see [Fanout to Kinesis Data Firehose delivery streams][1] in the
  *Amazon SNS Developer Guide*.

[1]: https://docs.aws.amazon.com/sns/latest/dg/sns-firehose-as-subscriber.html
@return [Hash<String,String>]

@!attribute [rw] return_subscription_arn

Sets whether the response from the `Subscribe` request includes the
subscription ARN, even if the subscription is not yet confirmed.

If you set this parameter to `true`, the response includes the ARN
in all cases, even if the subscription is not yet confirmed. In
addition to the ARN for confirmed subscriptions, the response also
includes the `pending subscription` ARN value for subscriptions that
aren't yet confirmed. A subscription becomes confirmed when the
subscriber calls the `ConfirmSubscription` action with a
confirmation token.

The default value is `false`.
@return [Boolean]

@see docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/SubscribeInput AWS API Documentation

Constants

SENSITIVE