diff --git a/independent-publisher-connectors/Toggl Plan/apiDefinition.swagger.json b/independent-publisher-connectors/Toggl Plan/apiDefinition.swagger.json new file mode 100644 index 0000000000..fd1631fbdc --- /dev/null +++ b/independent-publisher-connectors/Toggl Plan/apiDefinition.swagger.json @@ -0,0 +1,2775 @@ +{ + "swagger": "2.0", + "info": { + "title": "Toggl Plan", + "description": "Plan, collaborate, and get projects done with Toggl Plan", + "version": "1.0", + "contact": { + "name": "Daniel Laskewitz | Sogeti", + "url": "https://youtube.com/daniellaskewitz", + "email": "connectorsupport@laskewitz.io" + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://toggl.com/plan/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://toggl.com/plan/privacy" + }, + { + "propertyName": "Categories", + "propertyValue": "Business Management;Productivity" + } + ], + "host": "api.plan.toggl.com", + "basePath": "/", + "schemes": ["https"], + "consumes": ["application/json"], + "produces": [], + "paths": { + "/api/v5/me": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/User_Profile_Response" + } + } + }, + "summary": "Get my profile information", + "description": "Returns the profile information of the logged in user.", + "operationId": "GetProfileInformation", + "parameters": [] + }, + "put": { + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/User_Profile_Response" + } + } + }, + "summary": "Update my profile", + "description": "Updates the profile of the logged in user.", + "operationId": "UpdateProfile", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "color_id": { + "type": "integer", + "format": "int32", + "description": "Color id", + "title": "color_id" + }, + "email": { + "type": "string", + "description": "Email" + }, + "has_picture": { + "type": "boolean", + "description": "Has picture" + }, + "initials": { + "type": "string", + "description": "Initials" + }, + "invitations": { + "type": "array", + "items": {}, + "description": "Invitations" + }, + "legal_consent_pending": { + "type": "boolean", + "description": "Legal consent pending" + }, + "manager": { + "type": "string", + "description": "Manager" + }, + "name": { + "type": "string", + "description": "Name" + }, + "picture_url": { + "type": "string", + "description": "Picture url" + }, + "preferences": { + "type": "object", + "properties": { + "hide_weekends": { + "type": "boolean", + "description": "Hide weekends" + }, + "highlight_done_tasks": { + "type": "boolean", + "description": "Highlight done tasks" + }, + "onboarding_emails": { + "type": "boolean", + "description": "Onboarding emails" + }, + "pin_me_on_top": { + "type": "boolean", + "description": "Pin me on top" + }, + "selected_account_id": { + "type": "string", + "description": "Selected account id" + }, + "selected_group_id": { + "type": "string", + "description": "Selected group id" + }, + "selected_project_id": { + "type": "string", + "description": "Selected project id" + }, + "start_of_week": { + "type": "integer", + "format": "int32", + "description": "Start of week" + }, + "task_notifications": { + "type": "boolean", + "description": "Task notifications" + }, + "timezone": { + "type": "string", + "description": "Timezone" + }, + "vision_impaired": { + "type": "boolean", + "description": "Vision impaired" + }, + "vision_impaired_big_font": { + "type": "boolean", + "description": "Vision impaired big font" + }, + "vision_impaired_borders": { + "type": "boolean", + "description": "Vision impaired borders" + }, + "vision_impaired_contrast_text": { + "type": "boolean", + "description": "Vision impaired contrast text" + }, + "vision_impaired_light_colors": { + "type": "boolean", + "description": "Vision impaired light colors" + }, + "vision_impaired_patterns": { + "type": "boolean", + "description": "Vision impaired patterns" + }, + "vision_impaired_today": { + "type": "boolean", + "description": "Vision impaired today" + }, + "vision_impaired_weekends": { + "type": "boolean", + "description": "Vision impaired weekends" + } + }, + "description": "Preferences" + } + } + } + } + ] + } + }, + "/api/v5/{workspace_id}/dummy_users": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/Dummy_User_Response" + } + } + }, + "summary": "Add a new member", + "description": "Creates a member that has not yet been linked with an existing user.", + "operationId": "AddMember", + "parameters": [ + { + "$ref": "#/parameters/Workspace" + }, + { + "name": "body", + "in": "body", + "x-ms-summary": "Body", + "required": false, + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "x-ms-summary": "Name", + "description": "Name of the member." + }, + "role": { + "type": "string", + "x-ms-summary": "Role", + "description": "Role of the member" + } + } + } + } + ] + } + }, + "/api/v5/{workspace_id}/dummy_users/{member_id}": { + "put": { + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/Non_Existing_User_Response" + } + } + }, + "summary": "Update member not yet linked with existing user", + "description": "Updates a member that has not yet been linked with an existing user.", + "operationId": "UpdateMemberNotLinkedWithExistingUser", + "parameters": [ + { + "$ref": "#/parameters/Workspace" + }, + { + "$ref": "#/parameters/Member" + }, + { + "name": "body", + "in": "body", + "x-ms-summary": "", + "required": false, + "schema": { + "$ref": "#/definitions/Non_Existing_User" + } + } + ] + } + }, + "/api/v5/{workspace_id}/members": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/User" + } + } + } + }, + "summary": "Fetch list of members", + "description": "Fetches the list of members belonging to a workspace.", + "operationId": "FetchMembers", + "parameters": [ + { + "$ref": "#/parameters/Workspace" + } + ] + } + }, + "/api/v5/{workspace_id}/members/{membership_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/Member_Response" + } + } + }, + "summary": "Get member", + "description": "Gets a member belonging to a workspace by ID.", + "operationId": "GetMember", + "parameters": [ + { + "$ref": "#/parameters/Workspace" + }, + { + "$ref": "#/parameters/Membership" + } + ] + }, + "put": { + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/Member_Response" + } + } + }, + "summary": "Update member", + "description": "Updates a member belonging to a workspace by ID.", + "operationId": "UpdateMember", + "parameters": [ + { + "$ref": "#/parameters/Workspace" + }, + { + "$ref": "#/parameters/Membership" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "name" + }, + "initials": { + "type": "string", + "description": "initials" + }, + "color": { + "type": "string", + "description": "color" + }, + "weight": { + "type": "integer", + "format": "int32", + "description": "weight" + } + } + } + } + ] + } + }, + "/api/v5/{workspace_id}/members/{member_id}": { + "delete": { + "responses": { + "200": { + "description": "default", + "schema": {} + } + }, + "summary": "Remove member", + "description": "Removes a member from a workspace by ID.", + "operationId": "RemoveMember", + "parameters": [ + { + "$ref": "#/parameters/Workspace" + }, + { + "$ref": "#/parameters/Member" + } + ] + } + }, + "/api/v5/{workspace_id}/tasks/timeline": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Task_Response" + } + } + } + }, + "summary": "Fetch list of tasks", + "description": "Fetches a list of tasks belonging to a workspace.", + "operationId": "FetchTasks", + "parameters": [ + { + "$ref": "#/parameters/Workspace" + }, + { + "name": "since", + "in": "query", + "description": "Only tasks after this date will be returned. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.", + "x-ms-summary": "Since", + "required": false, + "type": "string", + "format": "date-time" + }, + { + "name": "until", + "in": "query", + "description": "Only tasks before this date will be returned. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.", + "x-ms-summary": "Until", + "required": false, + "type": "string" + }, + { + "name": "users", + "in": "query", + "description": "Filters tasks by users. Only available when filter is set to timeline.", + "x-ms-summary": "Users", + "required": false, + "type": "array", + "items": { + "type": "integer" + } + }, + { + "name": "tasks", + "in": "query", + "description": "Filters tasks by a list of ids.", + "x-ms-summary": "Tasks", + "required": false, + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "group", + "in": "query", + "description": "Filters tasks by group.", + "x-ms-summary": "Group", + "required": false, + "type": "integer" + }, + { + "name": "tags", + "in": "query", + "description": "Filters tasks by a list of tags.", + "x-ms-summary": "Tags", + "required": false, + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "project", + "in": "query", + "description": "Filters tasks by projects.", + "x-ms-dynamic-values": { + "operationId": "FetchProjects", + "value-path": "id", + "value-title": "name", + "parameters": { + "workspace_id": { + "parameter": "workspace_id" + } + } + }, + "x-ms-summary": "Project", + "required": false, + "type": "integer" + } + ] + } + }, + "/api/v5/{workspace_id}/tasks": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/Task_Response" + } + } + }, + "summary": "Add a task", + "description": "Adds a new task to a workspace.", + "operationId": "AddTask", + "parameters": [ + { + "$ref": "#/parameters/Workspace" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "$ref": "#/definitions/Task" + } + } + ] + } + }, + "/api/v5/{workspace_id}/tasks/{task_id}": { + "delete": { + "responses": { + "200": { + "description": "default", + "schema": {} + } + }, + "summary": "Remove a task", + "description": "Removes a task from a workspace by ID.", + "operationId": "RemoveTask", + "parameters": [ + { + "$ref": "#/parameters/Workspace" + }, + { + "$ref": "#/parameters/Task" + } + ] + }, + "put": { + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/Task_Response" + } + } + }, + "summary": "Update a task", + "description": "Updates a task from a workspace by ID.", + "operationId": "UpdateTask", + "parameters": [ + { + "$ref": "#/parameters/Workspace" + }, + { + "$ref": "#/parameters/Task" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "$ref": "#/definitions/Task" + } + } + ] + } + }, + "/api/v5/{workspace_id}/milestones": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Milestone_Response" + } + } + } + }, + "summary": "Fetch list of milestones", + "description": "Fetches a list of milestones belonging to a workspace.", + "operationId": "FetchMilestones", + "parameters": [ + { + "$ref": "#/parameters/Workspace" + }, + { + "name": "since", + "in": "query", + "description": "Only tasks after this date will be returned. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.", + "x-ms-summary": "Since", + "required": false, + "type": "string" + }, + { + "name": "until", + "in": "query", + "description": "Only tasks before this date will be returned. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.", + "x-ms-summary": "Until", + "required": false, + "type": "string" + }, + { + "name": "groups", + "in": "query", + "description": "Filters milestones by groups.", + "x-ms-summary": "Groups", + "required": false, + "type": "integer" + }, + { + "name": "projects", + "in": "query", + "description": "Filters milestones by projects.", + "x-ms-summary": "Projects", + "required": false, + "type": "integer" + } + ] + }, + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/Milestone_Response" + } + } + }, + "summary": "Add a new milestone", + "description": "Adds a new milestone to a workspace.", + "operationId": "AddMilestone", + "parameters": [ + { + "$ref": "#/parameters/Workspace" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "color": { + "type": "integer", + "format": "int32", + "x-ms-summary": "Color", + "description": "Color of the milestone." + }, + "color_id": { + "type": "integer", + "format": "int32", + "x-ms-summary": "Color ID", + "description": "Color id of the milestone." + }, + "date": { + "type": "string", + "format": "date-time", + "x-ms-summary": "Date", + "description": "Date of the milestone." + }, + "done": { + "type": "boolean", + "x-ms-summary": "Done", + "description": "Milestone done or not." + }, + "group_id": { + "type": "integer", + "format": "int32", + "x-ms-dynamic-values": { + "operationId": "FetchGroups", + "value-path": "id", + "value-title": "name", + "parameters": { + "workspace_id": { + "parameter": "workspace_id" + } + } + }, + "x-ms-summary": "Group", + "description": "Group ID" + }, + "holiday": { + "type": "boolean", + "x-ms-summary": "Holiday", + "description": "Is the milestone a holiday or not." + }, + "name": { + "type": "string", + "x-ms-summary": "Name", + "description": "Name of the milestone." + }, + "project_id": { + "type": "integer", + "format": "int32", + "description": "Project ID", + "x-ms-summary": "Project", + "x-ms-dynamic-values": { + "operationId": "FetchProjects", + "value-path": "id", + "value-title": "name", + "parameters": { + "workspace_id": { + "parameter": "workspace_id" + } + } + } + } + } + } + } + ] + } + }, + "/api/v5/{workspace_id}/milestones/{milestone_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/Milestone_Response" + } + } + }, + "summary": "Get a milestone", + "description": "Gets a milestone from a workspace by ID.", + "operationId": "GetMilestone", + "parameters": [ + { + "$ref": "#/parameters/Workspace" + }, + { + "$ref": "#/parameters/Milestone" + } + ] + }, + "delete": { + "responses": { + "200": { + "description": "default", + "schema": {} + } + }, + "summary": "Remove a milestone", + "description": "Removes a milestone from a workspace by ID.", + "operationId": "RemoveMilestone", + "parameters": [ + { + "name": "workspace_id", + "in": "path", + "description": "Workspace id", + "x-ms-summary": "Workspace", + "x-ms-dynamic-values": { + "operationId": "GetProfileInformation", + "value-collection": "workspaces", + "value-path": "id", + "value-title": "name" + }, + "x-ms-url-encoding": "single", + "required": true, + "type": "string" + }, + { + "name": "milestone_id", + "in": "path", + "description": "Milestone id", + "x-ms-summary": "Milestone ID", + "x-ms-url-encoding": "single", + "required": true, + "type": "string" + } + ] + }, + "put": { + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/Milestone_Response" + } + } + }, + "summary": "Update a milestone", + "description": "Updates a milestone from a workspace by ID.", + "operationId": "UpdateMilestone", + "parameters": [ + { + "$ref": "#/parameters/Workspace" + }, + { + "$ref": "#/parameters/Milestone" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "$ref": "#/definitions/Milestone" + } + } + ] + } + }, + "/api/v5/{workspace_id}/projects": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/Projects_Response" + } + } + }, + "summary": "Fetch a list of projects", + "description": "Fetches a list of projects belonging to a workspace.", + "operationId": "FetchProjects", + "parameters": [ + { + "$ref": "#/parameters/Workspace" + } + ] + }, + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/Project_Response" + } + } + }, + "summary": "Add a new project", + "description": "Adds a new project to a workspace.", + "operationId": "AddProject", + "parameters": [ + { + "$ref": "#/parameters/Workspace" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "x-ms-summary": "Name", + "description": "Name" + }, + "color": { + "type": "string", + "x-ms-summary": "Color", + "description": "Color" + }, + "board_enabled": { + "type": "boolean", + "x-ms-summary": "Board Enabled", + "description": "Board Enabled" + } + } + } + } + ] + } + }, + "/api/v5/{workspace_id}/projects/{project_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/Project_Response" + } + } + }, + "summary": "Get a project", + "description": "Gets a project from a workspace by ID.", + "operationId": "GetProject", + "parameters": [ + { + "$ref": "#/parameters/Workspace" + }, + { + "$ref": "#/parameters/Project" + } + ] + }, + "delete": { + "responses": { + "200": { + "description": "default", + "schema": {} + } + }, + "summary": "Remove a project", + "description": "Removes a milestone from a workspace by ID.", + "operationId": "RemoveProject", + "parameters": [ + { + "$ref": "#/parameters/Workspace" + }, + { + "$ref": "#/parameters/Project" + } + ] + }, + "put": { + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/Project_Response" + } + } + }, + "summary": "Update a project", + "description": "Updates a milestone from a workspace by ID.", + "operationId": "UpdateProject", + "parameters": [ + { + "$ref": "#/parameters/Workspace" + }, + { + "$ref": "#/parameters/Project" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "x-ms-summary": "Name", + "description": "Name" + }, + "color": { + "type": "string", + "x-ms-summary": "Color", + "description": "Color" + }, + "board_enabled": { + "type": "boolean", + "x-ms-summary": "Board Enabled", + "description": "Board Enabled" + } + } + } + } + ] + } + }, + "/api/v5/{workspace_id}/groups": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Group_Inherited_Response" + } + } + } + }, + "summary": "Fetch a list of groups", + "description": "Fetches a list of groups belonging to a workspace.", + "operationId": "FetchGroups", + "parameters": [ + { + "$ref": "#/parameters/Workspace" + } + ] + }, + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/Group_Response" + } + } + }, + "summary": "Add a new group", + "description": "Adds a new group to a workspace.", + "operationId": "AddGroup", + "parameters": [ + { + "$ref": "#/parameters/Workspace" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "x-ms-summary": "Name", + "description": "Name of the group." + }, + "user_ids": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "x-ms-summary": "User ID's", + "description": "User ID's (comma separated array)." + } + } + } + } + ] + } + }, + "/api/v5/{workspace_id}/groups/{group_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/Group_Response" + } + } + }, + "summary": "Get a group", + "description": "Gets a group from a workspace by ID.", + "operationId": "GetGroup", + "parameters": [ + { + "$ref": "#/parameters/Workspace" + }, + { + "$ref": "#/parameters/Group" + } + ] + }, + "put": { + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/Group_Response" + } + } + }, + "summary": "Update a group", + "description": "Updates a group from a workspace by ID.", + "operationId": "UpdateGroup", + "parameters": [ + { + "$ref": "#/parameters/Workspace" + }, + { + "$ref": "#/parameters/Group" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "x-ms-summary": "Name", + "description": "Name of the Group" + }, + "user_ids": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "x-ms-summary": "User ID's", + "description": "User ID's (comma separated array)." + } + } + } + } + ] + }, + "delete": { + "responses": { + "200": { + "description": "default", + "schema": {} + } + }, + "summary": "Remove a group", + "description": "Removes a group from a workspace by ID.", + "operationId": "RemoveGroup", + "parameters": [ + { + "$ref": "#/parameters/Workspace" + }, + { + "$ref": "#/parameters/Group" + } + ] + } + }, + "/api/v5/{workspace_id}/groups/{group_id}/memberships": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/Group_Membership_Response" + } + } + }, + "summary": "Add a new user to group", + "description": "Adds a new group membership to a workspace.", + "operationId": "AddUserToGroup", + "parameters": [ + { + "$ref": "#/parameters/Workspace" + }, + { + "$ref": "#/parameters/Group" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "user_id": { + "type": "integer", + "format": "int32", + "x-ms-description": "User ID", + "description": "ID of the user that should be added to the group." + } + } + } + } + ] + } + }, + "/api/v5/{workspace_id}/groups/{group_id}/memberships/{membership_id}": { + "delete": { + "responses": { + "200": { + "description": "default", + "schema": {} + } + }, + "summary": "Remove a group membership", + "description": "Removes a group membership from a workspace by ID.", + "operationId": "RemoveGroupMember", + "parameters": [ + { + "$ref": "#/parameters/Workspace" + }, + { + "$ref": "#/parameters/Group" + }, + { + "$ref": "#/parameters/Membership" + } + ] + } + } + }, + "definitions": { + "Dummy_User_Response": { + "type": "object", + "properties": { + "color_id": { + "type": "integer", + "format": "int32", + "description": "Color id" + }, + "created_at": { + "type": "string", + "description": "Created at" + }, + "deleted_at": { + "type": "string", + "description": "Deleted at" + }, + "email": { + "type": "string", + "description": "Email" + }, + "id": { + "type": "integer", + "format": "int32", + "x-ms-summary": "User ID", + "description": "Id of the user." + }, + "initials": { + "type": "string", + "description": "Initials" + }, + "invitation": { + "type": "string", + "description": "Invitation" + }, + "is_guest": { + "type": "boolean", + "description": "Is guest" + }, + "membership_id": { + "type": "integer", + "format": "int32", + "description": "Membership id" + }, + "name": { + "type": "string", + "description": "Name" + }, + "pretended_email": { + "type": "string", + "description": "Pretended email" + }, + "updated_at": { + "type": "string", + "x-ms-summary": "Updated At", + "description": "User updated at." + } + } + }, + "Group_Response": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "description": "Created At" + }, + "group_id": { + "type": "integer", + "format": "int32", + "description": "Group ID" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "ID" + }, + "position": { + "type": "integer", + "format": "int32", + "description": "Position" + }, + "updated_at": { + "type": "string", + "description": "Updated At" + }, + "user_id": { + "type": "integer", + "format": "int32", + "description": "User ID" + } + } + }, + "Group_Inherited_Response": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "description": "Created At" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "ID" + }, + "memberships": { + "type": "array", + "items": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "description": "Created At" + }, + "group_id": { + "type": "integer", + "format": "int32", + "description": "Group ID" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "ID" + }, + "position": { + "type": "integer", + "format": "int32", + "description": "Position" + }, + "updated_at": { + "type": "string", + "description": "Updated At" + }, + "user_id": { + "type": "integer", + "format": "int32", + "description": "User ID" + } + } + }, + "description": "Memberships" + }, + "name": { + "type": "string", + "description": "Name" + }, + "position": { + "type": "string", + "description": "Position" + }, + "updated_at": { + "type": "string", + "description": "Updated At" + } + } + }, + "Group_Membership_Response": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "description": "Created At" + }, + "group_id": { + "type": "integer", + "format": "int32", + "description": "Group ID" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "ID" + }, + "position": { + "type": "integer", + "format": "int32", + "description": "Position" + }, + "updated_at": { + "type": "string", + "description": "Updated At" + }, + "user_id": { + "type": "integer", + "format": "int32", + "description": "User ID" + } + } + }, + "Milestone": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name" + }, + "date": { + "type": "string", + "description": "Date" + }, + "done": { + "type": "boolean", + "description": "Done" + }, + "holiday": { + "type": "boolean", + "description": "Holiday" + }, + "group_id": { + "type": "integer", + "format": "int32", + "description": "Group ID" + }, + "project_id": { + "type": "integer", + "format": "int32", + "description": "Project ID", + "x-ms-dynamic-values": { + "operationId": "FetchProjects", + "value-path": "id", + "value-title": "name", + "parameters": { + "workspace_id": { + "parameter": "workspace_id" + } + } + } + } + } + }, + "Milestone_Response": { + "type": "object", + "properties": { + "color": { + "type": "integer", + "format": "int32", + "description": "Color" + }, + "color_id": { + "type": "integer", + "format": "int32", + "description": "Color ID" + }, + "created_at": { + "type": "string", + "description": "Created At" + }, + "date": { + "type": "string", + "description": "Date" + }, + "done": { + "type": "boolean", + "description": "Done" + }, + "group_id": { + "type": "string", + "description": "Group ID" + }, + "holiday": { + "type": "boolean", + "description": "Holiday" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "ID" + }, + "name": { + "type": "string", + "description": "Name" + }, + "project_id": { + "type": "integer", + "format": "int32", + "description": "Project ID" + }, + "updated_at": { + "type": "string", + "description": "Updated At" + } + } + }, + "Member_Response": { + "type": "object", + "properties": { + "activated_at": { + "type": "string", + "description": "Activated at" + }, + "active": { + "type": "boolean", + "description": "Active" + }, + "color_id": { + "type": "integer", + "format": "int32", + "description": "Color id" + }, + "created_at": { + "type": "string", + "description": "Created at" + }, + "deactivated_at": { + "type": "string", + "description": "Deactivated at" + }, + "dummy": { + "type": "boolean", + "description": "Dummy" + }, + "email": { + "type": "string", + "description": "Email" + }, + "hours_per_work_day": { + "type": "string", + "description": "Hours per work day" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "Id" + }, + "initials": { + "type": "string", + "description": "Initials" + }, + "invitation": { + "type": "string", + "description": "Invitation" + }, + "is_guest": { + "type": "boolean", + "description": "Is guest" + }, + "membership_id": { + "type": "integer", + "format": "int32", + "description": "Membership id" + }, + "minutes_per_work_day": { + "type": "string", + "description": "Minutes per work day" + }, + "name": { + "type": "string", + "description": "Name" + }, + "picture_url": { + "type": "string", + "description": "Picture url" + }, + "preferences": { + "type": "object", + "properties": { + "holidays_locale": { + "type": "string", + "description": "Holidays locale" + }, + "tracking_access_token": { + "type": "string", + "description": "Tracking access token" + }, + "weekly_digest": { + "type": "boolean", + "description": "Weekly digest" + } + }, + "description": "Preferences" + }, + "role": { + "type": "string", + "description": "Role" + }, + "updated_at": { + "type": "string", + "description": "Updated at" + }, + "user": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "description": "Created at" + }, + "deleted_at": { + "type": "string", + "description": "Deleted at" + }, + "email": { + "type": "string", + "description": "Email" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "Id" + }, + "initials": { + "type": "string", + "description": "Initials" + }, + "name": { + "type": "string", + "description": "Name" + }, + "pretended_email": { + "type": "string", + "description": "Pretended email" + }, + "suspended_at": { + "type": "string", + "description": "Suspended at" + }, + "updated_at": { + "type": "string", + "description": "Updated at" + } + }, + "description": "User" + } + } + }, + "Non_Existing_User": { + "type": "object", + "properties": { + "color_id": { + "type": "integer", + "format": "int32", + "description": "Color id" + }, + "email": { + "type": "string", + "description": "Email" + }, + "initials": { + "type": "string", + "description": "Initials" + }, + "invitation": { + "type": "string", + "description": "Invitation" + }, + "is_guest": { + "type": "boolean", + "description": "Is guest" + }, + "membership_id": { + "type": "integer", + "format": "int32", + "description": "Membership id" + }, + "name": { + "type": "string", + "description": "Name" + }, + "pretended_email": { + "type": "string", + "description": "Pretended email" + } + } + }, + "Non_Existing_User_Response": { + "type": "object", + "properties": { + "color_id": { + "type": "integer", + "format": "int32", + "description": "Color id" + }, + "created_at": { + "type": "string", + "description": "Created at" + }, + "deleted_at": { + "type": "string", + "description": "Deleted at" + }, + "email": { + "type": "string", + "description": "Email" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "Id" + }, + "initials": { + "type": "string", + "description": "Initials" + }, + "invitation": { + "type": "string", + "description": "Invitation" + }, + "is_guest": { + "type": "string", + "description": "Is guest" + }, + "membership_id": { + "type": "string", + "description": "Membership id" + }, + "name": { + "type": "string", + "description": "Name" + }, + "pretended_email": { + "type": "string", + "description": "Pretended email" + }, + "updated_at": { + "type": "string", + "description": "Updated at" + } + } + }, + "Project_Response": { + "type": "object", + "properties": { + "archived": { + "type": "boolean", + "description": "Archived" + }, + "board_enabled": { + "type": "boolean", + "description": "Board Enabled" + }, + "color": { + "type": "integer", + "format": "int32", + "description": "Color" + }, + "color_id": { + "type": "integer", + "format": "int32", + "description": "Color ID" + }, + "created_at": { + "type": "string", + "description": "Created At" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "ID" + }, + "name": { + "type": "string", + "description": "Name" + }, + "position": { + "type": "string", + "description": "Position" + }, + "segments": { + "type": "array", + "items": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "description": "Created At" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "ID" + }, + "name": { + "type": "string", + "description": "Name" + }, + "position": { + "type": "integer", + "format": "int32", + "description": "Position" + }, + "project_id": { + "type": "integer", + "format": "int32", + "description": "Project ID" + } + } + }, + "description": "Segments" + }, + "tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "color_id": { + "type": "integer", + "format": "int32", + "description": "Color ID" + }, + "created_at": { + "type": "string", + "description": "Created At" + }, + "custom_color_id": { + "type": "string", + "description": "Custom Color ID" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "ID" + }, + "name": { + "type": "string", + "description": "Name" + }, + "plan_id": { + "type": "integer", + "format": "int32", + "description": "Plan ID" + } + } + }, + "description": "Tags" + }, + "timeline_enabled": { + "type": "boolean", + "description": "Timeline Enabled" + }, + "updated_at": { + "type": "string", + "description": "Updated At" + }, + "statuses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "description": "Created At" + }, + "hidden": { + "type": "boolean", + "description": "Hidden" + }, + "icon": { + "type": "string", + "description": "Icon" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "ID" + }, + "is_done": { + "type": "boolean", + "description": "Is Done" + }, + "name": { + "type": "string", + "description": "Name" + }, + "plan_id": { + "type": "integer", + "format": "int32", + "description": "Plan ID" + }, + "position": { + "type": "integer", + "format": "int32", + "description": "Position" + } + } + }, + "description": "Statuses" + } + } + }, + "Projects_Response": { + "type": "array", + "items": { + "type": "object", + "properties": { + "archived": { + "type": "boolean", + "description": "Archived" + }, + "board_enabled": { + "type": "boolean", + "description": "Board Enabled" + }, + "color": { + "type": "integer", + "format": "int32", + "description": "Color" + }, + "color_id": { + "type": "integer", + "format": "int32", + "description": "Color ID" + }, + "created_at": { + "type": "string", + "description": "Created At" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "ID" + }, + "name": { + "type": "string", + "description": "Name" + }, + "position": { + "type": "string", + "description": "Position" + }, + "segments": { + "type": "array", + "items": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "description": "Created At" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "ID" + }, + "name": { + "type": "string", + "description": "Name" + }, + "position": { + "type": "integer", + "format": "int32", + "description": "Position" + }, + "project_id": { + "type": "integer", + "format": "int32", + "description": "Project ID" + } + } + }, + "description": "Segments" + }, + "tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "color_id": { + "type": "integer", + "format": "int32", + "description": "Color ID" + }, + "created_at": { + "type": "string", + "description": "Created At" + }, + "custom_color_id": { + "type": "string", + "description": "Custom Color ID" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "ID" + }, + "name": { + "type": "string", + "description": "Name" + }, + "plan_id": { + "type": "integer", + "format": "int32", + "description": "Plan ID" + } + } + }, + "description": "Tags" + }, + "timeline_enabled": { + "type": "boolean", + "description": "Timeline Enabled" + }, + "updated_at": { + "type": "string", + "description": "Updated At" + }, + "statuses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "description": "Created At" + }, + "hidden": { + "type": "boolean", + "description": "Hidden" + }, + "icon": { + "type": "string", + "description": "Icon" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "ID" + }, + "is_done": { + "type": "boolean", + "description": "Is Done" + }, + "name": { + "type": "string", + "description": "Name" + }, + "plan_id": { + "type": "integer", + "format": "int32", + "description": "Plan ID" + }, + "position": { + "type": "integer", + "format": "int32", + "description": "Position" + } + } + }, + "description": "Statuses" + } + } + } + }, + "Task": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name" + }, + "start_date": { + "type": "string", + "description": "Start Date" + }, + "end_date": { + "type": "string", + "description": "End Date" + }, + "start_time": { + "type": "string", + "description": "Start Time" + }, + "end_time": { + "type": "string", + "description": "End Time" + }, + "color": { + "type": "string", + "description": "Color" + }, + "estimated_hours": { + "type": "integer", + "format": "int32", + "description": "Estimated Hours" + }, + "pinned": { + "type": "boolean", + "description": "Pinned" + }, + "status": { + "type": "string", + "description": "Status" + }, + "project_id": { + "type": "integer", + "format": "int32", + "description": "Project ID", + "x-ms-dynamic-values": { + "operationId": "FetchProjects", + "value-path": "id", + "value-title": "name", + "parameters": { + "workspace_id": { + "parameter": "workspace_id" + } + } + } + }, + "workspace_members": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "Workspace Members" + } + } + }, + "Task_Response": { + "type": "object", + "properties": { + "color": { + "type": "string", + "description": "Color" + }, + "color_id": { + "type": "string", + "description": "Color ID" + }, + "created_at": { + "type": "string", + "description": "Created At" + }, + "created_by": { + "type": "integer", + "format": "int32", + "description": "Created By" + }, + "done": { + "type": "boolean", + "description": "Done" + }, + "end_date": { + "type": "string", + "description": "End Date" + }, + "end_time": { + "type": "string", + "description": "End Time" + }, + "estimate_type": { + "type": "string", + "description": "Estimate Type" + }, + "estimated_minutes": { + "type": "string", + "description": "Estimated Minutes" + }, + "folder_id": { + "type": "string", + "description": "Folder ID" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "ID" + }, + "name": { + "type": "string", + "description": "Name" + }, + "notes": { + "type": "string", + "description": "Notes" + }, + "original_repeated_task_id": { + "type": "string", + "description": "Original Repeated Task ID" + }, + "parent_id": { + "type": "string", + "description": "Parent ID" + }, + "plan_status_position": { + "type": "string", + "description": "Plan Status Position" + }, + "project": { + "type": "object", + "properties": { + "archived": { + "type": "boolean", + "description": "Archived" + }, + "board_enabled": { + "type": "boolean", + "description": "Board Enabled" + }, + "color": { + "type": "integer", + "format": "int32", + "description": "Color" + }, + "color_id": { + "type": "integer", + "format": "int32", + "description": "Color ID" + }, + "created_at": { + "type": "string", + "description": "Created At" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "ID" + }, + "name": { + "type": "string", + "description": "Name" + }, + "position": { + "type": "string", + "description": "Position" + }, + "timeline_enabled": { + "type": "boolean", + "description": "Timeline Enabled" + }, + "updated_at": { + "type": "string", + "description": "Updated At" + } + }, + "description": "Project" + }, + "project_id": { + "type": "integer", + "format": "int32", + "description": "Project ID" + }, + "project_segment": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "description": "Created At" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "ID" + }, + "name": { + "type": "string", + "description": "Name" + }, + "position": { + "type": "integer", + "format": "int32", + "description": "Position" + }, + "project_id": { + "type": "integer", + "format": "int32", + "description": "Project ID" + } + }, + "description": "Project Segment" + }, + "project_segment_id": { + "type": "integer", + "format": "int32", + "description": "Project Segment ID" + }, + "repetition_rule": { + "type": "string", + "description": "Repetition Rule" + }, + "start_date": { + "type": "string", + "description": "Start Date" + }, + "start_time": { + "type": "string", + "description": "Start Time" + }, + "status": { + "type": "string", + "description": "Status" + }, + "tag_ids": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "Tag IDs" + }, + "updated_at": { + "type": "string", + "description": "Updated At" + }, + "updated_by": { + "type": "integer", + "format": "int32", + "description": "Updated By" + }, + "user_id": { + "type": "integer", + "format": "int32", + "description": "User ID" + }, + "visible_properties": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Visible Properties" + }, + "weight": { + "type": "string", + "description": "weight" + }, + "workspace_members": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "Workspace Members" + } + } + }, + "User": { + "type": "object", + "properties": { + "activated_at": { + "type": "string", + "description": "Activated at" + }, + "active": { + "type": "boolean", + "description": "Active" + }, + "color_id": { + "type": "integer", + "format": "int32", + "description": "Color id" + }, + "created_at": { + "type": "string", + "description": "Created at" + }, + "deactivated_at": { + "type": "string", + "description": "Deactivated at" + }, + "dummy": { + "type": "boolean", + "description": "Dummy" + }, + "email": { + "type": "string", + "description": "Email" + }, + "hours_per_work_day": { + "type": "string", + "description": "Hours per work day" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "Id" + }, + "initials": { + "type": "string", + "description": "Initials" + }, + "invitation": { + "type": "string", + "description": "Invitation" + }, + "is_guest": { + "type": "boolean", + "description": "Is guest" + }, + "membership_id": { + "type": "integer", + "format": "int32", + "description": "Membership id" + }, + "minutes_per_work_day": { + "type": "string", + "description": "Minutes per work day" + }, + "name": { + "type": "string", + "description": "Name" + }, + "picture_url": { + "type": "string", + "description": "Picture url" + }, + "preferences": { + "$ref": "#/definitions/User_Preferences" + }, + "role": { + "type": "string", + "description": "Role" + }, + "updated_at": { + "type": "string", + "description": "Updated at" + }, + "user": { + "$ref": "#/definitions/User_Object" + } + } + }, + "User_Preferences": { + "type": "object", + "properties": { + "holidays_locale": { + "type": "string", + "description": "Holidays locale" + }, + "tracking_access_token": { + "type": "string", + "description": "Tracking access token" + }, + "weekly_digest": { + "type": "boolean", + "description": "Weekly digest" + } + }, + "description": "Preferences" + }, + "User_Object": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "description": "Created at" + }, + "deleted_at": { + "type": "string", + "description": "Deleted at" + }, + "email": { + "type": "string", + "description": "Email" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "Id" + }, + "initials": { + "type": "string", + "description": "Initials" + }, + "name": { + "type": "string", + "description": "Name" + }, + "pretended_email": { + "type": "string", + "description": "Pretended email" + }, + "suspended_at": { + "type": "string", + "description": "Suspended at" + }, + "updated_at": { + "type": "string", + "description": "Updated at" + } + }, + "description": "User" + }, + "User_Profile_Response": { + "type": "object", + "properties": { + "color_id": { + "type": "integer", + "format": "int32", + "x-ms-summary": "Color ID", + "description": "The color id of the logged in user" + }, + "created_at": { + "type": "string", + "format": "date-time", + "x-ms-summary": "Created At", + "description": "The logged in user is created at." + }, + "email": { + "type": "string", + "x-ms-summary": "Email", + "description": "Email of the logged in user." + }, + "email_verified_at": { + "type": "string", + "format": "date-time", + "x-ms-summary": "Email Verified At", + "description": "The logged in user's email has been verified at." + }, + "has_picture": { + "type": "boolean", + "x-ms-summary": "Has Picture", + "description": "The logged in user has a picture." + }, + "id": { + "type": "integer", + "format": "int32", + "x-ms-summary": "ID", + "description": "The id of the logged in user." + }, + "initials": { + "type": "string", + "x-ms-summary": "Initials", + "description": "Initials of the logged in user." + }, + "invitations": { + "type": "array", + "items": {}, + "description": "Invitations" + }, + "legal_consent_pending": { + "type": "boolean", + "x-ms-summary": "Legal Consent Pending", + "description": "The logged in user has a pending legal consent." + }, + "manager": { + "type": "string", + "x-ms-summary": "Manager", + "description": "The manager of the logged in user." + }, + "name": { + "type": "string", + "x-ms-summary": "Name", + "description": "Name of the logged in user." + }, + "picture_url": { + "type": "string", + "x-ms-summary": "Picture URL", + "description": "Picture url of the logged in user." + }, + "updated_at": { + "type": "string", + "x-ms-summary": "Updated At", + "description": "Updated at" + }, + "preferences": { + "$ref": "#/definitions/User_Profile_Preferences" + }, + "workspaces": { + "type": "array", + "items": { + "$ref": "#/definitions/User_Profile_Workspaces" + }, + "x-ms-summary": "Workspaces", + "description": "Workspaces of the logged in user." + } + } + }, + "User_Profile_Preferences": { + "type": "object", + "x-ms-summary": "Preferences", + "description": "Preferences of the logged in user.", + "properties": { + "hide_weekends": { + "type": "boolean", + "x-ms-summary": "Hide Weekends", + "description": "Hide weekends setting of the logged in user." + }, + "highlight_done_tasks": { + "type": "boolean", + "x-ms-summary": "Highlight Done Tasks", + "description": "Highlight done tasks setting of the logged in user." + }, + "onboarding_emails": { + "type": "boolean", + "x-ms-summary": "Onboarding Emails", + "description": "Onboarding emails setting of the logged in user." + }, + "pin_me_on_top": { + "type": "boolean", + "x-ms-summary": "Pin Me On Top", + "description": "Pin me on top setting of the logged in user." + }, + "selected_account_id": { + "type": "string", + "x-ms-summary": "Selected Account ID", + "description": "Selected account id of the logged in user." + }, + "selected_group_id": { + "type": "string", + "x-ms-summary": "Selected Group ID", + "description": "Selected group id of the logged in user." + }, + "selected_project_id": { + "type": "string", + "x-ms-summary": "Selected Project ID", + "description": "Selected project id of the logged in user." + }, + "start_of_week": { + "type": "integer", + "format": "int32", + "x-ms-summary": "Start Of Week", + "description": "Start of week setting of the logged in user." + }, + "task_notifications": { + "type": "boolean", + "x-ms-summary": "Task Notifications", + "description": "Task notifications setting of the logged in user." + }, + "timezone": { + "type": "string", + "x-ms-summary": "Timezone", + "description": "Timezone setting of the logged in user." + }, + "vision_impaired": { + "type": "boolean", + "x-ms-summary": "Vision Impaired", + "description": "Vision impaired setting of the logged in user." + }, + "vision_impaired_big_font": { + "type": "boolean", + "x-ms-summary": "Vision Impaired Big Font", + "description": "Vision impaired big font setting of the logged in user." + }, + "vision_impaired_borders": { + "type": "boolean", + "x-ms-summary": "Vision Impaired Borders", + "description": "Vision impaired borders setting of the logged in user." + }, + "vision_impaired_contrast_text": { + "type": "boolean", + "x-ms-summary": "Vision Impaired Contrast Text", + "description": "Vision impaired contrast text setting of the logged in user." + }, + "vision_impaired_light_colors": { + "type": "boolean", + "x-ms-summary": "Vision Impaired Light Colors", + "description": "Vision impaired light colors setting of the logged in user." + }, + "vision_impaired_patterns": { + "type": "boolean", + "x-ms-summary": "Vision Impaired Patterns", + "description": "Vision impaired patterns setting of the logged in user." + }, + "vision_impaired_today": { + "type": "boolean", + "x-ms-summary": "Vision Impaired Today", + "description": "Vision impaired today setting of the logged in user." + }, + "vision_impaired_weekends": { + "type": "boolean", + "x-ms-summary": "Vision Impaired Weekends", + "description": "Vision impaired weekends setting of the logged in user." + } + } + }, + "User_Profile_Workspaces": { + "type": "object", + "properties": { + "active": { + "type": "boolean", + "description": "Active" + }, + "created_at": { + "type": "string", + "description": "Created at" + }, + "custom_colors": { + "type": "array", + "items": {}, + "description": "Custom colors" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "Id" + }, + "name": { + "type": "string", + "description": "Name" + }, + "pricing_system": { + "type": "string", + "description": "Pricing system" + }, + "role": { + "type": "string", + "description": "Role" + }, + "suspended_at": { + "type": "string", + "description": "Suspended at" + }, + "updated_at": { + "type": "string", + "description": "Updated at" + } + } + } + }, + "parameters": { + "Group": { + "name": "group_id", + "in": "path", + "description": "Group id", + "x-ms-summary": "Group", + "x-ms-dynamic-values": { + "operationId": "FetchGroups", + "value-path": "id", + "value-title": "name", + "parameters": { + "workspace_id": { + "parameter": "workspace_id" + } + } + }, + "x-ms-url-encoding": "single", + "required": true, + "type": "string" + }, + "Member": { + "name": "member_id", + "in": "path", + "description": "Member id", + "x-ms-summary": "Member", + "x-ms-url-encoding": "single", + "x-ms-dynamic-values": { + "operationId": "FetchMembers", + "value-path": "id", + "value-title": "name", + "parameters": { + "workspace_id": { + "parameter": "workspace_id" + } + } + }, + "required": true, + "type": "string" + }, + "Membership": { + "name": "membership_id", + "in": "path", + "description": "Membership id", + "x-ms-summary": "Membership", + "x-ms-url-encoding": "single", + "required": true, + "type": "string" + }, + "Milestone": { + "name": "milestone_id", + "in": "path", + "description": "Milestone id", + "x-ms-summary": "Milestone ID", + "x-ms-url-encoding": "single", + "required": true, + "type": "string" + }, + "Project": { + "name": "project_id", + "in": "path", + "description": "Project id", + "x-ms-summary": "Project", + "x-ms-dynamic-values": { + "operationId": "FetchProjects", + "value-path": "id", + "value-title": "name", + "parameters": { + "workspace_id": { + "parameter": "workspace_id" + } + } + }, + "x-ms-url-encoding": "single", + "required": true, + "type": "string" + }, + "Task": { + "name": "task_id", + "in": "path", + "description": "Task id", + "x-ms-summary": "Task ID", + "x-ms-url-encoding": "single", + "required": true, + "type": "string" + }, + "Workspace": { + "name": "workspace_id", + "in": "path", + "description": "Workspace id", + "x-ms-summary": "Workspace", + "x-ms-dynamic-values": { + "operationId": "GetProfileInformation", + "value-collection": "workspaces", + "value-path": "id", + "value-title": "name" + }, + "x-ms-url-encoding": "single", + "required": true, + "type": "string" + } + }, + "responses": {}, + "securityDefinitions": { + "oauth2_auth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://plan.toggl.com/oauth/login", + "tokenUrl": "https://api.plan.toggl.com/api/v5/authenticate/token", + "scopes": {} + } + }, + "security": [ + { + "oauth2_auth": [] + } + ], + "tags": [] +} diff --git a/independent-publisher-connectors/Toggl Plan/apiProperties.json b/independent-publisher-connectors/Toggl Plan/apiProperties.json new file mode 100644 index 0000000000..af461417ec --- /dev/null +++ b/independent-publisher-connectors/Toggl Plan/apiProperties.json @@ -0,0 +1,47 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "", + "scopes": [], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False", + "IsOnbehalfofLoginSupported": false + }, + "customParameters": { + "authorizationUrl": { + "value": "https://plan.toggl.com/oauth/login" + }, + "tokenUrl": { + "value": "https://api.plan.toggl.com/api/v5/authenticate/token" + }, + "refreshUrl": { + "value": "https://api.plan.toggl.com/api/v5/authenticate/token" + } + } + } + } + }, + "iconBrandColor": "#000000", + "capabilities": [], + "policyTemplateInstances": [ + { + "templateId": "setheader", + "title": "Content Type", + "parameters": { + "x-ms-apimTemplateParameter.name": "Content-Type", + "x-ms-apimTemplateParameter.value": "application/json", + "x-ms-apimTemplateParameter.existsAction": "override", + "x-ms-apimTemplate-policySection": "Request" + } + } + ], + "publisher": "Daniel Laskewitz | Sogeti", + "stackOwner": "Toggl" + } +} diff --git a/independent-publisher-connectors/Toggl Plan/readme.md b/independent-publisher-connectors/Toggl Plan/readme.md new file mode 100644 index 0000000000..a0b3ed54c4 --- /dev/null +++ b/independent-publisher-connectors/Toggl Plan/readme.md @@ -0,0 +1,162 @@ +# Toggl Plan + +Easy-to-use visual planning tool for project management. Plan project steps on a colorful timeline and have a clear overview of when things need to be done. Use boards view to follow up on task statuses. Change of plans? The simple drag-and-drop interface makes flexible planning easy. + +## Publisher: Daniel Laskewitz | Sogeti + +## Prerequisites + +- A paid or trial Toggl Plan account +- A registered application + +## Getting Started + +You will need to gather either OAuth credentials to use with this connector. + +## Obtaining Credentials + +A Toggl Plan account (trial or paid) is needed to register an application. You can start a trial [here](https://toggl.com/plan/). After that you can go to the [developer page](https://developers.plan.toggl.com/index.html) and register your application there. From there you can grab the app key and secret. + +## Supported Operations + +### User Profiles + +#### Get profile information + +Returns the profile information of the logged in user. + +#### Update profile + +Updates the profile of the logged in user. + +### Members + +#### Add a new member + +Creates a member that has not yet been linked with an existing user. + +#### Update member not yet linked with existing user + +Updates a member that has not yet been linked with an existing user. + +#### Fetch list of members + +Fetches the list of members belonging to a workspace. + +#### Get member + +Gets a member belonging to a workspace by ID. + +#### Update member + +Updates a member belonging to a workspace by ID. + +#### Remove member + +Removes a member from a workspace by ID. + +### Tasks + +#### Fetch list of tasks + +Fetches a list of tasks belonging to a workspace. Possible filters are `since`, `until`, `users`, `projects`, `tasks`, `groups` and/or `groups`. + +#### Add a new task + +Adds a new task to a workspace. + +#### Get a task + +Gets a task from a workspace by ID. + +#### Update a task + +Updates a task from a workspace by ID. + +#### Remove a task + +Removes a task from a workspace by ID. + +### Milestones + +#### Fetch list of milestones + +Fetches a list of milestones belonging to a workspace. Possible filters are `since`, `until`, `projects` and/or `tags`. + +#### Add a new milestone + +Adds a new milestone to a workspace. + +#### Get a milestone + +Gets a milestone from a workspace by ID. + +#### Update a milestone + +Updates a milestone from a workspace by ID. + +#### Remove a milestone + +Removes a milestone from a workspace by ID. + +### Projects + +#### Fetch list of projects + +Fetches a list of projects belonging to a workspace. + +#### Add a new project + +Adds a new project to a workspace. + +#### Get a project + +Gets a project from a workspace by ID. + +#### Update a project + +Updates a milestone from a workspace by ID. + +#### Remove a project + +Removes a milestone from a workspace by ID. + +### Groups + +#### Fetch list of groups + +Fetches a list of groups belonging to a workspace. + +#### Add a new group + +Adds a new group to a workspace. + +#### Get a group + +Gets a group from a workspace by ID. + +#### Update a group + +Updates a group from a workspace by ID. + +#### Remove a group + +Removes a group from a workspace by ID. + +#### Add a new user to group + +Adds a new group membership to a workspace. + +#### Remove a group membership + +Removes a group membership from a workspace by ID. + +## Known Issues and Limitations + +No issues and limitations are known at this time. + +## Frequently Asked Questions + +### How do I obtain a client ID and client Secret? + +See the [obtaining credentials section](#obtaining-credentials).