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



387
388
389
# File 'lib/files.com/models/automation.rb', line 387

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

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

Parameters:

source - string - Source Path
destination - string - DEPRECATED: Destination Path. Use `destinations` instead.
destinations - array(string) - A list of String destination paths or Hash of folder_path and optional file_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.
sync_ids - string - A list of sync IDs the automation is associated with. If sent as a string, it should be comma-delimited.
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_days_of_week - array(int64) - If trigger is `custom_schedule`. A list of days of the week to run this automation. 0 is Sunday, 1 is Monday, etc.
schedule_times_of_day - array(string) - If trigger is `custom_schedule`. A list of times of day to run this automation. 24-hour time format.
schedule_time_zone - string - If trigger is `custom_schedule`. Time zone for the schedule.
always_overwrite_size_matching_files - boolean - Ordinarily, files with identical size in the source and destination will be skipped from copy operations to prevent wasted transfer.  If this flag is `true` we will overwrite the destination file always.  Note that this may cause large amounts of wasted transfer usage.
description - string - Description for the this Automation.
disabled - boolean - If true, this automation will not run.
name - string - Name for this automation.
trigger - string - How this automation is triggered to run.
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
value - object - A Hash of attributes specific to the automation type.
recurring_day - int64 - If trigger type is `daily`, this specifies a day number to run in one of the supported intervals: `week`, `month`, `quarter`, `year`.
automation (required) - string - Automation type


430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
# File 'lib/files.com/models/automation.rb', line 430

def self.create(params = {}, options = {})
  raise InvalidParameterError.new("Bad parameter: source must be an String") if params[:source] and !params[:source].is_a?(String)
  raise InvalidParameterError.new("Bad parameter: destination must be an String") if params[:destination] and !params[:destination].is_a?(String)
  raise InvalidParameterError.new("Bad parameter: destinations must be an Array") if params[:destinations] and !params[:destinations].is_a?(Array)
  raise InvalidParameterError.new("Bad parameter: destination_replace_from must be an String") if params[:destination_replace_from] and !params[:destination_replace_from].is_a?(String)
  raise InvalidParameterError.new("Bad parameter: destination_replace_to must be an String") if params[:destination_replace_to] and !params[:destination_replace_to].is_a?(String)
  raise InvalidParameterError.new("Bad parameter: interval must be an String") if params[:interval] and !params[:interval].is_a?(String)
  raise InvalidParameterError.new("Bad parameter: path must be an String") if params[:path] and !params[:path].is_a?(String)
  raise InvalidParameterError.new("Bad parameter: sync_ids must be an String") if params[:sync_ids] and !params[:sync_ids].is_a?(String)
  raise InvalidParameterError.new("Bad parameter: user_ids must be an String") if params[:user_ids] and !params[:user_ids].is_a?(String)
  raise InvalidParameterError.new("Bad parameter: group_ids must be an String") if params[:group_ids] and !params[:group_ids].is_a?(String)
  raise InvalidParameterError.new("Bad parameter: schedule_days_of_week must be an Array") if params[:schedule_days_of_week] and !params[:schedule_days_of_week].is_a?(Array)
  raise InvalidParameterError.new("Bad parameter: schedule_times_of_day must be an Array") if params[:schedule_times_of_day] and !params[:schedule_times_of_day].is_a?(Array)
  raise InvalidParameterError.new("Bad parameter: schedule_time_zone must be an String") if params[:schedule_time_zone] and !params[:schedule_time_zone].is_a?(String)
  raise InvalidParameterError.new("Bad parameter: description must be an String") if params[:description] and !params[:description].is_a?(String)
  raise InvalidParameterError.new("Bad parameter: name must be an String") if params[:name] and !params[:name].is_a?(String)
  raise InvalidParameterError.new("Bad parameter: trigger must be an String") if params[:trigger] and !params[:trigger].is_a?(String)
  raise InvalidParameterError.new("Bad parameter: trigger_actions must be an Array") if params[:trigger_actions] and !params[:trigger_actions].is_a?(Array)
  raise InvalidParameterError.new("Bad parameter: value must be an Hash") if params[:value] and !params[:value].is_a?(Hash)
  raise InvalidParameterError.new("Bad parameter: recurring_day must be an Integer") if params[:recurring_day] and !params[:recurring_day].is_a?(Integer)
  raise InvalidParameterError.new("Bad parameter: automation must be an String") if params[:automation] and !params[:automation].is_a?(String)
  raise MissingParameterError.new("Parameter missing: automation") unless params[:automation]

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

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



521
522
523
524
525
526
527
528
529
# File 'lib/files.com/models/automation.rb', line 521

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

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

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



531
532
533
534
# File 'lib/files.com/models/automation.rb', line 531

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

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

Parameters:

id (required) - int64 - Automation ID.


393
394
395
396
397
398
399
400
401
# File 'lib/files.com/models/automation.rb', line 393

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

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

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



403
404
405
# File 'lib/files.com/models/automation.rb', line 403

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

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

Parameters:

cursor - string - Used for pagination.  When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`.  Send one of those cursor value here to resume an existing list from the next available record.  Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination.
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[automation]=desc`). Valid fields are `automation`, `disabled`, `last_modified_at` or `name`.
filter - object - If set, return records where the specified field is equal to the supplied value. Valid fields are `disabled`, `last_modified_at` or `automation`. Valid field combinations are `[ automation, disabled ]` and `[ disabled, automation ]`.
filter_gt - object - If set, return records where the specified field is greater than the supplied value. Valid fields are `last_modified_at`.
filter_gteq - object - If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `last_modified_at`.
filter_lt - object - If set, return records where the specified field is less than the supplied value. Valid fields are `last_modified_at`.
filter_lteq - object - If set, return records where the specified field is less than or equal the supplied value. Valid fields are `last_modified_at`.
with_deleted - boolean - Set to true to include deleted automations in the results.


372
373
374
375
376
377
378
379
380
381
382
383
384
385
# File 'lib/files.com/models/automation.rb', line 372

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

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

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

Manually run automation



458
459
460
461
462
463
464
465
466
# File 'lib/files.com/models/automation.rb', line 458

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

  Api.send_request("/automations/#{params[:id]}/manual_run", :post, params, options)
  nil
end

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

Parameters:

source - string - Source Path
destination - string - DEPRECATED: Destination Path. Use `destinations` instead.
destinations - array(string) - A list of String destination paths or Hash of folder_path and optional file_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.
sync_ids - string - A list of sync IDs the automation is associated with. If sent as a string, it should be comma-delimited.
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_days_of_week - array(int64) - If trigger is `custom_schedule`. A list of days of the week to run this automation. 0 is Sunday, 1 is Monday, etc.
schedule_times_of_day - array(string) - If trigger is `custom_schedule`. A list of times of day to run this automation. 24-hour time format.
schedule_time_zone - string - If trigger is `custom_schedule`. Time zone for the schedule.
always_overwrite_size_matching_files - boolean - Ordinarily, files with identical size in the source and destination will be skipped from copy operations to prevent wasted transfer.  If this flag is `true` we will overwrite the destination file always.  Note that this may cause large amounts of wasted transfer usage.
description - string - Description for the this Automation.
disabled - boolean - If true, this automation will not run.
name - string - Name for this automation.
trigger - string - How this automation is triggered to run.
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
value - object - A Hash of attributes specific to the automation type.
recurring_day - int64 - If trigger type is `daily`, this specifies a day number to run in one of the supported intervals: `week`, `month`, `quarter`, `year`.
automation - string - Automation type


491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
# File 'lib/files.com/models/automation.rb', line 491

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

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

Instance Method Details

#always_overwrite_size_matching_filesObject

boolean - Ordinarily, files with identical size in the source and destination will be skipped from copy operations to prevent wasted transfer. If this flag is ‘true` we will overwrite the destination file always. Note that this may cause large amounts of wasted transfer usage.



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

def always_overwrite_size_matching_files
  @attributes[:always_overwrite_size_matching_files]
end

#always_overwrite_size_matching_files=(value) ⇒ Object



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

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

#automationObject

string - Automation type



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

def automation
  @attributes[:automation]
end

#automation=(value) ⇒ Object



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

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

#delete(params = {}) ⇒ Object



336
337
338
339
340
341
342
343
344
# File 'lib/files.com/models/automation.rb', line 336

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[:id] and !params[:id].is_a?(Integer)
  raise MissingParameterError.new("Parameter missing: id") unless params[:id]

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

#deletedObject

boolean - Indicates if the automation has been deleted.



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

def deleted
  @attributes[:deleted]
end

#deleted=(value) ⇒ Object



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

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

#descriptionObject

string - Description for the this Automation.



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

def description
  @attributes[:description]
end

#description=(value) ⇒ Object



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

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

#destinationObject

string - DEPRECATED: Destination Path. Use ‘destinations` instead.



265
266
267
# File 'lib/files.com/models/automation.rb', line 265

def destination
  @attributes[:destination]
end

#destination=(value) ⇒ Object



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

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`.



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

def destination_replace_from
  @attributes[:destination_replace_from]
end

#destination_replace_from=(value) ⇒ Object



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

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.



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

def destination_replace_to
  @attributes[:destination_replace_to]
end

#destination_replace_to=(value) ⇒ Object



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

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

#destinationsObject

array - Destination Paths



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

def destinations
  @attributes[:destinations]
end

#destinations=(value) ⇒ Object



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

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

#destroy(params = {}) ⇒ Object



346
347
348
349
# File 'lib/files.com/models/automation.rb', line 346

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

#disabledObject

boolean - If true, this automation will not run.



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

def disabled
  @attributes[:disabled]
end

#disabled=(value) ⇒ Object



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

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

#group_idsObject

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



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

def group_ids
  @attributes[:group_ids]
end

#group_ids=(value) ⇒ Object



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

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

#human_readable_scheduleObject

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



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

def human_readable_schedule
  @attributes[:human_readable_schedule]
end

#human_readable_schedule=(value) ⇒ Object



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

def human_readable_schedule=(value)
  @attributes[:human_readable_schedule] = 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`



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

def interval
  @attributes[:interval]
end

#interval=(value) ⇒ Object



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

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

#last_modified_atObject

date-time - Time when automation was last modified. Does not change for name or description updates.



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

def last_modified_at
  @attributes[:last_modified_at]
end

#last_modified_at=(value) ⇒ Object



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

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

#manual_run(params = {}) ⇒ Object

Manually run automation



274
275
276
277
278
279
280
281
282
# File 'lib/files.com/models/automation.rb', line 274

def manual_run(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[:id] and !params[:id].is_a?(Integer)
  raise MissingParameterError.new("Parameter missing: id") unless params[:id]

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

#nameObject

string - Name for this automation.



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

def name
  @attributes[:name]
end

#name=(value) ⇒ Object



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

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

#pathObject

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



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

def path
  @attributes[:path]
end

#path=(value) ⇒ Object



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

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

#recurring_dayObject

int64 - If trigger type is ‘daily`, this specifies a day number to run in one of the supported intervals: `week`, `month`, `quarter`, `year`.



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

def recurring_day
  @attributes[:recurring_day]
end

#recurring_day=(value) ⇒ Object



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

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

#saveObject



351
352
353
354
355
356
357
358
359
360
# File 'lib/files.com/models/automation.rb', line 351

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

  @attributes = new_obj.attributes
  true
end

#scheduleObject

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



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

def schedule
  @attributes[:schedule]
end

#schedule=(value) ⇒ Object



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

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

#schedule_days_of_weekObject

array - If trigger is ‘custom_schedule`, Custom schedule description for when the automation should be run. 0-based days of the week. 0 is Sunday, 1 is Monday, etc.



166
167
168
# File 'lib/files.com/models/automation.rb', line 166

def schedule_days_of_week
  @attributes[:schedule_days_of_week]
end

#schedule_days_of_week=(value) ⇒ Object



170
171
172
# File 'lib/files.com/models/automation.rb', line 170

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

#schedule_time_zoneObject

string - If trigger is ‘custom_schedule`, Custom schedule Time Zone for when the automation should be run.



184
185
186
# File 'lib/files.com/models/automation.rb', line 184

def schedule_time_zone
  @attributes[:schedule_time_zone]
end

#schedule_time_zone=(value) ⇒ Object



188
189
190
# File 'lib/files.com/models/automation.rb', line 188

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

#schedule_times_of_dayObject

array - If trigger is ‘custom_schedule`, Custom schedule description for when the automation should be run. Times of day in HH:MM format.



175
176
177
# File 'lib/files.com/models/automation.rb', line 175

def schedule_times_of_day
  @attributes[:schedule_times_of_day]
end

#schedule_times_of_day=(value) ⇒ Object



179
180
181
# File 'lib/files.com/models/automation.rb', line 179

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

#sourceObject

string - Source Path



193
194
195
# File 'lib/files.com/models/automation.rb', line 193

def source
  @attributes[:source]
end

#source=(value) ⇒ Object



197
198
199
# File 'lib/files.com/models/automation.rb', line 197

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

#sync_idsObject

array - IDs of remote sync folder behaviors to run by this Automation



202
203
204
# File 'lib/files.com/models/automation.rb', line 202

def sync_ids
  @attributes[:sync_ids]
end

#sync_ids=(value) ⇒ Object



206
207
208
# File 'lib/files.com/models/automation.rb', line 206

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

#triggerObject

string - How this automation is triggered to run.



220
221
222
# File 'lib/files.com/models/automation.rb', line 220

def trigger
  @attributes[:trigger]
end

#trigger=(value) ⇒ Object



224
225
226
# File 'lib/files.com/models/automation.rb', line 224

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

#trigger_actionsObject

array - 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



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

def trigger_actions
  @attributes[:trigger_actions]
end

#trigger_actions=(value) ⇒ Object



215
216
217
# File 'lib/files.com/models/automation.rb', line 215

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

#update(params = {}) ⇒ Object

Parameters:

source - string - Source Path
destination - string - DEPRECATED: Destination Path. Use `destinations` instead.
destinations - array(string) - A list of String destination paths or Hash of folder_path and optional file_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.
sync_ids - string - A list of sync IDs the automation is associated with. If sent as a string, it should be comma-delimited.
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_days_of_week - array(int64) - If trigger is `custom_schedule`. A list of days of the week to run this automation. 0 is Sunday, 1 is Monday, etc.
schedule_times_of_day - array(string) - If trigger is `custom_schedule`. A list of times of day to run this automation. 24-hour time format.
schedule_time_zone - string - If trigger is `custom_schedule`. Time zone for the schedule.
always_overwrite_size_matching_files - boolean - Ordinarily, files with identical size in the source and destination will be skipped from copy operations to prevent wasted transfer.  If this flag is `true` we will overwrite the destination file always.  Note that this may cause large amounts of wasted transfer usage.
description - string - Description for the this Automation.
disabled - boolean - If true, this automation will not run.
name - string - Name for this automation.
trigger - string - How this automation is triggered to run.
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
value - object - A Hash of attributes specific to the automation type.
recurring_day - int64 - If trigger type is `daily`, this specifies a day number to run in one of the supported intervals: `week`, `month`, `quarter`, `year`.
automation - string - Automation type


307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
# File 'lib/files.com/models/automation.rb', line 307

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[:id] and !params[:id].is_a?(Integer)
  raise InvalidParameterError.new("Bad parameter: source must be an String") if params[:source] and !params[:source].is_a?(String)
  raise InvalidParameterError.new("Bad parameter: destination must be an String") if params[:destination] and !params[:destination].is_a?(String)
  raise InvalidParameterError.new("Bad parameter: destinations must be an Array") if params[:destinations] and !params[:destinations].is_a?(Array)
  raise InvalidParameterError.new("Bad parameter: destination_replace_from must be an String") if params[:destination_replace_from] and !params[:destination_replace_from].is_a?(String)
  raise InvalidParameterError.new("Bad parameter: destination_replace_to must be an String") if params[:destination_replace_to] and !params[:destination_replace_to].is_a?(String)
  raise InvalidParameterError.new("Bad parameter: interval must be an String") if params[:interval] and !params[:interval].is_a?(String)
  raise InvalidParameterError.new("Bad parameter: path must be an String") if params[:path] and !params[:path].is_a?(String)
  raise InvalidParameterError.new("Bad parameter: sync_ids must be an String") if params[:sync_ids] and !params[:sync_ids].is_a?(String)
  raise InvalidParameterError.new("Bad parameter: user_ids must be an String") if params[:user_ids] and !params[:user_ids].is_a?(String)
  raise InvalidParameterError.new("Bad parameter: group_ids must be an String") if params[:group_ids] and !params[:group_ids].is_a?(String)
  raise InvalidParameterError.new("Bad parameter: schedule_days_of_week must be an Array") if params[:schedule_days_of_week] and !params[:schedule_days_of_week].is_a?(Array)
  raise InvalidParameterError.new("Bad parameter: schedule_times_of_day must be an Array") if params[:schedule_times_of_day] and !params[:schedule_times_of_day].is_a?(Array)
  raise InvalidParameterError.new("Bad parameter: schedule_time_zone must be an String") if params[:schedule_time_zone] and !params[:schedule_time_zone].is_a?(String)
  raise InvalidParameterError.new("Bad parameter: description must be an String") if params[:description] and !params[:description].is_a?(String)
  raise InvalidParameterError.new("Bad parameter: name must be an String") if params[:name] and !params[:name].is_a?(String)
  raise InvalidParameterError.new("Bad parameter: trigger must be an String") if params[:trigger] and !params[:trigger].is_a?(String)
  raise InvalidParameterError.new("Bad parameter: trigger_actions must be an Array") if params[:trigger_actions] and !params[:trigger_actions].is_a?(Array)
  raise InvalidParameterError.new("Bad parameter: recurring_day must be an Integer") if params[:recurring_day] and !params[:recurring_day].is_a?(Integer)
  raise InvalidParameterError.new("Bad parameter: automation must be an String") if params[:automation] and !params[:automation].is_a?(String)
  raise MissingParameterError.new("Parameter missing: id") unless params[:id]

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

#user_idObject

int64 - User ID of the Automation’s creator.



229
230
231
# File 'lib/files.com/models/automation.rb', line 229

def user_id
  @attributes[:user_id]
end

#user_id=(value) ⇒ Object



233
234
235
# File 'lib/files.com/models/automation.rb', line 233

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)



238
239
240
# File 'lib/files.com/models/automation.rb', line 238

def user_ids
  @attributes[:user_ids]
end

#user_ids=(value) ⇒ Object



242
243
244
# File 'lib/files.com/models/automation.rb', line 242

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

#valueObject

object - A Hash of attributes specific to the automation type.



247
248
249
# File 'lib/files.com/models/automation.rb', line 247

def value
  @attributes[:value]
end

#value=(value) ⇒ Object



251
252
253
# File 'lib/files.com/models/automation.rb', line 251

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

#webhook_urlObject

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



256
257
258
# File 'lib/files.com/models/automation.rb', line 256

def webhook_url
  @attributes[:webhook_url]
end

#webhook_url=(value) ⇒ Object



260
261
262
# File 'lib/files.com/models/automation.rb', line 260

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