asana 0.9.3 → 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 +2 -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
@@ -0,0 +1,35 @@
|
|
1
|
+
### WARNING: This file is auto-generated by our OpenAPI spec. Do not
|
2
|
+
### edit it manually.
|
3
|
+
|
4
|
+
require_relative '../../resource_includes/response_helper'
|
5
|
+
|
6
|
+
module Asana
|
7
|
+
module Resources
|
8
|
+
class TypeaheadBase < Resource
|
9
|
+
|
10
|
+
def self.inherited(base)
|
11
|
+
Registry.register(base)
|
12
|
+
end
|
13
|
+
|
14
|
+
class << self
|
15
|
+
# Get objects via typeahead
|
16
|
+
#
|
17
|
+
# workspace_gid - [str] (required) Globally unique identifier for the workspace or organization.
|
18
|
+
# resource_type - [str] (required) The type of values the typeahead should return. You can choose from one of the following: `custom_field`, `project`, `portfolio`, `tag`, `task`, and `user`. Note that unlike in the names of endpoints, the types listed here are in singular form (e.g. `task`). Using multiple types is not yet supported.
|
19
|
+
# type - [str] *Deprecated: new integrations should prefer the resource_type field.*
|
20
|
+
# query - [str] The string that will be used to search for relevant objects. If an empty string is passed in, the API will currently return an empty result set.
|
21
|
+
# count - [int] The number of results to return. The default is 20 if this parameter is omitted, with a minimum of 1 and a maximum of 100. If there are fewer results found than requested, all will be returned.
|
22
|
+
# options - [Hash] the request I/O options
|
23
|
+
# > opt_fields - [list[str]] Defines fields to return. Some requests return *compact* representations of objects in order to conserve resources and complete the request more efficiently. Other times requests return more information than you may need. This option allows you to list the exact set of fields that the API should be sure to return for the objects. The field names should be provided as paths, described below. The id of included objects will always be returned, regardless of the field options.
|
24
|
+
# > opt_pretty - [bool] Provides “pretty” output. Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging.
|
25
|
+
def typeahead_for_workspace(client, workspace_gid: required("workspace_gid"), resource_type: nil, type: nil, query: nil, count: nil, options: {})
|
26
|
+
path = "/workspaces/{workspace_gid}/typeahead"
|
27
|
+
path["{workspace_gid}"] = workspace_gid
|
28
|
+
params = { resource_type: resource_type, type: type, query: query, count: count }.reject { |_,v| v.nil? || Array(v).empty? }
|
29
|
+
Collection.new(parse(client.get(path, params: params, options: options)), type: Resource, client: client)
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
### WARNING: This file is auto-generated by our OpenAPI spec. Do not
|
2
|
+
### edit it manually.
|
3
|
+
|
4
|
+
require_relative '../../resource_includes/response_helper'
|
5
|
+
|
6
|
+
module Asana
|
7
|
+
module Resources
|
8
|
+
class UserTaskListsBase < Resource
|
9
|
+
|
10
|
+
def self.inherited(base)
|
11
|
+
Registry.register(base)
|
12
|
+
end
|
13
|
+
|
14
|
+
class << self
|
15
|
+
# Get a user task list
|
16
|
+
#
|
17
|
+
# user_task_list_gid - [str] (required) Globally unique identifier for the user task list.
|
18
|
+
# options - [Hash] the request I/O options
|
19
|
+
# > opt_fields - [list[str]] Defines fields to return. Some requests return *compact* representations of objects in order to conserve resources and complete the request more efficiently. Other times requests return more information than you may need. This option allows you to list the exact set of fields that the API should be sure to return for the objects. The field names should be provided as paths, described below. The id of included objects will always be returned, regardless of the field options.
|
20
|
+
# > opt_pretty - [bool] Provides “pretty” output. Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging.
|
21
|
+
def get_user_task_list(client, user_task_list_gid: required("user_task_list_gid"), options: {})
|
22
|
+
path = "/user_task_lists/{user_task_list_gid}"
|
23
|
+
path["{user_task_list_gid}"] = user_task_list_gid
|
24
|
+
UserTaskList.new(parse(client.get(path, options: options)).first, client: client)
|
25
|
+
end
|
26
|
+
|
27
|
+
# Get a user's task list
|
28
|
+
#
|
29
|
+
# user_gid - [str] (required) A string identifying a user. This can either be the string \"me\", an email, or the gid of a user.
|
30
|
+
# workspace - [str] (required) The workspace in which to get the user task list.
|
31
|
+
# options - [Hash] the request I/O options
|
32
|
+
# > opt_fields - [list[str]] Defines fields to return. Some requests return *compact* representations of objects in order to conserve resources and complete the request more efficiently. Other times requests return more information than you may need. This option allows you to list the exact set of fields that the API should be sure to return for the objects. The field names should be provided as paths, described below. The id of included objects will always be returned, regardless of the field options.
|
33
|
+
# > opt_pretty - [bool] Provides “pretty” output. Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging.
|
34
|
+
def get_user_task_list_for_user(client, user_gid: required("user_gid"), workspace: nil, options: {})
|
35
|
+
path = "/users/{user_gid}/user_task_list"
|
36
|
+
path["{user_gid}"] = user_gid
|
37
|
+
params = { workspace: workspace }.reject { |_,v| v.nil? || Array(v).empty? }
|
38
|
+
UserTaskList.new(parse(client.get(path, params: params, options: options)).first, client: client)
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
### WARNING: This file is auto-generated by our OpenAPI spec. Do not
|
2
|
+
### edit it manually.
|
3
|
+
|
4
|
+
require_relative '../../resource_includes/response_helper'
|
5
|
+
|
6
|
+
module Asana
|
7
|
+
module Resources
|
8
|
+
class UsersBase < Resource
|
9
|
+
|
10
|
+
def self.inherited(base)
|
11
|
+
Registry.register(base)
|
12
|
+
end
|
13
|
+
|
14
|
+
class << self
|
15
|
+
# Get a user's favorites
|
16
|
+
#
|
17
|
+
# user_gid - [str] (required) A string identifying a user. This can either be the string \"me\", an email, or the gid of a user.
|
18
|
+
# resource_type - [str] (required) The resource type of favorites to be returned.
|
19
|
+
# workspace - [str] (required) The workspace in which to get favorites.
|
20
|
+
# options - [Hash] the request I/O options
|
21
|
+
# > opt_fields - [list[str]] Defines fields to return. Some requests return *compact* representations of objects in order to conserve resources and complete the request more efficiently. Other times requests return more information than you may need. This option allows you to list the exact set of fields that the API should be sure to return for the objects. The field names should be provided as paths, described below. The id of included objects will always be returned, regardless of the field options.
|
22
|
+
# > opt_pretty - [bool] Provides “pretty” output. Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging.
|
23
|
+
def get_favorites_for_user(client, user_gid: required("user_gid"), resource_type: nil, workspace: nil, options: {})
|
24
|
+
path = "/users/{user_gid}/favorites"
|
25
|
+
path["{user_gid}"] = user_gid
|
26
|
+
params = { resource_type: resource_type, workspace: workspace }.reject { |_,v| v.nil? || Array(v).empty? }
|
27
|
+
Collection.new(parse(client.get(path, params: params, options: options)), type: Resource, client: client)
|
28
|
+
end
|
29
|
+
|
30
|
+
# Get a user
|
31
|
+
#
|
32
|
+
# user_gid - [str] (required) A string identifying a user. This can either be the string \"me\", an email, or the gid of a user.
|
33
|
+
# options - [Hash] the request I/O options
|
34
|
+
# > opt_fields - [list[str]] Defines fields to return. Some requests return *compact* representations of objects in order to conserve resources and complete the request more efficiently. Other times requests return more information than you may need. This option allows you to list the exact set of fields that the API should be sure to return for the objects. The field names should be provided as paths, described below. The id of included objects will always be returned, regardless of the field options.
|
35
|
+
# > opt_pretty - [bool] Provides “pretty” output. Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging.
|
36
|
+
def get_user(client, user_gid: required("user_gid"), options: {})
|
37
|
+
path = "/users/{user_gid}"
|
38
|
+
path["{user_gid}"] = user_gid
|
39
|
+
User.new(parse(client.get(path, options: options)).first, client: client)
|
40
|
+
end
|
41
|
+
|
42
|
+
# Get multiple users
|
43
|
+
#
|
44
|
+
|
45
|
+
# workspace - [str] The workspace or organization ID to filter users on.
|
46
|
+
# options - [Hash] the request I/O options
|
47
|
+
# > offset - [str] Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. 'Note: You can only pass in an offset that was returned to you via a previously paginated request.'
|
48
|
+
# > limit - [int] Results per page. The number of objects to return per page. The value must be between 1 and 100.
|
49
|
+
# > opt_fields - [list[str]] Defines fields to return. Some requests return *compact* representations of objects in order to conserve resources and complete the request more efficiently. Other times requests return more information than you may need. This option allows you to list the exact set of fields that the API should be sure to return for the objects. The field names should be provided as paths, described below. The id of included objects will always be returned, regardless of the field options.
|
50
|
+
# > opt_pretty - [bool] Provides “pretty” output. Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging.
|
51
|
+
def get_users(client, workspace: nil, options: {})
|
52
|
+
path = "/users"
|
53
|
+
params = { workspace: workspace }.reject { |_,v| v.nil? || Array(v).empty? }
|
54
|
+
Collection.new(parse(client.get(path, params: params, options: options)), type: User, client: client)
|
55
|
+
end
|
56
|
+
|
57
|
+
# Get users in a team
|
58
|
+
#
|
59
|
+
# team_gid - [str] (required) Globally unique identifier for the team.
|
60
|
+
# options - [Hash] the request I/O options
|
61
|
+
# > offset - [str] Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. 'Note: You can only pass in an offset that was returned to you via a previously paginated request.'
|
62
|
+
# > limit - [int] Results per page. The number of objects to return per page. The value must be between 1 and 100.
|
63
|
+
# > opt_fields - [list[str]] Defines fields to return. Some requests return *compact* representations of objects in order to conserve resources and complete the request more efficiently. Other times requests return more information than you may need. This option allows you to list the exact set of fields that the API should be sure to return for the objects. The field names should be provided as paths, described below. The id of included objects will always be returned, regardless of the field options.
|
64
|
+
# > opt_pretty - [bool] Provides “pretty” output. Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging.
|
65
|
+
def get_users_for_team(client, team_gid: required("team_gid"), options: {})
|
66
|
+
path = "/teams/{team_gid}/users"
|
67
|
+
path["{team_gid}"] = team_gid
|
68
|
+
Collection.new(parse(client.get(path, options: options)), type: User, client: client)
|
69
|
+
end
|
70
|
+
|
71
|
+
# Get users in a workspace or organization
|
72
|
+
#
|
73
|
+
# workspace_gid - [str] (required) Globally unique identifier for the workspace or organization.
|
74
|
+
# options - [Hash] the request I/O options
|
75
|
+
# > offset - [str] Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. 'Note: You can only pass in an offset that was returned to you via a previously paginated request.'
|
76
|
+
# > limit - [int] Results per page. The number of objects to return per page. The value must be between 1 and 100.
|
77
|
+
# > opt_fields - [list[str]] Defines fields to return. Some requests return *compact* representations of objects in order to conserve resources and complete the request more efficiently. Other times requests return more information than you may need. This option allows you to list the exact set of fields that the API should be sure to return for the objects. The field names should be provided as paths, described below. The id of included objects will always be returned, regardless of the field options.
|
78
|
+
# > opt_pretty - [bool] Provides “pretty” output. Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging.
|
79
|
+
def get_users_for_workspace(client, workspace_gid: required("workspace_gid"), options: {})
|
80
|
+
path = "/workspaces/{workspace_gid}/users"
|
81
|
+
path["{workspace_gid}"] = workspace_gid
|
82
|
+
Collection.new(parse(client.get(path, options: options)), type: User, client: client)
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
### WARNING: This file is auto-generated by our OpenAPI spec. Do not
|
2
|
+
### edit it manually.
|
3
|
+
|
4
|
+
require_relative '../../resource_includes/response_helper'
|
5
|
+
|
6
|
+
module Asana
|
7
|
+
module Resources
|
8
|
+
class WebhooksBase < Resource
|
9
|
+
|
10
|
+
def self.inherited(base)
|
11
|
+
Registry.register(base)
|
12
|
+
end
|
13
|
+
|
14
|
+
class << self
|
15
|
+
# Establish a webhook
|
16
|
+
#
|
17
|
+
|
18
|
+
# options - [Hash] the request I/O options
|
19
|
+
# > opt_fields - [list[str]] Defines fields to return. Some requests return *compact* representations of objects in order to conserve resources and complete the request more efficiently. Other times requests return more information than you may need. This option allows you to list the exact set of fields that the API should be sure to return for the objects. The field names should be provided as paths, described below. The id of included objects will always be returned, regardless of the field options.
|
20
|
+
# > opt_pretty - [bool] Provides “pretty” output. Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging.
|
21
|
+
# data - [Hash] the attributes to POST
|
22
|
+
def create_webhook(client, options: {}, **data)
|
23
|
+
path = "/webhooks"
|
24
|
+
Webhook.new(parse(client.post(path, body: data, options: options)).first, client: client)
|
25
|
+
end
|
26
|
+
|
27
|
+
# Delete a webhook
|
28
|
+
#
|
29
|
+
# webhook_gid - [str] (required) Globally unique identifier for the webhook.
|
30
|
+
# options - [Hash] the request I/O options
|
31
|
+
# > opt_fields - [list[str]] Defines fields to return. Some requests return *compact* representations of objects in order to conserve resources and complete the request more efficiently. Other times requests return more information than you may need. This option allows you to list the exact set of fields that the API should be sure to return for the objects. The field names should be provided as paths, described below. The id of included objects will always be returned, regardless of the field options.
|
32
|
+
# > opt_pretty - [bool] Provides “pretty” output. Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging.
|
33
|
+
def delete_webhook(client, webhook_gid: required("webhook_gid"), options: {})
|
34
|
+
path = "/webhooks/{webhook_gid}"
|
35
|
+
path["{webhook_gid}"] = webhook_gid
|
36
|
+
parse(client.delete(path, options: options)).first
|
37
|
+
end
|
38
|
+
|
39
|
+
# Get a webhook
|
40
|
+
#
|
41
|
+
# webhook_gid - [str] (required) Globally unique identifier for the webhook.
|
42
|
+
# options - [Hash] the request I/O options
|
43
|
+
# > opt_fields - [list[str]] Defines fields to return. Some requests return *compact* representations of objects in order to conserve resources and complete the request more efficiently. Other times requests return more information than you may need. This option allows you to list the exact set of fields that the API should be sure to return for the objects. The field names should be provided as paths, described below. The id of included objects will always be returned, regardless of the field options.
|
44
|
+
# > opt_pretty - [bool] Provides “pretty” output. Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging.
|
45
|
+
def get_webhook(client, webhook_gid: required("webhook_gid"), options: {})
|
46
|
+
path = "/webhooks/{webhook_gid}"
|
47
|
+
path["{webhook_gid}"] = webhook_gid
|
48
|
+
Webhook.new(parse(client.get(path, options: options)).first, client: client)
|
49
|
+
end
|
50
|
+
|
51
|
+
# Get multiple webhooks
|
52
|
+
#
|
53
|
+
|
54
|
+
# workspace - [str] (required) The workspace to query for webhooks in.
|
55
|
+
# resource - [str] Only return webhooks for the given resource.
|
56
|
+
# options - [Hash] the request I/O options
|
57
|
+
# > offset - [str] Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. 'Note: You can only pass in an offset that was returned to you via a previously paginated request.'
|
58
|
+
# > limit - [int] Results per page. The number of objects to return per page. The value must be between 1 and 100.
|
59
|
+
# > opt_fields - [list[str]] Defines fields to return. Some requests return *compact* representations of objects in order to conserve resources and complete the request more efficiently. Other times requests return more information than you may need. This option allows you to list the exact set of fields that the API should be sure to return for the objects. The field names should be provided as paths, described below. The id of included objects will always be returned, regardless of the field options.
|
60
|
+
# > opt_pretty - [bool] Provides “pretty” output. Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging.
|
61
|
+
def get_webhooks(client, workspace: nil, resource: nil, options: {})
|
62
|
+
path = "/webhooks"
|
63
|
+
params = { workspace: workspace, resource: resource }.reject { |_,v| v.nil? || Array(v).empty? }
|
64
|
+
Collection.new(parse(client.get(path, params: params, options: options)), type: Webhook, client: client)
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
### WARNING: This file is auto-generated by our OpenAPI spec. Do not
|
2
|
+
### edit it manually.
|
3
|
+
|
4
|
+
require_relative '../../resource_includes/response_helper'
|
5
|
+
|
6
|
+
module Asana
|
7
|
+
module Resources
|
8
|
+
class WorkspaceMembershipsBase < Resource
|
9
|
+
|
10
|
+
def self.inherited(base)
|
11
|
+
Registry.register(base)
|
12
|
+
end
|
13
|
+
|
14
|
+
class << self
|
15
|
+
# Get a workspace membership
|
16
|
+
#
|
17
|
+
# workspace_membership_gid - [str] (required)
|
18
|
+
# options - [Hash] the request I/O options
|
19
|
+
# > opt_fields - [list[str]] Defines fields to return. Some requests return *compact* representations of objects in order to conserve resources and complete the request more efficiently. Other times requests return more information than you may need. This option allows you to list the exact set of fields that the API should be sure to return for the objects. The field names should be provided as paths, described below. The id of included objects will always be returned, regardless of the field options.
|
20
|
+
# > opt_pretty - [bool] Provides “pretty” output. Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging.
|
21
|
+
def get_workspace_membership(client, workspace_membership_gid: required("workspace_membership_gid"), options: {})
|
22
|
+
path = "/workspace_memberships/{workspace_membership_gid}"
|
23
|
+
path["{workspace_membership_gid}"] = workspace_membership_gid
|
24
|
+
parse(client.get(path, options: options)).first
|
25
|
+
end
|
26
|
+
|
27
|
+
# Get workspace memberships for a user
|
28
|
+
#
|
29
|
+
# user_gid - [str] (required) A string identifying a user. This can either be the string \"me\", an email, or the gid of a user.
|
30
|
+
# options - [Hash] the request I/O options
|
31
|
+
# > offset - [str] Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. 'Note: You can only pass in an offset that was returned to you via a previously paginated request.'
|
32
|
+
# > limit - [int] Results per page. The number of objects to return per page. The value must be between 1 and 100.
|
33
|
+
# > opt_fields - [list[str]] Defines fields to return. Some requests return *compact* representations of objects in order to conserve resources and complete the request more efficiently. Other times requests return more information than you may need. This option allows you to list the exact set of fields that the API should be sure to return for the objects. The field names should be provided as paths, described below. The id of included objects will always be returned, regardless of the field options.
|
34
|
+
# > opt_pretty - [bool] Provides “pretty” output. Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging.
|
35
|
+
def get_workspace_memberships_for_user(client, user_gid: required("user_gid"), options: {})
|
36
|
+
path = "/users/{user_gid}/workspace_memberships"
|
37
|
+
path["{user_gid}"] = user_gid
|
38
|
+
Collection.new(parse(client.get(path, options: options)), type: Resource, client: client)
|
39
|
+
end
|
40
|
+
|
41
|
+
# Get the workspace memberships for a workspace
|
42
|
+
#
|
43
|
+
# workspace_gid - [str] (required) Globally unique identifier for the workspace or organization.
|
44
|
+
# user - [str] A string identifying a user. This can either be the string \"me\", an email, or the gid of a user.
|
45
|
+
# options - [Hash] the request I/O options
|
46
|
+
# > offset - [str] Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. 'Note: You can only pass in an offset that was returned to you via a previously paginated request.'
|
47
|
+
# > limit - [int] Results per page. The number of objects to return per page. The value must be between 1 and 100.
|
48
|
+
# > opt_fields - [list[str]] Defines fields to return. Some requests return *compact* representations of objects in order to conserve resources and complete the request more efficiently. Other times requests return more information than you may need. This option allows you to list the exact set of fields that the API should be sure to return for the objects. The field names should be provided as paths, described below. The id of included objects will always be returned, regardless of the field options.
|
49
|
+
# > opt_pretty - [bool] Provides “pretty” output. Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging.
|
50
|
+
def get_workspace_memberships_for_workspace(client, workspace_gid: required("workspace_gid"), user: nil, options: {})
|
51
|
+
path = "/workspaces/{workspace_gid}/workspace_memberships"
|
52
|
+
path["{workspace_gid}"] = workspace_gid
|
53
|
+
params = { user: user }.reject { |_,v| v.nil? || Array(v).empty? }
|
54
|
+
Collection.new(parse(client.get(path, params: params, options: options)), type: Resource, client: client)
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
### WARNING: This file is auto-generated by our OpenAPI spec. Do not
|
2
|
+
### edit it manually.
|
3
|
+
|
4
|
+
require_relative '../../resource_includes/response_helper'
|
5
|
+
|
6
|
+
module Asana
|
7
|
+
module Resources
|
8
|
+
class WorkspacesBase < Resource
|
9
|
+
|
10
|
+
def self.inherited(base)
|
11
|
+
Registry.register(base)
|
12
|
+
end
|
13
|
+
|
14
|
+
class << self
|
15
|
+
# Add a user to a workspace or organization
|
16
|
+
#
|
17
|
+
# workspace_gid - [str] (required) Globally unique identifier for the workspace or organization.
|
18
|
+
# options - [Hash] the request I/O options
|
19
|
+
# > opt_fields - [list[str]] Defines fields to return. Some requests return *compact* representations of objects in order to conserve resources and complete the request more efficiently. Other times requests return more information than you may need. This option allows you to list the exact set of fields that the API should be sure to return for the objects. The field names should be provided as paths, described below. The id of included objects will always be returned, regardless of the field options.
|
20
|
+
# > opt_pretty - [bool] Provides “pretty” output. Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging.
|
21
|
+
# data - [Hash] the attributes to POST
|
22
|
+
def add_user_for_workspace(client, workspace_gid: required("workspace_gid"), options: {}, **data)
|
23
|
+
path = "/workspaces/{workspace_gid}/addUser"
|
24
|
+
path["{workspace_gid}"] = workspace_gid
|
25
|
+
User.new(parse(client.post(path, body: data, options: options)).first, client: client)
|
26
|
+
end
|
27
|
+
|
28
|
+
# Get a workspace
|
29
|
+
#
|
30
|
+
# workspace_gid - [str] (required) Globally unique identifier for the workspace or organization.
|
31
|
+
# options - [Hash] the request I/O options
|
32
|
+
# > opt_fields - [list[str]] Defines fields to return. Some requests return *compact* representations of objects in order to conserve resources and complete the request more efficiently. Other times requests return more information than you may need. This option allows you to list the exact set of fields that the API should be sure to return for the objects. The field names should be provided as paths, described below. The id of included objects will always be returned, regardless of the field options.
|
33
|
+
# > opt_pretty - [bool] Provides “pretty” output. Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging.
|
34
|
+
def get_workspace(client, workspace_gid: required("workspace_gid"), options: {})
|
35
|
+
path = "/workspaces/{workspace_gid}"
|
36
|
+
path["{workspace_gid}"] = workspace_gid
|
37
|
+
Workspace.new(parse(client.get(path, options: options)).first, client: client)
|
38
|
+
end
|
39
|
+
|
40
|
+
# Get multiple workspaces
|
41
|
+
#
|
42
|
+
|
43
|
+
# options - [Hash] the request I/O options
|
44
|
+
# > offset - [str] Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. 'Note: You can only pass in an offset that was returned to you via a previously paginated request.'
|
45
|
+
# > limit - [int] Results per page. The number of objects to return per page. The value must be between 1 and 100.
|
46
|
+
# > opt_fields - [list[str]] Defines fields to return. Some requests return *compact* representations of objects in order to conserve resources and complete the request more efficiently. Other times requests return more information than you may need. This option allows you to list the exact set of fields that the API should be sure to return for the objects. The field names should be provided as paths, described below. The id of included objects will always be returned, regardless of the field options.
|
47
|
+
# > opt_pretty - [bool] Provides “pretty” output. Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging.
|
48
|
+
def get_workspaces(client, options: {})
|
49
|
+
path = "/workspaces"
|
50
|
+
Collection.new(parse(client.get(path, options: options)), type: Workspace, client: client)
|
51
|
+
end
|
52
|
+
|
53
|
+
# Remove a user from a workspace or organization
|
54
|
+
#
|
55
|
+
# workspace_gid - [str] (required) Globally unique identifier for the workspace or organization.
|
56
|
+
# options - [Hash] the request I/O options
|
57
|
+
# > opt_fields - [list[str]] Defines fields to return. Some requests return *compact* representations of objects in order to conserve resources and complete the request more efficiently. Other times requests return more information than you may need. This option allows you to list the exact set of fields that the API should be sure to return for the objects. The field names should be provided as paths, described below. The id of included objects will always be returned, regardless of the field options.
|
58
|
+
# > opt_pretty - [bool] Provides “pretty” output. Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging.
|
59
|
+
# data - [Hash] the attributes to POST
|
60
|
+
def remove_user_for_workspace(client, workspace_gid: required("workspace_gid"), options: {}, **data)
|
61
|
+
path = "/workspaces/{workspace_gid}/removeUser"
|
62
|
+
path["{workspace_gid}"] = workspace_gid
|
63
|
+
parse(client.post(path, body: data, options: options)).first
|
64
|
+
end
|
65
|
+
|
66
|
+
# Update a workspace
|
67
|
+
#
|
68
|
+
# workspace_gid - [str] (required) Globally unique identifier for the workspace or organization.
|
69
|
+
# options - [Hash] the request I/O options
|
70
|
+
# > opt_fields - [list[str]] Defines fields to return. Some requests return *compact* representations of objects in order to conserve resources and complete the request more efficiently. Other times requests return more information than you may need. This option allows you to list the exact set of fields that the API should be sure to return for the objects. The field names should be provided as paths, described below. The id of included objects will always be returned, regardless of the field options.
|
71
|
+
# > opt_pretty - [bool] Provides “pretty” output. Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging.
|
72
|
+
# data - [Hash] the attributes to PUT
|
73
|
+
def update_workspace(client, workspace_gid: required("workspace_gid"), options: {}, **data)
|
74
|
+
path = "/workspaces/{workspace_gid}"
|
75
|
+
path["{workspace_gid}"] = workspace_gid
|
76
|
+
Workspace.new(parse(client.put(path, body: data, options: options)).first, client: client)
|
77
|
+
end
|
78
|
+
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
data/lib/asana/resources/job.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
|
2
|
-
### edit it manually.
|
1
|
+
require_relative 'gen/jobs_base'
|
3
2
|
|
4
3
|
module Asana
|
5
4
|
module Resources
|
@@ -7,7 +6,7 @@ module Asana
|
|
7
6
|
#
|
8
7
|
# Jobs are created when an endpoint requests an action that will be handled asynchronously.
|
9
8
|
# Such as project or task duplication.
|
10
|
-
class Job <
|
9
|
+
class Job < JobsBase
|
11
10
|
|
12
11
|
|
13
12
|
attr_reader :gid
|
@@ -1,5 +1,4 @@
|
|
1
|
-
|
2
|
-
### edit it manually.
|
1
|
+
require_relative 'gen/organization_exports_base'
|
3
2
|
|
4
3
|
module Asana
|
5
4
|
module Resources
|
@@ -16,11 +15,9 @@ module Asana
|
|
16
15
|
#
|
17
16
|
# **Note:** These endpoints are only available to [Service Accounts](/guide/help/premium/service-accounts)
|
18
17
|
# of an [Enterprise](/enterprise) Organization.
|
19
|
-
class OrganizationExport <
|
18
|
+
class OrganizationExport < OrganizationExportsBase
|
20
19
|
|
21
20
|
|
22
|
-
attr_reader :id
|
23
|
-
|
24
21
|
attr_reader :gid
|
25
22
|
|
26
23
|
attr_reader :created_at
|
@@ -1,5 +1,4 @@
|
|
1
|
-
|
2
|
-
### edit it manually.
|
1
|
+
require_relative 'gen/portfolios_base'
|
3
2
|
|
4
3
|
module Asana
|
5
4
|
module Resources
|
@@ -10,11 +9,9 @@ module Asana
|
|
10
9
|
#
|
11
10
|
# Portfolios have some restrictions on size. Each portfolio has a maximum of 250
|
12
11
|
# items and, like projects, a maximum of 20 custom fields.
|
13
|
-
class Portfolio <
|
12
|
+
class Portfolio < PortfoliosBase
|
14
13
|
|
15
14
|
|
16
|
-
attr_reader :id
|
17
|
-
|
18
15
|
attr_reader :gid
|
19
16
|
|
20
17
|
attr_reader :resource_type
|
@@ -1,14 +1,11 @@
|
|
1
|
-
|
2
|
-
### edit it manually.
|
1
|
+
require_relative 'gen/portfolio_memberships_base'
|
3
2
|
|
4
3
|
module Asana
|
5
4
|
module Resources
|
6
5
|
# This object determines if a user is a member of a portfolio.
|
7
|
-
class PortfolioMembership <
|
6
|
+
class PortfolioMembership < PortfolioMembershipsBase
|
8
7
|
|
9
8
|
|
10
|
-
attr_reader :id
|
11
|
-
|
12
9
|
attr_reader :gid
|
13
10
|
|
14
11
|
attr_reader :resource_type
|
@@ -1,5 +1,4 @@
|
|
1
|
-
|
2
|
-
### edit it manually.
|
1
|
+
require_relative 'gen/projects_base'
|
3
2
|
|
4
3
|
module Asana
|
5
4
|
module Resources
|
@@ -12,13 +11,11 @@ module Asana
|
|
12
11
|
# change the team of a project via the API. Non-organization workspaces do not
|
13
12
|
# have teams and so you should not specify the team of project in a regular
|
14
13
|
# workspace.
|
15
|
-
class Project <
|
14
|
+
class Project < ProjectsBase
|
16
15
|
|
17
16
|
include EventSubscription
|
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/project_memberships_base'
|
3
2
|
|
4
3
|
module Asana
|
5
4
|
module Resources
|
@@ -7,11 +6,9 @@ module Asana
|
|
7
6
|
# in a project comes with associated permissions. These permissions (whether a
|
8
7
|
# user has full access to the project or comment-only access) are accessible
|
9
8
|
# through the project memberships endpoints described here.
|
10
|
-
class ProjectMembership <
|
9
|
+
class ProjectMembership < ProjectMembershipsBase
|
11
10
|
|
12
11
|
|
13
|
-
attr_reader :id
|
14
|
-
|
15
12
|
attr_reader :gid
|
16
13
|
|
17
14
|
attr_reader :resource_type
|
@@ -1,5 +1,4 @@
|
|
1
|
-
|
2
|
-
### edit it manually.
|
1
|
+
require_relative 'gen/project_statuses_base'
|
3
2
|
|
4
3
|
module Asana
|
5
4
|
module Resources
|
@@ -9,11 +8,9 @@ module Asana
|
|
9
8
|
# at risk, and "red" for projects that are behind.
|
10
9
|
#
|
11
10
|
# Project statuses can be created and deleted, but not modified.
|
12
|
-
class ProjectStatus <
|
11
|
+
class ProjectStatus < ProjectStatusesBase
|
13
12
|
|
14
13
|
|
15
|
-
attr_reader :id
|
16
|
-
|
17
14
|
attr_reader :gid
|
18
15
|
|
19
16
|
attr_reader :resource_type
|
@@ -1,16 +1,13 @@
|
|
1
|
-
|
2
|
-
### edit it manually.
|
1
|
+
require_relative 'gen/sections_base'
|
3
2
|
|
4
3
|
module Asana
|
5
4
|
module Resources
|
6
5
|
# A _section_ is a subdivision of a project that groups tasks together. It can
|
7
6
|
# either be a header above a list of tasks in a list view or a column in a
|
8
7
|
# board view of a project.
|
9
|
-
class Section <
|
8
|
+
class Section < SectionsBase
|
10
9
|
|
11
10
|
|
12
|
-
attr_reader :id
|
13
|
-
|
14
11
|
attr_reader :gid
|
15
12
|
|
16
13
|
attr_reader :resource_type
|
@@ -56,23 +53,7 @@ module Asana
|
|
56
53
|
# options - [Hash] the request I/O options.
|
57
54
|
def find_by_id(client, id, options: {})
|
58
55
|
|
59
|
-
self.new(parse(client.get("/sections/#{
|
60
|
-
end
|
61
|
-
|
62
|
-
# Add a task to a specific, existing section. This will remove the task from other sections of the project.
|
63
|
-
#
|
64
|
-
# The task will be inserted at the top of a section unless an `insert_before` or `insert_after` parameter is declared.
|
65
|
-
#
|
66
|
-
# This does not work for separators (tasks with the `resource_subtype` of section).
|
67
|
-
#
|
68
|
-
# task - [Gid] The task to add to this section
|
69
|
-
# insert_before - [Gid] Insert the given task immediately before the task specified by this parameter. Cannot be provided together with `insert_after`.
|
70
|
-
# insert_after - [Gid] Insert the given task immediately after the task specified by this parameter. Cannot be provided together with `insert_before`.
|
71
|
-
# options - [Hash] the request I/O options.
|
72
|
-
# data - [Hash] the attributes to post.
|
73
|
-
def add_task(client, task: required("task"), insert_before: nil, insert_after: nil, options: {}, **data)
|
74
|
-
with_params = data.merge(insert_before: insert_before, insert_after: insert_after).reject { |_,v| v.nil? || Array(v).empty? }
|
75
|
-
Task.new(parse(client.post("/sections/#{task}/addTask", body: with_params, options: options)).first, client: client)
|
56
|
+
self.new(parse(client.get("/sections/#{gid}", options: options)).first, client: client)
|
76
57
|
end
|
77
58
|
end
|
78
59
|
|
@@ -107,6 +88,21 @@ module Asana
|
|
107
88
|
client.delete("/sections/#{gid}") && true
|
108
89
|
end
|
109
90
|
|
91
|
+
# Add a task to a specific, existing section. This will remove the task from other sections of the project.
|
92
|
+
#
|
93
|
+
# The task will be inserted at the top of a section unless an `insert_before` or `insert_after` parameter is declared.
|
94
|
+
#
|
95
|
+
# This does not work for separators (tasks with the `resource_subtype` of section).
|
96
|
+
#
|
97
|
+
# insert_before - [Gid] Insert the given task immediately before the task specified by this parameter. Cannot be provided together with `insert_after`.
|
98
|
+
# insert_after - [Gid] Insert the given task immediately after the task specified by this parameter. Cannot be provided together with `insert_before`.
|
99
|
+
# options - [Hash] the request I/O options.
|
100
|
+
# data - [Hash] the attributes to post.
|
101
|
+
def add_task(insert_before: nil, insert_after: nil, options: {}, **data)
|
102
|
+
with_params = data.merge(insert_before: insert_before, insert_after: insert_after).reject { |_,v| v.nil? || Array(v).empty? }
|
103
|
+
Task.new(parse(client.post("/sections/#{gid}/addTask", body: with_params, options: options)).first, client: client)
|
104
|
+
end
|
105
|
+
|
110
106
|
# Move sections relative to each other in a board view. One of
|
111
107
|
# `before_section` or `after_section` is required.
|
112
108
|
#
|
@@ -1,5 +1,4 @@
|
|
1
|
-
|
2
|
-
### edit it manually.
|
1
|
+
require_relative 'gen/stories_base'
|
3
2
|
|
4
3
|
module Asana
|
5
4
|
module Resources
|
@@ -7,11 +6,9 @@ module Asana
|
|
7
6
|
# system. Stories are generated by the system whenever users take actions such
|
8
7
|
# as creating or assigning tasks, or moving tasks between projects. _Comments_
|
9
8
|
# are also a form of user-generated story.
|
10
|
-
class Story <
|
9
|
+
class Story < StoriesBase
|
11
10
|
|
12
11
|
|
13
|
-
attr_reader :id
|
14
|
-
|
15
12
|
attr_reader :gid
|
16
13
|
|
17
14
|
attr_reader :resource_type
|