Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 75 additions & 0 deletions .doc_gen/metadata/sqs_metadata.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,18 @@ sqs_Hello:
- description: Initialize an &SQS; client and list queues.
snippet_tags:
- javascript.v3.sqs.hello
Swift:
versions:
- sdk_version: 1
github: swift/example_code/sqs
sdkguide:
excerpts:
- description: The <code>Package.swift</code> file.
snippet_tags:
- swift.sqs.basics.package
- description: The Swift source code, <code>entry.swift</code>.
snippet_tags:
- swift.sqs.basics
services:
sqs: {ListQueues}
sqs_CreateQueue:
Expand Down Expand Up @@ -163,6 +175,15 @@ sqs_CreateQueue:
snippet_tags:
- cpp.example_code.sqs.CreateQueue.config
- cpp.example_code.sqs.CreateQueue
Swift:
versions:
- sdk_version: 1
github: swift/example_code/sqs
sdkguide:
excerpts:
- description:
snippet_tags:
- swift.sqs.CreateQueue
services:
sqs: {CreateQueue}
sqs_GetQueueUrl:
Expand Down Expand Up @@ -320,6 +341,15 @@ sqs_ListQueues:
snippet_tags:
- cpp.example_code.sqs.ListQueues.config
- cpp.example_code.sqs.ListQueues
Swift:
versions:
- sdk_version: 1
github: swift/example_code/sqs
sdkguide:
excerpts:
- description:
snippet_tags:
- swift.sqs.ListQueues
services:
sqs: {ListQueues}
sqs_DeleteQueue:
Expand Down Expand Up @@ -414,6 +444,15 @@ sqs_DeleteQueue:
snippet_tags:
- cpp.example_code.sqs.DeleteQueue.config
- cpp.example_code.sqs.DeleteQueue
Swift:
versions:
- sdk_version: 1
github: swift/example_code/sqs
sdkguide:
excerpts:
- description:
snippet_tags:
- swift.sqs.DeleteQueue
services:
sqs: {DeleteQueue}
sqs_SendMessage:
Expand Down Expand Up @@ -649,6 +688,15 @@ sqs_ReceiveMessage:
snippet_tags:
- cpp.example_code.sqs.ReceiveMessage.config
- cpp.example_code.sqs.ReceiveMessage
Swift:
versions:
- sdk_version: 1
github: swift/example_code/sqs
sdkguide:
excerpts:
- description:
snippet_tags:
- swift.sqs.ReceiveMessage
services:
sqs: {ReceiveMessage}
sqs_DeleteMessage:
Expand Down Expand Up @@ -765,6 +813,15 @@ sqs_DeleteMessageBatch:
- description:
snippet_tags:
- sqs.JavaScript.messages.receiveMessageV3
Swift:
versions:
- sdk_version: 1
github: swift/example_code/sqs
sdkguide:
excerpts:
- description:
snippet_tags:
- swift.sqs.DeleteMessageBatch
services:
sqs: {DeleteMessageBatch}
sqs_Scenario_SendReceiveBatch:
Expand Down Expand Up @@ -836,6 +893,15 @@ sqs_GetQueueAttributes:
- description:
snippet_tags:
- javascript.v3.sqs.actions.GetQueueAttributes
Swift:
versions:
- sdk_version: 1
github: swift/example_code/sqs
sdkguide:
excerpts:
- description:
snippet_tags:
- swift.sqs.GetQueueAttributes
services:
sqs: {GetQueueAttributes}
sqs_ChangeMessageVisibility:
Expand Down Expand Up @@ -931,6 +997,15 @@ sqs_SetQueueAttributes:
- description: Configure a dead-letter queue.
snippet_tags:
- sqs.JavaScript.deadLetter.setQueueAttributesV3
Swift:
versions:
- sdk_version: 1
github: swift/example_code/sqs
sdkguide:
excerpts:
- description:
snippet_tags:
- swift.sqs.SetQueueAttributes
services:
sqs: {SetQueueAttributes}
sqs_Scenario_TopicsAndQueues:
Expand Down
40 changes: 40 additions & 0 deletions swift/example_code/sqs/CreateQueue/Package.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
// swift-tools-version: 5.9
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
//
// The swift-tools-version declares the minimum version of Swift required to
// build this package.

import PackageDescription

let package = Package(
name: "createqueue",
// Let Xcode know the minimum Apple platforms supported.
platforms: [
.macOS(.v13),
.iOS(.v15)
],
dependencies: [
// Dependencies declare other packages that this package depends on.
.package(
url: "https://github.com/awslabs/aws-sdk-swift",
from: "1.0.0"),
.package(
url: "https://github.com/apple/swift-argument-parser.git",
branch: "main"
)
],
targets: [
// Targets are the basic building blocks of a package, defining a module or a test suite.
// Targets can depend on other targets in this package and products
// from dependencies.
.executableTarget(
name: "createqueue",
dependencies: [
.product(name: "AWSSQS", package: "aws-sdk-swift"),
.product(name: "ArgumentParser", package: "swift-argument-parser")
],
path: "Sources")

]
)
61 changes: 61 additions & 0 deletions swift/example_code/sqs/CreateQueue/Sources/entry.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
//
// An example demonstrating how to set up and use an Amazon Simple Queue
// Service client to create an available Amazon SQS queue.

import ArgumentParser
import AWSClientRuntime
import AWSSQS
import Foundation

struct ExampleCommand: ParsableCommand {
@Argument(help: "The name of the Amazon SQS queue to create")
var queueName: String
@Option(help: "Name of the Amazon Region to use (default: us-east-1)")
var region = "us-east-1"

static var configuration = CommandConfiguration(
commandName: "createqueue",
abstract: """
This example shows how to create a new Amazon SQS queue.
""",
discussion: """
"""
)

/// Called by ``main()`` to run the bulk of the example.
func runAsync() async throws {
// snippet-start:[swift.sqs.CreateQueue]
let config = try await SQSClient.SQSClientConfiguration(region: region)
let sqsClient = SQSClient(config: config)

let output = try await sqsClient.createQueue(
input: CreateQueueInput(
queueName: queueName
)
)

guard let queueUrl = output.queueUrl else {
print("No queue URL returned.")
return
}
// snippet-end:[swift.sqs.CreateQueue]
print("Created queue named \(queueName) with URL \(queueUrl).")
}
}

/// The program's asynchronous entry point.
@main
struct Main {
static func main() async {
let args = Array(CommandLine.arguments.dropFirst())

do {
let command = try ExampleCommand.parse(args)
try await command.runAsync()
} catch {
ExampleCommand.exit(withError: error)
}
}
}
40 changes: 40 additions & 0 deletions swift/example_code/sqs/DeleteMessageBatch/Package.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
// swift-tools-version: 5.9
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
//
// The swift-tools-version declares the minimum version of Swift required to
// build this package.

import PackageDescription

let package = Package(
name: "deletemessages",
// Let Xcode know the minimum Apple platforms supported.
platforms: [
.macOS(.v13),
.iOS(.v15)
],
dependencies: [
// Dependencies declare other packages that this package depends on.
.package(
url: "https://github.com/awslabs/aws-sdk-swift",
from: "1.0.0"),
.package(
url: "https://github.com/apple/swift-argument-parser.git",
branch: "main"
)
],
targets: [
// Targets are the basic building blocks of a package, defining a module or a test suite.
// Targets can depend on other targets in this package and products
// from dependencies.
.executableTarget(
name: "deletemessages",
dependencies: [
.product(name: "AWSSQS", package: "aws-sdk-swift"),
.product(name: "ArgumentParser", package: "swift-argument-parser")
],
path: "Sources")

]
)
116 changes: 116 additions & 0 deletions swift/example_code/sqs/DeleteMessageBatch/Sources/entry.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
//
// An example demonstrating how to set up and use an Amazon Simple Queue
// Service client to delete messages from an Amazon SQS queue.

import ArgumentParser
import AWSClientRuntime
import AWSSQS
import Foundation

struct ExampleCommand: ParsableCommand {
@Option(help: "The URL of the Amazon SQS queue from which to delete messages")
var queue: String
@Argument(help: "Receipt handle(s) of the message(s) to delete")
var handles: [String]
@Option(help: "Name of the Amazon Region to use (default: us-east-1)")
var region = "us-east-1"

static var configuration = CommandConfiguration(
commandName: "deletemessages",
abstract: """
This example shows how to delete a batch of messages from an Amazon SQS queue.
""",
discussion: """
"""
)

/// Called by ``main()`` to run the bulk of the example.
func runAsync() async throws {
// snippet-start:[swift.sqs.DeleteMessageBatch]
let config = try await SQSClient.SQSClientConfiguration(region: region)
let sqsClient = SQSClient(config: config)

// Create the list of message entries.

var entries: [SQSClientTypes.DeleteMessageBatchRequestEntry] = []
var messageNumber = 1

for handle in handles {
let entry = SQSClientTypes.DeleteMessageBatchRequestEntry(
id: "\(messageNumber)",
receiptHandle: handle
)
entries.append(entry)
messageNumber += 1
}

// Delete the messages.

let output = try await sqsClient.deleteMessageBatch(
input: DeleteMessageBatchInput(
entries: entries,
queueUrl: queue
)
)

// Get the lists of failed and successful deletions from the output.

guard let failedEntries = output.failed else {
print("Failed deletion list is missing!")
return
}
guard let successfulEntries = output.successful else {
print("Successful deletion list is missing!")
return
}

// Display a list of the failed deletions along with their
// corresponding explanation messages.

if failedEntries.count != 0 {
print("Failed deletions:")

for entry in failedEntries {
print("Message #\(entry.id ?? "<unknown>") failed: \(entry.message ?? "<unknown>")")
}
} else {
print("No failed deletions.")
}

// Output a list of the message numbers that were successfully deleted.

if successfulEntries.count != 0 {
var successes = ""

for entry in successfulEntries {
if successes.count == 0 {
successes = entry.id ?? "<unknown>"
} else {
successes = "\(successes), \(entry.id ?? "<unknown>")"
}
}
print("Succeeded: ", successes)
} else {
print("No successful deletions.")
}

// snippet-end:[swift.sqs.DeleteMessageBatch]
}
}

/// The program's asynchronous entry point.
@main
struct Main {
static func main() async {
let args = Array(CommandLine.arguments.dropFirst())

do {
let command = try ExampleCommand.parse(args)
try await command.runAsync()
} catch {
ExampleCommand.exit(withError: error)
}
}
}
Loading
Loading