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,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