asana 0.9.2 → 0.10.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.swagger-codegen-ignore +3 -0
- data/.travis.yml +2 -1
- data/Appraisals +2 -35
- data/Gemfile +2 -0
- data/README.md +3 -51
- data/VERSION +1 -0
- data/asana.gemspec +3 -3
- data/examples/Gemfile.lock +10 -10
- data/lib/asana/client.rb +10 -10
- data/lib/asana/http_client.rb +8 -2
- data/lib/asana/resource_includes/attachment_uploading.rb +14 -7
- data/lib/asana/resource_includes/collection.rb +5 -0
- data/lib/asana/resource_includes/resource.rb +0 -4
- data/lib/asana/resources/attachment.rb +2 -5
- data/lib/asana/resources/batch_api.rb +15 -0
- data/lib/asana/resources/custom_field_settings.rb +2 -5
- data/lib/asana/resources/custom_fields.rb +2 -5
- data/lib/asana/resources/events.rb +28 -0
- data/lib/asana/resources/gen/attachments_base.rb +56 -0
- data/lib/asana/resources/gen/batch_api_base.rb +30 -0
- data/lib/asana/resources/gen/custom_field_settings_base.rb +46 -0
- data/lib/asana/resources/gen/custom_fields_base.rb +124 -0
- data/lib/asana/resources/gen/events_base.rb +32 -0
- data/lib/asana/resources/gen/jobs_base.rb +30 -0
- data/lib/asana/resources/gen/organization_exports_base.rb +44 -0
- data/lib/asana/resources/gen/portfolio_memberships_base.rb +63 -0
- data/lib/asana/resources/gen/portfolios_base.rb +173 -0
- data/lib/asana/resources/gen/project_memberships_base.rb +46 -0
- data/lib/asana/resources/gen/project_statuses_base.rb +69 -0
- data/lib/asana/resources/gen/projects_base.rb +259 -0
- data/lib/asana/resources/gen/sections_base.rb +108 -0
- data/lib/asana/resources/gen/stories_base.rb +84 -0
- data/lib/asana/resources/gen/tags_base.rb +129 -0
- data/lib/asana/resources/gen/tasks_base.rb +425 -0
- data/lib/asana/resources/gen/team_memberships_base.rb +77 -0
- data/lib/asana/resources/gen/teams_base.rb +88 -0
- data/lib/asana/resources/gen/typeahead_base.rb +35 -0
- data/lib/asana/resources/gen/user_task_lists_base.rb +44 -0
- data/lib/asana/resources/gen/users_base.rb +88 -0
- data/lib/asana/resources/gen/webhooks_base.rb +70 -0
- data/lib/asana/resources/gen/workspace_memberships_base.rb +60 -0
- data/lib/asana/resources/gen/workspaces_base.rb +82 -0
- data/lib/asana/resources/job.rb +2 -3
- data/lib/asana/resources/organization_export.rb +2 -5
- data/lib/asana/resources/portfolio.rb +2 -5
- data/lib/asana/resources/portfolio_membership.rb +2 -5
- data/lib/asana/resources/project.rb +2 -5
- data/lib/asana/resources/project_membership.rb +2 -5
- data/lib/asana/resources/project_status.rb +2 -5
- data/lib/asana/resources/section.rb +18 -22
- data/lib/asana/resources/story.rb +2 -5
- data/lib/asana/resources/tag.rb +2 -5
- data/lib/asana/resources/task.rb +5 -5
- data/lib/asana/resources/team.rb +2 -5
- data/lib/asana/resources/team_membership.rb +26 -0
- data/lib/asana/resources/typeahead.rb +22 -0
- data/lib/asana/resources/user.rb +2 -5
- data/lib/asana/resources/user_task_list.rb +2 -5
- data/lib/asana/resources/webhook.rb +2 -5
- data/lib/asana/resources/workspace.rb +2 -6
- data/lib/asana/resources/workspace_membership.rb +32 -0
- data/lib/asana/version.rb +1 -1
- data/samples/attachments_sample.yaml +41 -0
- data/samples/batch_api_sample.yaml +11 -0
- data/samples/custom_field_settings_sample.yaml +21 -0
- data/samples/custom_fields_sample.yaml +81 -0
- data/samples/events_sample.yaml +11 -0
- data/samples/jobs_sample.yaml +11 -0
- data/samples/organization_exports_sample.yaml +21 -0
- data/samples/portfolio_memberships_sample.yaml +31 -0
- data/samples/portfolios_sample.yaml +121 -0
- data/samples/project_memberships_sample.yaml +21 -0
- data/samples/project_statuses_sample.yaml +41 -0
- data/samples/projects_sample.yaml +181 -0
- data/samples/sections_sample.yaml +71 -0
- data/samples/stories_sample.yaml +51 -0
- data/samples/tags_sample.yaml +81 -0
- data/samples/tasks_sample.yaml +261 -0
- data/samples/team_memberships_sample.yaml +41 -0
- data/samples/teams_sample.yaml +51 -0
- data/samples/typeahead_sample.yaml +11 -0
- data/samples/user_task_lists_sample.yaml +21 -0
- data/samples/users_sample.yaml +51 -0
- data/samples/webhooks_sample.yaml +41 -0
- data/samples/workspace_memberships_sample.yaml +31 -0
- data/samples/workspaces_sample.yaml +51 -0
- data/swagger_templates/api.mustache +41 -0
- data/swagger_templates/api_doc.mustache +12 -0
- data/swagger_templates/ruby-config.json +6 -0
- metadata +70 -13
@@ -1,5 +1,4 @@
|
|
1
|
-
|
2
|
-
### edit it manually.
|
1
|
+
require_relative 'gen/user_task_lists_base'
|
3
2
|
|
4
3
|
module Asana
|
5
4
|
module Resources
|
@@ -14,11 +13,9 @@ module Asana
|
|
14
13
|
# approach; read up on [task
|
15
14
|
# auto-promotion](/guide/help/fundamentals/my-tasks#gl-auto-promote) for more
|
16
15
|
# infomation.
|
17
|
-
class UserTaskList <
|
16
|
+
class UserTaskList < UserTaskListsBase
|
18
17
|
|
19
18
|
|
20
|
-
attr_reader :id
|
21
|
-
|
22
19
|
attr_reader :gid
|
23
20
|
|
24
21
|
attr_reader :resource_type
|
@@ -1,5 +1,4 @@
|
|
1
|
-
|
2
|
-
### edit it manually.
|
1
|
+
require_relative 'gen/webhooks_base'
|
3
2
|
|
4
3
|
module Asana
|
5
4
|
module Resources
|
@@ -49,11 +48,9 @@ module Asana
|
|
49
48
|
#
|
50
49
|
# Webhooks themselves contain only the information necessary to deliver the
|
51
50
|
# events to the desired target as they are generated.
|
52
|
-
class Webhook <
|
51
|
+
class Webhook < WebhooksBase
|
53
52
|
|
54
53
|
|
55
|
-
attr_reader :id
|
56
|
-
|
57
54
|
attr_reader :gid
|
58
55
|
|
59
56
|
attr_reader :resource_type
|
@@ -1,5 +1,4 @@
|
|
1
|
-
|
2
|
-
### edit it manually.
|
1
|
+
require_relative 'gen/workspaces_base'
|
3
2
|
|
4
3
|
module Asana
|
5
4
|
module Resources
|
@@ -17,10 +16,7 @@ module Asana
|
|
17
16
|
# using workspace-based APIs for organizations. Currently, and until after
|
18
17
|
# some reasonable grace period following any further announcements, you can
|
19
18
|
# still reference organizations in any `workspace` parameter.
|
20
|
-
class Workspace <
|
21
|
-
|
22
|
-
|
23
|
-
attr_reader :id
|
19
|
+
class Workspace < WorkspacesBase
|
24
20
|
|
25
21
|
attr_reader :gid
|
26
22
|
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require_relative 'gen/workspace_memberships_base'
|
2
|
+
|
3
|
+
module Asana
|
4
|
+
module Resources
|
5
|
+
class WorkspaceMembership < WorkspaceMembershipsBase
|
6
|
+
|
7
|
+
|
8
|
+
attr_reader :gid
|
9
|
+
|
10
|
+
attr_reader :resource_type
|
11
|
+
|
12
|
+
attr_reader :user
|
13
|
+
|
14
|
+
attr_reader :workspace
|
15
|
+
|
16
|
+
attr_reader :user_task_list
|
17
|
+
|
18
|
+
attr_reader :is_admin
|
19
|
+
|
20
|
+
attr_reader :is_active
|
21
|
+
|
22
|
+
attr_reader :is_guest
|
23
|
+
|
24
|
+
class << self
|
25
|
+
# Returns the plural name of the resource.
|
26
|
+
def plural_name
|
27
|
+
'workspace_memberships'
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/lib/asana/version.rb
CHANGED
@@ -0,0 +1,41 @@
|
|
1
|
+
attachments:
|
2
|
+
create_attachment_for_task: >-
|
3
|
+
require 'asana'
|
4
|
+
|
5
|
+
|
6
|
+
client = Asana::Client.new do |c|
|
7
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
result = client.attachments.create_attachment_for_task(task_gid: 'task_gid', field: "value", field: "value", options: {pretty: true})
|
12
|
+
delete_attachment: >-
|
13
|
+
require 'asana'
|
14
|
+
|
15
|
+
|
16
|
+
client = Asana::Client.new do |c|
|
17
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
result = client.attachments.delete_attachment(attachment_gid: 'attachment_gid', options: {pretty: true})
|
22
|
+
get_attachment: >-
|
23
|
+
require 'asana'
|
24
|
+
|
25
|
+
|
26
|
+
client = Asana::Client.new do |c|
|
27
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
result = client.attachments.get_attachment(attachment_gid: 'attachment_gid', param: "value", param: "value", options: {pretty: true})
|
32
|
+
get_attachments_for_task: >-
|
33
|
+
require 'asana'
|
34
|
+
|
35
|
+
|
36
|
+
client = Asana::Client.new do |c|
|
37
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
38
|
+
end
|
39
|
+
|
40
|
+
|
41
|
+
result = client.attachments.get_attachments_for_task(task_gid: 'task_gid', param: "value", param: "value", options: {pretty: true})
|
@@ -0,0 +1,11 @@
|
|
1
|
+
batchapi:
|
2
|
+
create_batch_request: >-
|
3
|
+
require 'asana'
|
4
|
+
|
5
|
+
|
6
|
+
client = Asana::Client.new do |c|
|
7
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
result = client.batch_api.create_batch_request(field: "value", field: "value", options: {pretty: true})
|
@@ -0,0 +1,21 @@
|
|
1
|
+
customfieldsettings:
|
2
|
+
get_custom_field_settings_for_portfolio: >-
|
3
|
+
require 'asana'
|
4
|
+
|
5
|
+
|
6
|
+
client = Asana::Client.new do |c|
|
7
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
result = client.custom_field_settings.get_custom_field_settings_for_portfolio(portfolio_gid: 'portfolio_gid', param: "value", param: "value", options: {pretty: true})
|
12
|
+
get_custom_field_settings_for_project: >-
|
13
|
+
require 'asana'
|
14
|
+
|
15
|
+
|
16
|
+
client = Asana::Client.new do |c|
|
17
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
result = client.custom_field_settings.get_custom_field_settings_for_project(project_gid: 'project_gid', param: "value", param: "value", options: {pretty: true})
|
@@ -0,0 +1,81 @@
|
|
1
|
+
customfields:
|
2
|
+
create_custom_field: >-
|
3
|
+
require 'asana'
|
4
|
+
|
5
|
+
|
6
|
+
client = Asana::Client.new do |c|
|
7
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
result = client.custom_fields.create_custom_field(field: "value", field: "value", options: {pretty: true})
|
12
|
+
create_enum_option_for_custom_field: >-
|
13
|
+
require 'asana'
|
14
|
+
|
15
|
+
|
16
|
+
client = Asana::Client.new do |c|
|
17
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
result = client.custom_fields.create_enum_option_for_custom_field(custom_field_gid: 'custom_field_gid', field: "value", field: "value", options: {pretty: true})
|
22
|
+
delete_custom_field: >-
|
23
|
+
require 'asana'
|
24
|
+
|
25
|
+
|
26
|
+
client = Asana::Client.new do |c|
|
27
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
result = client.custom_fields.delete_custom_field(custom_field_gid: 'custom_field_gid', options: {pretty: true})
|
32
|
+
get_custom_field: >-
|
33
|
+
require 'asana'
|
34
|
+
|
35
|
+
|
36
|
+
client = Asana::Client.new do |c|
|
37
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
38
|
+
end
|
39
|
+
|
40
|
+
|
41
|
+
result = client.custom_fields.get_custom_field(custom_field_gid: 'custom_field_gid', param: "value", param: "value", options: {pretty: true})
|
42
|
+
get_custom_fields_for_workspace: >-
|
43
|
+
require 'asana'
|
44
|
+
|
45
|
+
|
46
|
+
client = Asana::Client.new do |c|
|
47
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
48
|
+
end
|
49
|
+
|
50
|
+
|
51
|
+
result = client.custom_fields.get_custom_fields_for_workspace(workspace_gid: 'workspace_gid', param: "value", param: "value", options: {pretty: true})
|
52
|
+
insert_enum_option_for_custom_field: >-
|
53
|
+
require 'asana'
|
54
|
+
|
55
|
+
|
56
|
+
client = Asana::Client.new do |c|
|
57
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
58
|
+
end
|
59
|
+
|
60
|
+
|
61
|
+
result = client.custom_fields.insert_enum_option_for_custom_field(custom_field_gid: 'custom_field_gid', field: "value", field: "value", options: {pretty: true})
|
62
|
+
update_custom_field: >-
|
63
|
+
require 'asana'
|
64
|
+
|
65
|
+
|
66
|
+
client = Asana::Client.new do |c|
|
67
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
68
|
+
end
|
69
|
+
|
70
|
+
|
71
|
+
result = client.custom_fields.update_custom_field(custom_field_gid: 'custom_field_gid', field: "value", field: "value", options: {pretty: true})
|
72
|
+
update_enum_option: >-
|
73
|
+
require 'asana'
|
74
|
+
|
75
|
+
|
76
|
+
client = Asana::Client.new do |c|
|
77
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
78
|
+
end
|
79
|
+
|
80
|
+
|
81
|
+
result = client.custom_fields.update_enum_option(enum_option_gid: 'enum_option_gid', field: "value", field: "value", options: {pretty: true})
|
@@ -0,0 +1,11 @@
|
|
1
|
+
events:
|
2
|
+
get_events: >-
|
3
|
+
require 'asana'
|
4
|
+
|
5
|
+
|
6
|
+
client = Asana::Client.new do |c|
|
7
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
result = client.events.get_events(resource: ''resource_example'', param: "value", param: "value", options: {pretty: true})
|
@@ -0,0 +1,21 @@
|
|
1
|
+
organizationexports:
|
2
|
+
create_organization_export: >-
|
3
|
+
require 'asana'
|
4
|
+
|
5
|
+
|
6
|
+
client = Asana::Client.new do |c|
|
7
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
result = client.organization_exports.create_organization_export(field: "value", field: "value", options: {pretty: true})
|
12
|
+
get_organization_export: >-
|
13
|
+
require 'asana'
|
14
|
+
|
15
|
+
|
16
|
+
client = Asana::Client.new do |c|
|
17
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
result = client.organization_exports.get_organization_export(organization_export_gid: 'organization_export_gid', param: "value", param: "value", options: {pretty: true})
|
@@ -0,0 +1,31 @@
|
|
1
|
+
portfoliomemberships:
|
2
|
+
get_portfolio_membership: >-
|
3
|
+
require 'asana'
|
4
|
+
|
5
|
+
|
6
|
+
client = Asana::Client.new do |c|
|
7
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
result = client.portfolio_memberships.get_portfolio_membership(portfolio_membership_gid: 'portfolio_membership_gid', param: "value", param: "value", options: {pretty: true})
|
12
|
+
get_portfolio_memberships: >-
|
13
|
+
require 'asana'
|
14
|
+
|
15
|
+
|
16
|
+
client = Asana::Client.new do |c|
|
17
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
result = client.portfolio_memberships.get_portfolio_memberships(param: "value", param: "value", options: {pretty: true})
|
22
|
+
get_portfolio_memberships_for_portfolio: >-
|
23
|
+
require 'asana'
|
24
|
+
|
25
|
+
|
26
|
+
client = Asana::Client.new do |c|
|
27
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
result = client.portfolio_memberships.get_portfolio_memberships_for_portfolio(portfolio_gid: 'portfolio_gid', param: "value", param: "value", options: {pretty: true})
|
@@ -0,0 +1,121 @@
|
|
1
|
+
portfolios:
|
2
|
+
add_custom_field_setting_for_portfolio: >-
|
3
|
+
require 'asana'
|
4
|
+
|
5
|
+
|
6
|
+
client = Asana::Client.new do |c|
|
7
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
result = client.portfolios.add_custom_field_setting_for_portfolio(portfolio_gid: 'portfolio_gid', field: "value", field: "value", options: {pretty: true})
|
12
|
+
add_item_for_portfolio: >-
|
13
|
+
require 'asana'
|
14
|
+
|
15
|
+
|
16
|
+
client = Asana::Client.new do |c|
|
17
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
result = client.portfolios.add_item_for_portfolio(portfolio_gid: 'portfolio_gid', field: "value", field: "value", options: {pretty: true})
|
22
|
+
add_members_for_portfolio: >-
|
23
|
+
require 'asana'
|
24
|
+
|
25
|
+
|
26
|
+
client = Asana::Client.new do |c|
|
27
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
result = client.portfolios.add_members_for_portfolio(portfolio_gid: 'portfolio_gid', field: "value", field: "value", options: {pretty: true})
|
32
|
+
create_portfolio: >-
|
33
|
+
require 'asana'
|
34
|
+
|
35
|
+
|
36
|
+
client = Asana::Client.new do |c|
|
37
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
38
|
+
end
|
39
|
+
|
40
|
+
|
41
|
+
result = client.portfolios.create_portfolio(field: "value", field: "value", options: {pretty: true})
|
42
|
+
delete_portfolio: >-
|
43
|
+
require 'asana'
|
44
|
+
|
45
|
+
|
46
|
+
client = Asana::Client.new do |c|
|
47
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
48
|
+
end
|
49
|
+
|
50
|
+
|
51
|
+
result = client.portfolios.delete_portfolio(portfolio_gid: 'portfolio_gid', options: {pretty: true})
|
52
|
+
get_items_for_portfolio: >-
|
53
|
+
require 'asana'
|
54
|
+
|
55
|
+
|
56
|
+
client = Asana::Client.new do |c|
|
57
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
58
|
+
end
|
59
|
+
|
60
|
+
|
61
|
+
result = client.portfolios.get_items_for_portfolio(portfolio_gid: 'portfolio_gid', param: "value", param: "value", options: {pretty: true})
|
62
|
+
get_portfolio: >-
|
63
|
+
require 'asana'
|
64
|
+
|
65
|
+
|
66
|
+
client = Asana::Client.new do |c|
|
67
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
68
|
+
end
|
69
|
+
|
70
|
+
|
71
|
+
result = client.portfolios.get_portfolio(portfolio_gid: 'portfolio_gid', param: "value", param: "value", options: {pretty: true})
|
72
|
+
get_portfolios: >-
|
73
|
+
require 'asana'
|
74
|
+
|
75
|
+
|
76
|
+
client = Asana::Client.new do |c|
|
77
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
78
|
+
end
|
79
|
+
|
80
|
+
|
81
|
+
result = client.portfolios.get_portfolios(workspace: ''workspace_example'', owner: ''owner_example'', param: "value", param: "value", options: {pretty: true})
|
82
|
+
remove_custom_field_setting_for_portfolio: >-
|
83
|
+
require 'asana'
|
84
|
+
|
85
|
+
|
86
|
+
client = Asana::Client.new do |c|
|
87
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
88
|
+
end
|
89
|
+
|
90
|
+
|
91
|
+
result = client.portfolios.remove_custom_field_setting_for_portfolio(portfolio_gid: 'portfolio_gid', field: "value", field: "value", options: {pretty: true})
|
92
|
+
remove_item_for_portfolio: >-
|
93
|
+
require 'asana'
|
94
|
+
|
95
|
+
|
96
|
+
client = Asana::Client.new do |c|
|
97
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
98
|
+
end
|
99
|
+
|
100
|
+
|
101
|
+
result = client.portfolios.remove_item_for_portfolio(portfolio_gid: 'portfolio_gid', field: "value", field: "value", options: {pretty: true})
|
102
|
+
remove_members_for_portfolio: >-
|
103
|
+
require 'asana'
|
104
|
+
|
105
|
+
|
106
|
+
client = Asana::Client.new do |c|
|
107
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
108
|
+
end
|
109
|
+
|
110
|
+
|
111
|
+
result = client.portfolios.remove_members_for_portfolio(portfolio_gid: 'portfolio_gid', field: "value", field: "value", options: {pretty: true})
|
112
|
+
update_portfolio: >-
|
113
|
+
require 'asana'
|
114
|
+
|
115
|
+
|
116
|
+
client = Asana::Client.new do |c|
|
117
|
+
c.authentication :access_token, 'PERSONAL_ACCESS_TOKEN'
|
118
|
+
end
|
119
|
+
|
120
|
+
|
121
|
+
result = client.portfolios.update_portfolio(portfolio_gid: 'portfolio_gid', field: "value", field: "value", options: {pretty: true})
|