mavenlink 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +11 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +3 -0
- data/README.md +241 -0
- data/Rakefile +28 -0
- data/bin/mavenlink-console +18 -0
- data/doc/ml_logo_lb-primary.png +0 -0
- data/lib/config/specification.yml +1665 -0
- data/lib/mavenlink.rb +134 -0
- data/lib/mavenlink/account_invitation.rb +4 -0
- data/lib/mavenlink/account_membership.rb +4 -0
- data/lib/mavenlink/additional_item.rb +4 -0
- data/lib/mavenlink/assignment.rb +5 -0
- data/lib/mavenlink/attachment.rb +11 -0
- data/lib/mavenlink/backup_approver_association.rb +4 -0
- data/lib/mavenlink/client.rb +116 -0
- data/lib/mavenlink/concerns/custom_fieldable.rb +9 -0
- data/lib/mavenlink/concerns/indestructible.rb +11 -0
- data/lib/mavenlink/concerns/locked_record.rb +30 -0
- data/lib/mavenlink/cost_rate.rb +4 -0
- data/lib/mavenlink/custom_field.rb +4 -0
- data/lib/mavenlink/custom_field_choice.rb +5 -0
- data/lib/mavenlink/custom_field_value.rb +4 -0
- data/lib/mavenlink/errors.rb +47 -0
- data/lib/mavenlink/expense.rb +4 -0
- data/lib/mavenlink/expense_category.rb +4 -0
- data/lib/mavenlink/expense_report_submission.rb +7 -0
- data/lib/mavenlink/external_payment.rb +4 -0
- data/lib/mavenlink/external_reference.rb +24 -0
- data/lib/mavenlink/fixed_fee_item.rb +4 -0
- data/lib/mavenlink/holiday.rb +4 -0
- data/lib/mavenlink/holiday_calendar.rb +4 -0
- data/lib/mavenlink/holiday_calendar_association.rb +4 -0
- data/lib/mavenlink/holiday_calendar_membership.rb +4 -0
- data/lib/mavenlink/invoice.rb +4 -0
- data/lib/mavenlink/logger.rb +62 -0
- data/lib/mavenlink/model.rb +279 -0
- data/lib/mavenlink/organization.rb +4 -0
- data/lib/mavenlink/organization_membership.rb +4 -0
- data/lib/mavenlink/participation.rb +4 -0
- data/lib/mavenlink/post.rb +4 -0
- data/lib/mavenlink/project_template.rb +4 -0
- data/lib/mavenlink/project_template_assignment.rb +4 -0
- data/lib/mavenlink/railtie.rb +7 -0
- data/lib/mavenlink/rate_card.rb +4 -0
- data/lib/mavenlink/rate_card_role.rb +4 -0
- data/lib/mavenlink/rate_card_set.rb +4 -0
- data/lib/mavenlink/rate_card_set_version.rb +30 -0
- data/lib/mavenlink/rate_card_version.rb +4 -0
- data/lib/mavenlink/request.rb +241 -0
- data/lib/mavenlink/resolution.rb +4 -0
- data/lib/mavenlink/response.rb +22 -0
- data/lib/mavenlink/role.rb +5 -0
- data/lib/mavenlink/settings.rb +11 -0
- data/lib/mavenlink/skill.rb +4 -0
- data/lib/mavenlink/skill_category.rb +4 -0
- data/lib/mavenlink/skill_membership.rb +4 -0
- data/lib/mavenlink/specificators/association.rb +13 -0
- data/lib/mavenlink/specificators/attribute.rb +13 -0
- data/lib/mavenlink/specificators/base.rb +24 -0
- data/lib/mavenlink/specificators/validation.rb +27 -0
- data/lib/mavenlink/status_report.rb +4 -0
- data/lib/mavenlink/story.rb +8 -0
- data/lib/mavenlink/story_allocation_day.rb +5 -0
- data/lib/mavenlink/story_dependency.rb +5 -0
- data/lib/mavenlink/story_task.rb +5 -0
- data/lib/mavenlink/tag.rb +5 -0
- data/lib/mavenlink/time_adjustment.rb +4 -0
- data/lib/mavenlink/time_entry.rb +4 -0
- data/lib/mavenlink/time_off_entry.rb +4 -0
- data/lib/mavenlink/timesheet_submission.rb +4 -0
- data/lib/mavenlink/user.rb +5 -0
- data/lib/mavenlink/vendor.rb +4 -0
- data/lib/mavenlink/workspace.rb +21 -0
- data/lib/mavenlink/workspace_group.rb +5 -0
- data/lib/mavenlink/workspace_invoice_preference.rb +4 -0
- data/lib/mavenlink/workweek.rb +4 -0
- data/lib/mavenlink/workweek_membership.rb +4 -0
- data/mavenlink.gemspec +29 -0
- data/spec/lib/mavenlink/account_membership_spec.rb +8 -0
- data/spec/lib/mavenlink/assignment_spec.rb +17 -0
- data/spec/lib/mavenlink/attachment_spec.rb +30 -0
- data/spec/lib/mavenlink/backup_approver_association_spec.rb +9 -0
- data/spec/lib/mavenlink/client_spec.rb +187 -0
- data/spec/lib/mavenlink/concerns/indestructible_spec.rb +13 -0
- data/spec/lib/mavenlink/concerns/locked_record_spec.rb +28 -0
- data/spec/lib/mavenlink/cost_rate_spec.rb +9 -0
- data/spec/lib/mavenlink/custom_field_value_spec.rb +10 -0
- data/spec/lib/mavenlink/expense_report_submission_spec.rb +16 -0
- data/spec/lib/mavenlink/expense_spec.rb +23 -0
- data/spec/lib/mavenlink/external_references_spec.rb +144 -0
- data/spec/lib/mavenlink/holiday_calendar_association_spec.rb +8 -0
- data/spec/lib/mavenlink/holiday_calendar_membership_spec.rb +8 -0
- data/spec/lib/mavenlink/holiday_spec.rb +7 -0
- data/spec/lib/mavenlink/invalid_request_error_spec.rb +9 -0
- data/spec/lib/mavenlink/invoice_spec.rb +176 -0
- data/spec/lib/mavenlink/model_spec.rb +439 -0
- data/spec/lib/mavenlink/post_spec.rb +23 -0
- data/spec/lib/mavenlink/rate_card_set_version_spec.rb +119 -0
- data/spec/lib/mavenlink/record_invalid_error_spec.rb +16 -0
- data/spec/lib/mavenlink/record_not_found_error_spec.rb +9 -0
- data/spec/lib/mavenlink/request_spec.rb +381 -0
- data/spec/lib/mavenlink/response_spec.rb +50 -0
- data/spec/lib/mavenlink/role_spec.rb +9 -0
- data/spec/lib/mavenlink/settings_spec.rb +23 -0
- data/spec/lib/mavenlink/skill_category_spec.rb +7 -0
- data/spec/lib/mavenlink/skill_membership_spec.rb +9 -0
- data/spec/lib/mavenlink/skill_spec.rb +8 -0
- data/spec/lib/mavenlink/specificators/association_spec.rb +25 -0
- data/spec/lib/mavenlink/specificators/attribute_spec.rb +25 -0
- data/spec/lib/mavenlink/specificators/validation_spec.rb +39 -0
- data/spec/lib/mavenlink/story_allocation_day_spec.rb +64 -0
- data/spec/lib/mavenlink/story_dependency_spec.rb +16 -0
- data/spec/lib/mavenlink/story_spec.rb +69 -0
- data/spec/lib/mavenlink/time_adjustment_spec.rb +13 -0
- data/spec/lib/mavenlink/time_entry_spec.rb +43 -0
- data/spec/lib/mavenlink/time_off_entry_spec.rb +9 -0
- data/spec/lib/mavenlink/user_spec.rb +138 -0
- data/spec/lib/mavenlink/workspace_group_spec.rb +25 -0
- data/spec/lib/mavenlink/workspace_spec.rb +431 -0
- data/spec/lib/mavenlink_spec.rb +43 -0
- data/spec/spec_helper.rb +31 -0
- data/spec/support/shared_examples.rb +148 -0
- metadata +267 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: de43a923844eb10ec683c9ea9f1c0782b9cfbed7
|
4
|
+
data.tar.gz: 5dbb12c2d7baa46e6c7af26fb31b9c9a6c1190be
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 075203a456cd20e6f36aac7e338f0a0fb4fbc289099ae7021cada15eabd3ef2364763607049a174035152a2edf3c872a15702fe316f09d5ecc13a6e0f798fa51
|
7
|
+
data.tar.gz: 7d3b00c34e89cefb3fdb4f902ba42ecf66c4290ff028e516b31e5eed9ea76dd06c3b7b84fef90bb136f16736c69e3ca8a52161c0a8b4c05e9514b4bb1f661bff
|
data/.gitignore
ADDED
data/.ruby-gemset
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
mavenlink_gem
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.2.3
|
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,241 @@
|
|
1
|
+
![](doc/ml_logo_lb-primary.png)
|
2
|
+
|
3
|
+
## Mavenlink API
|
4
|
+
[![Circle CI](https://circleci.com/gh/mavenlink/mavenlink_gem/tree/master.svg?style=svg)](https://circleci.com/gh/mavenlink/mavenlink_gem/tree/master)
|
5
|
+
[![Dependency Status](https://gemnasium.com/einzige/mavenlink.svg)](https://gemnasium.com/einzige/mavenlink)
|
6
|
+
|
7
|
+
### Usage
|
8
|
+
|
9
|
+
Examples below use `Mavenlink::Workspace` as an instance.
|
10
|
+
You also have other collections to use in similar way:
|
11
|
+
|
12
|
+
```ruby
|
13
|
+
Mavenlink::Assignment # assignments collection Mavenlink.client.assignments
|
14
|
+
Mavenlink::Attachment # attachments collection Mavenlink.client.attachments
|
15
|
+
Mavenlink::Expense # expenses collection Mavenlink.client.expenses
|
16
|
+
Mavenlink::Invoice # invoices collection Mavenlink.client.invoices
|
17
|
+
Mavenlink::Post # posts collection Mavenlink.client.posts
|
18
|
+
Mavenlink::Story # stories collection Mavenlink.client.stories
|
19
|
+
Mavenlink::StoryAllocationDay
|
20
|
+
Mavenlink::TimeEntry # time_enties collection Mavenlink.client.time_entries
|
21
|
+
Mavenlink::User # users collection Mavenlink.client.users
|
22
|
+
Mavenlink::WorkspaceGroup
|
23
|
+
Mavenlink::Workspace
|
24
|
+
```
|
25
|
+
|
26
|
+
#### Setting up access token
|
27
|
+
|
28
|
+
In order to be able to perform any requests you should set `outh_token` obtained by your Mavenlink Account.
|
29
|
+
|
30
|
+
```ruby
|
31
|
+
Mavenlink.oauth_token = "your_token"
|
32
|
+
```
|
33
|
+
|
34
|
+
If you are using __Rails__, put this line into `config/initializers/mavenlink.rb`.
|
35
|
+
If you are using __Heroku__ or __Foreman__, set MAVENLINK_OAUTH_TOKEN env var.
|
36
|
+
|
37
|
+
#### Creating new records
|
38
|
+
```ruby
|
39
|
+
workspace = Mavenlink::Workspace.create(title: 'new workspace', creator_role: 'buyer')
|
40
|
+
|
41
|
+
# Exactly the same:
|
42
|
+
workspace = Mavenlink::Workspace.new(title: 'New workspace', creator_role: 'maven')
|
43
|
+
workspace.save # will call "create" and store record in Mavenlink db
|
44
|
+
workspace.new_record? # -> false
|
45
|
+
```
|
46
|
+
|
47
|
+
#### Fetching records
|
48
|
+
```ruby
|
49
|
+
Mavenlink::Workspace.find(9)
|
50
|
+
# Same as:
|
51
|
+
workspace = Mavenlink.client.workspaces.find(9)
|
52
|
+
|
53
|
+
# Reload record from remote host:
|
54
|
+
workspace.reload
|
55
|
+
```
|
56
|
+
|
57
|
+
#### Updating records
|
58
|
+
```ruby
|
59
|
+
workspace = Mavenlink::Workspace.find(1)
|
60
|
+
|
61
|
+
workspace.title = 'new title' # writes attribute
|
62
|
+
workspace.save # returns true if record has been saved
|
63
|
+
workspace.save! # will raise exception if record is invalid
|
64
|
+
|
65
|
+
workspace.update_attributes(title: 'title')
|
66
|
+
workspace.update_attributes!(title: 'title')
|
67
|
+
|
68
|
+
workspace.attributes = {title: 'title'}
|
69
|
+
workspace.save
|
70
|
+
```
|
71
|
+
|
72
|
+
#### Destroying records
|
73
|
+
```ruby
|
74
|
+
post = Mavenlink::Post.find(1)
|
75
|
+
post.destroy
|
76
|
+
```
|
77
|
+
|
78
|
+
#### Associations
|
79
|
+
```ruby
|
80
|
+
workspace.participants # will return participants as an array of Mavenlink::User instances, will do http API call if association is not "included"
|
81
|
+
workspace.participants # now it returns cached value
|
82
|
+
workspace.participants.first # returns Mavenlink::User record
|
83
|
+
workspace.participants(true) # flushes association cache
|
84
|
+
|
85
|
+
participant = workspace.participants.first
|
86
|
+
participant.full_name = 'new name'
|
87
|
+
participant.save # performs "update" query, full_name will be changed
|
88
|
+
```
|
89
|
+
|
90
|
+
In order to include association use `include` as follows:
|
91
|
+
```ruby
|
92
|
+
Mavenlink::Workspace.scoped.includes(:participants).search('My Workspace')
|
93
|
+
Mavenlink::Workspace.includes(:participants).search('My Workspace')
|
94
|
+
|
95
|
+
Mavenlink::Workspace.scoped.search('My Workspace').order(:updated_at, :desc).each do |workspace|
|
96
|
+
if workspace.valid?
|
97
|
+
workspace.destroy
|
98
|
+
end
|
99
|
+
end
|
100
|
+
```
|
101
|
+
|
102
|
+
#### Search
|
103
|
+
|
104
|
+
```ruby
|
105
|
+
Mavenlink::Workspace.search('Something')
|
106
|
+
Mavenlink::Workspace.scoped.search('Something')
|
107
|
+
Mavenlink.client.workspaces.search('Something')
|
108
|
+
```
|
109
|
+
|
110
|
+
#### Filtering
|
111
|
+
|
112
|
+
```ruby
|
113
|
+
Mavenlink::Workspace.filter(include_archived: true).all
|
114
|
+
Mavenlink::Workspace.scoped.filter(include_archived: true).all
|
115
|
+
Mavenlink.client.workspaces.filter(include_archived: true).all
|
116
|
+
```
|
117
|
+
|
118
|
+
#### Pagination
|
119
|
+
|
120
|
+
```ruby
|
121
|
+
Mavenlink::Workspace.page(2).per_page(3)
|
122
|
+
Mavenlink::Workspace.scoped.page(2).per_page(3)
|
123
|
+
Mavenlink.client.workspaces.page(2).per_page(3)
|
124
|
+
```
|
125
|
+
|
126
|
+
```ruby
|
127
|
+
Mavenlink::Workspace.limit(2).offset(3)
|
128
|
+
Mavenlink::Workspace.scoped.limit(2).offset(3)
|
129
|
+
Mavenlink.client.workspaces.limit(2).offset(3)
|
130
|
+
```
|
131
|
+
|
132
|
+
You'll never receive full results set if number of records in requested collection is greater than 200.
|
133
|
+
Pagination allows you to go through entire collection.
|
134
|
+
|
135
|
+
```ruby
|
136
|
+
Mavenlink::Workspace.scoped.each_page do |page|
|
137
|
+
page.each do |workspace|
|
138
|
+
p workspace.inspect
|
139
|
+
end
|
140
|
+
end
|
141
|
+
```
|
142
|
+
|
143
|
+
Use your paginator as Enumerable:
|
144
|
+
```ruby
|
145
|
+
Mavenlink::Workspace.scoped.each_page(200).to_a # 200 records per page
|
146
|
+
Mavenlink::Workspace.scoped.each_page.to_a.flatten # Returns full collection
|
147
|
+
Mavenlink::Workspace.scoped.each_page(2).each_with_index { |page, i| puts i }
|
148
|
+
```
|
149
|
+
|
150
|
+
__Kaminari__ pagination is also supported.
|
151
|
+
|
152
|
+
#### Client side validation
|
153
|
+
By default client side validation is disabled, you can enable it by setting `perform_validations` to `true`
|
154
|
+
|
155
|
+
```ruby
|
156
|
+
Mavenlink.perform_validations = true
|
157
|
+
```
|
158
|
+
|
159
|
+
Now any record will be validated before you perform any request to change its attributes.
|
160
|
+
|
161
|
+
```ruby
|
162
|
+
workspace = Workspace.new(title: 'My workspace')
|
163
|
+
workspace.save # -> returns false
|
164
|
+
workspace.errors.full_messages # -> ["Creator role is not included in the list"]
|
165
|
+
```
|
166
|
+
|
167
|
+
#### Invite new user
|
168
|
+
|
169
|
+
```ruby
|
170
|
+
Mavenlink::Workspace.find(7).invite(email: 'john@doe.com', full_name: 'John Doe', invitee_role: 'maven')
|
171
|
+
```
|
172
|
+
|
173
|
+
#### Requesting expense categories
|
174
|
+
|
175
|
+
```ruby
|
176
|
+
Mavenlink.client.expense_categories
|
177
|
+
```
|
178
|
+
|
179
|
+
#### Custom requests
|
180
|
+
|
181
|
+
```ruby
|
182
|
+
client = Mavenlink.client
|
183
|
+
client.get('/custom_path', {param: 'anything'})
|
184
|
+
client.post('/custom_path', {param: 'anything'})
|
185
|
+
client.put('/custom_path', {param: 'anything'})
|
186
|
+
client.delete('/custom_path', {param: 'anything'})
|
187
|
+
```
|
188
|
+
|
189
|
+
### More examples
|
190
|
+
|
191
|
+
```ruby
|
192
|
+
client = Mavenlink::Client.new(oauth_token: '...')
|
193
|
+
client.workspaces.each { |workspace| do_something(workspace) }
|
194
|
+
|
195
|
+
client.workspaces.includes('participants')
|
196
|
+
client.workspaces.includes('participants')
|
197
|
+
client.workspaces.includes('participants, creator')
|
198
|
+
client.workspaces.includes('participants', 'creator')
|
199
|
+
client.workspaces.includes(['participants', 'creator'])
|
200
|
+
client.workspaces.includes(:participants, :creator)
|
201
|
+
|
202
|
+
client.workspaces.find(2) # Returns one Mavenlink::Workspace
|
203
|
+
|
204
|
+
client.workspaces # Returns sort of "active record relation collection"
|
205
|
+
client.workspaces.to_a # Same as calling #to_a on activerecord scope
|
206
|
+
client.workspaces.all # Same as calling #to_a on activerecord scope
|
207
|
+
|
208
|
+
client.workspaces.page(3).per_page(20)
|
209
|
+
client.workspaces.limit(100).offset(10)
|
210
|
+
client.workspaces.filter(by_something: true)
|
211
|
+
client.workspaces.search('some text')
|
212
|
+
|
213
|
+
client.workspaces.order(:updated_at)
|
214
|
+
client.workspaces.order('updated_at:desc')
|
215
|
+
client.workspaces.order(:updated_at, :desc)
|
216
|
+
client.workspaces.order(:updated_at, 'ASC')
|
217
|
+
client.workspaces.order(:updated_at, true)
|
218
|
+
|
219
|
+
client.workspaces.create(title: 'New workspace')
|
220
|
+
client.workspaces.only(8).update(title: 'new title')
|
221
|
+
client.workspaces.only(8).delete
|
222
|
+
|
223
|
+
# ...
|
224
|
+
```
|
225
|
+
|
226
|
+
### Running Developer Console
|
227
|
+
|
228
|
+
Run in your project directory `bundle exec mavenlink-console` or `TOKEN=your_oauth_token bundle exec mavenlink-console`.
|
229
|
+
Or just `mavenlink-console` (depending on your current setup).
|
230
|
+
|
231
|
+
## Contributing
|
232
|
+
|
233
|
+
1. Fork
|
234
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
235
|
+
3. Commit your changes (`git commit -am 'Added some feature'`)
|
236
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
237
|
+
5. Create new Pull Request (`git pull-request`)
|
238
|
+
|
239
|
+
## License
|
240
|
+
|
241
|
+
Created by Mavenlink, Inc. and available under the MIT License.
|
data/Rakefile
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
#!/usr/bin/env rake
|
2
|
+
|
3
|
+
require 'rspec/core/rake_task'
|
4
|
+
|
5
|
+
RSpec::Core::RakeTask.new :spec
|
6
|
+
task default: :spec
|
7
|
+
|
8
|
+
desc 'Runs irb console and initializes the API'
|
9
|
+
task :console, :token do |_, args|
|
10
|
+
require 'irb'
|
11
|
+
require 'mavenlink'
|
12
|
+
require 'awesome_print'
|
13
|
+
|
14
|
+
token = ENV['TOKEN'] || args[:token]
|
15
|
+
Mavenlink.oauth_token = token
|
16
|
+
|
17
|
+
Mavenlink.logger = Mavenlink::Logger.new(STDOUT)
|
18
|
+
Mavenlink.logger.level = Logger::DEBUG # Change to Logger::INFO not to display responses
|
19
|
+
if token
|
20
|
+
Mavenlink.logger.hint "Using #{token} token."
|
21
|
+
else
|
22
|
+
Mavenlink.logger.disappointment 'No token set! Please put TOKEN=xxxx into your .env file or set manually.'
|
23
|
+
end
|
24
|
+
|
25
|
+
AwesomePrint.irb!
|
26
|
+
ARGV.clear
|
27
|
+
IRB.start
|
28
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'irb'
|
2
|
+
require 'mavenlink'
|
3
|
+
|
4
|
+
token = ENV['TOKEN']
|
5
|
+
Mavenlink.oauth_token = token
|
6
|
+
|
7
|
+
Mavenlink.logger = Mavenlink::Logger.new(STDOUT)
|
8
|
+
Mavenlink.logger.level = Logger::INFO # Change to Logger::DEBUG in order to display responses
|
9
|
+
|
10
|
+
if token
|
11
|
+
Mavenlink.logger.hint "Using #{token} token."
|
12
|
+
else
|
13
|
+
Mavenlink.logger.disappointment 'No token set! Please put TOKEN=xxxx into your .env file or set manually.'
|
14
|
+
end
|
15
|
+
|
16
|
+
AwesomePrint.irb! if defined?(AwesomePrint)
|
17
|
+
ARGV.clear
|
18
|
+
IRB.start
|
Binary file
|
@@ -0,0 +1,1665 @@
|
|
1
|
+
---
|
2
|
+
account_invitations:
|
3
|
+
attributes:
|
4
|
+
- id
|
5
|
+
- full_name
|
6
|
+
- email_address
|
7
|
+
- headline
|
8
|
+
- pending
|
9
|
+
- permission
|
10
|
+
- bill_rate_in_cents
|
11
|
+
- cost_rate_in_cents
|
12
|
+
- inviter_id
|
13
|
+
- invitee_id
|
14
|
+
create_attributes:
|
15
|
+
- full_name
|
16
|
+
- email_address
|
17
|
+
- headline
|
18
|
+
- permission
|
19
|
+
- bill_rate_in_cents
|
20
|
+
- cost_rate_in_cents
|
21
|
+
- default_role_id
|
22
|
+
- external_reference
|
23
|
+
update_attributes:
|
24
|
+
- permission
|
25
|
+
- bill_rate_in_cents
|
26
|
+
- cost_rate_in_cents
|
27
|
+
- default_role_id
|
28
|
+
associations:
|
29
|
+
inviter:
|
30
|
+
foreign_key: inviter_id
|
31
|
+
collection: users
|
32
|
+
invitee:
|
33
|
+
foreign_key: invitee_id
|
34
|
+
collection: users
|
35
|
+
default_role:
|
36
|
+
foreign_key: default_role_id
|
37
|
+
collection: roles
|
38
|
+
|
39
|
+
additional_items:
|
40
|
+
attributes:
|
41
|
+
- created_at
|
42
|
+
- notes
|
43
|
+
- amount_in_cents
|
44
|
+
- taxable
|
45
|
+
- currency
|
46
|
+
|
47
|
+
account_memberships:
|
48
|
+
attributes:
|
49
|
+
- disabled_at
|
50
|
+
- permission
|
51
|
+
- is_administrator
|
52
|
+
- is_project_lead
|
53
|
+
- is_punch_clock_user
|
54
|
+
- can_create_workspace
|
55
|
+
- can_view_reports
|
56
|
+
- bill_rate_in_cents
|
57
|
+
- cost_rate_in_cents
|
58
|
+
- manager_id
|
59
|
+
- billability_target
|
60
|
+
- should_show_alert_on_timesheet_submission
|
61
|
+
update_attributes:
|
62
|
+
- bill_rate_in_cents # bill_rate_in_cents is optional"
|
63
|
+
- cost_rate_in_cents # cost_rate_in_cents is optional"
|
64
|
+
- default_role_id # default_role_id is the internal ID of the role of this user on this account"
|
65
|
+
- permission # permission is optional; it can be 'administrator', 'reports_viewer', 'project_lead', 'project_creator', 'punch_clock' or 'collaborator'"
|
66
|
+
- manager_id
|
67
|
+
- billability_target
|
68
|
+
- should_show_alert_on_timesheet_submission
|
69
|
+
associations:
|
70
|
+
user:
|
71
|
+
foreign_key: user_id
|
72
|
+
collection: users
|
73
|
+
default_role:
|
74
|
+
foreign_key: default_role_id
|
75
|
+
collection: roles
|
76
|
+
cost_rates:
|
77
|
+
foreign_key: cost_rate_ids
|
78
|
+
collection: cost_rates
|
79
|
+
backup_approver_associations:
|
80
|
+
foreign_key: backup_approver_association_ids
|
81
|
+
collection: backup_approver_associations
|
82
|
+
|
83
|
+
assignments:
|
84
|
+
attributes:
|
85
|
+
- id # the unique identifier for this assignment object
|
86
|
+
- created_at # the date the assignment was recorded in Mavenlink
|
87
|
+
- updated_at # the date the assignment was last updated
|
88
|
+
- current # whether or not the assignment is active
|
89
|
+
- estimated_minutes # a user defined number of minutes that the user is expected to work on this story (task)
|
90
|
+
- allocated_minutes # the calculated sum of the assignment's Story Allocation Day minutes
|
91
|
+
- story_id # the id of the Story (Task) that owns the assignment
|
92
|
+
- assignee_id # the id of the user who owns the assignment
|
93
|
+
- story_allocation_day_ids # the ids of Story Allocation Days belonging to the assignment
|
94
|
+
create_attributes:
|
95
|
+
- story_id # (required) the ID of the Story for which the assignment will be created
|
96
|
+
- assignee_id # (required) the ID of the User for which the assignment will be created
|
97
|
+
- current # (optional) whether the assignment is active or not
|
98
|
+
- estimated_minutes # (optional) the number of minutes that the user is expected to work on this story
|
99
|
+
update_attributes:
|
100
|
+
- current
|
101
|
+
- estimated_minutes
|
102
|
+
associations:
|
103
|
+
# story - when included, the story_id will reference the story for which the assignment belongs
|
104
|
+
# assignee - when included, the assignee_id will reference the user for which the assignment belongs
|
105
|
+
# story_allocation_days - when included, the story_allocation_day_ids array will reference all of the
|
106
|
+
# Story Allocation Days that belong to the assignment.
|
107
|
+
# Including story allocation days requires the request to be filtered with the plannable filter
|
108
|
+
story:
|
109
|
+
foreign_key: story_id
|
110
|
+
collection: stories
|
111
|
+
assignee:
|
112
|
+
foreign_key: assignee_id
|
113
|
+
collection: users
|
114
|
+
story_allocation_days:
|
115
|
+
foreign_key: story_allocation_day_ids
|
116
|
+
collection: story_allocation_days
|
117
|
+
validations:
|
118
|
+
[story_id, assignee_id]:
|
119
|
+
presence: true
|
120
|
+
'on': create
|
121
|
+
|
122
|
+
attachments:
|
123
|
+
validations:
|
124
|
+
[data, type]:
|
125
|
+
presence: true
|
126
|
+
type:
|
127
|
+
inclusion:
|
128
|
+
in: [post_attachment, receipt]
|
129
|
+
attributes:
|
130
|
+
- data
|
131
|
+
- type
|
132
|
+
create_attributes:
|
133
|
+
- data
|
134
|
+
- type
|
135
|
+
|
136
|
+
cost_rates:
|
137
|
+
attributes:
|
138
|
+
- id
|
139
|
+
- updated_at
|
140
|
+
- created_at
|
141
|
+
- currency
|
142
|
+
- amount_in_subunits
|
143
|
+
- in_use
|
144
|
+
create_attributes:
|
145
|
+
- currency
|
146
|
+
- amount_in_subunits
|
147
|
+
- account_membership_id
|
148
|
+
associations:
|
149
|
+
account_membership:
|
150
|
+
foreign_key: account_membership_id
|
151
|
+
collection: account_membership
|
152
|
+
|
153
|
+
backup_approver_associations:
|
154
|
+
attributes:
|
155
|
+
- backup_approver_id
|
156
|
+
- approver_id
|
157
|
+
- start_date
|
158
|
+
- end_date
|
159
|
+
create_attributes:
|
160
|
+
- backup_approver_id
|
161
|
+
- approver_id
|
162
|
+
- start_date
|
163
|
+
- end_date
|
164
|
+
associations:
|
165
|
+
account_membership:
|
166
|
+
foreign_key: account_membership_id
|
167
|
+
collection: account_membership
|
168
|
+
|
169
|
+
custom_fields:
|
170
|
+
attributes:
|
171
|
+
- id # the internal id of the custom field
|
172
|
+
- name # the given field name
|
173
|
+
- value_type # the types the Custom Field Values use defaulting to 'string'. The current types include: 'string', 'date', 'number', 'currency', 'single', and 'multi'
|
174
|
+
- creator_id # the internal id of the User who created the custom field
|
175
|
+
- default_text # the placeholder text
|
176
|
+
- unique_constraint # an optional boolean constraint which forces the Custom Field Values' value to be unique across a subject_type. The default is false
|
177
|
+
- choices # the choices only valid for a 'single' and 'multi' type custom fields
|
178
|
+
- custom_field_set_id # the custom field set the field belongs in. All custom fields are contained in a custom field set which contain many sets.
|
179
|
+
- write_access # the permission level required to create, update, and destroy values for this custom field
|
180
|
+
- read_access # the permission level required to read values for this custom field
|
181
|
+
- created_at # the date the CF was created
|
182
|
+
- updated_at # the date the CF was last updated
|
183
|
+
- values_count
|
184
|
+
create_attributes:
|
185
|
+
- name # (required) the given field name
|
186
|
+
- value_type # (optional) the types the Custom Field Values use. The current types include: 'string', 'date', 'number', and 'currency'
|
187
|
+
- default_text # (optional) the placeholder text
|
188
|
+
- unique_constraint # (optional) a boolean constraint which forces the Custom Field Values' value to be unique across a subject_type. The default is false
|
189
|
+
- choices # (optional) the choices a custom field may have and only valid for a 'single' and 'multi' type custom fields. eg. [{'label' => 'first choice'}, {'label' => 'another choice'}]
|
190
|
+
- custom_field_set_id # (optional) the custom field set the custom field will belong to. If the custom_field_set_id is omitted this field will belong to a Workspace set named 'Default Project Set'. Note omitting the set id will restrict this field to only be applied to workspaces.
|
191
|
+
- write_access
|
192
|
+
- read_access
|
193
|
+
update_attributes:
|
194
|
+
- name # (required) the given field name
|
195
|
+
- value_type
|
196
|
+
- default_text # (optional) the placeholder text
|
197
|
+
- unique_constraint
|
198
|
+
- choices # choices may be updated through their CF's choices attribute. To change a choice's name, specify the id. To add new choices, do not specify and id. eg. [{'id' => '1', 'label' => 'new first choice name'}, {'label' => 'a brand new choice'}]. If a previous choice of the custom field is omitted, that choice will be soft deleted so that the values will not point to invalid choices.
|
199
|
+
- custom_field_set_id
|
200
|
+
- write_access # (optional) the permission level required for a user to create, update, or delete a custom field value for an object.
|
201
|
+
- read_access # (optional) the permission level required to read a custom field value for an object.
|
202
|
+
associations:
|
203
|
+
creator:
|
204
|
+
foreign_key: creator_id
|
205
|
+
collection: users
|
206
|
+
choices:
|
207
|
+
foreign_key: choice_ids
|
208
|
+
collection: custom_field_choices
|
209
|
+
|
210
|
+
custom_field_values:
|
211
|
+
attributes:
|
212
|
+
- id # the internal custom field value id
|
213
|
+
- subject_type # the type of entity the custom field value is associated with. Valid types include 'Workspace', 'Story', and 'User'
|
214
|
+
- subject_id # the internal id of the entity type defined by the subject_type field
|
215
|
+
- value # the value applied to the subject
|
216
|
+
- display_value # the formatted version of the value
|
217
|
+
- can_edit # whether the custom field value can be edited by the user that is logged-in.
|
218
|
+
- type # the type of value. The Current valid values are: 'string', 'date', 'number', 'currency' 'single', and 'multi'
|
219
|
+
- setter_id # the internal id of the User who has set value
|
220
|
+
- account_id # the id of the account the custom field value is on
|
221
|
+
- custom_field_id # the internal id of the associated custom field
|
222
|
+
- custom_field_name # the name of the associated custom field
|
223
|
+
- created_at # the date the custom field value was created in Mavenlink
|
224
|
+
- updated_at # the date the custom field value was last updated
|
225
|
+
create_attributes:
|
226
|
+
- subject_type # (required)
|
227
|
+
- subject_id # (required)
|
228
|
+
- custom_field_id # (required)
|
229
|
+
- value # (required)
|
230
|
+
update_attributes:
|
231
|
+
- value # (required)
|
232
|
+
associations:
|
233
|
+
setter:
|
234
|
+
- foreign_key: setter_id
|
235
|
+
- collection: users
|
236
|
+
custom_field:
|
237
|
+
- foreign_key: custom_field_id
|
238
|
+
- collection: custom_fields
|
239
|
+
|
240
|
+
custom_field_choices:
|
241
|
+
attributes:
|
242
|
+
- id
|
243
|
+
- updated_at
|
244
|
+
- created_at
|
245
|
+
- label
|
246
|
+
- custom_field_id
|
247
|
+
associations:
|
248
|
+
custom_field:
|
249
|
+
- foreign_key: custom_field_id
|
250
|
+
- collection: custom_fields
|
251
|
+
|
252
|
+
expenses:
|
253
|
+
validations:
|
254
|
+
[workspace_id, date, category, amount_in_cents]:
|
255
|
+
presence: true
|
256
|
+
attributes:
|
257
|
+
- id # the unique identifier for this expense object
|
258
|
+
- created_at # the date the expense was recorded in Mavenlink
|
259
|
+
- updated_at # the date the expense was last updated
|
260
|
+
- date # the date the expense was incurred
|
261
|
+
- notes # any notes added to the expense
|
262
|
+
- category # the category of the expense, which can be any string. Built-in categories are: "Travel", "Mileage", "Lodging", "Food", "Entertainment", "Other"
|
263
|
+
- amount_in_cents # the amount of the expense, in cents
|
264
|
+
- currency # the currency of the expense
|
265
|
+
- currency_symbol # the symbol that represents the currency of the expense
|
266
|
+
- currency_base_unit # the number of the units in the amount_as_cents attribute that are required to make up a single unit of the currency
|
267
|
+
- user_can_edit # can the viewing user edit this expense?
|
268
|
+
- is_invoiced # has this expense been included on an invoice?
|
269
|
+
- is_billable # is this a billable expense?
|
270
|
+
- taxable
|
271
|
+
- reimbursable
|
272
|
+
- workspace_id # the id of the project Workspace this expense is associated with
|
273
|
+
- user_id # the id of the user who created this expense
|
274
|
+
- story_id
|
275
|
+
- receipt_id # the id of an attached Receipt Attachment
|
276
|
+
- expense_category_id # the id of its category
|
277
|
+
- active_submission_id
|
278
|
+
create_attributes:
|
279
|
+
- workspace_id # (required) the ID of the Workspace in which the expense will be created
|
280
|
+
- date # (required) the date of the expense in ISO8601 format
|
281
|
+
- category # (required) the category of the expense as a string
|
282
|
+
- amount_in_cents # the amount of the expense, expressed in cents
|
283
|
+
- notes # freeform text related to the expense
|
284
|
+
- user_id # the internal ID of the user the expense is associated with. This parameter is ignored unless the authorizing user has financial access in the workspace and is on the consultants team (or if the authorizing user is an account administrator and has proxy permissions via an account member with those permissions).
|
285
|
+
- receipt_id
|
286
|
+
- billable
|
287
|
+
- story_id
|
288
|
+
- expense_category_id # the id of its category
|
289
|
+
- reimbursable
|
290
|
+
- vendor_id
|
291
|
+
- external_reference
|
292
|
+
update_attributes:
|
293
|
+
# NOTE(AC): check
|
294
|
+
- date # (required) the date of the expense in ISO8601 format
|
295
|
+
- category # (required) the category of the expense as a string
|
296
|
+
- amount_in_cents # the amount of the expense, expressed in cents
|
297
|
+
- notes # freeform text related to the expense
|
298
|
+
- user_id # the internal ID of the user the expense is associated with. This parameter is ignored unless the authorizing user has financial access in the workspace and is on the consultants team (or if the authorizing user is an account administrator and has proxy permissions via an account member with those permissions).
|
299
|
+
- receipt_id
|
300
|
+
- billable
|
301
|
+
- story_id
|
302
|
+
- expense_category_id # the id of its category
|
303
|
+
- external_reference
|
304
|
+
associations:
|
305
|
+
workspace:
|
306
|
+
foreign_key: workspace_id
|
307
|
+
collection: workspaces
|
308
|
+
user:
|
309
|
+
foreign_key: user_id
|
310
|
+
collection: users
|
311
|
+
receipt:
|
312
|
+
foreign_key: receipt_id
|
313
|
+
collection: attachments
|
314
|
+
story:
|
315
|
+
foreign_key: story_id
|
316
|
+
collection: stories
|
317
|
+
expense_category:
|
318
|
+
foreign_key: expense_category_id
|
319
|
+
collection: expense_categories
|
320
|
+
external_references:
|
321
|
+
foreign_key: external_reference_ids
|
322
|
+
collection: external_references
|
323
|
+
active_submission:
|
324
|
+
foreign_key: active_submission_id
|
325
|
+
collection: active_submissions
|
326
|
+
role:
|
327
|
+
foreign_key: role_id
|
328
|
+
collection: roles
|
329
|
+
vendor:
|
330
|
+
foreign_key: vendor_id
|
331
|
+
collection: vendors
|
332
|
+
|
333
|
+
expense_categories:
|
334
|
+
attributes:
|
335
|
+
- id
|
336
|
+
- name
|
337
|
+
- deleted_at
|
338
|
+
create_attributes:
|
339
|
+
- name
|
340
|
+
update_attributes:
|
341
|
+
- name
|
342
|
+
validations:
|
343
|
+
name:
|
344
|
+
presence: true
|
345
|
+
|
346
|
+
expense_report_submissions:
|
347
|
+
attributes:
|
348
|
+
- id
|
349
|
+
- created_at
|
350
|
+
- updated_at
|
351
|
+
- status
|
352
|
+
- title
|
353
|
+
- comment
|
354
|
+
- type
|
355
|
+
- resolution_description
|
356
|
+
- line_item_total_formatted
|
357
|
+
- line_item_total_in_cents
|
358
|
+
- currency
|
359
|
+
- currency_symbol
|
360
|
+
- currency_base_unit
|
361
|
+
- current_resolution_description
|
362
|
+
- current_resolution_creator_id
|
363
|
+
- current_resolution_created_at_date
|
364
|
+
- expense_ids
|
365
|
+
- resolution_ids
|
366
|
+
create_attributes:
|
367
|
+
- title
|
368
|
+
- comment
|
369
|
+
- workspace_id
|
370
|
+
- user_id
|
371
|
+
- line_item_ids
|
372
|
+
associations:
|
373
|
+
user:
|
374
|
+
foreign_key: user_id
|
375
|
+
collection: users
|
376
|
+
workspace:
|
377
|
+
foreign_key: workspace_id
|
378
|
+
collection: workspaces
|
379
|
+
expenses:
|
380
|
+
foreign_key: expense_ids
|
381
|
+
collection: expenses
|
382
|
+
resolutions:
|
383
|
+
foreign_key: resolution_ids
|
384
|
+
collection: resolutions
|
385
|
+
|
386
|
+
external_payments:
|
387
|
+
attributes:
|
388
|
+
- id
|
389
|
+
- created_at
|
390
|
+
- updated_at
|
391
|
+
- user_id
|
392
|
+
- amount_in_cents
|
393
|
+
- message
|
394
|
+
- invoice_id
|
395
|
+
- workspace_id
|
396
|
+
create_attributes:
|
397
|
+
- amount_in_cents
|
398
|
+
- message
|
399
|
+
- invoice_id
|
400
|
+
- workspace_id
|
401
|
+
associations:
|
402
|
+
user:
|
403
|
+
foreign_key: user_id
|
404
|
+
collection: users
|
405
|
+
workspace:
|
406
|
+
foreign_key: workspace_id
|
407
|
+
collection: workspaces
|
408
|
+
invoice:
|
409
|
+
foreign_key: invoice_id
|
410
|
+
collection: invoices
|
411
|
+
|
412
|
+
fixed_fee_items:
|
413
|
+
attributes:
|
414
|
+
- id
|
415
|
+
- created_at
|
416
|
+
- notes
|
417
|
+
- amount_in_cents
|
418
|
+
- taxable
|
419
|
+
- currency
|
420
|
+
- story_id
|
421
|
+
- workspace_id
|
422
|
+
|
423
|
+
external_references:
|
424
|
+
attributes:
|
425
|
+
- service_name
|
426
|
+
- service_model
|
427
|
+
- service_model_ref
|
428
|
+
- subject_id
|
429
|
+
- subject_type
|
430
|
+
- status
|
431
|
+
- external_link
|
432
|
+
- external_message
|
433
|
+
- external_status
|
434
|
+
- locked
|
435
|
+
create_or_update_attributes:
|
436
|
+
- service_name
|
437
|
+
- service_model
|
438
|
+
- service_model_ref
|
439
|
+
- subject_id
|
440
|
+
- subject_type
|
441
|
+
- status
|
442
|
+
- external_link
|
443
|
+
- external_message
|
444
|
+
- external_status
|
445
|
+
- locked
|
446
|
+
validations:
|
447
|
+
[service_model_ref, service_model, service_name, subject_id, subject_type]:
|
448
|
+
presence: true
|
449
|
+
|
450
|
+
holidays:
|
451
|
+
attributes:
|
452
|
+
- name
|
453
|
+
- start_date
|
454
|
+
- end_date
|
455
|
+
- paid
|
456
|
+
- total_hours
|
457
|
+
- calendar_names_list
|
458
|
+
create_attributes:
|
459
|
+
- name
|
460
|
+
- start_date
|
461
|
+
- end_date
|
462
|
+
- paid
|
463
|
+
- holiday_calendar_ids
|
464
|
+
update_attributes:
|
465
|
+
- name
|
466
|
+
- start_date
|
467
|
+
- end_date
|
468
|
+
- paid
|
469
|
+
- holiday_calendar_ids
|
470
|
+
associations:
|
471
|
+
holiday_calendar_associations:
|
472
|
+
foreign_key: holiday_calendar_association_ids
|
473
|
+
collection: holiday_calendar_associations
|
474
|
+
|
475
|
+
holiday_calendars:
|
476
|
+
attributes:
|
477
|
+
- name
|
478
|
+
- default
|
479
|
+
- active_user_count
|
480
|
+
create_attributes:
|
481
|
+
- name
|
482
|
+
update_attributes:
|
483
|
+
- name
|
484
|
+
|
485
|
+
holiday_calendar_associations:
|
486
|
+
attributes:
|
487
|
+
- holiday_calendar_name
|
488
|
+
- holiday_name
|
489
|
+
create_attributes:
|
490
|
+
- holiday_id
|
491
|
+
- holiday_calendar_id
|
492
|
+
associations:
|
493
|
+
holiday:
|
494
|
+
foreign_key: holiday_id
|
495
|
+
collection: holidays
|
496
|
+
holiday_calendar:
|
497
|
+
foreign_key: holiday_calendar_id
|
498
|
+
collection: holiday_calendars
|
499
|
+
|
500
|
+
holiday_calendar_memberships:
|
501
|
+
attributes:
|
502
|
+
- user_id
|
503
|
+
- created_at
|
504
|
+
- start_date
|
505
|
+
- end_date
|
506
|
+
- in_use
|
507
|
+
create_attributes:
|
508
|
+
- holiday_calendar_id
|
509
|
+
- user_id
|
510
|
+
- start_date
|
511
|
+
update_attributes:
|
512
|
+
- holiday_calendar_id
|
513
|
+
- start_date
|
514
|
+
associations:
|
515
|
+
holiday_calendar:
|
516
|
+
foreign_key: holiday_calendar_id
|
517
|
+
collection: holiday_calendars
|
518
|
+
user:
|
519
|
+
foreign_key: user_id
|
520
|
+
collection: users
|
521
|
+
|
522
|
+
invoices:
|
523
|
+
attributes:
|
524
|
+
- id # the internal invoice id
|
525
|
+
- created_at # the date the invoice was recorded in Mavenlink, format: YY-MM-DD[T]HH:MM:SS-TIMEZONE
|
526
|
+
- updated_at # the date the invoice was last updated, format: YY-MM-DD[T]HH:MM:SS-TIMEZONE
|
527
|
+
- invoice_date # the date the invoice was incurred, format: YYYY-MM-DD
|
528
|
+
- due_date # the date the invoice is due, format: YYYY-MM-DD
|
529
|
+
- message # any notes added to the invoice
|
530
|
+
- title # A string of the format "(Draft )Invoice #<user-invoice-number>"
|
531
|
+
- draft # whether the invoice is a draft or not
|
532
|
+
- status # the current status of the invoice
|
533
|
+
- balance_in_cents # the balance of invoice in cents
|
534
|
+
- currency # the currency of this invoice
|
535
|
+
- currency_symbol # the symbol that represents the currency of the invoice
|
536
|
+
- currency_base_unit # the number of the units in the balance_in_cents attribute that are required to make up a single unit of the currency
|
537
|
+
- payment_schedule # the payment schedule (i.e. 30) in days of this invoice
|
538
|
+
- workspace_ids # the internal ids of the project workspaces this invoice is associated with
|
539
|
+
- user_id # the internal id of the user who created this invoice
|
540
|
+
- recipient_id # the internal id of the user who received this invoice; this will be the client lead at the time that the invoice was created, or null if no lead client existed at that time.
|
541
|
+
- user_invoice_title
|
542
|
+
- user_invoice_number
|
543
|
+
- tax_rate
|
544
|
+
- purchase_order
|
545
|
+
- project_code
|
546
|
+
create_attributes:
|
547
|
+
- time_entry_ids # (required) An array of time entry IDs to associate with the invoice
|
548
|
+
- expense_ids # (required) An array of expense IDs to associate with the invoice
|
549
|
+
- workspace_id # (required) The ID of the workspace this invoice is associated with
|
550
|
+
- payment_schedule # (required) The payment schedule (i.e. 30) in days of this invoice
|
551
|
+
- invoice_date # The date the invoice was incurred, format: YYYY-MM-DD#
|
552
|
+
- user_invoice_number #
|
553
|
+
- user_invoice_title #
|
554
|
+
- draft # Whether the invoice is a draft or not
|
555
|
+
- message # Any notes added to the invoice
|
556
|
+
- purchase_order # A string
|
557
|
+
- project_code # A string
|
558
|
+
- fixed_fee_items # Nested params for FixedFeeItem
|
559
|
+
- additional_items # Nested params for AdditionalItem
|
560
|
+
- suppress_emails
|
561
|
+
- tax_rate
|
562
|
+
update_attributes:
|
563
|
+
- expense_ids # (required)
|
564
|
+
- time_entry_ids # (required)
|
565
|
+
- payment_schedule
|
566
|
+
- user_invoice_number
|
567
|
+
- draft
|
568
|
+
- message
|
569
|
+
- user_invoice_title
|
570
|
+
- purchase_order
|
571
|
+
- project_code
|
572
|
+
associations:
|
573
|
+
# time_entries - when included, the time_entry_ids array will reference all of the time entries included in the Invoice
|
574
|
+
time_entries:
|
575
|
+
foreign_key: time_entry_ids
|
576
|
+
collection: time_entries
|
577
|
+
# expenses - when included, the expense_ids array will reference all of the expenses included in the Invoice
|
578
|
+
expenses:
|
579
|
+
foreign_key: expense_ids
|
580
|
+
collection: expenses
|
581
|
+
additional_items:
|
582
|
+
foreign_key: additional_item_ids
|
583
|
+
collection: additional_items
|
584
|
+
fixed_fee_items:
|
585
|
+
foreign_key: fixed_fee_item_ids
|
586
|
+
collection: fixed_fee_items
|
587
|
+
# NOTE(AC): ? additional_items - when included, the additional_item_ids array will reference all of the additional items (additional invoice line items) included in the Invoice
|
588
|
+
# workspaces - when included, the workspace_ids array will reference the workspaces that this Invoice covers
|
589
|
+
workspaces:
|
590
|
+
foreign_key: workspace_ids
|
591
|
+
collection: workspaces
|
592
|
+
# user - user_id will reference the User who created this Invoice
|
593
|
+
user:
|
594
|
+
foreign_key: user_id
|
595
|
+
collection: users
|
596
|
+
# recipient - recipient_id will reference the User who received this Invoice. This will be the client lead at the time that the invoice was created, or null if no lead client existed at that time.
|
597
|
+
recipient:
|
598
|
+
foreign_key: recipient_id
|
599
|
+
collection: users
|
600
|
+
|
601
|
+
organizations:
|
602
|
+
attributes:
|
603
|
+
- id
|
604
|
+
- name
|
605
|
+
- type
|
606
|
+
- parent_id
|
607
|
+
- ancestor_ids
|
608
|
+
create_attributes:
|
609
|
+
- name
|
610
|
+
- parent_id
|
611
|
+
update_attributes:
|
612
|
+
- name
|
613
|
+
- parent_id
|
614
|
+
|
615
|
+
organization_memberships:
|
616
|
+
attributes:
|
617
|
+
- id
|
618
|
+
- member_id
|
619
|
+
- member_type
|
620
|
+
create_attributes:
|
621
|
+
- geography_id
|
622
|
+
- department_id
|
623
|
+
- member_id
|
624
|
+
- member_type
|
625
|
+
associations:
|
626
|
+
geography:
|
627
|
+
foreign_key: geography_id
|
628
|
+
collection: organizations
|
629
|
+
department:
|
630
|
+
foreign_key: department_id
|
631
|
+
collection: organizations
|
632
|
+
|
633
|
+
participations:
|
634
|
+
attributes:
|
635
|
+
- id
|
636
|
+
- role
|
637
|
+
- is_team_lead
|
638
|
+
- active_role
|
639
|
+
- estimated_workspace_minutes
|
640
|
+
- allocated_workspace_minutes
|
641
|
+
- user_id
|
642
|
+
- workspace_id
|
643
|
+
- workspace_role_id
|
644
|
+
create_attributes:
|
645
|
+
- workspace_id # (required)
|
646
|
+
- role # (required) either `maven` or `buyer`
|
647
|
+
- user_id # (required)
|
648
|
+
update_attributes:
|
649
|
+
- team_lead # (required) boolean to set the team lead on the workspace
|
650
|
+
associations:
|
651
|
+
user:
|
652
|
+
foreign_key: user_id
|
653
|
+
collection: users
|
654
|
+
workspace:
|
655
|
+
foreign_key: workspace_id
|
656
|
+
collection: workspaces
|
657
|
+
role:
|
658
|
+
foreign_key: workspace_role_id
|
659
|
+
collection: roles
|
660
|
+
|
661
|
+
posts:
|
662
|
+
attributes:
|
663
|
+
- id # the internal id of the post
|
664
|
+
- newest_reply_at # the date of the newest reply
|
665
|
+
- message # the message of the post
|
666
|
+
- has_attachment # whether the post has any attachments
|
667
|
+
- created_at # the date the post was created
|
668
|
+
- updated_at # the date the post was last updated
|
669
|
+
- reply_count # the number of replies to the post
|
670
|
+
- private # whether this post is private
|
671
|
+
- user_id # the internal id of the user who made the post
|
672
|
+
- workspace_id # the internal id of the project workspace this post is associated with
|
673
|
+
- workspace_type # the class name of the workspace
|
674
|
+
- reply # whether this post is a reply
|
675
|
+
- subject_id # if this post is a reply, the internal id of the parent post or object being replied to
|
676
|
+
- subject_type # the class name of the object being replied to
|
677
|
+
- story_id # the internal id of the story that this post is linked to
|
678
|
+
- google_documents # NOTE: NOT AN ASSOCIATION?
|
679
|
+
create_attributes:
|
680
|
+
- message # - (required) the content to be created in the new post
|
681
|
+
- workspace_id # - (required) the ID of the Workspace in which the post will be created
|
682
|
+
- subject_id # - (optional, required for replies) the ID of the item the new post is replying to if it is a reply
|
683
|
+
- subject_type # - (optional, required for replies) the type of the item the new post is replying to; accepted values are Post
|
684
|
+
- story_id # - (optional) the ID of the Story (task) that the new post should be linked to
|
685
|
+
- recipient_ids # - (optional) an array of User IDs for whom the post is visible. These users must be participating in the target Workspace and including this parameter will make the post private
|
686
|
+
- attachment_ids # - (optional) an array of PostAttachment IDs that should be associated with the post. Create PostAttachments using the attachments endpoint.
|
687
|
+
update_attributes:
|
688
|
+
- message
|
689
|
+
- story_id
|
690
|
+
validations:
|
691
|
+
[message, workspace_id]:
|
692
|
+
presence: true
|
693
|
+
associations:
|
694
|
+
# subject - when you include this association, posts that are replies will have a subject_id key referencing their parent post in the posts top-level key
|
695
|
+
subject:
|
696
|
+
foreign_key: subject_id
|
697
|
+
collection: posts
|
698
|
+
# user - the user object of the post creator, returned in the users top-level key
|
699
|
+
user:
|
700
|
+
foreign_key: user_id
|
701
|
+
collection: users
|
702
|
+
# workspace - the workspace (project) that owns this post, returned in the workspaces top-level key
|
703
|
+
workspace:
|
704
|
+
foreign_key: workspace_id
|
705
|
+
collection: workspaces
|
706
|
+
# story - linked story (task), returned in the stories top-level key
|
707
|
+
story:
|
708
|
+
foreign_key: story_id
|
709
|
+
collection: stories
|
710
|
+
# replies - replies to this post, returned in the posts top-level key; posts will contain a reply_ids array
|
711
|
+
replies:
|
712
|
+
foreign_key: reply_ids
|
713
|
+
collection: posts
|
714
|
+
# newest_reply - newest reply to this post, available in newest_reply_id and returned in the posts top-level key
|
715
|
+
newest_reply:
|
716
|
+
foreign_key: newest_reply_id
|
717
|
+
collection: posts
|
718
|
+
# newest_reply_user- user of the newest reply to this post, available in newest_reply_user_id and returned in the users top-level key
|
719
|
+
newest_reply_user:
|
720
|
+
foreign_key: newest_reply_user_id
|
721
|
+
collection: users
|
722
|
+
# recipients - on private posts, the recipient_ids array contains the ids of recipients, returned in the users top-level key
|
723
|
+
recipients:
|
724
|
+
foreign_key: recipient_ids
|
725
|
+
collection: users
|
726
|
+
# NOTE(?) google_documents - the post's google document objects, available in google_document_ids and returned in the google_documents top-level key
|
727
|
+
# attachments - file attachments, available in attachment_ids and returned in the attachments top-level key
|
728
|
+
attachments:
|
729
|
+
foreign_key: attachment_ids
|
730
|
+
collection: attachments
|
731
|
+
|
732
|
+
project_templates:
|
733
|
+
attributes:
|
734
|
+
- id # the internal project template ID
|
735
|
+
- title # the title of the project template
|
736
|
+
- shared # whether or not the project template is shared with other users on the account other than the creator
|
737
|
+
- is_budgeted # whether or not the project template has financial attributes including overall budget, story budgets, and story time estimates
|
738
|
+
- budget # the estimated overall budget of the project associated with the template
|
739
|
+
- item_count # the number of stories (tasks) inside the project template
|
740
|
+
- duration # the estimated number of days that the associated project will take
|
741
|
+
- currency # the currency of the project template
|
742
|
+
- description # the description of the project template which does not map over to the project description when applied
|
743
|
+
- user_id # the id of the user who created the project template
|
744
|
+
- raw_json # (Optional Field) a json hash that contains all the project templates tasks - See below for explanation on optional fields and go to the bottom for and explanation on the raw_json field
|
745
|
+
create_attributes:
|
746
|
+
- title # (required) the title of the new project template
|
747
|
+
- description # the description of the project template
|
748
|
+
- raw_json # (optional) a json hash that contains all the project templates tasks
|
749
|
+
- shared # (optional) whether or not the project template is shared with other users on the account other than the creator (default: false)
|
750
|
+
- is_budgeted # (optional) whether or not the project template has financial attributes including overall budget, story budgets, and story time estimates (default: false)
|
751
|
+
- budget # (optional) the estimated overall budget of the project associated with the template
|
752
|
+
- currency # (optional) the currency of the project template (default: 'USD')
|
753
|
+
- duration # (optional) the estimated number of days that the associated project will take
|
754
|
+
update_attributes:
|
755
|
+
- title # (required) the title of the new project template
|
756
|
+
- description # the description of the project template
|
757
|
+
- raw_json # (optional) a json hash that contains all the project templates tasks
|
758
|
+
- shared # (optional) whether or not the project template is shared with other users on the account other than the creator (default: false)
|
759
|
+
- is_budgeted # (optional) whether or not the project template has financial attributes including overall budget, story budgets, and story time estimates (default: false)
|
760
|
+
- budget # (optional) the estimated overall budget of the project associated with the template
|
761
|
+
- currency # (optional) the currency of the project template (default: 'USD')
|
762
|
+
- duration # (optional) the estimated number of days that the associated project will take
|
763
|
+
associations:
|
764
|
+
user:
|
765
|
+
foreign_key: user_id
|
766
|
+
collection: users
|
767
|
+
project_template_assignments:
|
768
|
+
foreign_key: project_template_assignment_ids
|
769
|
+
collection: project_template_assignments
|
770
|
+
|
771
|
+
project_template_assignments:
|
772
|
+
associations:
|
773
|
+
project_template:
|
774
|
+
foreign_key: project_template_id
|
775
|
+
collection: project_templates
|
776
|
+
attributes:
|
777
|
+
- id
|
778
|
+
- name
|
779
|
+
|
780
|
+
rate_cards:
|
781
|
+
associations:
|
782
|
+
rate_card_set:
|
783
|
+
foreign_key: rate_card_set_id
|
784
|
+
collection: rate_card_sets
|
785
|
+
rate_card_versions:
|
786
|
+
foreign_key: rate_card_version_ids
|
787
|
+
collection: rate_card_versions
|
788
|
+
effective_rate_card_version:
|
789
|
+
foreign_key: effective_rate_card_version_id
|
790
|
+
collection: rate_card_versions
|
791
|
+
attributes:
|
792
|
+
- currency
|
793
|
+
- uses
|
794
|
+
- id
|
795
|
+
- rate_card_set_id
|
796
|
+
- rate_card_version_ids
|
797
|
+
create_attributes:
|
798
|
+
- rate_card_set_id
|
799
|
+
- rate_card_set_version_id
|
800
|
+
- currency
|
801
|
+
update_attributes:
|
802
|
+
- currency
|
803
|
+
|
804
|
+
rate_card_sets:
|
805
|
+
associations:
|
806
|
+
rate_cards:
|
807
|
+
foriegn_key: rate_card_ids
|
808
|
+
collection: rate_cards
|
809
|
+
rate_card_set_versions:
|
810
|
+
foreign_key: rate_card_set_version_ids
|
811
|
+
collection: rate_card_set_versions
|
812
|
+
attributes:
|
813
|
+
- id
|
814
|
+
- title
|
815
|
+
- account_default
|
816
|
+
- active_currencies
|
817
|
+
- default_currencies
|
818
|
+
- destroyable
|
819
|
+
create_attributes:
|
820
|
+
- clone_version_id
|
821
|
+
- title
|
822
|
+
update_attributes:
|
823
|
+
- title
|
824
|
+
|
825
|
+
rate_card_set_versions:
|
826
|
+
associations:
|
827
|
+
rate_card_set:
|
828
|
+
foreign_key: rate_card_set_id
|
829
|
+
collection: rate_card_sets
|
830
|
+
rate_card_versions:
|
831
|
+
foreign_key: rate_card_version_ids
|
832
|
+
collection: rate_card_versions
|
833
|
+
attributes:
|
834
|
+
- id
|
835
|
+
- active
|
836
|
+
- effective_date
|
837
|
+
- used_currencies
|
838
|
+
create_attributes:
|
839
|
+
- rate_card_set_id
|
840
|
+
- effective_date
|
841
|
+
update_attributes:
|
842
|
+
- effective_date
|
843
|
+
|
844
|
+
rate_card_versions:
|
845
|
+
associations:
|
846
|
+
rate_card:
|
847
|
+
foreign_key: rate_card_id
|
848
|
+
collection: rate_cards
|
849
|
+
rate_card_set_version:
|
850
|
+
foreign_key: rate_card_set_version_id
|
851
|
+
collection: rate_card_set_versions
|
852
|
+
rate_card_roles:
|
853
|
+
foreign_key: rate_card_role_ids
|
854
|
+
collection: rate_card_roles
|
855
|
+
attributes:
|
856
|
+
- id
|
857
|
+
- default_rate
|
858
|
+
create_attributes:
|
859
|
+
- default_rate
|
860
|
+
update_attributes:
|
861
|
+
- default_rate
|
862
|
+
|
863
|
+
rate_card_roles:
|
864
|
+
associations:
|
865
|
+
role:
|
866
|
+
foreign_key: role_id
|
867
|
+
collection: roles
|
868
|
+
rate_card_version:
|
869
|
+
foreign_key: rate_card_version_id
|
870
|
+
collection: rate_card_versions
|
871
|
+
attributes:
|
872
|
+
- id
|
873
|
+
- rate
|
874
|
+
create_attributes:
|
875
|
+
- rate_card_version_id
|
876
|
+
- role_id
|
877
|
+
- rate
|
878
|
+
update_attributes:
|
879
|
+
- rate
|
880
|
+
|
881
|
+
resolutions:
|
882
|
+
attributes:
|
883
|
+
- id
|
884
|
+
- type
|
885
|
+
- created_at
|
886
|
+
- updated_at
|
887
|
+
- description
|
888
|
+
- target_type
|
889
|
+
- target_id
|
890
|
+
- user_id
|
891
|
+
|
892
|
+
roles:
|
893
|
+
attributes:
|
894
|
+
- id
|
895
|
+
- name
|
896
|
+
create_attributes:
|
897
|
+
- name
|
898
|
+
update_attributes:
|
899
|
+
- name
|
900
|
+
validations:
|
901
|
+
name:
|
902
|
+
presence: true
|
903
|
+
|
904
|
+
skills:
|
905
|
+
associations:
|
906
|
+
skill_category:
|
907
|
+
foreign_key: skill_category_id
|
908
|
+
collection: skill_categories
|
909
|
+
roles:
|
910
|
+
foreign_key: role_ids
|
911
|
+
collection: roles
|
912
|
+
attributes:
|
913
|
+
- name
|
914
|
+
- max_level
|
915
|
+
- description
|
916
|
+
- user_count
|
917
|
+
create_attributes:
|
918
|
+
- skill_category_id
|
919
|
+
- name
|
920
|
+
- max_level
|
921
|
+
- description
|
922
|
+
- role_ids
|
923
|
+
update_attributes:
|
924
|
+
- skill_category_id
|
925
|
+
- name
|
926
|
+
- max_level
|
927
|
+
- description
|
928
|
+
- role_ids
|
929
|
+
|
930
|
+
skill_categories:
|
931
|
+
associations:
|
932
|
+
skills:
|
933
|
+
foreign_key: skill_ids
|
934
|
+
collection: skills
|
935
|
+
attributes:
|
936
|
+
- name
|
937
|
+
|
938
|
+
skill_memberships:
|
939
|
+
associations:
|
940
|
+
skill:
|
941
|
+
foreign_key: skill_id
|
942
|
+
collection: skills
|
943
|
+
user:
|
944
|
+
foreign_key: user_id
|
945
|
+
collection: users
|
946
|
+
creator:
|
947
|
+
foreign_key: creator_id
|
948
|
+
collection: users
|
949
|
+
attributes:
|
950
|
+
- level
|
951
|
+
- max_level
|
952
|
+
- created_at
|
953
|
+
- updated_at
|
954
|
+
- cached_skill_name
|
955
|
+
create_attributes:
|
956
|
+
- skill_id
|
957
|
+
- user_id
|
958
|
+
- level
|
959
|
+
update_attributes:
|
960
|
+
- level
|
961
|
+
|
962
|
+
status_reports:
|
963
|
+
associations:
|
964
|
+
workspace:
|
965
|
+
foreign_key: workspace_id
|
966
|
+
collection: workspaces
|
967
|
+
creator:
|
968
|
+
foreign_key: creator_id
|
969
|
+
collection: users
|
970
|
+
attributes:
|
971
|
+
- color
|
972
|
+
- description
|
973
|
+
- details
|
974
|
+
- created_at
|
975
|
+
- updated_at
|
976
|
+
create_attributes:
|
977
|
+
- workspace_id
|
978
|
+
- creator_id
|
979
|
+
- description
|
980
|
+
- color
|
981
|
+
- details
|
982
|
+
update_attributes:
|
983
|
+
- color
|
984
|
+
- description
|
985
|
+
- details
|
986
|
+
|
987
|
+
stories: # tasks
|
988
|
+
associations:
|
989
|
+
# workspace - the workspace (project) that owns this story, returned in the workspaces top-level key
|
990
|
+
# parent - when you include this association, stories that are sub-stories will have a parent_id key referencing their parent story in the stories top-level key
|
991
|
+
# assignees - an array of User IDs called assignee_ids that contains the users assigned to this story, returned in the users top-level key
|
992
|
+
# followers - an array of User IDs called folllower_ids that contains the users following this story, returned in the users top-level key
|
993
|
+
# sub_stories - sub-stories of this story, returned in the stories top-level key; stories will contain a sub_story_ids array
|
994
|
+
# tags - an array of Tag IDs returned in the tags top-level key; stories will contain a tag_ids array
|
995
|
+
workspace:
|
996
|
+
foreign_key: workspace_id
|
997
|
+
collection: workspaces
|
998
|
+
parent:
|
999
|
+
foreign_key: parent_id
|
1000
|
+
collection: stories
|
1001
|
+
assignees:
|
1002
|
+
foreign_key: assignee_ids
|
1003
|
+
collection: users
|
1004
|
+
followers:
|
1005
|
+
foreign_key: follower_ids
|
1006
|
+
collection: users
|
1007
|
+
sub_stories:
|
1008
|
+
foreign_key: sub_story_ids
|
1009
|
+
collection: stories
|
1010
|
+
tags: #NOTE(SZ) moved in read-only attributes
|
1011
|
+
foreign_key: tag_ids
|
1012
|
+
collection: tags
|
1013
|
+
story_tasks:
|
1014
|
+
foreign_key: story_task_ids
|
1015
|
+
collection: story_tasks
|
1016
|
+
descendants:
|
1017
|
+
foreign_key: descendant_ids
|
1018
|
+
collection: stories
|
1019
|
+
custom_field_values:
|
1020
|
+
foreign_key: custom_field_value_ids
|
1021
|
+
collection: custom_field_values
|
1022
|
+
external_references:
|
1023
|
+
foreign_key: external_reference_ids
|
1024
|
+
collection: external_references
|
1025
|
+
|
1026
|
+
attributes:
|
1027
|
+
- id # the internal story id
|
1028
|
+
- workspace_id # the internal id for the workspace of the story
|
1029
|
+
- parent_id # the internal story id of a story's parent story (only for sub-stories)
|
1030
|
+
- billable # whether or not the task is billable
|
1031
|
+
- title # the title of the story
|
1032
|
+
- assignee_ids # an array of User IDs that are assigned to the story
|
1033
|
+
- description # a user provided description of the story
|
1034
|
+
- story_type # the story's type (task, deliverable, or milestone)
|
1035
|
+
- priority # the integer value of the priority for a task
|
1036
|
+
- state # the current state of the story (started, not started, or completed)
|
1037
|
+
- position # a number corresponding to the story's order relative to all other stories
|
1038
|
+
- archived # the archived status of the story (true of false)
|
1039
|
+
- deleted_at # the date the story was deleted
|
1040
|
+
- updated_at # the date the story was last updated
|
1041
|
+
- created_at # the date the story was created in Mavenlink
|
1042
|
+
- due_date # the due date given to the story
|
1043
|
+
- start_date # the start date given to the story
|
1044
|
+
- sub_story_count # the number of sub-stories under this story
|
1045
|
+
- budget_estimate_in_cents # the budget for the story in cents (integer). Only present if the Workspace has budgets enabled and the authenticated user can view budget information.
|
1046
|
+
- sub_stories_budget_estimate_in_cents # the budget for the sub-stories in cents (integer). Only present if the Workspace has budgets enabled and the authenticated user can view budget information.
|
1047
|
+
- budget_used_in_cents # the value of all time entries logged against this story (integer). Only present if the Workspace has budgets enabled and the authenticated user can view budget information.
|
1048
|
+
- sub_stories_budget_used_in_cents # the value of all sub-stories' time entries logged against this story (integer). Only present if the Workspace has budgets enabled and the authenticated user can view budget information.
|
1049
|
+
- time_estimate_in_minutes # the time estimate for the story in minutes (integer). Only present if the Workspace has budgets enabled and the authenticated user can view time information.
|
1050
|
+
- sub_stories_time_estimate_in_minutes # the time estimate for the sub-stories in minutes (integer). Only present if the Workspace has budgets enabled and the authenticated user can view time information.
|
1051
|
+
- logged_billable_time_in_minutes # the sum of all billable time logged against this story (integer). Only present if the Workspace has budgets enabled and the authenticated user can view time information.
|
1052
|
+
- sub_stories_billable_time_in_minutes # the sum of all sub-stories' billable time logged against this story (integer). Only present if the Workspace has budgets enabled and the authenticated user can view time information.
|
1053
|
+
- logged_nonbillable_time_in_minutes # the sum of all non-billable time logged against this story (integer). Only present if the Workspace has budgets enabled and the authenticated user can view time information.
|
1054
|
+
- fixed_fee # whether or not the story is fixed fee
|
1055
|
+
- root_id # the id of its parent. It is nil if a top level story
|
1056
|
+
- descendant_ids # an array of Story ids for it's descendants
|
1057
|
+
- custom_field_value_ids # an array of Custom Field Value ids which are attached to the story
|
1058
|
+
- percentage_complete
|
1059
|
+
- checklist # an array of checklist items (optional)
|
1060
|
+
- weight # integer representing the weight of the story. Can only be set on a parent-level milestone by a consultant with at least budget permissions (optional)
|
1061
|
+
- external_reference_ids
|
1062
|
+
create_attributes:
|
1063
|
+
- title # (required) the title of the story # max 200 characters
|
1064
|
+
- story_type # (required) the type of the story: task, deliverable, or milestone
|
1065
|
+
- workspace_id # (required) the ID of the Workspace in which the story will be created
|
1066
|
+
- description # (optional) a description of the new story # max 1000 characters
|
1067
|
+
- parent_id # (optional) represents the parent of this story, making this a sub-story
|
1068
|
+
- start_date # (optional) the date the story should be started; format should look like YYYY-MM-DD
|
1069
|
+
- archived # (optional) the archived status of the story (true or false)
|
1070
|
+
- due_date # (optional) the date the story is due; format should look like YYYY-MM-DD
|
1071
|
+
- assignee_ids # (optional) an array of User IDs that the new story should be assigned to
|
1072
|
+
- budget_estimate_in_cents # (optional) the budget in cents of the new story (integer). This is only valid in budgeted Workspaces and if the user can view budget information
|
1073
|
+
- time_estimate_in_minutes # (optional) the time estimate in minutes of the new story (integer). This is only valid in budgeted Workspaces and if the user can view budget information
|
1074
|
+
- tag_list # (optional) a comma separated String of tags
|
1075
|
+
- billable # whether or not the task is billable
|
1076
|
+
- percentage_complete # (optional) a number (0-100) representing the stage of the story
|
1077
|
+
- state # (optional) the state of the story: not started, started or completed
|
1078
|
+
- sub_stories # (optional) sub stories to be created with the parent
|
1079
|
+
- fixed_fee # whether or not the story is fixed fee
|
1080
|
+
- checklist # an array of checklist items (optional)
|
1081
|
+
- weight # integer representing the weight of the story. Can only be set on a parent-level milestone by a consultant with at least budget permissions (optional)
|
1082
|
+
- priority # the integer value of the priority for a task
|
1083
|
+
- external_reference
|
1084
|
+
update_attributes:
|
1085
|
+
- title # (required) the title of the story # max 200 characters
|
1086
|
+
- story_type # (required) the type of the story: task, deliverable, or milestone
|
1087
|
+
- description # (optional) a description of the new story # max 1000 characters
|
1088
|
+
- parent_id # (optional) represents the parent of this story, making this a sub-story
|
1089
|
+
- start_date # (optional) the date the story should be started; format should look like YYYY-MM-DD
|
1090
|
+
- archived # (optional) the archived status of the story (true or false)
|
1091
|
+
- due_date # (optional) the date the story is due; format should look like YYYY-MM-DD
|
1092
|
+
- assignee_ids # (optional) an array of User IDs that the new story should be assigned to
|
1093
|
+
- budget_estimate_in_cents # (optional) the budget in cents of the new story (integer). This is only valid in budgeted Workspaces and if the user can view budget information
|
1094
|
+
- time_estimate_in_minutes # (optional) the time estimate in minutes of the new story (integer). This is only valid in budgeted Workspaces and if the user can view budget information
|
1095
|
+
- tag_list # (optional) a comma separated String of tags
|
1096
|
+
- billable # whether or not the task is billable
|
1097
|
+
- percentage_complete # (optional) a number (0-100) representing the stage of the story
|
1098
|
+
- state # (optional) the state of the story: not started, started or completed
|
1099
|
+
- fixed_fee # whether or not the story is fixed fee
|
1100
|
+
- weight # integer representing the weight of the story. Can only be set on a parent-level milestone by a consultant with at least budget permissions (optional)
|
1101
|
+
- priority # the integer value of the priority for a task
|
1102
|
+
- external_reference
|
1103
|
+
|
1104
|
+
story_allocation_days:
|
1105
|
+
attributes:
|
1106
|
+
- id # the unique identifier for this story allocation day object
|
1107
|
+
- updated_at # the date the story allocation day was last updated
|
1108
|
+
- date # the date of the story allocation day
|
1109
|
+
- minutes # the minutes allocated to the story allocation day
|
1110
|
+
- current # a calculated attribute that indicates whether or not the story allocation day's assignment is active
|
1111
|
+
- assignment_id # the id of the assignment that owns the story allocation day
|
1112
|
+
- story_id # the id of the story who owns the story allocation day's assignment
|
1113
|
+
- workspace_id # the id of the workspace who owns the story allocation day's assignment
|
1114
|
+
create_attributes:
|
1115
|
+
- assignment_id # required
|
1116
|
+
- date # required
|
1117
|
+
- minutes # required
|
1118
|
+
update_attributes:
|
1119
|
+
- minutes
|
1120
|
+
associations:
|
1121
|
+
# assignment - when included, the assignment_id will reference the assignment for which the story allocation day belongs
|
1122
|
+
# story - when included, the story_id will reference the story for which the story allocation day belongs
|
1123
|
+
# workspace - when included, the workspace_id will reference the workspace for which the story allocation day belongs
|
1124
|
+
assignment:
|
1125
|
+
foreign_key: assignment_id
|
1126
|
+
collection: assignments
|
1127
|
+
story:
|
1128
|
+
foreign_key: story_id
|
1129
|
+
collection: stories
|
1130
|
+
workspace:
|
1131
|
+
foreign_key: workspace_id
|
1132
|
+
collection: workspaces
|
1133
|
+
|
1134
|
+
story_dependencies:
|
1135
|
+
validations:
|
1136
|
+
[source_id, target_id]:
|
1137
|
+
presence: true
|
1138
|
+
workspace_id:
|
1139
|
+
presence: true
|
1140
|
+
'on': create
|
1141
|
+
attributes:
|
1142
|
+
- id
|
1143
|
+
- dependency_type
|
1144
|
+
- lag
|
1145
|
+
- source_id
|
1146
|
+
- target_id
|
1147
|
+
create_attributes:
|
1148
|
+
- workspace_id
|
1149
|
+
- source_id
|
1150
|
+
- target_id
|
1151
|
+
- dependency_type
|
1152
|
+
- lag
|
1153
|
+
update_attributes:
|
1154
|
+
- dependency_type
|
1155
|
+
- lag
|
1156
|
+
associations:
|
1157
|
+
source:
|
1158
|
+
foreign_key: source_id
|
1159
|
+
collection: stories
|
1160
|
+
target:
|
1161
|
+
foreign_key: target_id
|
1162
|
+
collection: stories
|
1163
|
+
|
1164
|
+
story_tasks:
|
1165
|
+
associations:
|
1166
|
+
story:
|
1167
|
+
foreign_key: story_id
|
1168
|
+
collection: stories
|
1169
|
+
attributes:
|
1170
|
+
- id
|
1171
|
+
- name
|
1172
|
+
- completed
|
1173
|
+
- completed_at
|
1174
|
+
- position
|
1175
|
+
- completed_by_id
|
1176
|
+
- story_id
|
1177
|
+
|
1178
|
+
tags:
|
1179
|
+
attributes:
|
1180
|
+
- id
|
1181
|
+
- name
|
1182
|
+
- status
|
1183
|
+
create_attributes:
|
1184
|
+
- name
|
1185
|
+
|
1186
|
+
time_adjustments:
|
1187
|
+
associations:
|
1188
|
+
story:
|
1189
|
+
foreign_key: story_id
|
1190
|
+
collection: stories
|
1191
|
+
workspace:
|
1192
|
+
foreign_key: workspace_id
|
1193
|
+
collection: workspaces
|
1194
|
+
user:
|
1195
|
+
foreign_key: user_id
|
1196
|
+
collection: users
|
1197
|
+
creator:
|
1198
|
+
foreign_key: creator_id
|
1199
|
+
collection: users
|
1200
|
+
active_invoice:
|
1201
|
+
foreign_key: active_invoice_id
|
1202
|
+
collection: invoices
|
1203
|
+
attributes:
|
1204
|
+
- id
|
1205
|
+
- original_date
|
1206
|
+
- bill_rate_in_cents
|
1207
|
+
- billable
|
1208
|
+
- cost_rate_in_cents
|
1209
|
+
- currency
|
1210
|
+
- currency_symbol
|
1211
|
+
- currency_base_unit
|
1212
|
+
- is_invoiced
|
1213
|
+
- notes
|
1214
|
+
- posted_on_date
|
1215
|
+
- taxable
|
1216
|
+
- time
|
1217
|
+
- created_at
|
1218
|
+
- updated_at
|
1219
|
+
create_attributes:
|
1220
|
+
- workspace_id
|
1221
|
+
- user_id
|
1222
|
+
- original_date
|
1223
|
+
- bill_rate_in_cents
|
1224
|
+
- billable
|
1225
|
+
- cost_rate_in_cents
|
1226
|
+
- currency
|
1227
|
+
- posted_on_date
|
1228
|
+
- time
|
1229
|
+
- notes
|
1230
|
+
- story_id
|
1231
|
+
update_attributes:
|
1232
|
+
- workspace_id
|
1233
|
+
- user_id
|
1234
|
+
- original_date
|
1235
|
+
- bill_rate_in_cents
|
1236
|
+
- billable
|
1237
|
+
- cost_rate_in_cents
|
1238
|
+
- currency
|
1239
|
+
- posted_on_date
|
1240
|
+
- time
|
1241
|
+
- notes
|
1242
|
+
- story_id
|
1243
|
+
|
1244
|
+
time_entries:
|
1245
|
+
associations:
|
1246
|
+
workspace:
|
1247
|
+
foreign_key: workspace_id
|
1248
|
+
collection: workspaces
|
1249
|
+
user:
|
1250
|
+
foreign_key: user_id
|
1251
|
+
collection: users
|
1252
|
+
story:
|
1253
|
+
foreign_key: story_id
|
1254
|
+
collection: stories
|
1255
|
+
role:
|
1256
|
+
foreign_key: role_id
|
1257
|
+
collection: roles
|
1258
|
+
validations:
|
1259
|
+
[workspace_id, date_performed, time_in_minutes]:
|
1260
|
+
presence: true
|
1261
|
+
attributes:
|
1262
|
+
- id # the internal time entry ID
|
1263
|
+
- created_at # the date the time entry was created in Mavenlink
|
1264
|
+
- updated_at # the date the time entry was last updated
|
1265
|
+
- date_performed # the date the time entry was performed
|
1266
|
+
- story_id # the internal story ID of the story this time entry is associated with
|
1267
|
+
- time_in_minutes # the amount of time entered in minutes
|
1268
|
+
- billable # whether this time entry is billable time
|
1269
|
+
- notes # any notes added to the time entry
|
1270
|
+
- rate_in_cents # the hourly rate for this time entry in cents
|
1271
|
+
- cost_rate_in_cents
|
1272
|
+
- currency # the currency of this time entry's rate
|
1273
|
+
- currency_symbol # the currency symbol for this time entry's currency
|
1274
|
+
- currency_base_unit # the amount of cents in each of the currency's dollars, for example 100 for USD.
|
1275
|
+
- user_can_edit # whether the current user can edit this time entry or not
|
1276
|
+
- workspace_id # the internal ID of the project workspace this time entry is associated with
|
1277
|
+
- user_id # the internal ID of the user who created this time entry
|
1278
|
+
- approved # whether or not the time entry has been approved
|
1279
|
+
- role_id # The internal ID of the Role that is associated with this time entry
|
1280
|
+
- external_reference # Object representing the status of integration synchronization
|
1281
|
+
- location
|
1282
|
+
create_attributes:
|
1283
|
+
- workspace_id # (required) the internal ID of the project workspace this time entry is associated with
|
1284
|
+
- date_performed # (required) the date the activity for which the time is being entered was performed, format: YYYY-MM-DD
|
1285
|
+
- time_in_minutes # (required) the amount of time entered in minutes
|
1286
|
+
- billable # (optional) whether this time entry is billable time, you must also provide rate_in_cents if you set billable to true
|
1287
|
+
- notes # (optional) any notes added to the time entry
|
1288
|
+
- rate_in_cents # (optional, required if billable is true) the hourly rate for this time entry in cents, you must also set billable to true when setting this
|
1289
|
+
- cost_rate_in_cents
|
1290
|
+
- story_id # (optional) the internal ID of the story this time entry is associated with
|
1291
|
+
- user_id # (optional) the internal ID of the user the time entry is associated with. This parameter is ignored unless the authorizing user has financial access in the workspace and is on the consultants team (or if the authorizing user is an account administrator and has proxy permissions via an account member with those permissions).
|
1292
|
+
- external_reference # (optional) the object representing the status of integration synchronization.
|
1293
|
+
- location
|
1294
|
+
update_attributes:
|
1295
|
+
- date_performed # (required) the date the activity for which the time is being entered was performed, format: YYYY-MM-DD
|
1296
|
+
- time_in_minutes # (required) the amount of time entered in minutes
|
1297
|
+
- billable # (optional) whether this time entry is billable time, you must also provide rate_in_cents if you set billable to true
|
1298
|
+
- notes # (optional) any notes added to the time entry
|
1299
|
+
- rate_in_cents # (optional, required if billable is true) the hourly rate for this time entry in cents, you must also set billable to true when setting this
|
1300
|
+
- cost_rate_in_cents
|
1301
|
+
- story_id # (optional) the internal ID of the story this time entry is associated with
|
1302
|
+
- user_id # (optional) the internal ID of the user the time entry is associated with. This parameter is ignored unless the authorizing user has financial access in the workspace and is on the consultants team (or if the authorizing user is an account administrator and has proxy permissions via an account member with those permissions).
|
1303
|
+
- external_reference # (optional) the object representing the status of integration synchronization.
|
1304
|
+
|
1305
|
+
time_off_entries:
|
1306
|
+
attributes:
|
1307
|
+
- id
|
1308
|
+
- user_id
|
1309
|
+
- hours
|
1310
|
+
- requested_date
|
1311
|
+
- submission_date
|
1312
|
+
create_attributes:
|
1313
|
+
- user_id
|
1314
|
+
- hours
|
1315
|
+
- requested_date
|
1316
|
+
update_attributes:
|
1317
|
+
- hours
|
1318
|
+
associations:
|
1319
|
+
user:
|
1320
|
+
foreign_key: user_id
|
1321
|
+
collection: users
|
1322
|
+
|
1323
|
+
timesheet_submissions:
|
1324
|
+
attributes:
|
1325
|
+
- id
|
1326
|
+
- start_date
|
1327
|
+
- end_date
|
1328
|
+
- created_at
|
1329
|
+
- updated_at
|
1330
|
+
- status
|
1331
|
+
- title
|
1332
|
+
- comment
|
1333
|
+
- type
|
1334
|
+
- resolution_description
|
1335
|
+
- line_item_total_formatted
|
1336
|
+
- line_item_total_in_cents
|
1337
|
+
- currency
|
1338
|
+
- currency_symbol
|
1339
|
+
- currency_base_unit
|
1340
|
+
- current_resolution_description
|
1341
|
+
- current_resolution_creator_id
|
1342
|
+
- current_resolution_created_at_date
|
1343
|
+
- time_entry_ids
|
1344
|
+
- resolution_ids
|
1345
|
+
create_attributes:
|
1346
|
+
- title
|
1347
|
+
- comment
|
1348
|
+
- workspace_id
|
1349
|
+
- user_id
|
1350
|
+
- line_item_ids
|
1351
|
+
associations:
|
1352
|
+
user:
|
1353
|
+
foreign_key: user_id
|
1354
|
+
collection: users
|
1355
|
+
workspace:
|
1356
|
+
foreign_key: workspace_id
|
1357
|
+
collection: workspaces
|
1358
|
+
time_entries:
|
1359
|
+
foreign_key: time_entry_ids
|
1360
|
+
collection: time_entries
|
1361
|
+
resolutions:
|
1362
|
+
foreign_key: resolution_ids
|
1363
|
+
collection: resolutions
|
1364
|
+
|
1365
|
+
users:
|
1366
|
+
attributes:
|
1367
|
+
- id
|
1368
|
+
- user_id # the internal ID of the user
|
1369
|
+
- full_name # the full name of the user
|
1370
|
+
- photo_path # the full url to the user's thumbnail
|
1371
|
+
- email_address # the user's primary email address
|
1372
|
+
- headline # the short description of the user as found in the user's profile
|
1373
|
+
update_attributes:
|
1374
|
+
- full_name
|
1375
|
+
- headline
|
1376
|
+
- email_address
|
1377
|
+
- external_reference
|
1378
|
+
associations:
|
1379
|
+
role:
|
1380
|
+
foreign_key: role_id
|
1381
|
+
collection: roles
|
1382
|
+
account_membership:
|
1383
|
+
foreign_key: account_membership_id
|
1384
|
+
collection: account_memberships
|
1385
|
+
external_references:
|
1386
|
+
foreign_key: external_reference_ids
|
1387
|
+
collection: external_references
|
1388
|
+
|
1389
|
+
vendors:
|
1390
|
+
attributes:
|
1391
|
+
- id
|
1392
|
+
- name
|
1393
|
+
- in_use
|
1394
|
+
create_attributes:
|
1395
|
+
- name
|
1396
|
+
update_attributes:
|
1397
|
+
- name
|
1398
|
+
validations:
|
1399
|
+
name:
|
1400
|
+
presence: true
|
1401
|
+
|
1402
|
+
workspaces:
|
1403
|
+
validations:
|
1404
|
+
title:
|
1405
|
+
presence: true
|
1406
|
+
creator_role:
|
1407
|
+
inclusion:
|
1408
|
+
'on': create
|
1409
|
+
in: [maven, buyer]
|
1410
|
+
allow_blank: false
|
1411
|
+
associations:
|
1412
|
+
primary_counterpart:
|
1413
|
+
foreign_key: primary_counterpart_id
|
1414
|
+
collection: users
|
1415
|
+
participants:
|
1416
|
+
foreign_key: participant_ids
|
1417
|
+
collection: users
|
1418
|
+
participations:
|
1419
|
+
foreign_key: participation_ids
|
1420
|
+
collection: participations
|
1421
|
+
creator:
|
1422
|
+
foreign_key: creator_id
|
1423
|
+
collection: users
|
1424
|
+
workspace_groups:
|
1425
|
+
foreign_key: workspace_group_ids
|
1426
|
+
collection: workspace_groups
|
1427
|
+
primary_maven:
|
1428
|
+
foreign_key: primary_maven_id
|
1429
|
+
collection: users
|
1430
|
+
external_references:
|
1431
|
+
foreign_key: external_reference_ids
|
1432
|
+
collection: external_references
|
1433
|
+
status_reports:
|
1434
|
+
foreign_key: status_report_ids
|
1435
|
+
collection: status_reports
|
1436
|
+
approver:
|
1437
|
+
foreign_key: approver_id
|
1438
|
+
collection: users
|
1439
|
+
attributes:
|
1440
|
+
- id # the internal expense ID
|
1441
|
+
- title # the title of the project
|
1442
|
+
- archived # whether the project is archived
|
1443
|
+
- description # the description of the project
|
1444
|
+
- due_date # the due date of the project
|
1445
|
+
- effective_due_date # effective due date of the project
|
1446
|
+
- budgeted # whether the project is budgeted
|
1447
|
+
- change_orders_enabled # whether change orders are enabled in the project
|
1448
|
+
- updated_at # the date the project was last updated
|
1449
|
+
- created_at # the date the project was created
|
1450
|
+
- consultant_role_name # the name of the provider role for the project
|
1451
|
+
- client_role_name # the name of the customer role for the project
|
1452
|
+
- can_create_line_items # whether you can create line items in this workspace
|
1453
|
+
- default_rate # the default billing rate for this project
|
1454
|
+
- currency_symbol # the currency symbol of the currency of this project
|
1455
|
+
- currency_base_unit # the currency base unit of the currency of this project (i.e. USD is 100)
|
1456
|
+
- can_invite # whether you can invite others to the workspace
|
1457
|
+
- has_budget_access # whether you have budget access in this project
|
1458
|
+
- price # the budget for this project, only included if the current user has financial access in the workspace
|
1459
|
+
- price_in_cents # the project budget in cents, only included if the current user has financial access in the workspace
|
1460
|
+
- budget_used # the amount of the project budget already burned, only included if the current user has financial access in the workspace
|
1461
|
+
- over_budget # whether the project is over budget, only included if the current user has financial access in the workspace
|
1462
|
+
- currency # the currency of the project, only included if the current user has financial access in the workspace
|
1463
|
+
- start_date # the start date of the project
|
1464
|
+
- status # a hash with information about the status of the project (color, message, key)
|
1465
|
+
- stories_are_fixed_fee_by_default # whether stories default to Fixed Fee or T&M
|
1466
|
+
- workspace_invoice_preference_id
|
1467
|
+
- require_expense_approvals
|
1468
|
+
- require_time_approvals
|
1469
|
+
- percentage_complete
|
1470
|
+
- access_level
|
1471
|
+
- status_key
|
1472
|
+
- workspace_group_ids
|
1473
|
+
- target_margin
|
1474
|
+
create_attributes:
|
1475
|
+
- title
|
1476
|
+
- creator_role
|
1477
|
+
- budgeted
|
1478
|
+
- description
|
1479
|
+
- currency
|
1480
|
+
- price
|
1481
|
+
- start_date
|
1482
|
+
- due_date
|
1483
|
+
- change_orders
|
1484
|
+
- consultant_role_name
|
1485
|
+
- client_role_name
|
1486
|
+
- access_level
|
1487
|
+
- project_tracker_template_id
|
1488
|
+
- change_orders_enabled
|
1489
|
+
- expenses_in_burn_rate
|
1490
|
+
- posts_require_privacy_decision
|
1491
|
+
- stories_are_fixed_fee_by_default
|
1492
|
+
- rate_card_id
|
1493
|
+
- custom_fields
|
1494
|
+
- require_expense_approvals
|
1495
|
+
- require_time_approvals
|
1496
|
+
- project_template_start_date
|
1497
|
+
- project_template_assignment_mappings
|
1498
|
+
- project_template_weekends_as_workdays
|
1499
|
+
- status_key
|
1500
|
+
- external_reference
|
1501
|
+
- workspace_group_ids
|
1502
|
+
- approver_id
|
1503
|
+
- target_margin
|
1504
|
+
- tasks_default_non_billable
|
1505
|
+
update_attributes:
|
1506
|
+
- title
|
1507
|
+
- budgeted
|
1508
|
+
- description
|
1509
|
+
- archived
|
1510
|
+
- access_level
|
1511
|
+
- price
|
1512
|
+
- start_date
|
1513
|
+
- due_date
|
1514
|
+
- posts_require_privacy_decision
|
1515
|
+
- tasks_default_non_billable
|
1516
|
+
- expenses_in_burn_rate
|
1517
|
+
- rate_card_id
|
1518
|
+
- client_role_name
|
1519
|
+
- consultant_role_name
|
1520
|
+
- stories_are_fixed_fee_by_default
|
1521
|
+
- currency
|
1522
|
+
- target_margin
|
1523
|
+
- approver_id
|
1524
|
+
- change_orders_enabled
|
1525
|
+
- project_template_start_date
|
1526
|
+
- project_template_assignment_mappings
|
1527
|
+
- project_template_weekends_as_workdays
|
1528
|
+
- project_tracker_template_id
|
1529
|
+
- project_template_before_story_id
|
1530
|
+
- status_key
|
1531
|
+
- external_reference
|
1532
|
+
- workspace_group_ids
|
1533
|
+
|
1534
|
+
workspace_invoice_preferences:
|
1535
|
+
attributes:
|
1536
|
+
- id
|
1537
|
+
- workspace_id
|
1538
|
+
- purchase_order
|
1539
|
+
- project_code
|
1540
|
+
- client_invoice_name
|
1541
|
+
- client_invoice_address
|
1542
|
+
- consultant_invoice_name
|
1543
|
+
- consultant_invoice_address
|
1544
|
+
create_attributes:
|
1545
|
+
- workspace_id # required
|
1546
|
+
- project_code # optional
|
1547
|
+
- purchase_order # optional
|
1548
|
+
- client_invoice_name # optional
|
1549
|
+
- client_invoice_address # optional
|
1550
|
+
- consultant_invoice_name # optional
|
1551
|
+
- consultant_invoice_address # optional
|
1552
|
+
update_attributes:
|
1553
|
+
- project_code # optional
|
1554
|
+
- purchase_order # optional
|
1555
|
+
- client_invoice_name # optional
|
1556
|
+
- client_invoice_address # optional
|
1557
|
+
- consultant_invoice_name # optional
|
1558
|
+
- consultant_invoice_address # optional
|
1559
|
+
|
1560
|
+
workspace_groups:
|
1561
|
+
attributes:
|
1562
|
+
- id # the internal workspace group ID
|
1563
|
+
- name # the name of the workspace group
|
1564
|
+
- company # whether the workspace group represents a company
|
1565
|
+
- contact_name
|
1566
|
+
- email
|
1567
|
+
- phone_number
|
1568
|
+
- address
|
1569
|
+
- website
|
1570
|
+
- notes
|
1571
|
+
create_attributes:
|
1572
|
+
- name
|
1573
|
+
- company
|
1574
|
+
- add_workspace_ids
|
1575
|
+
- company
|
1576
|
+
- contact_name
|
1577
|
+
- email
|
1578
|
+
- phone_number
|
1579
|
+
- address
|
1580
|
+
- website
|
1581
|
+
- notes
|
1582
|
+
- external_reference
|
1583
|
+
update_attributes:
|
1584
|
+
- name
|
1585
|
+
- company
|
1586
|
+
- add_workspace_ids
|
1587
|
+
- remove_workspace_ids
|
1588
|
+
- company
|
1589
|
+
- contact_name
|
1590
|
+
- email
|
1591
|
+
- phone_number
|
1592
|
+
- address
|
1593
|
+
- website
|
1594
|
+
- notes
|
1595
|
+
- external_reference
|
1596
|
+
validations:
|
1597
|
+
name:
|
1598
|
+
presence: true
|
1599
|
+
company:
|
1600
|
+
inclusion:
|
1601
|
+
in: [true, false]
|
1602
|
+
associations:
|
1603
|
+
workspaces:
|
1604
|
+
foreign_key: workspace_ids
|
1605
|
+
collection: workspaces
|
1606
|
+
external_references:
|
1607
|
+
foreign_key: external_reference_ids
|
1608
|
+
collection: external_references
|
1609
|
+
|
1610
|
+
workweeks:
|
1611
|
+
attributes:
|
1612
|
+
- default
|
1613
|
+
- start_date
|
1614
|
+
- end_date
|
1615
|
+
- sunday_minutes
|
1616
|
+
- monday_minutes
|
1617
|
+
- tuesday_minutes
|
1618
|
+
- wednesday_minutes
|
1619
|
+
- thursday_minutes
|
1620
|
+
- friday_minutes
|
1621
|
+
- saturday_minutes
|
1622
|
+
- total_minutes
|
1623
|
+
create_attributes:
|
1624
|
+
- start_date
|
1625
|
+
- sunday_minutes
|
1626
|
+
- monday_minutes
|
1627
|
+
- tuesday_minutes
|
1628
|
+
- wednesday_minutes
|
1629
|
+
- thursday_minutes
|
1630
|
+
- friday_minutes
|
1631
|
+
- saturday_minutes
|
1632
|
+
update_attributes:
|
1633
|
+
- start_date
|
1634
|
+
- sunday_minutes
|
1635
|
+
- monday_minutes
|
1636
|
+
- tuesday_minutes
|
1637
|
+
- wednesday_minutes
|
1638
|
+
- thursday_minutes
|
1639
|
+
- friday_minutes
|
1640
|
+
- saturday_minutes
|
1641
|
+
|
1642
|
+
workweek_memberships:
|
1643
|
+
attributes:
|
1644
|
+
- user_id
|
1645
|
+
- start_date
|
1646
|
+
- end_date
|
1647
|
+
create_attributes:
|
1648
|
+
- user_id
|
1649
|
+
- start_date
|
1650
|
+
- sunday_minutes
|
1651
|
+
- monday_minutes
|
1652
|
+
- tuesday_minutes
|
1653
|
+
- wednesday_minutes
|
1654
|
+
- thursday_minutes
|
1655
|
+
- friday_minutes
|
1656
|
+
- saturday_minutes
|
1657
|
+
update_attributes:
|
1658
|
+
- start_date
|
1659
|
+
- sunday_minutes
|
1660
|
+
- monday_minutes
|
1661
|
+
- tuesday_minutes
|
1662
|
+
- wednesday_minutes
|
1663
|
+
- thursday_minutes
|
1664
|
+
- friday_minutes
|
1665
|
+
- saturday_minutes
|