Class: Files::Automation

Inherits:
Object
  • Object
show all
Defined in:
lib/files.com/models/automation.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attributes = {}, options = {}) ⇒ Automation

Returns a new instance of Automation.



7
8
9
10
# File 'lib/files.com/models/automation.rb', line 7

def initialize(attributes = {}, options = {})
  @attributes = attributes || {}
  @options = options || {}
end

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



5
6
7
# File 'lib/files.com/models/automation.rb', line 5

def attributes
  @attributes
end

#optionsObject (readonly)

Returns the value of attribute options.



5
6
7
# File 'lib/files.com/models/automation.rb', line 5

def options
  @options
end

Class Method Details

.all(params = {}, options = {}) ⇒ Object



253
254
255
# File 'lib/files.com/models/automation.rb', line 253

def self.all(params = {}, options = {})
  list(params, options)
end

.create(params = {}, options = {}) ⇒ Object

Parameters:

automation (required) - string - Automation type
source - string - Source Path
destination - string - Destination Path
destination_replace_from - string - If set, this string in the destination path will be replaced with the value in `destination_replace_to`.
destination_replace_to - string - If set, this string will replace the value `destination_replace_from` in the destination filename. You can use special patterns here.
interval - string - How often to run this automation? One of: `day`, `week`, `week_end`, `month`, `month_end`, `quarter`, `quarter_end`, `year`, `year_end`
path - string - Path on which this Automation runs.  Supports globs.
user_ids - string - A list of user IDs the automation is associated with. If sent as a string, it should be comma-delimited.
group_ids - string - A list of group IDs the automation is associated with. If sent as a string, it should be comma-delimited.
schedule - object - Custom schedule for running this automation.
trigger - string - How this automation is triggered to run. One of: `realtime`, `daily`, `custom_schedule`, `webhook`, `email`, or `action`.
trigger_actions - array(string) - If trigger is `action`, this is the list of action types on which to trigger the automation. Valid actions are create, read, update, destroy, move, copy
trigger_action_path - string - If trigger is `action`, this is the path to watch for the specified trigger actions.


287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
# File 'lib/files.com/models/automation.rb', line 287

def self.create(params = {}, options = {})
  raise InvalidParameterError.new("Bad parameter: automation must be an String") if params.dig(:automation) and !params.dig(:automation).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: source must be an String") if params.dig(:source) and !params.dig(:source).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: destination must be an String") if params.dig(:destination) and !params.dig(:destination).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: destination_replace_from must be an String") if params.dig(:destination_replace_from) and !params.dig(:destination_replace_from).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: destination_replace_to must be an String") if params.dig(:destination_replace_to) and !params.dig(:destination_replace_to).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: interval must be an String") if params.dig(:interval) and !params.dig(:interval).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: path must be an String") if params.dig(:path) and !params.dig(:path).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: user_ids must be an String") if params.dig(:user_ids) and !params.dig(:user_ids).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: group_ids must be an String") if params.dig(:group_ids) and !params.dig(:group_ids).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: schedule must be an Hash") if params.dig(:schedule) and !params.dig(:schedule).is_a?(Hash)
  raise InvalidParameterError.new("Bad parameter: trigger must be an String") if params.dig(:trigger) and !params.dig(:trigger).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: trigger_actions must be an Array") if params.dig(:trigger_actions) and !params.dig(:trigger_actions).is_a?(Array)
  raise InvalidParameterError.new("Bad parameter: trigger_action_path must be an String") if params.dig(:trigger_action_path) and !params.dig(:trigger_action_path).is_a?(String)
  raise MissingParameterError.new("Parameter missing: automation") unless params.dig(:automation)

  response, options = Api.send_request("/automations", :post, params, options)
  Automation.new(response.data, options)
end

.delete(id, params = {}, options = {}) ⇒ Object



345
346
347
348
349
350
351
352
353
# File 'lib/files.com/models/automation.rb', line 345

def self.delete(id, params = {}, options = {})
  params ||= {}
  params[:id] = id
  raise InvalidParameterError.new("Bad parameter: id must be an Integer") if params.dig(:id) and !params.dig(:id).is_a?(Integer)
  raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)

  response, _options = Api.send_request("/automations/#{params[:id]}", :delete, params, options)
  response.data
end

.destroy(id, params = {}, options = {}) ⇒ Object



355
356
357
# File 'lib/files.com/models/automation.rb', line 355

def self.destroy(id, params = {}, options = {})
  delete(id, params, options)
end

.find(id, params = {}, options = {}) ⇒ Object

Parameters:

id (required) - int64 - Automation ID.


259
260
261
262
263
264
265
266
267
# File 'lib/files.com/models/automation.rb', line 259

def self.find(id, params = {}, options = {})
  params ||= {}
  params[:id] = id
  raise InvalidParameterError.new("Bad parameter: id must be an Integer") if params.dig(:id) and !params.dig(:id).is_a?(Integer)
  raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)

  response, options = Api.send_request("/automations/#{params[:id]}", :get, params, options)
  Automation.new(response.data, options)
end

.get(id, params = {}, options = {}) ⇒ Object



269
270
271
# File 'lib/files.com/models/automation.rb', line 269

def self.get(id, params = {}, options = {})
  find(id, params, options)
end

.list(params = {}, options = {}) ⇒ Object

Parameters:

cursor - string - Used for pagination.  Send a cursor value to resume an existing list from the point at which you left off.  Get a cursor from an existing list via the X-Files-Cursor-Next header.
per_page - int64 - Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended).
sort_by - object - If set, sort records by the specified field in either 'asc' or 'desc' direction (e.g. sort_by[last_login_at]=desc). Valid fields are `automation`.
filter - object - If set, return records where the specifiied field is equal to the supplied value. Valid fields are `automation`.
filter_gt - object - If set, return records where the specifiied field is greater than the supplied value. Valid fields are `automation`.
filter_gteq - object - If set, return records where the specifiied field is greater than or equal to the supplied value. Valid fields are `automation`.
filter_like - object - If set, return records where the specifiied field is equal to the supplied value. Valid fields are `automation`.
filter_lt - object - If set, return records where the specifiied field is less than the supplied value. Valid fields are `automation`.
filter_lteq - object - If set, return records where the specifiied field is less than or equal to the supplied value. Valid fields are `automation`.
automation - string - DEPRECATED: Type of automation to filter by. Use `filter[automation]` instead.


236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
# File 'lib/files.com/models/automation.rb', line 236

def self.list(params = {}, options = {})
  raise InvalidParameterError.new("Bad parameter: cursor must be an String") if params.dig(:cursor) and !params.dig(:cursor).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: per_page must be an Integer") if params.dig(:per_page) and !params.dig(:per_page).is_a?(Integer)
  raise InvalidParameterError.new("Bad parameter: sort_by must be an Hash") if params.dig(:sort_by) and !params.dig(:sort_by).is_a?(Hash)
  raise InvalidParameterError.new("Bad parameter: filter must be an Hash") if params.dig(:filter) and !params.dig(:filter).is_a?(Hash)
  raise InvalidParameterError.new("Bad parameter: filter_gt must be an Hash") if params.dig(:filter_gt) and !params.dig(:filter_gt).is_a?(Hash)
  raise InvalidParameterError.new("Bad parameter: filter_gteq must be an Hash") if params.dig(:filter_gteq) and !params.dig(:filter_gteq).is_a?(Hash)
  raise InvalidParameterError.new("Bad parameter: filter_like must be an Hash") if params.dig(:filter_like) and !params.dig(:filter_like).is_a?(Hash)
  raise InvalidParameterError.new("Bad parameter: filter_lt must be an Hash") if params.dig(:filter_lt) and !params.dig(:filter_lt).is_a?(Hash)
  raise InvalidParameterError.new("Bad parameter: filter_lteq must be an Hash") if params.dig(:filter_lteq) and !params.dig(:filter_lteq).is_a?(Hash)
  raise InvalidParameterError.new("Bad parameter: automation must be an String") if params.dig(:automation) and !params.dig(:automation).is_a?(String)

  List.new(Automation, params) do
    Api.send_request("/automations", :get, params, options)
  end
end

.update(id, params = {}, options = {}) ⇒ Object

Parameters:

automation (required) - string - Automation type
source - string - Source Path
destination - string - Destination Path
destination_replace_from - string - If set, this string in the destination path will be replaced with the value in `destination_replace_to`.
destination_replace_to - string - If set, this string will replace the value `destination_replace_from` in the destination filename. You can use special patterns here.
interval - string - How often to run this automation? One of: `day`, `week`, `week_end`, `month`, `month_end`, `quarter`, `quarter_end`, `year`, `year_end`
path - string - Path on which this Automation runs.  Supports globs.
user_ids - string - A list of user IDs the automation is associated with. If sent as a string, it should be comma-delimited.
group_ids - string - A list of group IDs the automation is associated with. If sent as a string, it should be comma-delimited.
schedule - object - Custom schedule for running this automation.
trigger - string - How this automation is triggered to run. One of: `realtime`, `daily`, `custom_schedule`, `webhook`, `email`, or `action`.
trigger_actions - array(string) - If trigger is `action`, this is the list of action types on which to trigger the automation. Valid actions are create, read, update, destroy, move, copy
trigger_action_path - string - If trigger is `action`, this is the path to watch for the specified trigger actions.


321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
# File 'lib/files.com/models/automation.rb', line 321

def self.update(id, params = {}, options = {})
  params ||= {}
  params[:id] = id
  raise InvalidParameterError.new("Bad parameter: id must be an Integer") if params.dig(:id) and !params.dig(:id).is_a?(Integer)
  raise InvalidParameterError.new("Bad parameter: automation must be an String") if params.dig(:automation) and !params.dig(:automation).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: source must be an String") if params.dig(:source) and !params.dig(:source).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: destination must be an String") if params.dig(:destination) and !params.dig(:destination).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: destination_replace_from must be an String") if params.dig(:destination_replace_from) and !params.dig(:destination_replace_from).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: destination_replace_to must be an String") if params.dig(:destination_replace_to) and !params.dig(:destination_replace_to).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: interval must be an String") if params.dig(:interval) and !params.dig(:interval).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: path must be an String") if params.dig(:path) and !params.dig(:path).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: user_ids must be an String") if params.dig(:user_ids) and !params.dig(:user_ids).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: group_ids must be an String") if params.dig(:group_ids) and !params.dig(:group_ids).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: schedule must be an Hash") if params.dig(:schedule) and !params.dig(:schedule).is_a?(Hash)
  raise InvalidParameterError.new("Bad parameter: trigger must be an String") if params.dig(:trigger) and !params.dig(:trigger).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: trigger_actions must be an Array") if params.dig(:trigger_actions) and !params.dig(:trigger_actions).is_a?(Array)
  raise InvalidParameterError.new("Bad parameter: trigger_action_path must be an String") if params.dig(:trigger_action_path) and !params.dig(:trigger_action_path).is_a?(String)
  raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)
  raise MissingParameterError.new("Parameter missing: automation") unless params.dig(:automation)

  response, options = Api.send_request("/automations/#{params[:id]}", :patch, params, options)
  Automation.new(response.data, options)
end

Instance Method Details

#automationObject

string - Automation type



22
23
24
# File 'lib/files.com/models/automation.rb', line 22

def automation
  @attributes[:automation]
end

#automation=(value) ⇒ Object



26
27
28
# File 'lib/files.com/models/automation.rb', line 26

def automation=(value)
  @attributes[:automation] = value
end

#delete(params = {}) ⇒ Object



202
203
204
205
206
207
208
209
210
# File 'lib/files.com/models/automation.rb', line 202

def delete(params = {})
  params ||= {}
  params[:id] = @attributes[:id]
  raise MissingParameterError.new("Current object doesn't have a id") unless @attributes[:id]
  raise InvalidParameterError.new("Bad parameter: id must be an Integer") if params.dig(:id) and !params.dig(:id).is_a?(Integer)
  raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)

  Api.send_request("/automations/#{@attributes[:id]}", :delete, params, @options)
end

#destinationObject

string - Destination Path



76
77
78
# File 'lib/files.com/models/automation.rb', line 76

def destination
  @attributes[:destination]
end

#destination=(value) ⇒ Object



80
81
82
# File 'lib/files.com/models/automation.rb', line 80

def destination=(value)
  @attributes[:destination] = value
end

#destination_replace_fromObject

string - If set, this string in the destination path will be replaced with the value in ‘destination_replace_to`.



85
86
87
# File 'lib/files.com/models/automation.rb', line 85

def destination_replace_from
  @attributes[:destination_replace_from]
end

#destination_replace_from=(value) ⇒ Object



89
90
91
# File 'lib/files.com/models/automation.rb', line 89

def destination_replace_from=(value)
  @attributes[:destination_replace_from] = value
end

#destination_replace_toObject

string - If set, this string will replace the value ‘destination_replace_from` in the destination filename. You can use special patterns here.



94
95
96
# File 'lib/files.com/models/automation.rb', line 94

def destination_replace_to
  @attributes[:destination_replace_to]
end

#destination_replace_to=(value) ⇒ Object



98
99
100
# File 'lib/files.com/models/automation.rb', line 98

def destination_replace_to=(value)
  @attributes[:destination_replace_to] = value
end

#destroy(params = {}) ⇒ Object



212
213
214
# File 'lib/files.com/models/automation.rb', line 212

def destroy(params = {})
  delete(params)
end

#group_idsObject

array - IDs of Groups for the Automation (i.e. who to Request File from)



130
131
132
# File 'lib/files.com/models/automation.rb', line 130

def group_ids
  @attributes[:group_ids]
end

#group_ids=(value) ⇒ Object



134
135
136
# File 'lib/files.com/models/automation.rb', line 134

def group_ids=(value)
  @attributes[:group_ids] = value
end

#idObject

int64 - Automation ID



13
14
15
# File 'lib/files.com/models/automation.rb', line 13

def id
  @attributes[:id]
end

#id=(value) ⇒ Object



17
18
19
# File 'lib/files.com/models/automation.rb', line 17

def id=(value)
  @attributes[:id] = value
end

#intervalObject

string - If trigger is ‘daily`, this specifies how often to run this automation. One of: `day`, `week`, `week_end`, `month`, `month_end`, `quarter`, `quarter_end`, `year`, `year_end`



40
41
42
# File 'lib/files.com/models/automation.rb', line 40

def interval
  @attributes[:interval]
end

#interval=(value) ⇒ Object



44
45
46
# File 'lib/files.com/models/automation.rb', line 44

def interval=(value)
  @attributes[:interval] = value
end

#next_process_onObject

string - If trigger is ‘daily`, date this automation will next run.



49
50
51
# File 'lib/files.com/models/automation.rb', line 49

def next_process_on
  @attributes[:next_process_on]
end

#next_process_on=(value) ⇒ Object



53
54
55
# File 'lib/files.com/models/automation.rb', line 53

def next_process_on=(value)
  @attributes[:next_process_on] = value
end

#pathObject

string - Path on which this Automation runs. Supports globs. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.



103
104
105
# File 'lib/files.com/models/automation.rb', line 103

def path
  @attributes[:path]
end

#path=(value) ⇒ Object



107
108
109
# File 'lib/files.com/models/automation.rb', line 107

def path=(value)
  @attributes[:path] = value
end

#saveObject



216
217
218
219
220
221
222
223
# File 'lib/files.com/models/automation.rb', line 216

def save
  if @attributes[:id]
    update(@attributes)
  else
    new_obj = Automation.create(@attributes, @options)
    @attributes = new_obj.attributes
  end
end

#scheduleObject

object - If trigger is ‘custom_schedule`, Custom schedule description for when the automation should be run.



58
59
60
# File 'lib/files.com/models/automation.rb', line 58

def schedule
  @attributes[:schedule]
end

#schedule=(value) ⇒ Object



62
63
64
# File 'lib/files.com/models/automation.rb', line 62

def schedule=(value)
  @attributes[:schedule] = value
end

#sourceObject

string - Source Path



67
68
69
# File 'lib/files.com/models/automation.rb', line 67

def source
  @attributes[:source]
end

#source=(value) ⇒ Object



71
72
73
# File 'lib/files.com/models/automation.rb', line 71

def source=(value)
  @attributes[:source] = value
end

#triggerObject

string - How this automation is triggered to run. One of: ‘realtime`, `daily`, `custom_schedule`, `webhook`, `email`, or `action`.



31
32
33
# File 'lib/files.com/models/automation.rb', line 31

def trigger
  @attributes[:trigger]
end

#trigger=(value) ⇒ Object



35
36
37
# File 'lib/files.com/models/automation.rb', line 35

def trigger=(value)
  @attributes[:trigger] = value
end

#trigger_action_pathObject

string - If trigger is ‘action`, this is the path to watch for the specified trigger actions.



157
158
159
# File 'lib/files.com/models/automation.rb', line 157

def trigger_action_path
  @attributes[:trigger_action_path]
end

#trigger_action_path=(value) ⇒ Object



161
162
163
# File 'lib/files.com/models/automation.rb', line 161

def trigger_action_path=(value)
  @attributes[:trigger_action_path] = value
end

#trigger_actionsObject

string - If trigger is ‘action`, this is the list of action types on which to trigger the automation. Valid actions are create, read, update, destroy, move, copy



148
149
150
# File 'lib/files.com/models/automation.rb', line 148

def trigger_actions
  @attributes[:trigger_actions]
end

#trigger_actions=(value) ⇒ Object



152
153
154
# File 'lib/files.com/models/automation.rb', line 152

def trigger_actions=(value)
  @attributes[:trigger_actions] = value
end

#update(params = {}) ⇒ Object

Parameters:

automation (required) - string - Automation type
source - string - Source Path
destination - string - Destination Path
destination_replace_from - string - If set, this string in the destination path will be replaced with the value in `destination_replace_to`.
destination_replace_to - string - If set, this string will replace the value `destination_replace_from` in the destination filename. You can use special patterns here.
interval - string - How often to run this automation? One of: `day`, `week`, `week_end`, `month`, `month_end`, `quarter`, `quarter_end`, `year`, `year_end`
path - string - Path on which this Automation runs.  Supports globs.
user_ids - string - A list of user IDs the automation is associated with. If sent as a string, it should be comma-delimited.
group_ids - string - A list of group IDs the automation is associated with. If sent as a string, it should be comma-delimited.
schedule - object - Custom schedule for running this automation.
trigger - string - How this automation is triggered to run. One of: `realtime`, `daily`, `custom_schedule`, `webhook`, `email`, or `action`.
trigger_actions - array(string) - If trigger is `action`, this is the list of action types on which to trigger the automation. Valid actions are create, read, update, destroy, move, copy
trigger_action_path - string - If trigger is `action`, this is the path to watch for the specified trigger actions.


179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
# File 'lib/files.com/models/automation.rb', line 179

def update(params = {})
  params ||= {}
  params[:id] = @attributes[:id]
  raise MissingParameterError.new("Current object doesn't have a id") unless @attributes[:id]
  raise InvalidParameterError.new("Bad parameter: id must be an Integer") if params.dig(:id) and !params.dig(:id).is_a?(Integer)
  raise InvalidParameterError.new("Bad parameter: automation must be an String") if params.dig(:automation) and !params.dig(:automation).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: source must be an String") if params.dig(:source) and !params.dig(:source).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: destination must be an String") if params.dig(:destination) and !params.dig(:destination).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: destination_replace_from must be an String") if params.dig(:destination_replace_from) and !params.dig(:destination_replace_from).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: destination_replace_to must be an String") if params.dig(:destination_replace_to) and !params.dig(:destination_replace_to).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: interval must be an String") if params.dig(:interval) and !params.dig(:interval).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: path must be an String") if params.dig(:path) and !params.dig(:path).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: user_ids must be an String") if params.dig(:user_ids) and !params.dig(:user_ids).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: group_ids must be an String") if params.dig(:group_ids) and !params.dig(:group_ids).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: trigger must be an String") if params.dig(:trigger) and !params.dig(:trigger).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: trigger_actions must be an Array") if params.dig(:trigger_actions) and !params.dig(:trigger_actions).is_a?(Array)
  raise InvalidParameterError.new("Bad parameter: trigger_action_path must be an String") if params.dig(:trigger_action_path) and !params.dig(:trigger_action_path).is_a?(String)
  raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)
  raise MissingParameterError.new("Parameter missing: automation") unless params.dig(:automation)

  Api.send_request("/automations/#{@attributes[:id]}", :patch, params, @options)
end

#user_idObject

int64 - User ID of the Automation’s creator.



112
113
114
# File 'lib/files.com/models/automation.rb', line 112

def user_id
  @attributes[:user_id]
end

#user_id=(value) ⇒ Object



116
117
118
# File 'lib/files.com/models/automation.rb', line 116

def user_id=(value)
  @attributes[:user_id] = value
end

#user_idsObject

array - IDs of Users for the Automation (i.e. who to Request File from)



121
122
123
# File 'lib/files.com/models/automation.rb', line 121

def user_ids
  @attributes[:user_ids]
end

#user_ids=(value) ⇒ Object



125
126
127
# File 'lib/files.com/models/automation.rb', line 125

def user_ids=(value)
  @attributes[:user_ids] = value
end

#webhook_urlObject

string - If trigger is ‘webhook`, this is the URL of the webhook to trigger the Automation.



139
140
141
# File 'lib/files.com/models/automation.rb', line 139

def webhook_url
  @attributes[:webhook_url]
end

#webhook_url=(value) ⇒ Object



143
144
145
# File 'lib/files.com/models/automation.rb', line 143

def webhook_url=(value)
  @attributes[:webhook_url] = value
end