Module: Jamf::Prestage
- Included in:
- ComputerPrestage, MobileDevicePrestage
- Defined in:
- lib/jamf/api/jamf_pro/mixins/prestage.rb
Overview
The Shared Code for ComputerPrestage and MobileDevicePrestage
Defined Under Namespace
Modules: ClassMethods
Constant Summary collapse
- SCOPE_PATH =
The scope of a prestage is all the SN’s that have been assigned to it
'scope'.freeze
- ALL_SCOPES_OBJECT =
The class-level scopes method returns one of these objects
Jamf::OAPISchemas::PrestageScopeV2
- INSTANCE_SCOPE_OBJECT =
the instance level scope method or the class level serials_for_prestage method returns one of these.
Jamf::OAPISchemas::PrestageScopeResponseV2
- ALT_IDENTIFIERS =
Identifiers not marked in the superclass’s OAPI_PROPERTIES constant which usually only marks ‘:id’. These values are unique in the collection
%i[profileUuid].freeze
- NON_UNIQUE_IDENTIFIERS =
Values which are useful as identifiers, but are not necessarily unique in the collection - e.g. more than one computer can have the same name WARNING When more than one item in the collection has the same value for one of these fields, which one is used, returned, selected, is undefined You Have Been Warned!
%i[displayName].freeze
- OBJECT_NAME_ATTR =
The name of the attribute that holds the object’s name
:displayName
Class Method Summary collapse
-
.included(includer) ⇒ Object
when this module is included, also extend our Class Methods.
Instance Method Summary collapse
-
#assign(*sns_to_assign) ⇒ Object
(also: #add)
Assign.
-
#assigned?(sn) ⇒ Boolean
(also: #include?, #scoped?)
Is this SN assigned to this prestage?.
-
#assigned_sns ⇒ Array<String>
The serialnumbers assigned to this prestage.
-
#scope(refresh = false) ⇒ PrestageScope
The scope data for this prestage -.
-
#scope_path ⇒ Object
The scope endpoint for this instance.
- #unassign(*sns_to_unassign) ⇒ Object (also: #remove)
Class Method Details
.included(includer) ⇒ Object
when this module is included, also extend our Class Methods
32 33 34 35 |
# File 'lib/jamf/api/jamf_pro/mixins/prestage.rb', line 32 def self.included(includer) Jamf.load_msg "--> #{includer} is including Jamf::Prestage" includer.extend(ClassMethods) end |
Instance Method Details
#assign(*sns_to_assign) ⇒ Object Also known as: add
Assign
292 293 294 295 |
# File 'lib/jamf/api/jamf_pro/mixins/prestage.rb', line 292 def assign(*sns_to_assign) scope = self.class.assign(*sns_to_assign, to_prestage: @id, cnx: @cnx) @versionLock = scope.versionLock end |
#assigned?(sn) ⇒ Boolean Also known as: include?, scoped?
Is this SN assigned to this prestage?
This method uses the instance’s scope object, from a different API path than the class-level .assigned? method.
285 286 287 |
# File 'lib/jamf/api/jamf_pro/mixins/prestage.rb', line 285 def assigned?(sn) assigned_sns.include? sn end |
#assigned_sns ⇒ Array<String>
Returns the serialnumbers assigned to this prestage.
272 273 274 |
# File 'lib/jamf/api/jamf_pro/mixins/prestage.rb', line 272 def assigned_sns scope.assignments.map(&:serialNumber) end |
#scope(refresh = false) ⇒ PrestageScope
The scope data for this prestage -
259 260 261 262 263 264 265 266 267 268 269 |
# File 'lib/jamf/api/jamf_pro/mixins/prestage.rb', line 259 def scope(refresh = false) # rubocop:disable Lint/UnusedMethodArgument scope = INSTANCE_SCOPE_OBJECT.new @cnx.get(scope_path) # TODO: is this the best way to deal with fetching a scope that # is more updated than the rest of the object? unless scope.versionLock == @versionLock raise Jamf::VersionLockError, "The #{self.class} '#{displayName}' has been modified since it was fetched. Please refetch and try again" end scope end |
#scope_path ⇒ Object
The scope endpoint for this instance
305 306 307 |
# File 'lib/jamf/api/jamf_pro/mixins/prestage.rb', line 305 def scope_path @scope_path ||= self.class.scope_path(id) end |
#unassign(*sns_to_unassign) ⇒ Object Also known as: remove
298 299 300 301 |
# File 'lib/jamf/api/jamf_pro/mixins/prestage.rb', line 298 def unassign(*sns_to_unassign) scope = self.class.unassign(*sns_to_unassign, from_prestage: @id, cnx: @cnx) @versionLock = scope.versionLock end |