ruby-jss 1.2.3 → 1.2.4a1

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 (103) hide show
  1. checksums.yaml +4 -4
  2. data/lib/jamf.rb +169 -0
  3. data/lib/jamf/api/abstract_classes/collection_resource.rb +422 -0
  4. data/lib/jamf/api/abstract_classes/generic_reference.rb +145 -0
  5. data/lib/jamf/api/abstract_classes/json_object.rb +1074 -0
  6. data/lib/jamf/api/abstract_classes/prestage.rb +219 -0
  7. data/lib/jamf/api/abstract_classes/prestage_skip_setup_items.rb +126 -0
  8. data/lib/jamf/api/abstract_classes/resource.rb +250 -0
  9. data/lib/jamf/api/abstract_classes/singleton_resource.rb +87 -0
  10. data/lib/jamf/api/attribute_classes/ip_address.rb +66 -0
  11. data/lib/jamf/api/attribute_classes/timestamp.rb +144 -0
  12. data/lib/jamf/api/connection.rb +734 -0
  13. data/lib/jamf/api/connection/api_error.rb +111 -0
  14. data/lib/jamf/api/connection/api_error_styleguide.rb +96 -0
  15. data/lib/jamf/api/connection/token.rb +220 -0
  16. data/lib/jamf/api/json_objects/account_prefs.rb +79 -0
  17. data/lib/jamf/api/json_objects/android_details.rb +139 -0
  18. data/lib/jamf/api/json_objects/appletv_details.rb +110 -0
  19. data/lib/jamf/api/json_objects/attachment.rb +68 -0
  20. data/lib/jamf/api/json_objects/cellular_network.rb +151 -0
  21. data/lib/jamf/api/json_objects/change_log_entry.rb +77 -0
  22. data/lib/jamf/api/json_objects/computer_prestage_skip_setup_items.rb +67 -0
  23. data/lib/jamf/api/json_objects/country.rb +51 -0
  24. data/lib/jamf/api/json_objects/extension_attribute_value.rb +128 -0
  25. data/lib/jamf/api/json_objects/installed_application.rb +59 -0
  26. data/lib/jamf/api/json_objects/installed_certificate.rb +53 -0
  27. data/lib/jamf/api/json_objects/installed_configuration_profile.rb +67 -0
  28. data/lib/jamf/api/json_objects/installed_ebook.rb +58 -0
  29. data/lib/jamf/api/json_objects/installed_provisioning_profile.rb +59 -0
  30. data/lib/jamf/api/json_objects/inventory_preload_extension_attribute.rb +52 -0
  31. data/lib/jamf/api/json_objects/ios_details.rb +244 -0
  32. data/lib/jamf/api/json_objects/location.rb +95 -0
  33. data/lib/jamf/api/json_objects/md_prestage_name.rb +57 -0
  34. data/lib/jamf/api/json_objects/md_prestage_names.rb +82 -0
  35. data/lib/jamf/api/json_objects/md_prestage_skip_setup_items.rb +165 -0
  36. data/lib/jamf/api/json_objects/mobile_device_details.rb +219 -0
  37. data/lib/jamf/api/json_objects/mobile_device_security.rb +101 -0
  38. data/lib/jamf/api/json_objects/prestage_assignment.rb +61 -0
  39. data/lib/jamf/api/json_objects/prestage_location.rb +104 -0
  40. data/lib/jamf/api/json_objects/prestage_purchasing_data.rb +132 -0
  41. data/lib/jamf/api/json_objects/prestage_scope.rb +54 -0
  42. data/lib/jamf/api/json_objects/prestage_sync_status.rb +63 -0
  43. data/lib/jamf/api/json_objects/purchasing_data.rb +125 -0
  44. data/lib/jamf/api/mixins/abstract.rb +58 -0
  45. data/lib/jamf/api/mixins/bulk_deletable.rb +39 -0
  46. data/lib/jamf/api/mixins/change_log.rb +136 -0
  47. data/lib/jamf/api/mixins/extendable.rb +75 -0
  48. data/lib/jamf/api/mixins/immutable.rb +39 -0
  49. data/lib/jamf/api/mixins/locatable.rb +124 -0
  50. data/lib/jamf/api/mixins/lockable.rb +48 -0
  51. data/lib/jamf/api/mixins/referable.rb +92 -0
  52. data/lib/jamf/api/mixins/searchable.rb +202 -0
  53. data/lib/jamf/api/mixins/uncreatable.rb +40 -0
  54. data/lib/jamf/api/mixins/undeletable.rb +40 -0
  55. data/lib/jamf/api/resources/collection_resources/account.rb +163 -0
  56. data/lib/jamf/api/resources/collection_resources/building.rb +114 -0
  57. data/lib/jamf/api/resources/collection_resources/category.rb +82 -0
  58. data/lib/jamf/api/resources/collection_resources/computer.rb +49 -0
  59. data/lib/jamf/api/resources/collection_resources/computer_prestage.rb +80 -0
  60. data/lib/jamf/api/resources/collection_resources/department.rb +79 -0
  61. data/lib/jamf/api/resources/collection_resources/extension_attribute.rb +45 -0
  62. data/lib/jamf/api/resources/collection_resources/inventory_preload_record.rb +274 -0
  63. data/lib/jamf/api/resources/collection_resources/md_prestage.rb +139 -0
  64. data/lib/jamf/api/resources/collection_resources/mobile_device.rb +315 -0
  65. data/lib/jamf/api/resources/collection_resources/script.rb +190 -0
  66. data/lib/jamf/api/resources/collection_resources/site.rb +77 -0
  67. data/lib/jamf/api/resources/singleton_resources/app_store_country_codes.rb +131 -0
  68. data/lib/jamf/api/resources/singleton_resources/authorization.rb +88 -0
  69. data/lib/jamf/api/resources/singleton_resources/client_checkin_settings.rb +139 -0
  70. data/lib/jamf/api/resources/singleton_resources/reenrollment_settings.rb +95 -0
  71. data/lib/jamf/client.rb +301 -0
  72. data/lib/jamf/client/jamf_binary.rb +132 -0
  73. data/lib/jamf/client/jamf_helper.rb +298 -0
  74. data/lib/jamf/client/management_action.rb +114 -0
  75. data/lib/jamf/compatibility.rb +88 -0
  76. data/lib/jamf/composer.rb +190 -0
  77. data/lib/jamf/configuration.rb +281 -0
  78. data/lib/jamf/exceptions.rb +107 -0
  79. data/lib/jamf/ruby_extensions.rb +36 -0
  80. data/lib/jamf/ruby_extensions/array.rb +35 -0
  81. data/lib/jamf/ruby_extensions/array/predicates.rb +46 -0
  82. data/lib/jamf/ruby_extensions/array/utils.rb +47 -0
  83. data/lib/jamf/ruby_extensions/filetest.rb +32 -0
  84. data/lib/jamf/ruby_extensions/filetest/predicates.rb +46 -0
  85. data/lib/jamf/ruby_extensions/hash.rb +33 -0
  86. data/lib/jamf/ruby_extensions/hash/backports.rb +92 -0
  87. data/lib/jamf/ruby_extensions/ipaddr.rb +37 -0
  88. data/lib/jamf/ruby_extensions/ipaddr/utils.rb +95 -0
  89. data/lib/jamf/ruby_extensions/object.rb +30 -0
  90. data/lib/jamf/ruby_extensions/object/predicates.rb +51 -0
  91. data/lib/jamf/ruby_extensions/pathname.rb +39 -0
  92. data/lib/jamf/ruby_extensions/pathname/predicates.rb +50 -0
  93. data/lib/jamf/ruby_extensions/pathname/utils.rb +75 -0
  94. data/lib/jamf/ruby_extensions/string.rb +35 -0
  95. data/lib/jamf/ruby_extensions/string/backports.rb +66 -0
  96. data/lib/jamf/ruby_extensions/string/conversions.rb +65 -0
  97. data/lib/jamf/ruby_extensions/string/predicates.rb +47 -0
  98. data/lib/jamf/utility.rb +423 -0
  99. data/lib/jamf/validate.rb +224 -0
  100. data/lib/jamf/version.rb +32 -0
  101. data/lib/jpapi.rb +26 -0
  102. data/lib/jss/version.rb +1 -1
  103. metadata +104 -4
@@ -0,0 +1,101 @@
1
+ # Copyright 2019 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
@@ -0,0 +1,61 @@
1
+ # Copyright 2019 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 PrestageAssignment < Jamf::JSONObject
31
+
32
+ OBJECT_MODEL = {
33
+
34
+ # @!attribute serialNumber
35
+ # @return [String]
36
+ serialNumber: {
37
+ class: :string
38
+ },
39
+
40
+ # @!attribute assignmentEpoch
41
+ # @return [Integer]
42
+ assignmentEpoch: {
43
+ class: :integer
44
+ },
45
+
46
+ # @!attribute userAssigned
47
+ # @return [String]
48
+ userAssigned: {
49
+ class: :string
50
+ }
51
+ }.freeze
52
+
53
+ parse_object_model
54
+
55
+ def assignmentTimestamp
56
+ @assignmentTimestamp ||= Jamf::Timestamp.new @assignmentEpoch
57
+ end
58
+
59
+ end # class Country
60
+
61
+ end # module
@@ -0,0 +1,104 @@
1
+ # Copyright 2019 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 PrestageLocation < Jamf::JSONObject
31
+
32
+ include Jamf::Lockable
33
+
34
+ OBJECT_MODEL = {
35
+
36
+ # @!attribute id
37
+ # @return [Integer]
38
+ id: {
39
+ class: :integer,
40
+ identifier: :primary
41
+ },
42
+
43
+ # @!attribute username
44
+ # @param [String]
45
+ # @return [String]
46
+ username: {
47
+ class: :string
48
+ },
49
+
50
+ # @!attribute realName
51
+ # @param [String]
52
+ # @return [String]
53
+ realname: {
54
+ class: :string
55
+ },
56
+
57
+ # @!attribute emailAddress
58
+ # @param [String]
59
+ # @return [String]
60
+ email: {
61
+ class: :string
62
+ },
63
+
64
+ # @!attribute position
65
+ # @param [String]
66
+ # @return [String]
67
+ position: {
68
+ class: :string
69
+ },
70
+
71
+ # @!attribute phoneNumber
72
+ # @param [String]
73
+ # @return [String]
74
+ phone: {
75
+ class: :string
76
+ },
77
+
78
+ # @!attribute department
79
+ # @param [integer]
80
+ # @return [integer]
81
+ departmentId: {
82
+ class: :integer
83
+ },
84
+
85
+ # @!attribute building
86
+ # @param [integer]
87
+ # @return [integer]
88
+ buildingId: {
89
+ class: :integer
90
+ },
91
+
92
+ # @!attribute room
93
+ # @param [String]
94
+ # @return [String]
95
+ room: {
96
+ class: :string
97
+ }
98
+ }.freeze
99
+
100
+ parse_object_model
101
+
102
+ end # class location
103
+
104
+ end # module
@@ -0,0 +1,132 @@
1
+ # Copyright 2019 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
+ #
30
+ class PrestagePurchasingData < Jamf::JSONObject
31
+
32
+ include Jamf::Lockable
33
+
34
+ OBJECT_MODEL = {
35
+
36
+ # @!attribute id
37
+ # @return [Integer]
38
+ id: {
39
+ class: :integer,
40
+ identifier: :primary
41
+ },
42
+
43
+ # @!attribute isPurchased
44
+ # @param [Boolean]
45
+ # @return [Boolean]
46
+ isPurchased: {
47
+ class: :boolean
48
+ },
49
+
50
+ # @!attribute isLeased
51
+ # @param [Boolean]
52
+ # @return [Boolean]
53
+ isLeased: {
54
+ class: :boolean
55
+ },
56
+
57
+ # @!attribute appleCareID
58
+ # @param [String]
59
+ # @return [String]
60
+ appleCareID: {
61
+ class: :string
62
+ },
63
+
64
+ # @!attribute poNumber
65
+ # @param [String]
66
+ # @return [String]
67
+ poNumber: {
68
+ class: :string
69
+ },
70
+
71
+ # @!attribute vendor
72
+ # @param [String]
73
+ # @return [String]
74
+ vendor: {
75
+ class: :string
76
+ },
77
+
78
+ # @!attribute purchasePrice
79
+ # @param [String]
80
+ # @return [String]
81
+ purchasePrice: {
82
+ class: :string
83
+ },
84
+
85
+ # @!attribute purchasingAccount
86
+ # @param [String]
87
+ # @return [String]
88
+ purchasingAccount: {
89
+ class: :string
90
+ },
91
+
92
+ # @!attribute poDate
93
+ # @param [String]
94
+ # @return [String]
95
+ poDate: {
96
+ class: Jamf::Timestamp
97
+ },
98
+
99
+ # @!attribute warrantyExpiresDate
100
+ # @param [String]
101
+ # @return [String]
102
+ warrantyDate: {
103
+ class: Jamf::Timestamp
104
+ },
105
+
106
+ # @!attribute leaseExpiresDate
107
+ # @param [String]
108
+ # @return [String]
109
+ leasesDate: {
110
+ class: Jamf::Timestamp
111
+ },
112
+
113
+ # @!attribute lifeExpectancy
114
+ # @param [String]
115
+ # @return [String]
116
+ lifeExpectancy: {
117
+ class: :integer
118
+ },
119
+
120
+ # @!attribute purchasingContact
121
+ # @param [String]
122
+ # @return [String]
123
+ purchasingContact: {
124
+ class: :string
125
+ }
126
+ }.freeze
127
+
128
+ parse_object_model
129
+
130
+ end # class location
131
+
132
+ end # module
@@ -0,0 +1,54 @@
1
+ # Copyright 2019 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 PrestageScope < Jamf::JSONObject
31
+
32
+ include Jamf::Lockable
33
+
34
+ OBJECT_MODEL = {
35
+
36
+ # @!attribute prestageId
37
+ # @return [Integer]
38
+ prestageId: {
39
+ class: :integer
40
+ },
41
+
42
+ # @!attribute assignments
43
+ # @return [String] the country name
44
+ assignments: {
45
+ class: Jamf::PrestageAssignment,
46
+ multi: true
47
+ }
48
+ }.freeze
49
+
50
+ parse_object_model
51
+
52
+ end # class Country
53
+
54
+ end # module