Method: JSS::Policy#add_package

Defined in:
lib/jss/api_object/policy.rb

#add_package(identifier, **opts) ⇒ Array?

Add a package to the list of pkgs handled by this policy. If the pkg already exists in the policy, nil is returned and no changes are made.

Parameters:

  • identifier (String, Integer)

    the name or id of the package to add to this policy

  • position (Symbol, Integer)

    where to add this pkg among the list of pkgs. Zero-based, :start and 0 are the same, as are :end and -1. Defaults to :end

  • action (String)

    One of the values of PACKAGE_ACTIONS

  • feu (Boolean)

    Overrides the setting for the pkg itself Defaults to false

  • fut (Boolean)

    Overrides the setting for the pkg itself Defaults to false

  • update_autorun (Boolean)

    Defaults to false

Returns:

  • (Array, nil)

    the new @packages array, nil if pkg was already in the policy



1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
# File 'lib/jss/api_object/policy.rb', line 1159

def add_package(identifier, **opts)
  id = validate_package_opts(identifier, opts)

  return nil if @packages.map { |p| p[:id] }.include? id

  name = JSS::Package.map_all_ids_to(:name, api: @api)[id]

  pkg_data = {
    id: id,
    name: name,
    action: PACKAGE_ACTIONS[opts[:action]],
    feu: opts[:feu],
    fut: opts[:feu],
    update_autorun: opts[:update_autorun]
  }

  @packages.insert opts[:position], pkg_data

  @need_to_update = true
  @packages
end