Class TopicBase

java.lang.Object
software.amazon.jsii.JsiiObject
software.constructs.Construct
software.amazon.awscdk.Resource
software.amazon.awscdk.services.sns.TopicBase
All Implemented Interfaces:
IResource, INotificationRuleTarget, ITopic, software.amazon.jsii.JsiiSerializable, software.constructs.IConstruct, software.constructs.IDependable
Direct Known Subclasses:
Topic

@Generated(value="jsii-pacmak/1.104.0 (build e79254c)", date="2024-10-31T19:13:06.111Z") @Stability(Stable) public abstract class TopicBase extends Resource implements ITopic
Either a new or imported Topic.
  • Constructor Details

    • TopicBase

      protected TopicBase(software.amazon.jsii.JsiiObjectRef objRef)
    • TopicBase

      protected TopicBase(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
    • TopicBase

      @Stability(Stable) protected TopicBase(@NotNull software.constructs.Construct scope, @NotNull String id, @Nullable ResourceProps props)
      Parameters:
      scope - This parameter is required.
      id - This parameter is required.
      props -
    • TopicBase

      @Stability(Stable) protected TopicBase(@NotNull software.constructs.Construct scope, @NotNull String id)
      Parameters:
      scope - This parameter is required.
      id - This parameter is required.
  • Method Details

    • addSubscription

      @Stability(Stable) @NotNull public Subscription addSubscription(@NotNull ITopicSubscription topicSubscription)
      Subscribe some endpoint to this topic.

      Specified by:
      addSubscription in interface ITopic
      Parameters:
      topicSubscription - This parameter is required.
    • addToResourcePolicy

      @Stability(Stable) @NotNull public AddToResourcePolicyResult addToResourcePolicy(@NotNull PolicyStatement statement)
      Adds a statement to the IAM resource policy associated with this topic.

      If this topic was created in this stack (new Topic), a topic policy will be automatically created upon the first call to addToResourcePolicy. If the topic is imported (Topic.import), then this is a no-op.

      Specified by:
      addToResourcePolicy in interface ITopic
      Parameters:
      statement - This parameter is required.
    • bindAsNotificationRuleTarget

      @Stability(Stable) @NotNull public NotificationRuleTargetConfig bindAsNotificationRuleTarget(@NotNull software.constructs.Construct _scope)
      Represents a notification target That allows SNS topic to associate with this rule target.

      Specified by:
      bindAsNotificationRuleTarget in interface INotificationRuleTarget
      Parameters:
      _scope - This parameter is required.
    • createSSLPolicyDocument

      @Stability(Stable) @NotNull protected PolicyStatement createSSLPolicyDocument()
      Adds a statement to enforce encryption of data in transit when publishing to the topic.

      For more information, see https://docs.aws.amazon.com/sns/latest/dg/sns-security-best-practices.html#enforce-encryption-data-in-transit.

    • grantPublish

      @Stability(Stable) @NotNull public Grant grantPublish(@NotNull IGrantable grantee)
      Grant topic publishing permissions to the given identity.

      Specified by:
      grantPublish in interface ITopic
      Parameters:
      grantee - This parameter is required.
    • grantSubscribe

      @Stability(Stable) @NotNull public Grant grantSubscribe(@NotNull IGrantable grantee)
      Grant topic subscribing permissions to the given identity.

      Specified by:
      grantSubscribe in interface ITopic
      Parameters:
      grantee - This parameter is required.
    • metric

      @Stability(Stable) @NotNull public Metric metric(@NotNull String metricName, @Nullable MetricOptions props)
      Return the given named metric for this Topic.

      Specified by:
      metric in interface ITopic
      Parameters:
      metricName - This parameter is required.
      props -
    • metric

      @Stability(Stable) @NotNull public Metric metric(@NotNull String metricName)
      Return the given named metric for this Topic.

      Specified by:
      metric in interface ITopic
      Parameters:
      metricName - This parameter is required.
    • metricNumberOfMessagesPublished

      @Stability(Stable) @NotNull public Metric metricNumberOfMessagesPublished(@Nullable MetricOptions props)
      The number of messages published to your Amazon SNS topics.

      Sum over 5 minutes

      Specified by:
      metricNumberOfMessagesPublished in interface ITopic
      Parameters:
      props -
    • metricNumberOfMessagesPublished

      @Stability(Stable) @NotNull public Metric metricNumberOfMessagesPublished()
      The number of messages published to your Amazon SNS topics.

      Sum over 5 minutes

      Specified by:
      metricNumberOfMessagesPublished in interface ITopic
    • metricNumberOfNotificationsDelivered

      @Stability(Stable) @NotNull public Metric metricNumberOfNotificationsDelivered(@Nullable MetricOptions props)
      The number of messages successfully delivered from your Amazon SNS topics to subscribing endpoints.

      Sum over 5 minutes

      Specified by:
      metricNumberOfNotificationsDelivered in interface ITopic
      Parameters:
      props -
    • metricNumberOfNotificationsDelivered

      @Stability(Stable) @NotNull public Metric metricNumberOfNotificationsDelivered()
      The number of messages successfully delivered from your Amazon SNS topics to subscribing endpoints.

      Sum over 5 minutes

      Specified by:
      metricNumberOfNotificationsDelivered in interface ITopic
    • metricNumberOfNotificationsFailed

      @Stability(Stable) @NotNull public Metric metricNumberOfNotificationsFailed(@Nullable MetricOptions props)
      The number of messages that Amazon SNS failed to deliver.

      Sum over 5 minutes

      Specified by:
      metricNumberOfNotificationsFailed in interface ITopic
      Parameters:
      props -
    • metricNumberOfNotificationsFailed

      @Stability(Stable) @NotNull public Metric metricNumberOfNotificationsFailed()
      The number of messages that Amazon SNS failed to deliver.

      Sum over 5 minutes

      Specified by:
      metricNumberOfNotificationsFailed in interface ITopic
    • metricNumberOfNotificationsFilteredOut

      @Stability(Stable) @NotNull public Metric metricNumberOfNotificationsFilteredOut(@Nullable MetricOptions props)
      The number of messages that were rejected by subscription filter policies.

      Sum over 5 minutes

      Specified by:
      metricNumberOfNotificationsFilteredOut in interface ITopic
      Parameters:
      props -
    • metricNumberOfNotificationsFilteredOut

      @Stability(Stable) @NotNull public Metric metricNumberOfNotificationsFilteredOut()
      The number of messages that were rejected by subscription filter policies.

      Sum over 5 minutes

      Specified by:
      metricNumberOfNotificationsFilteredOut in interface ITopic
    • metricNumberOfNotificationsFilteredOutInvalidAttributes

      @Stability(Stable) @NotNull public Metric metricNumberOfNotificationsFilteredOutInvalidAttributes(@Nullable MetricOptions props)
      The number of messages that were rejected by subscription filter policies because the messages' attributes are invalid.

      Sum over 5 minutes

      Specified by:
      metricNumberOfNotificationsFilteredOutInvalidAttributes in interface ITopic
      Parameters:
      props -
    • metricNumberOfNotificationsFilteredOutInvalidAttributes

      @Stability(Stable) @NotNull public Metric metricNumberOfNotificationsFilteredOutInvalidAttributes()
      The number of messages that were rejected by subscription filter policies because the messages' attributes are invalid.

      Sum over 5 minutes

      Specified by:
      metricNumberOfNotificationsFilteredOutInvalidAttributes in interface ITopic
    • metricNumberOfNotificationsFilteredOutNoMessageAttributes

      @Stability(Stable) @NotNull public Metric metricNumberOfNotificationsFilteredOutNoMessageAttributes(@Nullable MetricOptions props)
      The number of messages that were rejected by subscription filter policies because the messages have no attributes.

      Sum over 5 minutes

      Specified by:
      metricNumberOfNotificationsFilteredOutNoMessageAttributes in interface ITopic
      Parameters:
      props -
    • metricNumberOfNotificationsFilteredOutNoMessageAttributes

      @Stability(Stable) @NotNull public Metric metricNumberOfNotificationsFilteredOutNoMessageAttributes()
      The number of messages that were rejected by subscription filter policies because the messages have no attributes.

      Sum over 5 minutes

      Specified by:
      metricNumberOfNotificationsFilteredOutNoMessageAttributes in interface ITopic
    • metricPublishSize

      @Stability(Stable) @NotNull public Metric metricPublishSize(@Nullable MetricOptions props)
      Metric for the size of messages published through this topic.

      Average over 5 minutes

      Specified by:
      metricPublishSize in interface ITopic
      Parameters:
      props -
    • metricPublishSize

      @Stability(Stable) @NotNull public Metric metricPublishSize()
      Metric for the size of messages published through this topic.

      Average over 5 minutes

      Specified by:
      metricPublishSize in interface ITopic
    • metricSMSMonthToDateSpentUSD

      @Stability(Stable) @NotNull public Metric metricSMSMonthToDateSpentUSD(@Nullable MetricOptions props)
      The charges you have accrued since the start of the current calendar month for sending SMS messages.

      Maximum over 5 minutes

      Specified by:
      metricSMSMonthToDateSpentUSD in interface ITopic
      Parameters:
      props -
    • metricSMSMonthToDateSpentUSD

      @Stability(Stable) @NotNull public Metric metricSMSMonthToDateSpentUSD()
      The charges you have accrued since the start of the current calendar month for sending SMS messages.

      Maximum over 5 minutes

      Specified by:
      metricSMSMonthToDateSpentUSD in interface ITopic
    • metricSMSSuccessRate

      @Stability(Stable) @NotNull public Metric metricSMSSuccessRate(@Nullable MetricOptions props)
      The rate of successful SMS message deliveries.

      Sum over 5 minutes

      Specified by:
      metricSMSSuccessRate in interface ITopic
      Parameters:
      props -
    • metricSMSSuccessRate

      @Stability(Stable) @NotNull public Metric metricSMSSuccessRate()
      The rate of successful SMS message deliveries.

      Sum over 5 minutes

      Specified by:
      metricSMSSuccessRate in interface ITopic
    • getAutoCreatePolicy

      @Stability(Stable) @NotNull protected abstract Boolean getAutoCreatePolicy()
      Controls automatic creation of policy objects.

      Set by subclasses.

    • getContentBasedDeduplication

      @Stability(Stable) @NotNull public abstract Boolean getContentBasedDeduplication()
      Enables content-based deduplication for FIFO topics.
      Specified by:
      getContentBasedDeduplication in interface ITopic
    • getFifo

      @Stability(Stable) @NotNull public abstract Boolean getFifo()
      Whether this topic is an Amazon SNS FIFO queue.

      If false, this is a standard topic.

      Specified by:
      getFifo in interface ITopic
    • getTopicArn

      @Stability(Stable) @NotNull public abstract String getTopicArn()
      The ARN of the topic.
      Specified by:
      getTopicArn in interface ITopic
    • getTopicName

      @Stability(Stable) @NotNull public abstract String getTopicName()
      The name of the topic.
      Specified by:
      getTopicName in interface ITopic
    • getEnforceSSL

      @Stability(Stable) @Nullable protected Boolean getEnforceSSL()
      Adds a statement to enforce encryption of data in transit when publishing to the topic.
    • setEnforceSSL

      @Stability(Stable) protected void setEnforceSSL(@Nullable Boolean value)
      Adds a statement to enforce encryption of data in transit when publishing to the topic.