Class: JSS::MobileDeviceApplication

Inherits:
APIObject show all
Includes:
Categorizable, Creatable, Scopable, SelfServable, Sitable, Updatable, Uploadable, VPPable
Defined in:
lib/jss/api_object/mobile_device_application.rb,
lib/jss.rb

Overview

A Mobile Device Application in the JSS

Constant Summary collapse

RSRC_BASE =

The base for REST resources of this class

'mobiledeviceapplications'.freeze
RSRC_LIST_KEY =

the hash key used for the JSON list output of all objects in the JSS

:mobile_device_applications
RSRC_OBJECT_KEY =

The hash key used for the JSON object output. It's also used in various error messages

:mobile_device_application
VALID_DATA_KEYS =

these keys, as well as :id and :name, are present in valid API JSON data for this class

[:internal_app].freeze
SCOPE_TARGET_KEY =

See JSS::Scopable

:mobile_devices
UPLOAD_TYPES =

see JSS::Uploadable

{
  icon: :mobiledeviceapplicationsicon,
  app: :mobiledeviceapplicationsipa,
  attachment: :mobiledeviceapplications
}.freeze
OTHER_LOOKUP_KEYS =

see JSS::APIObject

{
  bundleid: {rsrc_id: :bundleid, list: :all_bundle_ids},
  bundle_id: {rsrc_id: :bundleid, list: :all_bundle_ids}
}.freeze
OBJECT_HISTORY_OBJECT_TYPE =

the object type for this object in the object history table. See APIObject#add_object_history_entry

23
SITE_SUBSET =

Where is the Site data in the API JSON?

:general
CATEGORY_SUBSET =

Where is the Category in the API JSON?

:general
CATEGORY_DATA_TYPE =

How is the category stored in the API data?

Hash

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(args) ⇒ MobileDeviceApplication

See JSS::APIObject#initialize



195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
# File 'lib/jss/api_object/mobile_device_application.rb', line 195

def initialize(args)
  super
  general = @init_data[:general]
  @display_name = general[:display_name]
  @description = general[:description]
  @bundle_id = general[:bundle_id]
  @version = general[:version]
  @ipa = general[:ipa]
  @provisioning_profile = general[:provisioning_profile]
  @url = general[:url]
  @itunes_store_url = general[:itunes_store_url]
  @make_available_after_install = general[:make_available_after_install]
  @itunes_country_region = general[:itunes_country_region]
  @itunes_sync_time = general[:itunes_sync_time]
  @deploy_as_managed_app = general[:deploy_as_managed_app]
  @remove_app_when_mdm_profile_is_removed = general[:remove_app_when_mdm_profile_is_removed]
  @prevent_backup_of_app_data = general[:prevent_backup_of_app_data]
  @keep_description_and_icon_up_to_date = general[:keep_description_and_icon_up_to_date]
  @free = general[:free]
  @take_over_management = general[:take_over_management]
  @host_externally = general[:host_externally]
  @external_url = general[:external_url]
  @configuration_prefs = @init_data[:app_configuration][:preferences]
end

Instance Attribute Details

#assign_vpp_device_based_licensesBoolean Also known as: vpp_device_based? Originally defined in module VPPable

#bundle_idString



125
126
127
# File 'lib/jss/api_object/mobile_device_application.rb', line 125

def bundle_id
  @bundle_id
end

#configuration_prefsString



186
187
188
# File 'lib/jss/api_object/mobile_device_application.rb', line 186

def configuration_prefs
  @configuration_prefs
end

#deploy_as_managed_appBoolean



156
157
158
# File 'lib/jss/api_object/mobile_device_application.rb', line 156

def deploy_as_managed_app
  @deploy_as_managed_app
end

#descriptionString



122
123
124
# File 'lib/jss/api_object/mobile_device_application.rb', line 122

def description
  @description
end

#display_nameString



119
120
121
# File 'lib/jss/api_object/mobile_device_application.rb', line 119

def display_name
  @display_name
end

#external_urlString



181
182
183
# File 'lib/jss/api_object/mobile_device_application.rb', line 181

def external_url
  @external_url
end

#freeBoolean Also known as: free?



170
171
172
# File 'lib/jss/api_object/mobile_device_application.rb', line 170

def free
  @free
end

#host_externallyBoolean



178
179
180
# File 'lib/jss/api_object/mobile_device_application.rb', line 178

def host_externally
  @host_externally
end

#iconJSS::Icon? Also known as: self_service_icon Originally defined in module SelfServable

#in_self_serviceBoolean (readonly) Also known as: in_self_service? Originally defined in module SelfServable

#internal_appBoolean (readonly)



131
132
133
# File 'lib/jss/api_object/mobile_device_application.rb', line 131

def internal_app
  @internal_app
end

#ipaHash (readonly)



134
135
136
# File 'lib/jss/api_object/mobile_device_application.rb', line 134

def ipa
  @ipa
end

#itunes_country_regionString (readonly)



150
151
152
# File 'lib/jss/api_object/mobile_device_application.rb', line 150

def itunes_country_region
  @itunes_country_region
end

#itunes_store_urlString (readonly)



143
144
145
# File 'lib/jss/api_object/mobile_device_application.rb', line 143

def itunes_store_url
  @itunes_store_url
end

#itunes_sync_timeInteger (readonly)



153
154
155
# File 'lib/jss/api_object/mobile_device_application.rb', line 153

def itunes_sync_time
  @itunes_sync_time
end

#keep_description_and_icon_up_to_dateBoolean



167
168
169
# File 'lib/jss/api_object/mobile_device_application.rb', line 167

def keep_description_and_icon_up_to_date
  @keep_description_and_icon_up_to_date
end

#make_available_after_installBoolean Also known as: self_service_make_available_after_install



146
147
148
# File 'lib/jss/api_object/mobile_device_application.rb', line 146

def make_available_after_install
  @make_available_after_install
end

#need_to_updateBoolean (readonly) Originally defined in module Updatable

#prevent_backup_of_app_dataBoolean



163
164
165
# File 'lib/jss/api_object/mobile_device_application.rb', line 163

def prevent_backup_of_app_data
  @prevent_backup_of_app_data
end

#provisioning_profileHash (readonly)



137
138
139
# File 'lib/jss/api_object/mobile_device_application.rb', line 137

def provisioning_profile
  @provisioning_profile
end

#remaining_vpp_licensesInteger (readonly) Also known as: vpp_licenses_remaining Originally defined in module VPPable

#remove_app_when_mdm_profile_is_removedBoolean



159
160
161
# File 'lib/jss/api_object/mobile_device_application.rb', line 159

def remove_app_when_mdm_profile_is_removed
  @remove_app_when_mdm_profile_is_removed
end

#scopeObject Originally defined in module Scopable

Attribtues

#self_service_categoriesArray<Hash> (readonly) Originally defined in module SelfServable

Each Hash has these keys about the category

  • :id => [Integer] the JSS id of the category

  • :name => [String] the name of the category

Most objects also include one or both of these keys:

  • :display_in => [Boolean] should the item be displayed in this category in SSvc? (not MobDevConfProfiles)

  • :feature_in => [Boolean] should the item be featured in this category in SSVC? (macOS targets only)

#self_service_descriptionString Originally defined in module SelfServable

#self_service_display_nameString (readonly) Originally defined in module SelfServable

#self_service_feature_on_main_pageBoolean Originally defined in module SelfServable

Only applicable to macOS targets

#self_service_force_users_to_view_descriptionBoolean Originally defined in module SelfServable

#self_service_install_button_textString Originally defined in module SelfServable

defaults to 'Install'

#self_service_notification_messageString Originally defined in module SelfServable

#self_service_notification_subjectString Originally defined in module SelfServable

object name.

#self_service_notification_typeSymbol Originally defined in module SelfServable

#self_service_notifications_enabledBoolean Also known as: self_service_notifications_enabled? Originally defined in module SelfServable

#self_service_reinstall_button_textString Originally defined in module SelfServable

defaults to 'Reinstall'

#self_service_reminder_frequencyInteger Originally defined in module SelfServable

#self_service_reminders_enabledBoolean Also known as: self_service_reminders_enabled? Originally defined in module SelfServable

#self_service_removal_passwordString (readonly) Originally defined in module SelfServable

#self_service_user_removableSymbol Originally defined in module SelfServable

#take_over_managementBoolean



175
176
177
# File 'lib/jss/api_object/mobile_device_application.rb', line 175

def take_over_management
  @take_over_management
end

#total_vpp_licensesInteger (readonly) Also known as: vpp_total_licenses, vpp_license_count Originally defined in module VPPable

#urlString



140
141
142
# File 'lib/jss/api_object/mobile_device_application.rb', line 140

def url
  @url
end

#used_vpp_licensesInteger (readonly) Also known as: vpp_licenses_used Originally defined in module VPPable

#versionString



128
129
130
# File 'lib/jss/api_object/mobile_device_application.rb', line 128

def version
  @version
end

#vpp_admin_account_idInteger (readonly) Originally defined in module VPPable

#vpp_codesHash (readonly) Originally defined in module VPPable

Class Method Details

.all_bundle_ids(refresh = false, api: JSS.api) ⇒ Object

Class Methods



57
58
59
# File 'lib/jss/api_object/mobile_device_application.rb', line 57

def self.all_bundle_ids(refresh = false, api: JSS.api)
  all(refresh, api: api).map { |mda| mda[:bundle_id] }
end

Instance Method Details

#add_self_service_category(new_cat, display_in: true, feature_in: false) ⇒ void Also known as: set_self_service_category, change_self_service_category Originally defined in module SelfServable

This method returns an undefined value.

Add or change one of the categories for this item in self service

#add_to_self_servicevoid Originally defined in module SelfServable

This method returns an undefined value.

Add this object to self service if not already there.

#category=(new_cat) ⇒ void Originally defined in module Categorizable

This method returns an undefined value.

Change the category of this object. Any of the NON_CATEGORIES values will unset the category

#category_assigned?Boolean Also known as: categorized? Originally defined in module Categorizable

Does this object have a category assigned?

#category_idInteger Originally defined in module Categorizable

The id of the category for this object.

#category_nameString Also known as: category Originally defined in module Categorizable

The name of the category for this object. For backward compatibility, this is aliased to just 'category'

#category_objectJSS::Category Originally defined in module Categorizable

The JSS::Category instance for this object's category

#clone(new_name, api: nil) ⇒ APIObject Originally defined in module Creatable

make a clone of this API object, with a new name. The class must be creatable

#createObject Originally defined in module SelfServable

HACK: ity hack hack… remove when jamf fixes these bugs

#evaluate_new_category(new_cat) ⇒ Array<String, Integer> Originally defined in module Categorizable

Given a category name or id, return the name and id TODO: use APIObject.exist? and/or APIObject.valid_id

#name=(newname) ⇒ void Originally defined in module Updatable

This method returns an undefined value.

Change the name of this item Remember to #update to push changes to the server.

#parse_scopevoid Originally defined in module Scopable

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

This method returns an undefined value.

Call this during initialization of objects that have a scope and the scope instance will be created from @init_data

#remove_from_self_servicevoid Originally defined in module SelfServable

This method returns an undefined value.

Remove this object from self service if it's there.

#remove_self_service_category(cat) ⇒ void Originally defined in module SelfServable

This method returns an undefined value.

Remove a category from those for this item in SSvc

#save_ipa(path, overwrite = false) ⇒ void

This method returns an undefined value.

Save the application to a file.

If the path given is an existing directory, the ipa's current filename will be used, if known.



433
434
435
436
437
438
439
440
441
# File 'lib/jss/api_object/mobile_device_application.rb', line 433

def save_ipa(path, overwrite = false)
  return nil unless @ipa[:data]
  path = Pathname.new path
  path = path + @ipa[:name] if path.directory? && @ipa[:name]

  raise JSS::AlreadyExistsError, "The file #{path} already exists" if path.exist? && !overwrite
  path.delete if path.exist?
  path.jss_save Base64.decode64(@ipa[:data])
end

#self_service_dislay_name=(new_val) ⇒ void Originally defined in module SelfServable

This method returns an undefined value.

#self_service_execute_urlString Originally defined in module SelfServable

#self_service_payloadSymbol Originally defined in module SelfServable

What does this object deploy to the device via self service?

#self_service_targetsArray<Symbol> Originally defined in module SelfServable

What devices types can get this thing in Self Service

#self_service_view_urlString Originally defined in module SelfServable

#should_updatevoid Originally defined in module Scopable

This method returns an undefined value.

When the scope changes, it calls this to tell us that an update is needed.

#site=(new_site) ⇒ void Originally defined in module Sitable

This method returns an undefined value.

Change the site of this object. Any of the NON_SITES values will unset the site

#site_assigned?Boolean Originally defined in module Sitable

Does this object have a site assigned?

#site_idInteger Originally defined in module Sitable

The id of the site for this object.

#site_nameString Also known as: site Originally defined in module Sitable

The name of the site for this object. For backward compatibility, this is aliased to just 'site'

#site_objectJSS::Site Originally defined in module Sitable

The JSS::Site instance for this object's site

#unset_categoryvoid Originally defined in module Categorizable

This method returns an undefined value.

Set the category to nothing

#unset_sitevoid Originally defined in module Sitable

This method returns an undefined value.

Set the site to nothing

#updateObject Originally defined in module SelfServable

HACK: ity hack hack… remove when jamf fixes these bugs

#upload(type, local_file) ⇒ String Originally defined in module Uploadable

Upload a file to the JSS via the REST Resource of the object to which this module is mixed in.

#upload_ipa(path) ⇒ void

This method returns an undefined value.

Upload a new app .ipa file



449
450
451
452
453
# File 'lib/jss/api_object/mobile_device_application.rb', line 449

def upload_ipa(path)
  new_ipa = Pathname.new path
  upload(:app, new_ipa)
  refresh_ipa
end

#user_removable?Boolean? Originally defined in module SelfServable

Can this thing be removed by the user?