Build Status macOS Linux

告警通知服务 SDK

告警通知服务 SDK 允许 Swift 开发者在其应用程序中使用告警通知 IBM Cloud 服务,从而可以主动修复在 IBM Cloud 上运行的应用程序的问题。 通过使用此 SDK,可以创建、接收和删除告警和消息。 该服务可以通过此链接获取,文档可以在此链接获取;这两个链接可能需要 IBM Cloud 帐户才能访问。 非 IBM Cloud 快速入门指南可以在 IBM 网站上查看。

此 SDK 用于使用告警通知服务,而不是用于管理该服务。 添加用户、组、通知策略等应该通过 IBM Cloud 仪表板完成。

Swift 版本

告警通知 SDK 适用于 Swift 二进制文件的 4.1.2 发行版本。 您可以从 Swift.org 下载此版本。

使用方法

为了使用此 SDK,您需要将其添加到应用程序的 Package.swift 文件中的依赖项中。

import PackageDescription

let package = Package(
    name: "MyAlertEnabledSwiftProject",

    ...

    dependencies: [
        .package(url: "https://github.com/IBM-Swift/alert-notification-sdk.git", .upToNextMajor(from: "2.0.0")),
        ...
    ]
    ...
)

更新 Package.swift 文件后,将 AlertNotifications 模块导入到您的项目中。

凭据设置

为了使用告警通知 SDK 的所有功能,您需要一个告警通知服务的实例(请注意这只是付费服务)。 获得此服务实例后,从您的 IBM Cloud 仪表板中选择它,然后单击“服务凭据”选项卡。 如果您还没有凭据,请创建一个。

创建凭据后,选择“查看凭据”并记下其中显示的信息。 您的应用程序将需要完整的 namepassword 字段,但 **您应该只使用 url 字段直到且包含 /api**。 不要包含 url 中在此之后出现的任何部分。

使用这些信息,您应该在您的应用程序中创建一个 ServiceCredentials 对象,它将用于创建、检索或删除告警或消息的所有函数中。

let credentials = ServiceCredentials(url: "<url>", name: "<name>", password: "<password>")

API

告警

Alert 类用于指定告警的单个实例。 Alert 具有以下必需属性

Alert 还可以由应用程序给定这些额外的可选属性

最后,当 Alert 对象由告警通知服务发送时,它可能包含更多属性。 这些不能由应用程序设置。

Alert 的所有属性都是不可变的。 一旦创建了 Alert,就不能修改它。 Alert.Builder 类可用于创建现有 Alert 的修改版本。

Alert.URL

Alert.URL 对象用于提供告警旁边的其他信息链接,例如指向运行手册的链接。 Alert.URL 对象具有以下属性

Alert.URL 只有一个方法,即构造函数。

Alert.URL(description: String, URL: String)

Alert.Detail

Alert.Detail 对象用于以键值对的形式提供告警旁边的其他详细信息。 Alert.Detail 对象具有以下属性

Alert.Detail 只有一个方法,即构造函数。

Alert.Detail(name: String, value: String)

Alert.EmailMessage

Alert.EmailMessage 对象用于指定要随告警一起发送的电子邮件。 Alert.EmailMessage 对象具有以下属性

Alert.EmailMessage 只有一个方法,即构造函数。

Alert.EmailMessage(subject: String, body: String)

Alert.Severity

Alert.Severity 类型指示与告警关联的严重程度级别。 该类型是一个枚举,具有以下可能的值,如 告警通知服务文档 中所示

Alert.Status

Alert.Status 类型指示告警是否已被确认或解决。 该类型是一个枚举,具有以下可能的值

Alert.NotificationState

Alert.NotificationState 类型更详细地指示用户是否已收到问题通知。 该类型是一个枚举,具有以下可能的值

Alert.Builder

由于 Alert 类具有如此多的属性,因此提供了一个构建器类。 Alert.Builder 类是当前创建 Alert 对象或修改现有 Alert 的唯一方法(这将创建一个新对象,因为 Alert 对象是不可变的)。 构建器有两种不同的构造函数

在构建过程中,以下方法将设置某些属性

上述每个方法都返回一个 Alert.Builder 对象,因此它们可以链接在一起,如下例所示

Alert.Builder().setSummary("summary").setLocation("location").setSeverity(.fatal).build()

当所有所需的属性都设置完毕后,build() 函数将完成构建并返回一个 Alert 对象。如果 summarylocationseverity 变量未设置,则 build() 将抛出错误。

AlertService

AlertService 类是一个静态类,用于从 Alert Notification 服务创建、检索和删除警报。 所有 API 函数都是异步的,因此如果应用程序要使用从它们返回的数据,则必须提供回调函数。 为了通过服务进行身份验证,所有函数都需要一个 ServiceCredentials 对象(请参阅上面的“凭据设置”)。 提供了以下方法

AlertService.post(_: Alert, usingCredentials: ServiceCredentials, callback: ((Alert?, Error?) -> Void)? = nil) throws

将提供的 Alert 对象发布到 Alert Notification 服务。 该服务返回一个 Alert 对象,其中初始化了额外的字段,例如 shortId。 虽然是可选的,但必须包含一个带有签名 (Alert?, Error?) -> Void 的回调函数,以便查看此返回的警报或任何可能的错误。 此方法仅抛出在发出基础 POST 请求之前或在发出请求时发生的错误;在此之后发生的任何错误都将通过回调函数传递。

AlertService.get(shortId: String, usingCredentials: ServiceCredentials, callback: (Alert?, Error?) -> Void) throws

从 Alert Notification 服务检索与提供的 shortId 参数对应的 Alert 对象。 请注意,这与用于重复数据删除的 id 参数不同。 与 post 函数不同,此方法需要带有签名 (Alert?, Error?) -> Void 的回调函数。 此方法仅抛出在发出基础 GET 请求之前或在发出请求时发生的错误;在此之后发生的任何错误都将通过回调函数传递。

AlertService.delete(shortId: String, usingCredentials: ServiceCredentials, callback: ((Error?) -> Void)? = nil) throws

从 Alert Notification 服务删除与提供的 shortId 参数对应的 Alert 对象。 请注意,这与用于重复数据删除的 id 参数不同。 需要一个可选的回调函数,其签名为 (Error?) -> Void,以查看可能从 Alert Notification 服务返回的错误。 此方法仅抛出在发出基础 DELETE 请求之前或在发出请求时发生的错误;在此之后发生的任何错误都将通过回调函数传递。

Message

Message 类用于指定与警报和警报通知相关的单个消息实例。 Message 具有以下必需的属性

Message 由 Alert Notification 服务发送时,它可能包含两个额外的属性。 这些不能由应用程序设置。

Message 的所有属性都是不可变的。 一旦创建了 Message,就无法修改它。

Alert 类不同,Message 类没有构建器,而是使用简单的构造函数。 如果违反了对 subjectmessage 的长度限制,则构造函数将抛出错误。

Message(subject: String, message: String, recipients: [Message.Recipient]) throws

Message.Recipient

Message.Recipient 对象用于指定将接收消息的人、组或集成。 Message.Recipient 对象具有以下属性

Message.Recipient 只有一个方法,即构造函数。 如果 type.integrationbroadcast 属性为 nil,则此构造函数将抛出错误。

Message.Recipient(name: String, type: Message.RecipientType, broadcast: String? = nil) throws

Message.RecipientType

Message.RecipientType 类型指示 Message.Recipient 对象旨在用于哪种类型的接收者。 该类型是一个枚举,具有以下可能的值

MessageService

MessageService 类是一个静态类,用于从 Alert Notification 服务创建和检索消息。 所有 API 函数都是异步的,因此如果应用程序要使用从它们返回的数据,则必须提供回调函数。 为了通过服务进行身份验证,所有函数都需要一个 ServiceCredentials 对象(请参阅上面的“凭据设置”)。 提供了以下方法

MessageService.post(_: Message, usingCredentials: ServiceCredentials, callback: ((Message?, Error?) -> Void)? = nil) throws

将提供的 Message 对象发布到 Alert Notification 服务。 该服务返回一个 Message 对象,其中初始化了额外的字段,例如 shortId。 虽然是可选的,但必须包含一个带有签名 (Message?, Error?) -> Void 的回调函数,以便查看此返回的消息或任何可能的错误。 此方法仅抛出在发出基础 POST 请求之前或在发出请求时发生的错误;在此之后发生的任何错误都将通过回调函数传递。

MessageService.get(shortId: String, usingCredentials: ServiceCredentials, callback: (Message?, Error?) -> Void) throws

从 Alert Notification 服务检索与提供的 shortId 参数对应的 Message 对象。 请注意,这与用于重复数据删除的 id 参数不同。 与 post 函数不同,此方法需要带有签名 (Message?, Error?) -> Void 的回调函数。 此方法仅抛出在发出基础 GET 请求之前或在发出请求时发生的错误;在此之后发生的任何错误都将通过回调函数传递。

ServiceCredentials

ServiceCredentials 类用于指定 IBM Cloud 上 Alert Notification 服务的身份验证凭据。 这是传递给所有 AlertServiceMessageService 函数的对象。 ServiceCredentials 对象具有以下必需属性,直接对应于 IBM Cloud 服务中找到的凭据(请参阅“凭据设置”部分)。

所有 ServiceCredentials 属性都是不可变的,并且在创建对象后无法更改。 该对象只有一个方法,即构造函数

ServiceCredentials(url: String, name: String, password: String)

License

This Swift package is licensed under Apache 2.0. Full license text is available in LICENSE.