ruby-jss 0.6.5 → 0.6.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +57 -5
  3. data/lib/jss.rb +78 -94
  4. data/lib/jss/api_connection.rb +8 -0
  5. data/lib/jss/api_object.rb +126 -102
  6. data/lib/jss/api_object/creatable.rb +33 -15
  7. data/lib/jss/api_object/distribution_point.rb +4 -1
  8. data/lib/jss/api_object/extension_attribute.rb +1 -1
  9. data/lib/jss/api_object/package.rb +121 -187
  10. data/lib/jss/api_object/policy.rb +590 -251
  11. data/lib/jss/api_object/script.rb +92 -128
  12. data/lib/jss/api_object/self_servable.rb +93 -117
  13. data/lib/jss/api_object/updatable.rb +12 -27
  14. data/lib/jss/api_object/uploadable.rb +12 -15
  15. data/lib/jss/client.rb +178 -156
  16. data/lib/jss/db_connection.rb +34 -49
  17. data/lib/jss/ruby_extensions/string.rb +25 -21
  18. data/lib/jss/version.rb +1 -1
  19. data/lib/jss/webhooks.rb +52 -0
  20. data/lib/jss/webhooks/README.md +269 -0
  21. data/lib/jss/webhooks/configuration.rb +212 -0
  22. data/lib/jss/webhooks/data/sample_handlers/RestAPIOperation-executable +90 -0
  23. data/lib/jss/webhooks/data/sample_handlers/RestAPIOperation.rb +44 -0
  24. data/lib/jss/webhooks/data/sample_jsons/ComputerAdded.json +27 -0
  25. data/lib/jss/webhooks/data/sample_jsons/ComputerCheckIn.json +27 -0
  26. data/lib/jss/webhooks/data/sample_jsons/ComputerInventoryCompleted.json +27 -0
  27. data/lib/jss/webhooks/data/sample_jsons/ComputerPolicyFinished.json +27 -0
  28. data/lib/jss/webhooks/data/sample_jsons/ComputerPushCapabilityChanged.json +27 -0
  29. data/lib/jss/webhooks/data/sample_jsons/JSSShutdown.json +14 -0
  30. data/lib/jss/webhooks/data/sample_jsons/JSSStartup.json +14 -0
  31. data/lib/jss/webhooks/data/sample_jsons/MobileDeviceCheckIn.json +26 -0
  32. data/lib/jss/webhooks/data/sample_jsons/MobileDeviceCommandCompleted.json +26 -0
  33. data/lib/jss/webhooks/data/sample_jsons/MobileDeviceEnrolled.json +26 -0
  34. data/lib/jss/webhooks/data/sample_jsons/MobileDevicePushSent.json +26 -0
  35. data/lib/jss/webhooks/data/sample_jsons/MobileDeviceUnEnrolled.json +26 -0
  36. data/lib/jss/webhooks/data/sample_jsons/PatchSoftwareTitleUpdated.json +14 -0
  37. data/lib/jss/webhooks/data/sample_jsons/PushSent.json +11 -0
  38. data/lib/jss/webhooks/data/sample_jsons/RestAPIOperation.json +15 -0
  39. data/lib/jss/webhooks/data/sample_jsons/SCEPChallenge.json +10 -0
  40. data/lib/jss/webhooks/data/sample_jsons/SmartGroupComputerMembershipChange.json +13 -0
  41. data/lib/jss/webhooks/data/sample_jsons/SmartGroupMobileDeviceMembershipChange.json +13 -0
  42. data/lib/jss/webhooks/event.rb +138 -0
  43. data/lib/jss/webhooks/event/computer_added.rb +37 -0
  44. data/lib/jss/webhooks/event/computer_check_in.rb +37 -0
  45. data/lib/jss/webhooks/event/computer_inventory_completed.rb +37 -0
  46. data/lib/jss/webhooks/event/computer_policy_finished.rb +37 -0
  47. data/lib/jss/webhooks/event/computer_push_capability_changed.rb +37 -0
  48. data/lib/jss/webhooks/event/handlers.rb +191 -0
  49. data/lib/jss/webhooks/event/jss_shutdown.rb +37 -0
  50. data/lib/jss/webhooks/event/jss_startup.rb +37 -0
  51. data/lib/jss/webhooks/event/mobile_device_check_in.rb +37 -0
  52. data/lib/jss/webhooks/event/mobile_device_command_completed.rb +37 -0
  53. data/lib/jss/webhooks/event/mobile_device_enrolled.rb +37 -0
  54. data/lib/jss/webhooks/event/mobile_device_push_sent.rb +37 -0
  55. data/lib/jss/webhooks/event/mobile_device_unenrolled.rb +37 -0
  56. data/lib/jss/webhooks/event/patch_software_title_updated.rb +37 -0
  57. data/lib/jss/webhooks/event/push_sent.rb +37 -0
  58. data/lib/jss/webhooks/event/rest_api_operation.rb +37 -0
  59. data/lib/jss/webhooks/event/scep_challenge.rb +37 -0
  60. data/lib/jss/webhooks/event/smart_group_computer_membership_change.rb +37 -0
  61. data/lib/jss/webhooks/event/smart_group_mobile_device_membership_change.rb +37 -0
  62. data/lib/jss/webhooks/event/webhook.rb +39 -0
  63. data/lib/jss/webhooks/event_objects.rb +111 -0
  64. data/lib/jss/webhooks/event_objects/computer.rb +48 -0
  65. data/lib/jss/webhooks/event_objects/jss.rb +35 -0
  66. data/lib/jss/webhooks/event_objects/mobile_device.rb +47 -0
  67. data/lib/jss/webhooks/event_objects/patch_software_title_update.rb +37 -0
  68. data/lib/jss/webhooks/event_objects/push.rb +32 -0
  69. data/lib/jss/webhooks/event_objects/rest_api_operation.rb +36 -0
  70. data/lib/jss/webhooks/event_objects/scep_challenge.rb +31 -0
  71. data/lib/jss/webhooks/event_objects/smart_group.rb +34 -0
  72. data/lib/jss/webhooks/server_app.rb +36 -0
  73. data/lib/jss/webhooks/server_app/routes.rb +26 -0
  74. data/lib/jss/webhooks/server_app/routes/handle_webhook_event.rb +38 -0
  75. data/lib/jss/webhooks/server_app/routes/home.rb +36 -0
  76. data/lib/jss/webhooks/server_app/self_signed_cert.rb +64 -0
  77. data/lib/jss/webhooks/server_app/server.rb +59 -0
  78. data/lib/jss/webhooks/version.rb +31 -0
  79. metadata +63 -4
@@ -0,0 +1,37 @@
1
+ ### Copyright 2016 Pixar
2
+ ###
3
+ ### Licensed under the Apache License, Version 2.0 (the "Apache License")
4
+ ### with the following modification; you may not use this file except in
5
+ ### compliance with the Apache License and the following modification to it:
6
+ ### Section 6. Trademarks. is deleted and replaced with:
7
+ ###
8
+ ### 6. Trademarks. This License does not grant permission to use the trade
9
+ ### names, trademarks, service marks, or product names of the Licensor
10
+ ### and its affiliates, except as required to comply with Section 4(c) of
11
+ ### the License and to reproduce the content of the NOTICE file.
12
+ ###
13
+ ### You may obtain a copy of the Apache License at
14
+ ###
15
+ ### http://www.apache.org/licenses/LICENSE-2.0
16
+ ###
17
+ ### Unless required by applicable law or agreed to in writing, software
18
+ ### distributed under the Apache License with the above modification is
19
+ ### distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
20
+ ### KIND, either express or implied. See the Apache License for the specific
21
+ ### language governing permissions and limitations under the Apache License.
22
+ ###
23
+ ###
24
+
25
+ module JSSWebHooks
26
+
27
+ class ComputerCheckInEvent < Event
28
+
29
+ EVENT_NAME = 'ComputerCheckIn'.freeze
30
+ OBJECT_CLASS = JSSWebHooks::EventObjects::Computer
31
+
32
+ end # class
33
+
34
+ # map the EVENT_NAME (which comes from the JSS) with this class
35
+ JSSWebHooks::Event.event_to_class_names[ComputerCheckInEvent::EVENT_NAME] = ComputerCheckInEvent
36
+
37
+ end # module
@@ -0,0 +1,37 @@
1
+ ### Copyright 2016 Pixar
2
+ ###
3
+ ### Licensed under the Apache License, Version 2.0 (the "Apache License")
4
+ ### with the following modification; you may not use this file except in
5
+ ### compliance with the Apache License and the following modification to it:
6
+ ### Section 6. Trademarks. is deleted and replaced with:
7
+ ###
8
+ ### 6. Trademarks. This License does not grant permission to use the trade
9
+ ### names, trademarks, service marks, or product names of the Licensor
10
+ ### and its affiliates, except as required to comply with Section 4(c) of
11
+ ### the License and to reproduce the content of the NOTICE file.
12
+ ###
13
+ ### You may obtain a copy of the Apache License at
14
+ ###
15
+ ### http://www.apache.org/licenses/LICENSE-2.0
16
+ ###
17
+ ### Unless required by applicable law or agreed to in writing, software
18
+ ### distributed under the Apache License with the above modification is
19
+ ### distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
20
+ ### KIND, either express or implied. See the Apache License for the specific
21
+ ### language governing permissions and limitations under the Apache License.
22
+ ###
23
+ ###
24
+
25
+ module JSSWebHooks
26
+
27
+ class ComputerInventoryCompletedEvent < Event
28
+
29
+ EVENT_NAME = 'ComputerInventoryCompleted'.freeze
30
+ OBJECT_CLASS = JSSWebHooks::EventObjects::Computer
31
+
32
+ end # class
33
+
34
+ # map the EVENT_NAME (which comes from the JSS) with this class
35
+ JSSWebHooks::Event.event_to_class_names[ComputerInventoryCompletedEvent::EVENT_NAME] = ComputerInventoryCompletedEvent
36
+
37
+ end # module
@@ -0,0 +1,37 @@
1
+ ### Copyright 2016 Pixar
2
+ ###
3
+ ### Licensed under the Apache License, Version 2.0 (the "Apache License")
4
+ ### with the following modification; you may not use this file except in
5
+ ### compliance with the Apache License and the following modification to it:
6
+ ### Section 6. Trademarks. is deleted and replaced with:
7
+ ###
8
+ ### 6. Trademarks. This License does not grant permission to use the trade
9
+ ### names, trademarks, service marks, or product names of the Licensor
10
+ ### and its affiliates, except as required to comply with Section 4(c) of
11
+ ### the License and to reproduce the content of the NOTICE file.
12
+ ###
13
+ ### You may obtain a copy of the Apache License at
14
+ ###
15
+ ### http://www.apache.org/licenses/LICENSE-2.0
16
+ ###
17
+ ### Unless required by applicable law or agreed to in writing, software
18
+ ### distributed under the Apache License with the above modification is
19
+ ### distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
20
+ ### KIND, either express or implied. See the Apache License for the specific
21
+ ### language governing permissions and limitations under the Apache License.
22
+ ###
23
+ ###
24
+
25
+ module JSSWebHooks
26
+
27
+ class ComputerPolicyFinishedEvent < Event
28
+
29
+ EVENT_NAME = 'ComputerPolicyFinished'.freeze
30
+ OBJECT_CLASS = JSSWebHooks::EventObjects::Computer
31
+
32
+ end # class
33
+
34
+ # map the EVENT_NAME (which comes from the JSS) with this class
35
+ JSSWebHooks::Event.event_to_class_names[ComputerPolicyFinishedEvent::EVENT_NAME] = ComputerPolicyFinishedEvent
36
+
37
+ end # module
@@ -0,0 +1,37 @@
1
+ ### Copyright 2016 Pixar
2
+ ###
3
+ ### Licensed under the Apache License, Version 2.0 (the "Apache License")
4
+ ### with the following modification; you may not use this file except in
5
+ ### compliance with the Apache License and the following modification to it:
6
+ ### Section 6. Trademarks. is deleted and replaced with:
7
+ ###
8
+ ### 6. Trademarks. This License does not grant permission to use the trade
9
+ ### names, trademarks, service marks, or product names of the Licensor
10
+ ### and its affiliates, except as required to comply with Section 4(c) of
11
+ ### the License and to reproduce the content of the NOTICE file.
12
+ ###
13
+ ### You may obtain a copy of the Apache License at
14
+ ###
15
+ ### http://www.apache.org/licenses/LICENSE-2.0
16
+ ###
17
+ ### Unless required by applicable law or agreed to in writing, software
18
+ ### distributed under the Apache License with the above modification is
19
+ ### distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
20
+ ### KIND, either express or implied. See the Apache License for the specific
21
+ ### language governing permissions and limitations under the Apache License.
22
+ ###
23
+ ###
24
+
25
+ module JSSWebHooks
26
+
27
+ class ComputerPushCapabilityChangedEvent < Event
28
+
29
+ EVENT_NAME = 'ComputerPushCapabilityChanged'.freeze
30
+ OBJECT_CLASS = JSSWebHooks::EventObjects::Computer
31
+
32
+ end # class
33
+
34
+ # map the EVENT_NAME (which comes from the JSS) with this class
35
+ JSSWebHooks::Event.event_to_class_names[ComputerPushCapabilityChangedEvent::EVENT_NAME] = ComputerPushCapabilityChangedEvent
36
+
37
+ end # module
@@ -0,0 +1,191 @@
1
+ ### Copyright 2016 Pixar
2
+ ###
3
+ ### Licensed under the Apache License, Version 2.0 (the "Apache License")
4
+ ### with the following modification; you may not use this file except in
5
+ ### compliance with the Apache License and the following modification to it:
6
+ ### Section 6. Trademarks. is deleted and replaced with:
7
+ ###
8
+ ### 6. Trademarks. This License does not grant permission to use the trade
9
+ ### names, trademarks, service marks, or product names of the Licensor
10
+ ### and its affiliates, except as required to comply with Section 4(c) of
11
+ ### the License and to reproduce the content of the NOTICE file.
12
+ ###
13
+ ### You may obtain a copy of the Apache License at
14
+ ###
15
+ ### http://www.apache.org/licenses/LICENSE-2.0
16
+ ###
17
+ ### Unless required by applicable law or agreed to in writing, software
18
+ ### distributed under the Apache License with the above modification is
19
+ ### distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
20
+ ### KIND, either express or implied. See the Apache License for the specific
21
+ ### language governing permissions and limitations under the Apache License.
22
+ ###
23
+ ###
24
+
25
+ module JSSWebHooks
26
+
27
+ # This method is used by the Ruby event-handler files.
28
+ #
29
+ # Loading them should call this method and pass in a block
30
+ # with one parameter: a JSS::WebHooks::Event subclass object.
31
+ #
32
+ # The block is then converted to a Proc instance in @loaded_event_handler
33
+ # and from there can be stored for use by the event identified by the filename.
34
+ #
35
+ # NOTE: the files should be read with 'load' not 'require', so that they can
36
+ # be re-loaded as needed
37
+ #
38
+ # @see_also JSSWebHooks::load_handlers
39
+ #
40
+ # @param [Block] block the block to be used as an event handler
41
+ #
42
+ # @yieldparam [JSS::WebHooks::Event subclass] The event to be handled
43
+ #
44
+ # @return [Proc] the block converted to a Proc
45
+ #
46
+ def self.event_handler(&block)
47
+ Event::Handlers.loaded_event_handler = Proc.new(&block)
48
+ end
49
+
50
+ class Event
51
+
52
+ module Handlers
53
+
54
+ ############################
55
+ # Module constants
56
+
57
+ DEFAULT_HANDLER_DIR = '/Library/Application Support/JSSWebHooks'.freeze
58
+
59
+ ############################
60
+ # Module Instance Variables, & accessors
61
+
62
+ @loaded_event_handler = nil
63
+
64
+ # Getter for @loaded_event_handler
65
+ #
66
+ # @return [Proc,nil] the most recent Proc loaded from a handler file.
67
+ # destined for storage in @event_handlers
68
+ #
69
+ def self.loaded_event_handler
70
+ @loaded_event_handler
71
+ end
72
+
73
+ # Setter for @loaded_event_handler
74
+ #
75
+ # @param [Proc] a_proc the most recent Proc loaded from a handler file.
76
+ # destined for storage in @event_handlers
77
+ #
78
+ def self.loaded_event_handler=(a_proc)
79
+ @loaded_event_handler = a_proc
80
+ end
81
+
82
+ @event_handlers = {}
83
+
84
+ # Getter for @event_handlers
85
+ #
86
+ # @return [Hash{String => Array}] a mapping of Event Names as the come from
87
+ # the JSS to an Array of handlers for the event. The handlers are either
88
+ # Proc objects to call from within ruby, or Pathnames to executable files
89
+ # which will take raw JSON on stdin.
90
+ def self.event_handlers
91
+ @event_handlers
92
+ end
93
+
94
+ ############################
95
+ # Module Methods
96
+
97
+ # Load all the event handlers from the handler_dir or an arbitrary dir.
98
+ #
99
+ # @param [String, Pathname] from_dir directory from which to
100
+ # load the handlers
101
+ # @param [Boolean] reload should we reload handlers if they've already
102
+ # been loaded?
103
+ #
104
+ # @return [void]
105
+ #
106
+ def self.load_handlers(from_dir = CONFIG.handler_dir, reload = false)
107
+ from_dir ||= DEFAULT_HANDLER_DIR
108
+
109
+ if reload
110
+ @handlers_loaded_from = nil
111
+ @event_handlers = {}
112
+ @loaded_event_handler = nil
113
+ end
114
+
115
+ handler_dir = Pathname.new(from_dir)
116
+ return unless handler_dir.directory? && handler_dir.readable?
117
+
118
+ handler_dir.children.each do |handler_file|
119
+ load_handler(handler_file) if handler_file.file? && handler_file.readable?
120
+ end
121
+
122
+ @handlers_loaded_from = handler_dir
123
+ end # load handlers
124
+
125
+ # Load an even handler from a file.
126
+ # Handler files must begin with the name of the event they handle,
127
+ # e.g. ComputerAdded, followed by: nothing, a dot, a dash, or
128
+ # and underscore. Case doesn't matter.
129
+ # So all of these are OK:
130
+ # ComputerAdded
131
+ # computeradded.sh
132
+ # COMPUTERAdded_notify_team
133
+ # Computeradded-update-ldap
134
+ # There can be as many as desired for each event.
135
+ #
136
+ # Each must be either:
137
+ # - An executable file, which will have the raw JSON from the JSS piped
138
+ # to it's stdin when executed
139
+ # or
140
+ # - A non-executable file of ruby code like this:
141
+ # JSSWebHooks.event_handler do |event|
142
+ # # your code goes here.
143
+ # end
144
+ #
145
+ # (see HERE for details about writing the ruby handlers)
146
+ #
147
+ # @param [Pathname] from_file the file from which to
148
+ #
149
+ # @return [Type] description of returned object
150
+ #
151
+ def self.load_handler(from_file)
152
+ handler_file = Pathname.new from_file
153
+ event_name = event_name_from_handler_filename(handler_file)
154
+ return unless event_name
155
+
156
+ # create an array for this event's handlers, if needed
157
+ @event_handlers[event_name] ||= []
158
+
159
+ if handler_file.executable?
160
+ # store as a Pathname, we'll pipe JSON to it
161
+ @event_handlers[event_name] << handler_file unless \
162
+ @event_handlers[event_name].include? handler_file
163
+ else
164
+ # load the file. If written correctly, it will
165
+ # put a Proc into @loaded_event_handler
166
+ load handler_file.to_s
167
+ # store as a Proc, to be called when the event is handled.
168
+ @event_handlers[event_name] << @loaded_event_handler unless \
169
+ @event_handlers[event_name].include? @loaded_event_handler
170
+
171
+ end # if handler_file.executable?
172
+ end # self.load_handler(handler_file)
173
+
174
+ # Given a handler filename, return the event name it wants to handle
175
+ #
176
+ # @param [Pathname] filename The filename from which to glean the
177
+ # event name.
178
+ #
179
+ # @return [String,nil] The matching event name or nil if no match
180
+ #
181
+ def self.event_name_from_handler_filename(filename)
182
+ @event_names ||= JSSWebHooks::Event.event_to_class_names.keys
183
+ desired_event_name = filename.basename.to_s.split(/\.|-|_/).first
184
+ @event_names.select { |n| desired_event_name.casecmp(n).zero? }.first
185
+ end
186
+
187
+ end # module Handler
188
+
189
+ end # class event
190
+
191
+ end # module
@@ -0,0 +1,37 @@
1
+ ### Copyright 2016 Pixar
2
+ ###
3
+ ### Licensed under the Apache License, Version 2.0 (the "Apache License")
4
+ ### with the following modification; you may not use this file except in
5
+ ### compliance with the Apache License and the following modification to it:
6
+ ### Section 6. Trademarks. is deleted and replaced with:
7
+ ###
8
+ ### 6. Trademarks. This License does not grant permission to use the trade
9
+ ### names, trademarks, service marks, or product names of the Licensor
10
+ ### and its affiliates, except as required to comply with Section 4(c) of
11
+ ### the License and to reproduce the content of the NOTICE file.
12
+ ###
13
+ ### You may obtain a copy of the Apache License at
14
+ ###
15
+ ### http://www.apache.org/licenses/LICENSE-2.0
16
+ ###
17
+ ### Unless required by applicable law or agreed to in writing, software
18
+ ### distributed under the Apache License with the above modification is
19
+ ### distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
20
+ ### KIND, either express or implied. See the Apache License for the specific
21
+ ### language governing permissions and limitations under the Apache License.
22
+ ###
23
+ ###
24
+
25
+ module JSSWebHooks
26
+
27
+ class JSSShutdownEvent < Event
28
+
29
+ EVENT_NAME = 'JSSShutdown'.freeze
30
+ OBJECT_CLASS = JSSWebHooks::EventObjects::JSS
31
+
32
+ end # class
33
+
34
+ # map the EVENT_NAME (which comes from the JSS) with this class
35
+ JSSWebHooks::Event.event_to_class_names[JSSShutdownEvent::EVENT_NAME] = JSSShutdownEvent
36
+
37
+ end # module
@@ -0,0 +1,37 @@
1
+ ### Copyright 2016 Pixar
2
+ ###
3
+ ### Licensed under the Apache License, Version 2.0 (the "Apache License")
4
+ ### with the following modification; you may not use this file except in
5
+ ### compliance with the Apache License and the following modification to it:
6
+ ### Section 6. Trademarks. is deleted and replaced with:
7
+ ###
8
+ ### 6. Trademarks. This License does not grant permission to use the trade
9
+ ### names, trademarks, service marks, or product names of the Licensor
10
+ ### and its affiliates, except as required to comply with Section 4(c) of
11
+ ### the License and to reproduce the content of the NOTICE file.
12
+ ###
13
+ ### You may obtain a copy of the Apache License at
14
+ ###
15
+ ### http://www.apache.org/licenses/LICENSE-2.0
16
+ ###
17
+ ### Unless required by applicable law or agreed to in writing, software
18
+ ### distributed under the Apache License with the above modification is
19
+ ### distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
20
+ ### KIND, either express or implied. See the Apache License for the specific
21
+ ### language governing permissions and limitations under the Apache License.
22
+ ###
23
+ ###
24
+
25
+ module JSSWebHooks
26
+
27
+ class JSSStartupEvent < Event
28
+
29
+ EVENT_NAME = 'JSSStartup'.freeze
30
+ OBJECT_CLASS = JSSWebHooks::EventObjects::JSS
31
+
32
+ end # class
33
+
34
+ # map the EVENT_NAME (which comes from the JSS) with this class
35
+ JSSWebHooks::Event.event_to_class_names[JSSStartupEvent::EVENT_NAME] = JSSStartupEvent
36
+
37
+ end # module
@@ -0,0 +1,37 @@
1
+ ### Copyright 2016 Pixar
2
+ ###
3
+ ### Licensed under the Apache License, Version 2.0 (the "Apache License")
4
+ ### with the following modification; you may not use this file except in
5
+ ### compliance with the Apache License and the following modification to it:
6
+ ### Section 6. Trademarks. is deleted and replaced with:
7
+ ###
8
+ ### 6. Trademarks. This License does not grant permission to use the trade
9
+ ### names, trademarks, service marks, or product names of the Licensor
10
+ ### and its affiliates, except as required to comply with Section 4(c) of
11
+ ### the License and to reproduce the content of the NOTICE file.
12
+ ###
13
+ ### You may obtain a copy of the Apache License at
14
+ ###
15
+ ### http://www.apache.org/licenses/LICENSE-2.0
16
+ ###
17
+ ### Unless required by applicable law or agreed to in writing, software
18
+ ### distributed under the Apache License with the above modification is
19
+ ### distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
20
+ ### KIND, either express or implied. See the Apache License for the specific
21
+ ### language governing permissions and limitations under the Apache License.
22
+ ###
23
+ ###
24
+
25
+ module JSSWebHooks
26
+
27
+ class MobileDeviceCheckInEvent < Event
28
+
29
+ EVENT_NAME = 'MobileDeviceCheckIn'.freeze
30
+ OBJECT_CLASS = JSSWebHooks::EventObjects::MobileDevice
31
+
32
+ end # class
33
+
34
+ # map the EVENT_NAME (which comes from the JSS) with this class
35
+ JSSWebHooks::Event.event_to_class_names[MobileDeviceCheckInEvent::EVENT_NAME] = MobileDeviceCheckInEvent
36
+
37
+ end # module