ruby-jss 0.10.2a5 → 0.10.2

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.

Potentially problematic release.


This version of ruby-jss might be problematic. Click here for more details.

@@ -6,13 +6,6 @@ module JSS
6
6
  #
7
7
  class MobileDeviceConfigurationProfile < APIObject
8
8
 
9
- # Mix-Ins
10
- ###################################
11
- include JSS::Categorizable
12
- include JSS::Sitable
13
- include JSS::Scopable
14
- include JSS::SelfServable
15
-
16
9
  ### The base for REST resources of this class
17
10
  RSRC_BASE = 'mobiledeviceconfigurationprofiles'.freeze
18
11
 
@@ -28,35 +21,6 @@ module JSS
28
21
  # See {APIObject#add_object_history_entry}
29
22
  OBJECT_HISTORY_OBJECT_TYPE = 22
30
23
 
31
- # Our scopes deal with computers
32
- SCOPE_TARGET_KEY = :mobile_devices
33
-
34
- SITE_SUBSET = :general
35
-
36
- # Attributes
37
- ###################################
38
-
39
- # @return [String] the description of this profile
40
- attr_reader :description
41
-
42
- # @return [String] the distribution_method of this profile
43
- attr_reader :distribution_method
44
-
45
- # @return [Boolean] can the user remove this profile
46
- attr_reader :user_removable
47
-
48
- # @return [String] the level (user/computer) of this profile
49
- attr_reader :level
50
-
51
- # @return [String] the uuid of this profile. NOT Updatable
52
- attr_reader :uuid
53
-
54
- # @return [Boolean] Should this profile be redeployed when an inventory update happens?
55
- attr_reader :redeploy_on_update
56
-
57
- # @return [String] the plist containing the payloads for this profile. NOT Updatable
58
- attr_reader :payloads
59
-
60
24
  end
61
25
 
62
26
  end
@@ -1,122 +1,141 @@
1
- # Copyright 2017 Pixar
2
-
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "Apache License")
5
- # with the following modification; you may not use this file except in
6
- # compliance with the Apache License and the following modification to it:
7
- # Section 6. Trademarks. is deleted and replaced with:
8
- #
9
- # 6. Trademarks. This License does not grant permission to use the trade
10
- # names, trademarks, service marks, or product names of the Licensor
11
- # and its affiliates, except as required to comply with Section 4(c) of
12
- # the License and to reproduce the content of the NOTICE file.
13
- #
14
- # You may obtain a copy of the Apache License at
15
- #
16
- # http://www.apache.org/licenses/LICENSE-2.0
17
- #
18
- # Unless required by applicable law or agreed to in writing, software
19
- # distributed under the Apache License with the above modification is
20
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21
- # KIND, either express or implied. See the Apache License for the specific
22
- # language governing permissions and limitations under the Apache License.
23
- #
24
- #
25
-
26
- #
1
+ ### Copyright 2017 Pixar
2
+
3
+ ###
4
+ ### Licensed under the Apache License, Version 2.0 (the "Apache License")
5
+ ### with the following modification; you may not use this file except in
6
+ ### compliance with the Apache License and the following modification to it:
7
+ ### Section 6. Trademarks. is deleted and replaced with:
8
+ ###
9
+ ### 6. Trademarks. This License does not grant permission to use the trade
10
+ ### names, trademarks, service marks, or product names of the Licensor
11
+ ### and its affiliates, except as required to comply with Section 4(c) of
12
+ ### the License and to reproduce the content of the NOTICE file.
13
+ ###
14
+ ### You may obtain a copy of the Apache License at
15
+ ###
16
+ ### http://www.apache.org/licenses/LICENSE-2.0
17
+ ###
18
+ ### Unless required by applicable law or agreed to in writing, software
19
+ ### distributed under the Apache License with the above modification is
20
+ ### distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21
+ ### KIND, either express or implied. See the Apache License for the specific
22
+ ### language governing permissions and limitations under the Apache License.
23
+ ###
24
+ ###
25
+
26
+ ###
27
27
  module JSS
28
28
 
29
- # Classes
30
- ###################################
31
-
32
- # An OS X Configuration Profile in the JSS.
33
- #
34
- # Note that the profile payloads and the profile UUID cannot be edited or updated with this via this class.
35
- # Use the web UI.
36
- #
37
- # @see JSS::APIObject
38
- #
29
+ #####################################
30
+ ### Module Variables
31
+ #####################################
32
+
33
+ #####################################
34
+ ### Module Methods
35
+ #####################################
36
+
37
+ #####################################
38
+ ### Classes
39
+ #####################################
40
+
41
+ ###
42
+ ### An OS X Configuration Profile in the JSS.
43
+ ###
44
+ ### Note that the profile payloads and the profile UUID cannot be edited or updated with this via this class.
45
+ ### Use the web UI.
46
+ ###
47
+ ### @see JSS::APIObject
48
+ ###
39
49
  class OSXConfigurationProfile < JSS::APIObject
40
50
 
41
- # Mix-Ins
42
- ###################################
51
+ #####################################
52
+ ### Mix-Ins
53
+ #####################################
43
54
  include JSS::Updatable
44
55
  include JSS::Scopable
45
56
  include JSS::SelfServable
46
- include JSS::Categorizable
47
- include JSS::Sitable
48
57
 
49
- # Class Constants
50
- ###################################
58
+ #####################################
59
+ ### Class Variables
60
+ #####################################
61
+
62
+ #####################################
63
+ ### Class Methods
64
+ #####################################
51
65
 
52
- # The base for REST resources of this class
53
- RSRC_BASE = 'osxconfigurationprofiles'.freeze
66
+ #####################################
67
+ ### Class Constants
68
+ #####################################
54
69
 
55
- # the hash key used for the JSON list output of all objects in the JSS
70
+ ### The base for REST resources of this class
71
+ RSRC_BASE = "osxconfigurationprofiles"
72
+
73
+ ### the hash key used for the JSON list output of all objects in the JSS
56
74
  RSRC_LIST_KEY = :os_x_configuration_profiles
57
75
 
58
- # The hash key used for the JSON object output.
59
- # It's also used in various error messages
76
+ ### The hash key used for the JSON object output.
77
+ ### It's also used in various error messages
60
78
  RSRC_OBJECT_KEY = :os_x_configuration_profile
61
79
 
62
- # these keys, as well as :id and :name, are present in valid API JSON data for this class
63
- VALID_DATA_KEYS = %i[distribution_method scope redeploy_on_update].freeze
80
+ ### these keys, as well as :id and :name, are present in valid API JSON data for this class
81
+ VALID_DATA_KEYS = [:distribution_method, :scope, :redeploy_on_update]
64
82
 
65
- # Our scopes deal with computers
83
+ ### Our scopes deal with computers
66
84
  SCOPE_TARGET_KEY = :computers
67
85
 
68
- # Our SelfService happens on OSX
86
+ ### Our SelfService happens on OSX
69
87
  SELF_SERVICE_TARGET = :osx
70
88
 
71
- # Our SelfService deploys profiles
89
+ ### Our SelfService deploys profiles
72
90
  SELF_SERVICE_PAYLOAD = :profile
73
91
 
74
- # The possible values for the :distribution_method
75
- DISTRIBUTION_METHODS = ['Install Automatically', 'Make Available in Self Service'].freeze
92
+ ### The possible values for the :distribution_method
93
+ DISTRIBUTION_METHODS = ["Install Automatically", "Make Available in Self Service"]
76
94
 
77
- SELF_SERVICE_DIST_METHOD = 'Make Available in Self Service'.freeze
95
+ SELF_SERVICE_DIST_METHOD = "Make Available in Self Service"
78
96
 
79
- # The possible values for :level
80
- LEVELS = %w[user computer].freeze
97
+ ### The possible values for :level
98
+ LEVELS = ["user", "computer"]
81
99
 
82
100
  # the object type for this object in
83
101
  # the object history table.
84
102
  # See {APIObject#add_object_history_entry}
85
103
  OBJECT_HISTORY_OBJECT_TYPE = 4
86
104
 
87
- # Where is the Site data in the API JSON?
88
- SITE_SUBSET = :general
89
-
90
- # Attributes
91
- ###################################
105
+ #####################################
106
+ ### Attributes
107
+ #####################################
92
108
 
93
- # @return [String] the description of this profile
109
+ ### @return [String] the description of this profile
94
110
  attr_reader :description
95
111
 
96
- # @return [String] the distribution_method of this profile
112
+ ### @return [String] the distribution_method of this profile
97
113
  attr_reader :distribution_method
98
114
 
99
- # @return [Boolean] can the user remove this profile
115
+ ### @return [Boolean] can the user remove this profile
100
116
  attr_reader :user_removable
101
117
 
102
- # @return [String] the level (user/computer) of this profile
118
+ ### @return [String] the level (user/computer) of this profile
103
119
  attr_reader :level
104
120
 
105
- # @return [String] the uuid of this profile. NOT Updatable
121
+ ### @return [String] the uuid of this profile. NOT Updatable
106
122
  attr_reader :uuid
107
123
 
108
- # @return [Boolean] Should this profile be redeployed when an inventory update happens?
124
+ ### @return [Boolean] Should this profile be redeployed when an inventory update happens?
109
125
  attr_reader :redeploy_on_update
110
126
 
111
- # @return [String] the plist containing the payloads for this profile. NOT Updatable
127
+ ### @return [String] the plist containing the payloads for this profile. NOT Updatable
112
128
  attr_reader :payloads
113
129
 
114
- # Constructor
115
- ###################################
130
+ #####################################
131
+ ### Constructor
132
+ #####################################
133
+
134
+ ###
135
+ ### See JSS::APIObject#initialize
136
+ ###
137
+ def initialize (args = {})
116
138
 
117
- # See JSS::APIObject#initialize
118
- #
119
- def initialize(args = {})
120
139
  super
121
140
 
122
141
  @description = @main_subset[:description]
@@ -128,82 +147,100 @@ module JSS
128
147
  @payloads = @main_subset[:payloads]
129
148
  end
130
149
 
131
- # Public Instance Methods
132
- ###################################
150
+ #####################################
151
+ ### Public Instance Methods
152
+ #####################################
133
153
 
134
- # @param new_val[String] the new discription
135
- #
136
- # @return [void]
137
- #
138
- def description=(new_val)
154
+ ###
155
+ ### @param new_val[String] the new discription
156
+ ###
157
+ ### @return [void]
158
+ ###
159
+ def description= (new_val)
139
160
  return nil if @self_service_description == new_val
140
161
  @description = new_val.strip!
141
162
  @need_to_update = true
142
- end # @param new_val[String] how should this be distributed to clients?
163
+ end
164
+
143
165
 
144
- #
145
- # @return [void]
146
- #
147
- def distribution_method=(new_val)
166
+ ###
167
+ ### @param new_val[String] how should this be distributed to clients?
168
+ ###
169
+ ### @return [void]
170
+ ###
171
+ def distribution_method= (new_val)
148
172
  return nil if @distribution_method == new_val
149
173
  raise JSS::InvalidDataError, "New value must be one of '#{DISTRIBUTION_METHODS.join("' '")}'" unless DISTRIBUTION_METHODS.include? new_val
150
174
  @distribution_method = new_val
151
175
  @need_to_update = true
152
176
  end
153
177
 
154
- # @param new_val[Boolean] should the user be able to remove this?
155
- #
156
- # @return [void]
157
- #
158
- def user_removable=(new_val)
178
+ ###
179
+ ### @param new_val[Boolean] should the user be able to remove this?
180
+ ###
181
+ ### @return [void]
182
+ ###
183
+ def user_removable= (new_val)
159
184
  return nil if @self_service_feature_on_main_page == new_val
160
185
  raise JSS::InvalidDataError, "Distribution method must be '#{SELF_SERVICE_DIST_METHOD}' to let the user remove it." unless in_self_service?
161
- raise JSS::InvalidDataError, 'New value must be true or false' unless JSS::TRUE_FALSE.include? new_val
186
+ raise JSS::InvalidDataError, "New value must be true or false" unless JSS::TRUE_FALSE.include? new_val
162
187
  @user_removable = new_val
163
188
  @need_to_update = true
164
189
  end
165
190
 
166
- # @param new_val[String] the new level for this profile (user/computer)
167
- #
168
- # @return [void]
169
- #
170
- def level=(new_val)
191
+ ###
192
+ ### @param new_val[String] the new level for this profile (user/computer)
193
+ ###
194
+ ### @return [void]
195
+ ###
196
+ def level= (new_val)
171
197
  return nil if @level == new_val
172
198
  raise JSS::InvalidDataError, "New value must be one of '#{LEVELS.join("' '")}'" unless LEVELS.include? new_val
173
199
  @level = new_val
174
200
  @need_to_update = true
175
- end # @return [Boolean] is this profile available in Self Service?
201
+ end
202
+
176
203
 
177
- #
204
+ ###
205
+ ### @return [Boolean] is this profile available in Self Service?
206
+ ###
178
207
  def in_self_service?
179
208
  @distribution_method == SELF_SERVICE_DIST_METHOD
180
- end # @return [Boolean] is this profile removable by the user?
209
+ end
210
+
181
211
 
182
- #
212
+ ###
213
+ ### @return [Boolean] is this profile removable by the user?
214
+ ###
183
215
  def user_removable?
184
216
  @user_removable
185
- end # @return [Hash] The payload plist parsed into a Ruby hash
217
+ end
218
+
186
219
 
187
- #
220
+ ###
221
+ ### @return [Hash] The payload plist parsed into a Ruby hash
222
+ ###
188
223
  def parsed_payloads
189
224
  Plist.parse_xml @payloads
190
225
  end
191
226
 
192
- # @return [Array<Hash>] the individual payloads from the payload Plist
193
- #
227
+ ###
228
+ ### @return [Array<Hash>] the individual payloads from the payload Plist
229
+ ###
194
230
  def payload_content
195
231
  parsed_payloads['PayloadContent']
196
232
  end
197
233
 
198
- # @return [Array<String>] the PayloadType of each payload (e.g. com.apple.caldav.account)
199
- #
234
+ ###
235
+ ### @return [Array<String>] the PayloadType of each payload (e.g. com.apple.caldav.account)
236
+ ###
200
237
  def payload_types
201
- payload_content.map { |p| p['PayloadType'] }
238
+ payload_content.map{|p| p['PayloadType'] }
202
239
  end
203
240
 
204
- ###################################
205
- # Private Instance Methods
206
- ###################################
241
+ #####################################
242
+ ### Private Instance Methods
243
+ #####################################
207
244
  private
208
245
 
209
246
  def rest_xml
@@ -218,10 +255,9 @@ module JSS
218
255
  gen.add_element('redeploy_on_update').text = @redeploy_on_update
219
256
 
220
257
  obj << @scope.scope_xml
221
- add_self_service_xml doc
222
- add_category_to_xml doc
223
- add_site_to_xml doc
224
- doc.to_s
258
+ obj << self_service_xml
259
+
260
+ return doc.to_s
225
261
  end
226
262
 
227
263
  end # class OSXConfigurationProfile
@@ -51,10 +51,16 @@ module JSS
51
51
 
52
52
  include JSS::Creatable
53
53
  include JSS::Updatable
54
+
55
+ ### periphs have a purchasing subset
54
56
  include JSS::Purchasable
57
+
58
+ ### periphs have a location subset, which will be
59
+ ### stored in primary attributes.
55
60
  include JSS::Locatable
61
+
62
+ ### periphs can take uploaded files.
56
63
  include JSS::Uploadable
57
- include JSS::Sitable
58
64
 
59
65
  #####################################
60
66
  ### Class Methods
@@ -82,9 +88,6 @@ module JSS
82
88
  # See {APIObject#add_object_history_entry}
83
89
  OBJECT_HISTORY_OBJECT_TYPE = 8
84
90
 
85
- # Where is the Site data in the API JSON?
86
- SITE_SUBSET = :general
87
-
88
91
  #####################################
89
92
  ### Class Variables
90
93
  #####################################
@@ -313,7 +316,6 @@ module JSS
313
316
  if has_purchasing?
314
317
  periph << purchasing_xml
315
318
  end
316
- add_site_to_xml doc
317
319
 
318
320
  return doc.to_s
319
321
  end # rest xml
@@ -77,7 +77,6 @@ module JSS
77
77
  include JSS::Uploadable
78
78
  include JSS::SelfServable
79
79
  include JSS::Categorizable
80
- include JSS::Sitable
81
80
 
82
81
  #####################################
83
82
  ### Class Methods
@@ -250,9 +249,6 @@ module JSS
250
249
  # See {APIObject#add_object_history_entry}
251
250
  OBJECT_HISTORY_OBJECT_TYPE = 3
252
251
 
253
- # Where is the Site data in the API JSON?
254
- SITE_SUBSET = :general
255
-
256
252
  ######################
257
253
  ### Attributes
258
254
  ######################
@@ -1364,7 +1360,6 @@ module JSS
1364
1360
  end
1365
1361
 
1366
1362
  add_self_service_xml doc
1367
- add_site_xml doc
1368
1363
 
1369
1364
  doc.to_s
1370
1365
  end
@@ -11,7 +11,6 @@ module JSS
11
11
  include JSS::Updatable
12
12
  include JSS::Creatable
13
13
  include JSS::Scopable
14
- include JSS::Sitable
15
14
 
16
15
  # Class Constants
17
16
  #####################################
@@ -37,9 +36,6 @@ module JSS
37
36
  # See {APIObject#add_object_history_entry}
38
37
  OBJECT_HISTORY_OBJECT_TYPE = 5
39
38
 
40
- # Where is the Site data in the API JSON?
41
- SITE_SUBSET = :general
42
-
43
39
  # Attributes
44
40
  #####################################
45
41
 
@@ -166,7 +162,6 @@ module JSS
166
162
  site.add_element('name').text = @site
167
163
 
168
164
  obj << @scope.scope_xml
169
- add_self_service_xml doc
170
165
  doc.to_s
171
166
  end # rest_xml
172
167