JAMFKit 0.3.3

JAMFKit 0.3.3

Damien Rivet 维护。



JAMFKit 0.3.3

  • Damien Rivet

JamfKit

JamfKit

Swift iOS macOS tvOS

Travis branch Codecov Codacy grade Carthage compatible CocoaPods

JamfKit 是一个用于通过任何 Jamf 主机提供的 JSS API 进行通信的 iOS / macOS / tvOS 框架。

摘要

功能

  • 包括对大多数 JSS 对象的 JSON 编码/解码支持
  • 包括 Objective-C 支持
  • 包括 Swift 5+ 支持
  • 包括 JSS 端点的 CRUD URLRequest 的预消费
  • 包括类处理或请求生成的演示 playground

安装

Carthage

要将 JamfKit 集成到您的项目中,请在您的 Cartfile 中添加以下行

github "Ethenyl/JamfKit"

然后运行以下命令

$ carthage update

Cocoapods

要将 JamfKit 集成到您的项目中,请在您的 Podfile 中添加以下行

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
use_frameworks!

target '<Your Target Name>' do
    pod 'JAMFKit'
end

然后运行以下命令

$ pod install

架构

协议

协议 描述
端点 表示任何与 JSS 端点匹配的 JSS 对象。
可识别 表示任何可被识别的 JSS 对象(通过 ID 或名称识别)。
可请求 表示可以用于向任何 JSS 端点发起请求的对象。
子集 表示任何包含可以识别它们的通用对象的 JSS 对象。

可请求的一致性

符合 可请求 类的类暴露以下元素

  • 一个接收 JSON 负载数据并将其返回为实例对象的初始化器
  • 一个函数,用于返回表示该对象的实例的 JSON 负载

描述
BaseObject 代表大多数 JSS 对象的共同特征,至少包含一个 identifier 和一个 name 属性。
Building 表示一个物理建筑。
Computer 表示由 Jamf 管理的计算机,包含硬件的一般 / 位置 / 购买信息。
ComputerCommand 表示可以在任何由 Jamf 管理的硬件元素上执行的逻辑命令。
ComputerConfigurationProfile 表示可以应用到任何由 Jamf 管理的计算机上的逻辑配置配置文件。
ComputerGroup 代表一组由Jamf管理的计算机,包含分组信息。
部门 代表一个物理部门。
DirectoryBinding 代表计算机与活动目录用户之间的一种逻辑绑定。
MobileDeviceConfigurationProfile 代表一种逻辑配置配置文件,可以应用于任何由Jamf管理的移动设备。
MobileDevice 代表由Jamf管理的移动设备,包含设备的一般信息。
MobileDeviceGroup 代表一组由Jamf管理的移动设备,包含分组信息。
NetbootServer 代表一个物理网络启动服务器,包含有关服务器及其配置的信息。
NetworkSegment 代表一个物理网络段,包含有关该段及其配置的信息。
Package 代表一种逻辑应用程序包,包含关于应用程序需求和功能的信息。
Partition 代表一个逻辑分区,位于Jamf管理的硬件元素内部。
Policy 代表一种逻辑策略,可以应用于Jamf管理的任何硬件元素。
PreciseDate 代表JSS API中的一个逻辑日期,包含三个属性:日期本身、日期的纪元变体以及日期的UTC版本。
Printer 代表一个物理打印机,包含有关打印机及其配置的信息。
Script 代表可以在Jamf管理的机器上执行的逻辑脚本。
Site 代表一个物理位置(如建筑物、办公室等)。
SMTPServer 代表物理SMTP服务器配置。
User 代表一个Jamf用户,包含联系实际用户和识别分配给他的/她的硬件设备所需的标识属性。

使用方法

入门

演练场

要快速了解如何在您的Jamf相关功能中使用JamfKit,您可以查看工作区中包含的Playgrounds

还可以查看单元测试,它们应该覆盖您的大部分需求。

模型

大多数类可以使用最基本的最小值进行初始化,所有属性都可以进行修改。

请求

通过遵循不同的CRUD协议(可创建、可读取、可更新和可删除),上列大部分JSS对象都能够提供各种适合不同需求的URLRequest

下面提供了获取URLRequest的基本函数

函数 类型 HTTP方法 示例 输出
createRequest() 实例 POST building.createRequest() http://jss.host/jss/objects/1
readAllRequest() 静态 GET Building.readAllRequest() http://jamf.com/jss/objects
readRequest(identifier:) 静态 GET Building.readRequest(identifier: "12345") http://jamf.com/jss/objects/1
readRequest() 实例 GET building.readRequest() http://jamf.com/jss/objects/1
updateRequest() 实例 PUT building.updateRequest() http://jamf.com/jss/objects/1
deleteRequest(identifier:) 静态 DELETE Building.deleteRequest(identifier: "12345") http://jamf.com/jss/objects/1
deleteRequest() 实例 DELETE building.deleteRequest() http://jamf.com/jss/objects/1

某些对象可能会提供那些请求的不同版本,如MobileDevice,具有readRequestWithName()deleteRequestWithSerialNumber()(具有staticinstance两种版本)。

参与贡献

所以,你想帮助改善JamfKit?那太好了!任何有用的贡献都是欢迎的!

查看CONTRIBUTING获取有关如何为JamfKit做出贡献的更多详情。

行为准则

JamfKit的任何贡献(问题、拉取请求、评论等)都非常欢迎。

但在进行任何贡献之前,请确保您遵守CODE_OF_CONDUCT

否则,您的贡献有很大可能会被删除/阻止/隐藏。

常见问题问答

目前没有。

致谢

JamfKitEthenyl 拥有和维护。

您可以通过向存储库贡献来加入该列表。

许可

JamfKit 在 MIT 许可下发布。有关更多详情,请参阅 LICENSE