ruby-jss 1.5.1 → 1.5.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +26 -0
  3. data/lib/jamf.rb +8 -13
  4. data/lib/jamf/api/{abstract_classes → base_classes}/collection_resource.rb +6 -5
  5. data/lib/jamf/api/{abstract_classes → base_classes}/json_object.rb +4 -20
  6. data/lib/jamf/api/{abstract_classes → base_classes}/prestage.rb +1 -1
  7. data/lib/jamf/api/{abstract_classes → base_classes}/resource.rb +6 -2
  8. data/lib/jamf/api/{abstract_classes → base_classes}/singleton_resource.rb +3 -2
  9. data/lib/jamf/api/json_objects/device_enrollment_sync_status.rb +1 -1
  10. data/lib/jamf/api/json_objects/md_prestage_name.rb +1 -1
  11. data/lib/jamf/api/json_objects/md_prestage_names.rb +2 -2
  12. data/lib/jamf/api/json_objects/prestage_assignment.rb +2 -2
  13. data/lib/jamf/api/mixins/{abstract.rb → base_class.rb} +34 -16
  14. data/lib/jamf/api/resources/collection_resources/building.rb +0 -4
  15. data/lib/jamf/api/resources/collection_resources/category.rb +0 -1
  16. data/lib/jamf/api/resources/collection_resources/computer_prestage.rb +1 -1
  17. data/lib/jamf/api/resources/collection_resources/department.rb +0 -2
  18. data/lib/jamf/api/resources/collection_resources/mobile_device_prestage.rb +1 -1
  19. data/lib/jamf/version.rb +1 -1
  20. data/lib/jss/api_connection.rb +1 -36
  21. data/lib/jss/api_object/computer.rb +13 -0
  22. data/lib/jss/api_object/configuration_profile.rb +28 -3
  23. data/lib/jss/api_object/policy.rb +105 -25
  24. data/lib/jss/api_object/scopable/scope.rb +31 -30
  25. data/lib/jss/utility.rb +142 -37
  26. data/lib/jss/version.rb +1 -1
  27. metadata +8 -41
  28. data/lib/jamf/api/abstract_classes/advanced_search.rb +0 -86
  29. data/lib/jamf/api/abstract_classes/generic_reference.rb +0 -153
  30. data/lib/jamf/api/abstract_classes/prestage_skip_setup_items.rb +0 -147
  31. data/lib/jamf/api/json_objects/account_prefs.rb +0 -79
  32. data/lib/jamf/api/json_objects/android_details.rb +0 -139
  33. data/lib/jamf/api/json_objects/appletv_details.rb +0 -110
  34. data/lib/jamf/api/json_objects/attachment.rb +0 -68
  35. data/lib/jamf/api/json_objects/cellular_network.rb +0 -151
  36. data/lib/jamf/api/json_objects/computer_prestage_skip_setup_items.rb +0 -80
  37. data/lib/jamf/api/json_objects/criterion.rb +0 -152
  38. data/lib/jamf/api/json_objects/extension_attribute_value.rb +0 -128
  39. data/lib/jamf/api/json_objects/installed_application.rb +0 -59
  40. data/lib/jamf/api/json_objects/installed_certificate.rb +0 -53
  41. data/lib/jamf/api/json_objects/installed_configuration_profile.rb +0 -67
  42. data/lib/jamf/api/json_objects/installed_ebook.rb +0 -58
  43. data/lib/jamf/api/json_objects/installed_provisioning_profile.rb +0 -59
  44. data/lib/jamf/api/json_objects/ios_details.rb +0 -244
  45. data/lib/jamf/api/json_objects/location.rb +0 -95
  46. data/lib/jamf/api/json_objects/mobile_device_details.rb +0 -219
  47. data/lib/jamf/api/json_objects/mobile_device_security.rb +0 -101
  48. data/lib/jamf/api/json_objects/purchasing_data.rb +0 -125
  49. data/lib/jamf/api/mixins/locatable.rb +0 -124
  50. data/lib/jamf/api/mixins/referable.rb +0 -92
  51. data/lib/jamf/api/resources/collection_resources/account.rb +0 -163
  52. data/lib/jamf/api/resources/collection_resources/advanced_mobile_device_search.rb +0 -52
  53. data/lib/jamf/api/resources/collection_resources/advanced_user_search.rb +0 -52
  54. data/lib/jamf/api/resources/collection_resources/computer.rb +0 -49
  55. data/lib/jamf/api/resources/collection_resources/extension_attribute.rb +0 -45
  56. data/lib/jamf/api/resources/collection_resources/mobile_device.rb +0 -315
  57. data/lib/jamf/api/resources/collection_resources/site.rb +0 -77
  58. data/lib/jamf/api/resources/singleton_resources/authorization.rb +0 -88
  59. data/lib/jamf/api/resources/singleton_resources/client_checkin_settings.rb +0 -139
  60. data/lib/jamf/api/resources/singleton_resources/reenrollment_settings.rb +0 -95
@@ -1,219 +0,0 @@
1
- # Copyright 2020 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
- # The module
27
- module Jamf
28
-
29
- # Classes
30
- #####################################
31
-
32
- # details of a mob dev
33
- class MobileDeviceDetails < Jamf::JSONObject
34
-
35
- # Mixins
36
- #####################################
37
-
38
- # Class Constants
39
- #####################################
40
-
41
- OBJECT_MODEL = {
42
-
43
- # @!attribute [r] id
44
- # @return [Integer]
45
- id: {
46
- class: :integer,
47
- identifier: :primary,
48
- readonly: true
49
- },
50
-
51
- # @!attribute [r] name
52
- # This is readonly becuase the name attribute of
53
- # the enclosing MobileDevice is used.
54
- # @return [String]
55
- name: {
56
- class: :string,
57
- readonly: true
58
- },
59
-
60
- # @!attribute assetTag
61
- # @param [String]
62
- # @return [String]
63
- assetTag: {
64
- class: :string
65
- # TODO: make this an identifier?
66
- },
67
-
68
- # @!attribute [r] lastInventoryUpdateTimestamp
69
- # @return [String]
70
- lastInventoryUpdateTimestamp: {
71
- class: Jamf::Timestamp,
72
- aliases: [:lastInventoryUpdate],
73
- readonly: true
74
- },
75
-
76
- # @!attribute [r] osVersion
77
- # @return [String]
78
- osVersion: {
79
- class: :string,
80
- readonly: true
81
- },
82
-
83
- # @!attribute [r] osBuild
84
- # @return [String]
85
- osBuild: {
86
- class: :string,
87
- readonly: true
88
- },
89
-
90
- # @!attribute [r] serialNumber
91
- # @param [String]
92
- # @return [String]
93
- serialNumber: {
94
- class: :string,
95
- identifier: true,
96
- readonly: true
97
- },
98
-
99
- # @!attribute [r] udid
100
- # @param [String]
101
- # @return [String]
102
- udid: {
103
- class: :string,
104
- identifier: true,
105
- readonly: true
106
- },
107
-
108
- # @!attribute [r] ipAddress
109
- # @return [Jamf::IPAddress]
110
- ipAddress: {
111
- class: Jamf::IPAddress,
112
- readonly: true
113
- },
114
-
115
- # @!attribute [r] wifiMacAddress
116
- # @param [String]
117
- # @return [String]
118
- wifiMacAddress: {
119
- class: :string,
120
- identifier: true,
121
- readonly: true
122
- },
123
-
124
- # @!attribute [r] bluetoothMacAddress
125
- # @return [String]
126
- bluetoothMacAddress: {
127
- class: :string,
128
- readonly: true
129
- },
130
-
131
- # @!attribute [r] isManaged
132
- # see Jamf::MobileDevice#unmanage
133
- # @return [Boolean]
134
- isManaged: {
135
- class: :boolean,
136
- readonly: true
137
- },
138
-
139
- # @!attribute [r] initialEntryTimestamp
140
- # @return [Jamf::Timestamp]
141
- initialEntryTimestamp: {
142
- class: Jamf::Timestamp,
143
- readonly: true,
144
- aliases: %i[initialEntry firstEnrolled]
145
- },
146
-
147
- # @!attribute [r] lastEnrollmentTimestamp
148
- # @return [Boolean]
149
- lastEnrollmentTimestamp: {
150
- class: Jamf::Timestamp,
151
- readonly: true,
152
- aliases: %i[lastEnrollment lastEnrolled]
153
- },
154
-
155
- # @!attribute deviceOwnershipLevel
156
- # @return [String]
157
- deviceOwnershipLevel: {
158
- class: :string,
159
- readonly: true
160
- },
161
-
162
- # @!attribute site
163
- # @param @see Jamf::Site::Reference#initialize
164
- # @return [Jamf::Site::Reference]
165
- site: {
166
- class: Jamf::Site::Reference
167
- },
168
-
169
- # @!attribute [r] extensionAttributes
170
- # see Jamf::Extendable
171
- # @return [Array<Jamf::ExtensionAttribute::Value>]
172
- extensionAttributes: {
173
- class: Jamf::ExtensionAttributeValue,
174
- multi: true,
175
- readonly: true
176
- },
177
-
178
- # @!attribute [r] location
179
- # see Jamf::Locatable
180
- # @return [Jamf::Location]
181
- location: {
182
- class: Jamf::Location
183
- },
184
-
185
- # @!attribute [r] ios
186
- # @return [Jamf::MobileDevice::IosDetails]
187
- ios: {
188
- class: Jamf::IosDetails,
189
- readonly: true
190
- },
191
-
192
- # @!attribute [r] appleTv
193
- # @return [Jamf::MobileDevice::AppleTvDetails]
194
- appleTv: {
195
- class: Jamf::AppleTVDetails,
196
- readonly: true
197
- },
198
-
199
- # @!attribute [r] android
200
- # @return [Jamf::MobileDevice::AndroidDetails]
201
- android: {
202
- class: Jamf::AndroidDetails,
203
- readonly: true
204
- }
205
-
206
- }.freeze
207
- parse_object_model
208
-
209
- # Class Methods
210
- ###################################################
211
-
212
- def self.fetch(id, cnx)
213
- data = cnx.get "#{Jamf::MobileDevice::RSRC_PATH}/#{id}/detail"
214
- new data, cnx: cnx
215
- end
216
-
217
- end # class Mobile Device Details
218
-
219
- end # module
@@ -1,101 +0,0 @@
1
- # Copyright 2020 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
- # The module
27
- module Jamf
28
-
29
- # The collection of security settings for a device
30
- class MobileDeviceSecurity < Jamf::JSONObject
31
-
32
- OBJECT_MODEL = {
33
-
34
- # @!attribute [r] isDataProtected
35
- # @return [Boolean]
36
- isDataProtected: {
37
- class: :boolean,
38
- readonly: true
39
- },
40
-
41
- # @!attribute [r] isBlockLevelEncryptionCapable
42
- # @return [Boolean]
43
- isBlockLevelEncryptionCapable: {
44
- class: :boolean,
45
- readonly: true
46
- },
47
-
48
- # @!attribute [r] isFileLevelEncryptionCapable
49
- # @return [Boolean]
50
- isFileLevelEncryptionCapable: {
51
- class: :boolean,
52
- readonly: true
53
- },
54
-
55
- # @!attribute [r] isPasscodePresent
56
- # @return [Boolean]
57
- isPasscodePresent: {
58
- class: :boolean,
59
- readonly: true
60
- },
61
-
62
- # @!attribute [r] isPasscodeCompliant
63
- # @return [Boolean]
64
- isPasscodeCompliant: {
65
- class: :boolean,
66
- readonly: true
67
- },
68
-
69
- # @!attribute [r] isPasscodeCompliantWithProfile
70
- # @return [Boolean]
71
- isPasscodeCompliantWithProfile: {
72
- class: :boolean,
73
- readonly: true
74
- },
75
-
76
- # @!attribute [r] hardwareEncryption
77
- # @return [Integer]
78
- hardwareEncryption: {
79
- class: :integer,
80
- readonly: true
81
- },
82
-
83
- # @!attribute [r] isActivationLockEnabled
84
- # @return [Boolean]
85
- isActivationLockEnabled: {
86
- class: :boolean,
87
- readonly: true
88
- },
89
-
90
- # @!attribute [r] isJailBreakDetected
91
- # @return [Boolean]
92
- isJailBreakDetected: {
93
- class: :boolean,
94
- readonly: true
95
- }
96
- }.freeze
97
- parse_object_model
98
-
99
- end # class Mobile Device security
100
-
101
- end # module
@@ -1,125 +0,0 @@
1
- # Copyright 2020 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
- # The module
27
- module Jamf
28
-
29
- # A 'location' for a managed object in Jamf Pro
30
- class PurchasingData < Jamf::JSONObject
31
-
32
- # TODO: setters or an uncreated device?
33
-
34
- OBJECT_MODEL = {
35
-
36
- # @!attribute isPurchased
37
- # @param [String]
38
- # @return [String]
39
- isPurchased: {
40
- class: :boolean
41
- },
42
-
43
- # @!attribute isLeased
44
- # @param [String]
45
- # @return [String]
46
- isLeased: {
47
- class: :boolean
48
- },
49
-
50
- # @!attribute poNumber
51
- # @param [String]
52
- # @return [String]
53
- poNumber: {
54
- class: :string
55
- },
56
-
57
- # @!attribute appleCareId
58
- # @param [String]
59
- # @return [String]
60
- appleCareId: {
61
- class: :string
62
- },
63
-
64
- # @!attribute vendor
65
- # @param [String]
66
- # @return [String]
67
- vendor: {
68
- class: :string
69
- },
70
-
71
- # @!attribute purchasePrice
72
- # @param [String]
73
- # @return [String]
74
- purchasePrice: {
75
- class: :string
76
- },
77
-
78
- # @!attribute purchasingAccount
79
- # @param [String]
80
- # @return [String]
81
- purchasingAccount: {
82
- class: :string
83
- },
84
-
85
- # @!attribute poDate
86
- # @param [String]
87
- # @return [String]
88
- poDate: {
89
- class: Jamf::Timestamp
90
- },
91
-
92
- # @!attribute warrantyExpiresDate
93
- # @param [String]
94
- # @return [String]
95
- warrantyExpiresDate: {
96
- class: Jamf::Timestamp
97
- },
98
-
99
- # @!attribute leaseExpiresDate
100
- # @param [String]
101
- # @return [String]
102
- leaseExpiresDate: {
103
- class: Jamf::Timestamp
104
- },
105
-
106
- # @!attribute lifeExpectancy
107
- # @param [String]
108
- # @return [String]
109
- lifeExpectancy: {
110
- class: :integer
111
- },
112
-
113
- # @!attribute purchasingContact
114
- # @param [String]
115
- # @return [String]
116
- purchasingContact: {
117
- class: :string
118
- }
119
- }.freeze
120
-
121
- parse_object_model
122
-
123
- end # class location
124
-
125
- end # module
@@ -1,124 +0,0 @@
1
- # Copyright 2020 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 Jamf
26
-
27
- # Classes mixing this in have a Jamf::Location instance in their :location
28
- # attribute.
29
- #
30
- # See the Jamf::JSONObject docs for OBJECT_MODEL for defining the
31
- # :location attribute. It should always be marked `readonly: true`,
32
- # since attempting to set the location as a whole will raise an error.
33
- #
34
- # Instead of setting it as a whole, you must use the Jamf::Location object
35
- # stored in the :location attribute to access it's values, like so:
36
- #
37
- # mycomputer.location.department # => 'Muggle Studies'
38
- # mycomputer.location.room = 'Great Hall'
39
- #
40
- # All location attributes can be set that way, but building, room, department,
41
- # & phoneNumber are more related to the physical location, so must be used
42
- # that way.
43
- #
44
- # The other attributes, username, realName, position, and emailAddress, are
45
- # more related to the assinged user than the physical location, and are also
46
- # acessible via the #user method, which returns a simple wrapper for those
47
- # attributes, like this:
48
- #
49
- # mycomputer.user.name # => 'adumble' user.username works too
50
- # mycomputer.user.realName = 'Albus Dumbledore'
51
- # mycomputer.user.position = 'Headmaster'
52
- # mycomputer.user.emailAddress = 'adumble@hogwarts.edu.uk'
53
- #
54
- # are more related to the machine and its physical location
55
- # than to the user responsible for the machine.
56
- #
57
- module Locatable
58
-
59
- def location=(_loc)
60
- raise Jamf::UnsupportedError, 'Location cannot be set as a whole, set its attributes individually'
61
- end
62
-
63
- def user
64
- @location_user ||= Jamf::Locatable::User.new(self)
65
- end
66
-
67
- # a class for user-specific data in a Location object
68
- class User
69
-
70
- def initialize(assigned_object)
71
- @assigned_object = assigned_object
72
- end
73
-
74
- def username
75
- @assigned_object.location.username
76
- end
77
- alias name username
78
-
79
- def username=(val)
80
- @assigned_object.location.username = val
81
- end
82
- alias name= username=
83
-
84
- def realName
85
- @assigned_object.location.realName
86
- end
87
-
88
- def realName=(val)
89
- @assigned_object.location.realName = val
90
- end
91
-
92
- def emailAddress
93
- @assigned_object.location.emailAddress
94
- end
95
-
96
- def emailAddress=(val)
97
- @assigned_object.location.emailAddress = val
98
- end
99
-
100
- def position
101
- @assigned_object.location.position
102
- end
103
-
104
- def position=(val)
105
- @assigned_object.location.position = val
106
- end
107
-
108
- # Remove large cached items from
109
- # the instance_variables used to create
110
- # pretty-print (pp) output.
111
- #
112
- # @return [Array] the desired instance_variables
113
- #
114
- def pretty_print_instance_variables
115
- vars = instance_variables.sort
116
- vars.delete :@assigned_object
117
- vars
118
- end
119
-
120
- end # class user
121
-
122
- end # locatable
123
-
124
- end # Jamf