Skip to content
Back to skills

046 Java 5a4f436f

ASecurity

```java public String createTopic(SnsClient snsClient, String topicName) { CreateTopicRequest request = CreateTopicRequest.builder() .name(topicName) .build();

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
businessjava

Works with

  • cli

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 046-java_5a4f436f --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 046 Java 5a4f436f?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 046 Java 5a4f436f
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-046-java-5a4f436f/badge)](https://www.skillsdirectory.com/skills/tools-only-046-java-5a4f436f)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
# Detailed SNS Operations Reference

## Topic Management

### Create Standard Topic
```java
public String createTopic(SnsClient snsClient, String topicName) {
    CreateTopicRequest request = CreateTopicRequest.builder()
        .name(topicName)
        .build();

    CreateTopicResponse response = snsClient.createTopic(request);
    return response.topicArn();
}
```

### Create FIFO Topic
```java
public String createFifoTopic(SnsClient snsClient, String topicName) {
    Map<String, String> attributes = new HashMap<>();
    attributes.put("FifoTopic", "true");
    attributes.put("ContentBasedDeduplication", "true");

    CreateTopicRequest request = CreateTopicRequest.builder()
        .name(topicName + ".fifo")
        .attributes(attributes)
        .build();

    CreateTopicResponse response = snsClient.createTopic(request);
    return response.topicArn();
}
```

### Topic Operations
```java
public List<Topic> listTopics(SnsClient snsClient) {
    return snsClient.listTopics().topics();
}

public String getTopicArn(SnsClient snsClient, String topicName) {
    return snsClient.createTopic(CreateTopicRequest.builder()
        .name(topicName)
        .build()).topicArn();
}
```

## Message Publishing

### Publish Basic Message
```java
public String publishMessage(SnsClient snsClient, String topicArn, String message) {
    PublishRequest request = PublishRequest.builder()
        .topicArn(topicArn)
        .message(message)
        .build();

    PublishResponse response = snsClient.publish(request);
    return response.messageId();
}
```

### Publish with Subject
```java
public String publishMessageWithSubject(SnsClient snsClient,
                                        String topicArn,
                                        String subject,
                                        String message) {
    PublishRequest request = PublishRequest.builder()
        .topicArn(topicArn)
        .subject(subject)
        .message(message)
        .build();

    PublishResponse response = snsClient.publish(request);
    return response.messageId();
}
```

### Publish with Attributes
```java
public String publishMessageWithAttributes(SnsClient snsClient,
                                           String topicArn,
                                           String message,
                                           Map<String, String> attributes) {
    Map<String, MessageAttributeValue> messageAttributes = attributes.entrySet().stream()
        .collect(Collectors.toMap(
            Map.Entry::getKey,
            e -> MessageAttributeValue.builder()
                .dataType("String")
                .stringValue(e.getValue())
                .build()));

    PublishRequest request = PublishRequest.builder()
        .topicArn(topicArn)
        .message(message)
        .messageAttributes(messageAttributes)
        .build();

    PublishResponse response = snsClient.publish(request);
    return response.messageId();
}
```

### Publish FIFO Message
```java
public String publishFifoMessage(SnsClient snsClient,
                                 String topicArn,
                                 String message,
                                 String messageGroupId) {
    PublishRequest request = PublishRequest.builder()
        .topicArn(topicArn)
        .message(message)
        .messageGroupId(messageGroupId)
        .messageDeduplicationId(UUID.randomUUID().toString())
        .build();

    PublishResponse response = snsClient.publish(request);
    return response.messageId();
}
```

## Subscription Management

### Subscribe Email to Topic
```java
public String subscribeEmail(SnsClient snsClient, String topicArn, String email) {
    SubscribeRequest request = SubscribeRequest.builder()
        .protocol("email")
        .endpoint(email)
        .topicArn(topicArn)
        .build();

    SubscribeResponse response = snsClient.subscribe(request);
    return response.subscriptionArn();
}
```

### Subscribe SQS to Topic
```java
public String subscribeSqs(SnsClient snsClient, String topicArn, String queueArn) {
    SubscribeRequest request = SubscribeRequest.builder()
        .protocol("sqs")
        .endpoint(queueArn)
        .topicArn(topicArn)
        .build();

    SubscribeResponse response = snsClient.subscribe(request);
    return response.subscriptionArn();
}
```

### Subscribe Lambda to Topic
```java
public String subscribeLambda(SnsClient snsClient, String topicArn, String lambdaArn) {
    SubscribeRequest request = SubscribeRequest.builder()
        .protocol("lambda")
        .endpoint(lambdaArn)
        .topicArn(topicArn)
        .build();

    SubscribeResponse response = snsClient.subscribe(request);
    return response.subscriptionArn();
}
```

### Subscription Operations
```java
public List<Subscription> listSubscriptions(SnsClient snsClient, String topicArn) {
    return snsClient.listSubscriptionsByTopic(ListSubscriptionsByTopicRequest.builder()
        .topicArn(topicArn)
        .build()).subscriptions();
}

public void unsubscribe(SnsClient snsClient, String subscriptionArn) {
    snsClient.unsubscribe(UnsubscribeRequest.builder()
        .subscriptionArn(subscriptionArn)
        .build());
}
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.