ruby-jss 1.5.1 → 1.5.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.

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,80 +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 'skip Setup Items' for a computer prestage in Jamf Pro
30
- # The ones in common with Mobile Devices are in the superclass
31
- # To see the ones that should be here, remove anything that's in
32
- # mobile device's list from the computer ones, thus:
33
- #
34
- # > Jamf::ComputerPrestage.all.sample[:skipSetupItems].keys - Jamf::MobileDevicePrestage.all.sample[:skipSetupItems].keys
35
- # => [:FileVault, :iCloudDiagnostics, :Accessibility, :Registration, :iCloudStorage]
36
- class ComputerPrestageSkipSetupItems < Jamf::PrestageSkipSetupItems
37
-
38
- OBJECT_MODEL = superclass::OBJECT_MODEL.merge(
39
-
40
- # @!attribute FileVault
41
- # @return [Boolean]
42
- FileVault: {
43
- class: :boolean,
44
- aliases: %i[filevault]
45
- },
46
-
47
- # @!attribute iCloudDiagnostics
48
- # @return [Boolean]
49
- iCloudDiagnostics: {
50
- class: :boolean,
51
- aliases: %i[iclouddiagnostics icloud_diagnostics]
52
- },
53
-
54
- # @!attribute iCloudStorage
55
- # @return [Boolean]
56
- iCloudStorage: {
57
- class: :boolean,
58
- aliases: %i[icloudstorage icloud_storage]
59
- },
60
-
61
- # @!attribute Registration
62
- # @return [Boolean]
63
- Registration: {
64
- class: :boolean,
65
- aliases: %i[registration]
66
- },
67
-
68
- # @!attribute Registration
69
- # @return [Boolean]
70
- Accessibility: {
71
- class: :boolean,
72
- aliases: %i[accessibility]
73
- }
74
- ).freeze
75
-
76
- parse_object_model
77
-
78
- end # class location
79
-
80
- end # module
@@ -1,152 +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 computer prestage in Jamf Pro
30
- class Criterion < Jamf::JSONObject
31
-
32
- # the acceptable strings for and/or
33
- AND = 'and'.freeze
34
- OR = 'or'.freeze
35
-
36
- AND_OR = [
37
- AND,
38
- OR
39
- ].freeze
40
-
41
- # These are the available search-types for building criteria
42
- IS = 'is'.freeze
43
- IS_NOT = 'is not'.freeze
44
- LIKE = 'like'.freeze
45
- NOT_LIKE = 'not like'.freeze
46
- HAS = 'has'.freeze
47
- HAS_NOT = 'does not have'.freeze
48
- MORE_THAN = 'more than'.freeze
49
- GREATER_THAN = 'greater than'.freeze
50
- LESS_THAN = 'less than'.freeze
51
- GREATER_OR_EQUAL = 'greater than or equal'.freeze
52
- LESS_OR_EQUAL = 'less than or equal'.freeze
53
- BEFORE_DATE = 'before (yyyy-mm-dd)'.freeze
54
- AFTER_DATE = 'after (yyyy-mm-dd)'.freeze
55
- MORE_THAN_DAYS_AGO = 'more than x days ago'.freeze
56
- LESS_THAN_DAYS_AGO = 'less than x days ago'.freeze
57
- IN_MORE_THAN_DAYS = 'in more than x days'.freeze
58
- IN_LESS_THAN_DAYS = 'in less than x days'.freeze
59
- MEMBER = 'member of'.freeze
60
- NOT_MEMBER = 'not member of'.freeze
61
- CURRENT = 'current'.freeze
62
- NOT_CURRENT = 'not current'.freeze
63
- REGEX = 'matches regex'.freeze
64
- NOT_REGEX = 'does not match regex'.freeze
65
-
66
- SEARCH_TYPES = [
67
- IS,
68
- IS_NOT,
69
- LIKE,
70
- NOT_LIKE,
71
- HAS,
72
- HAS_NOT,
73
- MORE_THAN,
74
- GREATER_THAN,
75
- LESS_THAN,
76
- GREATER_OR_EQUAL,
77
- LESS_OR_EQUAL,
78
- BEFORE_DATE,
79
- AFTER_DATE,
80
- MORE_THAN_DAYS_AGO,
81
- LESS_THAN_DAYS_AGO,
82
- IN_MORE_THAN_DAYS,
83
- IN_LESS_THAN_DAYS,
84
- MEMBER,
85
- NOT_MEMBER,
86
- CURRENT,
87
- NOT_CURRENT,
88
- REGEX,
89
- NOT_REGEX
90
- ].freeze
91
-
92
- OBJECT_MODEL = {
93
-
94
- # @!attribute name - the attribute name for this criterion
95
- # @return [String]
96
- name: {
97
- class: :string,
98
- required: true
99
- },
100
-
101
- # @!attribute priority - Not used? Seems to always be zero.
102
- # Order is determined by array index, so not really sure,
103
- # possibly a holdover from classic API/XML
104
- # @return [Integer]
105
- priority: {
106
- class: :integer
107
- },
108
-
109
- # @!attribute andOr - How this criterion is joined to the previous:
110
- # 'and' or 'or', defaults to 'and'.
111
- # meaningless for the first criterion in an array
112
- # @return [String]
113
- andOr: {
114
- class: :string,
115
- enum: Jamf::Criterion::AND_OR
116
- },
117
-
118
- # @!attribute searchType - How to compare the attribute value to
119
- # the search value
120
- # @return [String]
121
- searchType: {
122
- class: :string,
123
- enum: Jamf::Criterion::SEARCH_TYPES,
124
- required: true
125
- },
126
-
127
- # @!attribute value - the value to compare to the attribute
128
- # @return [String]
129
- value: {
130
- class: :string,
131
- required: true
132
- },
133
-
134
- # @!attribute isOpeningParen - does this criterion start with an openParen?
135
- # @return [Boolean]
136
- isOpeningParen: {
137
- class: :boolean
138
- },
139
-
140
- # @!attribute isClosingParen - does this criterion end with a closeParen?
141
- # @return [Boolean]
142
- isClosingParen: {
143
- class: :boolean
144
- }
145
-
146
- }.freeze
147
-
148
- parse_object_model
149
-
150
- end # class location
151
-
152
- end # module
@@ -1,128 +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
- # An extension attribute in Jamf Pro
30
- class ExtensionAttributeValue < Jamf::JSONObject
31
-
32
- OBJECT_MODEL = {
33
-
34
- # @!attribute [r] id
35
- # The id of the attribute defining this value
36
- # @return [Integer]
37
- id: {
38
- class: :integer,
39
- readonly: true
40
- },
41
-
42
- # @!attribute [r] name
43
- # The name of the attribute defining this value
44
- # @return [String]
45
- name: {
46
- class: :string,
47
- readonly: true
48
- },
49
-
50
- # @!attribute [r] type
51
- # The value_type of this value
52
- # @return [String]
53
- type: {
54
- class: :string,
55
- enum: Jamf::ExtensionAttribute::VALUE_TYPES,
56
- readonly: true
57
- },
58
-
59
- # @!attribute [r] value
60
- # The value stored for this managed object for this ext attr
61
- # Settable via #new_value=
62
- # @return [String]
63
- value: {
64
- class: :string,
65
- readonly: true # settable via Extendable#set_ext_attr
66
- }
67
-
68
- }.freeze
69
- parse_object_model
70
-
71
- # TODO: The WebApp doesn't seem to support enforcement of Data types..
72
- # I can enter any string as a DATE ea, an that string comes through as the
73
- # value.
74
- #
75
-
76
- def initialize(data, cnx: Jamf.cnx)
77
- super
78
- return if @value.nil?
79
- @value =
80
- case @type
81
- when :integer
82
- @value.j_integer? ? @value.to_i : "INVALID INTEGER: #{@value}"
83
- when :date
84
- Jamf::TimeStamp.new @value, cnx: cnx
85
- else
86
- @value
87
- end # case
88
- end # init
89
-
90
- # setter for values. Usually called by
91
- # Extendable#set_ext_attr
92
- def new_value=(new_val)
93
-
94
- # nil unsets the value
95
- unless new_val.nil?
96
- new_val =
97
- case @type
98
- when :integer
99
- Jamf::Validate.integer new_val, "Value for ext. attr. #{@name} must be an integer"
100
- when :date
101
- validate_date new_val
102
- else
103
- new_val.to_s
104
- end # case
105
- end # unless nil
106
-
107
- old_val = @value
108
- return if old_val == new_val
109
- @value = new_val
110
- note_unsaved_change(:value, old_val)
111
- end
112
-
113
- # the to_jamf in JSONObject would skip all these
114
- # cuz they are read-only
115
- # but we need them here.
116
- def to_jamf
117
- return unless unsaved_changes?
118
-
119
- new_val = @type == :date ? @value.to_jamf : @value.to_s
120
- {
121
- id: @id,
122
- value: new_val
123
- }
124
- end
125
-
126
- end # class ext attr
127
-
128
- end # module
@@ -1,59 +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
- # An installed application on a device
30
- class InstalledApplication < Jamf::JSONObject
31
-
32
- OBJECT_MODEL = {
33
-
34
- # @!attribute [r] identifier
35
- # @return [String]
36
- identifier: {
37
- class: :string,
38
- readonly: true
39
- },
40
-
41
- # @!attribute [r] name
42
- # @return [String]
43
- name: {
44
- class: :string,
45
- readonly: true
46
- },
47
-
48
- # @!attribute [r] version
49
- # @return [String]
50
- version: {
51
- class: :string,
52
- readonly: true
53
- }
54
- }.freeze
55
- parse_object_model
56
-
57
- end # class Mobile Device security
58
-
59
- end # module
@@ -1,53 +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 certificate installed on a device
30
- class InstalledCertificate < Jamf::JSONObject
31
-
32
- OBJECT_MODEL = {
33
-
34
- # @!attribute [r] commonName
35
- # @return [String]
36
- commonName: {
37
- class: :string,
38
- readonly: true
39
- },
40
-
41
- # @!attribute [r] isIdentity
42
- # @return [Boolean]
43
- isIdentity: {
44
- class: :boolean,
45
- readonly: true
46
- }
47
-
48
- }.freeze
49
- parse_object_model
50
-
51
- end # class Mobile Device security
52
-
53
- end # module