Class: JSS::ComputerInvitation

Inherits:
APIObject show all
Includes:
Creatable, Sitable
Defined in:
lib/jss/api_object/computer_invitation.rb

Overview

This class represents a Computer Invitation in the JSS.

Adding Computer Invitations to the JSS

This class is meant only to generate and hold the response of creating an invitation.

See Also:

Constant Summary collapse

RSRC_BASE =

The base for REST resources of this class

'computerinvitations'.freeze
RSRC_LIST_KEY =

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

:computer_invitations
RSRC_OBJECT_KEY =

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

:computer_invitation
VALID_DATA_KEYS =

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

[:invitation].freeze
OTHER_LOOKUP_KEYS =

See JSS::APIObject

{
  invitation: {rsrc_key: :invitation, list: :all_invitations}
}.freeze
OBJECT_HISTORY_OBJECT_TYPE =

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

84
SITE_SUBSET =

Where is site data located in the API JSON?

:top

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(args = { id: :new, name: 'some_new_name', ssh_username: 'casper_remote', hide_account: 'true' }) ⇒ ComputerInvitation

Returns a new instance of ComputerInvitation


146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
# File 'lib/jss/api_object/computer_invitation.rb', line 146

def initialize(args = {
  id: :new,
  name: 'some_new_name',
  ssh_username: 'casper_remote',
  hide_account: 'true'
})

  super args

  @name = @init_data[:invitation]
  @invitation_type = @init_data[:invitation_type]
  @create_account_if_does_not_exist = @init_data[:create_account_if_does_not_exist]
  @expiration_date_epoch = @init_data[:expiration_date_epoch] || args[:expiration_date_epoch]
  @ssh_username = @init_data[:ssh_username] || args[:ssh_username]
  @hide_account = @init_data[:hide_account] || args[:hide_account]
  @invitation_status = @init_data[:invitation_status] || args[:invitation_status]
  @multiple_uses_allowed = @init_data[:multiple_uses_allowed] || args[:multiple_uses_allowed]
end

Instance Attribute Details

#create_account_if_does_not_existString

“true” or “false” are valid values.

Returns:

  • (String)

    whether or not to create the account if required


110
111
112
# File 'lib/jss/api_object/computer_invitation.rb', line 110

def 
  @create_account_if_does_not_exist
end

#expiration_date_epochString

Time since epoch that the invitation will expire at.

Note: defaults to “Unlimited”, so only set if it should expire.

Returns:


117
118
119
# File 'lib/jss/api_object/computer_invitation.rb', line 117

def expiration_date_epoch
  @expiration_date_epoch
end

#hide_accountString

The whether or not to hide the ssh user.

Returns:


129
130
131
# File 'lib/jss/api_object/computer_invitation.rb', line 129

def 
  @hide_account
end

#invitation_statusString

The invitation_status.

Returns:


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

def invitation_status
  @invitation_status
end

#invitation_typeString

Valid values are: URL and EMAIL. Will default to DEFAULT.

Returns:

  • (String)

    the invitation type


105
106
107
# File 'lib/jss/api_object/computer_invitation.rb', line 105

def invitation_type
  @invitation_type
end

#multiple_uses_allowedString

Whether the invitation can be used multiple times (boolean).

Returns:


139
140
141
# File 'lib/jss/api_object/computer_invitation.rb', line 139

def multiple_uses_allowed
  @multiple_uses_allowed
end

#nameString (readonly)

Returns the invitation name

Returns:

  • (String)

    the invitation name


100
101
102
# File 'lib/jss/api_object/computer_invitation.rb', line 100

def name
  @name
end

#ssh_usernameString

The username of the ssh user to be created.

REQUIRED for valid setup.

Returns:


124
125
126
# File 'lib/jss/api_object/computer_invitation.rb', line 124

def ssh_username
  @ssh_username
end

Class Method Details

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

Class Methods


59
60
61
# File 'lib/jss/api_object/computer_invitation.rb', line 59

def self.all_invitations(refresh = false, api: JSS.api)
  all(refresh, api: api).map { |ci| ci[:invitation]  }
end

Instance Method Details

#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

Parameters:

  • name (String)

    the name for the new object

  • api (JSS::APIConnection)

    the API in which to create the object Defaults to the API used to instantiate this object

Returns:

  • (APIObject)

    An uncreated clone of this APIObject with the given name

Raises:

#createJSS::ComputerInvitation

Needed to support creation of new Computer Invitations to set their name.


172
173
174
175
176
177
178
179
180
181
182
183
184
# File 'lib/jss/api_object/computer_invitation.rb', line 172

def create
  new_invitation_id = super

  jss_me = ComputerInvitation.fetch(id: new_invitation_id, name: 'set_by_request')
  @name = jss_me.name
  @invitation_type = jss_me.invitation_type
  @create_account_if_does_not_exist = jss_me.
  @expiration_date_epoch = jss_me.expiration_date_epoch
  @ssh_username = jss_me.ssh_username
  @hide_account = jss_me.
  @invitation_status = jss_me.invitation_status
  @multiple_uses_allowed = jss_me.multiple_uses_allowed
end

#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

Parameters:

  • new_site (Integer, String)

    The new site

Raises:

#site_assigned?Boolean Originally defined in module Sitable

Does this object have a site assigned?

Returns:

  • (Boolean)

    Does this object have a site assigned?

#site_idInteger Originally defined in module Sitable

The id of the site for this object.

Returns:

  • (Integer)

    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'

Returns:

  • (String)

    The name of the site for this object.

#site_objectJSS::Site Originally defined in module Sitable

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

Returns:

  • (JSS::Site)

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

#unset_sitevoid Originally defined in module Sitable

This method returns an undefined value.

Set the site to nothing