diff --git a/certified-connectors/Planner/apiDefinition.swagger.json b/certified-connectors/Planner/apiDefinition.swagger.json index f1987fc10..1ee6b9764 100644 --- a/certified-connectors/Planner/apiDefinition.swagger.json +++ b/certified-connectors/Planner/apiDefinition.swagger.json @@ -7,6 +7,10 @@ "x-ms-deployment-version": "1.0.0", "x-ms-api-annotation": { "status": "Production" + }, + "contact": { + "name": "Microsoft", + "url": "https://support.microsoft.com" } }, "host": "graph.microsoft.com", @@ -156,7 +160,7 @@ } ], "responses": { - "default": { + "201": { "description": "201", "schema": { "$ref": "#/definitions/GetTask_Response_V2" @@ -173,6 +177,42 @@ } } }, + "/v2/beta/planner/tasks": { + "post": { + "summary": "Create a task", + "description": "Create a new task in Planner.", + "operationId": "CreateTask_V4", + "parameters": [ + { + "$ref": "#/parameters/prefer__in_header" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CreateTask_Request_V4" + } + } + ], + "responses": { + "201": { + "description": "201", + "schema": { + "$ref": "#/definitions/GetTask_Response_V3" + } + } + }, + "deprecated": false, + "x-ms-visibility": "important", + "x-ms-no-generic-test": true, + "x-ms-api-annotation": { + "status": "Preview", + "family": "CreateTask", + "revision": 4 + } + } + }, "/v2/v1.0/planner/plans/{id}/tasks": { "get": { "summary": "List tasks", @@ -199,6 +239,9 @@ "status": "Production", "family": "ListTasks", "revision": 3 + }, + "x-ms-pageable": { + "nextLinkName": "@odata.nextLink" } } }, @@ -221,6 +264,10 @@ "status": "Production", "family": "ListMyTasks", "revision": 2 + + }, + "x-ms-pageable": { + "nextLinkName": "@odata.nextLink" } } }, @@ -464,7 +511,7 @@ } ], "responses": { - "default": { + "200": { "description": "default", "schema": { "$ref": "#/definitions/GetTaskDetails_Response" @@ -512,7 +559,7 @@ } ], "responses": { - "default": { + "200": { "description": "default", "schema": { "$ref": "#/definitions/GetTaskDetails_Response" @@ -666,7 +713,7 @@ "type": "string", "x-ms-summary": "Resource link" }, - "value" : { + "value": { "type": "object", "properties": { "alias": { @@ -704,12 +751,11 @@ "type": "object", "properties": { "id": { - "format": "int32", "description": "A number representing the checklist item.", - "type": "integer", + "type": "string", "x-ms-summary": "Id" }, - "value" : { + "value": { "type": "object", "properties": { "title": { @@ -719,7 +765,7 @@ }, "isChecked": { "description": "Whether or not the item is checked.", - "type" : "boolean", + "type": "boolean", "x-ms-summary": "Is Checked" } } @@ -729,7 +775,7 @@ "id" ] }, - "x-ms-summary": "References" + "x-ms-summary": "Checklist" } } }, @@ -783,15 +829,14 @@ "x-ms-summary": "References" }, "checklist": { - "description": "The collection of references on the task", + "description": "The collection of checklist items on the task", "type": "array", "items": { "type": "object", "properties": { "id": { - "format": "int32", "description": "A number representing the checklist item.", - "type": "integer", + "type": "string", "x-ms-summary": "Id" }, "title": { @@ -801,7 +846,7 @@ }, "isChecked": { "description": "Whether or not the item is checked.", - "type" : "boolean", + "type": "boolean", "x-ms-summary": "Is Checked" } }, @@ -811,7 +856,7 @@ "isChecked" ] }, - "x-ms-summary": "References" + "x-ms-summary": "Checklist" } }, "x-ms-test-value": { @@ -958,7 +1003,7 @@ "x-ms-summary": "Id" }, "appliedCategories": { - "$ref" : "#/definitions/AppliedCategories" + "$ref": "#/definitions/AppliedCategories" }, "_assignments": { "type": "array", @@ -1007,6 +1052,157 @@ } } }, + "GetTask_Response_V3": { + "type": "object", + "properties": { + "createdBy": { + "type": "object", + "properties": { + "user": { + "type": "object", + "properties": { + "displayName": { + "description": "The display name of the user who created this task.", + + "type": "string", + "x-ms-summary": "Display Name" + }, + "id": { + "description": "The id of the user who created this task.", + + "type": "string", + "x-ms-summary": "Id" + } + + }, + + "x-ms-summary": "User" + + } + }, + "x-ms-summary": "Created By" + }, + "planId": { + "description": "The id of the plan this task belongs to.", + "type": "string", + "x-ms-summary": "Plan Id", + "x-ms-visibility": "advanced" + }, + "bucketId": { + "description": "The id of the bucket this task belongs to.", + "type": "string", + "x-ms-summary": "Bucket Id", + "x-ms-visibility": "advanced" + }, + "title": { + "description": "The title of the task.", + "type": "string", + "x-ms-summary": "Title" + }, + "percentComplete": { + "format": "int32", + "description": "The completion percentage of the task.", + "type": "integer", + "x-ms-summary": "Percent Complete" + }, + "startDateTime": { + "format": "date-time", + "description": "The start datetime of the task.", + "type": "string", + "x-ms-summary": "Start Date Time" + }, + "createdDateTime": { + "format": "date-time", + "description": "The datetime the task was created.", + "type": "string", + "x-ms-summary": "Created Date Time" + }, + "dueDateTime": { + "format": "date-time", + "description": "The datetime the task is due.", + "type": "string", + "x-ms-summary": "Due Date Time" + }, + "hasDescription": { + "description": "Set to true if the task has a description.", + "type": "boolean", + "x-ms-summary": "Has Description" + }, + "completedDateTime": { + "format": "date-time", + "description": "The datetime the task was completed.", + "type": "string", + "x-ms-summary": "Completed Date Time" + }, + "referenceCount": { + "format": "int32", + "description": "The number of external references that exist on the task.", + "type": "integer", + "x-ms-summary": "Reference Count", + "x-ms-visibility": "advanced" + }, + "id": { + "description": "The id of the task.", + "type": "string", + "x-ms-summary": "Id" + }, + "appliedCategories": { + "$ref": "#/definitions/AppliedCategories" + }, + "priority": { + "format": "int32", + "description": "Priority of the task. Valid range of values is between 0 and 10 (inclusive), with increasing value being lower priority (0 has the highest priority and 10 has the lowest priority). Currently, Planner interprets values 0 and 1 as \"urgent\", 2 and 3 and 4 as \"important\", 5, 6, and 7 as \"medium\", and 8, 9, and 10 as \"low\". Currently, Planner sets the value 1 for \"urgent\", 3 for \"important\", 5 for \"medium\", and 9 for \"low\".", + "type": "integer", + "x-ms-summary": "Priority" + }, + "_assignments": { + "type": "array", + "items": { + "type": "object", + "properties": { + "userId": { + "description": "The id of the user to whom this task was assigned to.", + "type": "string", + "x-ms-summary": "Assigned To User Id" + }, + "value": { + "type": "object", + "properties": { + "assignedBy": { + "type": "object", + "properties": { + "user": { + "type": "object", + "properties": { + "id": { + "description": "The id of the user who assigned this task.", + "type": "string", + "x-ms-summary": "Assigned By User Id" + } + } + } + } + }, + "assignedDateTime": { + "format": "date-time", + "description": "The datetime the task was assigned.", + "type": "string", + "x-ms-summary": "Assigned Date Time" + }, + "orderHint": { + "description": "Order Hint", + "type": "string", + "x-ms-summary": "Order Hint" + } + } + } + } + + }, + "x-ms-summary": "assignments" + } + } + }, "ListTasks_Response_V2": { "type": "object", "properties": { @@ -1016,6 +1212,12 @@ "$ref": "#/definitions/GetTask_Response_V2" }, "x-ms-summary": "value" + }, + "@odata.nextLink": { + "description": "Link to get next page of results", + "type": "string", + "x-ms-summary": "Next link", + "x-ms-visibility": "internal" } } }, @@ -1052,11 +1254,120 @@ "x-ms-summary": "Bucket Id" }, "appliedCategories": { - "$ref" : "#/definitions/AppliedCategories" + "$ref": "#/definitions/AppliedCategories" } } }, "CreateTask_Request_V3": { + "required": [ + "groupId", + "planId", + "title" + ], + "type": "object", + "properties": { + "groupId": { + "description": "The group to retrieve the plan.", + "type": "string", + "x-ms-summary": "Group Id", + "x-ms-dynamic-values": { + "operationId": "ListGroups", + "value-collection": "value", + "value-path": "id", + "value-title": "displayName" + } + }, + "planId": { + "description": "The plan for the new task.", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "ListGroupPlans", + "parameters": { + "groupId": { + "parameter": "groupId" + + } + }, + "value-path": "id", + "value-title": "title", + "value-collection": "value" + }, + "x-ms-dynamic-list": { + "operationId": "ListGroupPlans", + "itemValuePath": "id", + "itemTitlePath": "title", + "itemsPath": "value", + "parameters": { + "groupId": { + "parameterReference": "body/groupId" + } + } + }, + "x-ms-summary": "Plan Id" + }, + "title": { + "description": "The title of the new task (maximum of 255 chars).", + "type": "string", + "maxLength": 255, + "x-ms-summary": "Title" + }, + "bucketId": { + "description": "The bucket to place this task in.", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "ListBuckets_V3", + "value-path": "id", + "value-title": "name", + "value-collection": "value", + "parameters": { + "groupId": { + "parameter": "groupId" + }, + "id": { + "parameter": "planId" + } + } + }, + "x-ms-dynamic-list": { + "operationId": "ListBuckets_V3", + "itemValuePath": "id", + "itemTitlePath": "name", + "itemsPath": "value", + "parameters": { + "groupId": { + "parameterReference": "body/groupId" + }, + "id": { + "parameterReference": "body/planId" + } + } + }, + "x-ms-summary": "Bucket Id" + }, + "startDateTime": { + "format": "date-time", + "description": "The datetime the task starts (Ex. '2018-04-13T00:42:19.284Z').", + "type": "string", + "x-ms-summary": "Start Date Time" + }, + "dueDateTime": { + "format": "date-time", + "description": "The datetime the task is due (Ex. '2018-04-13T00:42:19.284Z').", + "type": "string", + "x-ms-summary": "Due Date Time" + }, + "assignments": { + "description": "Semi-colon separated ids or email addresses of users to assign this task to.", + "type": "string", + "x-ms-summary": "Assigned User Ids" + }, + "appliedCategories": { + "$ref": "#/definitions/AppliedCategories" + + } + } + }, + "CreateTask_Request_V4": { "required": [ "groupId", "planId", @@ -1154,48 +1465,54 @@ "x-ms-summary": "Due Date Time" }, "assignments": { - "description": "Semi-colon seperated ids or email addresses of users to assign this task to.", + "description": "Semi-colon separated ids or email addresses of users to assign this task to.", "type": "string", "x-ms-summary": "Assigned User Ids" }, "appliedCategories": { - "$ref" : "#/definitions/AppliedCategories" + "$ref": "#/definitions/AppliedCategories" + }, + "priority": { + "format": "int32", + "description": "Priority of the task. Valid range of values is between 0 and 10 (inclusive), with increasing value being lower priority (0 has the highest priority and 10 has the lowest priority). Currently, Planner interprets values 0 and 1 as \"urgent\", 2 and 3 and 4 as \"important\", 5, 6, and 7 as \"medium\", and 8, 9, and 10 as \"low\". Currently, Planner sets the value 1 for \"urgent\", 3 for \"important\", 5 for \"medium\", and 9 for \"low\".", + "type": "integer", + "x-ms-summary": "Priority" } } }, - "AppliedCategories" : { - "description" : "The categories to which the task has been applied.", - "type" : "object", - "properties" : { - "category1" : { - "type" : "boolean", - "x-ms-summary" : "Pink", - "description" : "True if the task has the Pink category." + "AppliedCategories": { + "description": "The categories to which the task has been applied.", + "type": "object", + "properties": { + "category1": { + "type": "boolean", + "x-ms-summary": "Pink", + "description": "True if the task has the Pink category." }, - "category2" : { - "type" : "boolean", - "x-ms-summary" : "Red", - "description" : "True if the task has the Red category." + "category2": { + "type": "boolean", + "x-ms-summary": "Red", + "description": "True if the task has the Red category." }, - "category3" : { - "type" : "boolean", - "x-ms-summary" : "Yellow", - "description" : "True if the task has the Yellow category." + "category3": { + "type": "boolean", + "x-ms-summary": "Yellow", + "description": "True if the task has the Yellow category." }, - "category4" : { - "type" : "boolean", - "x-ms-summary" : "Green", - "description" : "True if the task has the Green category." + "category4": { + "type": "boolean", + "x-ms-summary": "Green", + "description": "True if the task has the Green category." }, - "category5" : { - "type" : "boolean", - "x-ms-summary" : "Blue", - "description" : "True if the task has the Blue category." + "category5": { + "type": "boolean", + "x-ms-summary": "Blue", + "description": "True if the task has the Blue category." }, - "category6" : { - "type" : "boolean", - "x-ms-summary" : "Purple", - "description" : "True if the task has the Purple category." + "category6": { + "type": "boolean", + "x-ms-summary": "Purple", + "description": "True if the task has the Purple category." } } } @@ -1251,5 +1568,19 @@ "testConnection": { "operationId": "ListMyTasks_V2" } - } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://tasks.office.com/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://privacy.microsoft.com/privacystatement" + }, + { + "propertyName": "Categories", + "propertyValue": "Collaboration; Productivity" + } + ] } \ No newline at end of file diff --git a/certified-connectors/Planner/apiProperties.json b/certified-connectors/Planner/apiProperties.json index d92b6de89..4a4ad4e7f 100644 --- a/certified-connectors/Planner/apiProperties.json +++ b/certified-connectors/Planner/apiProperties.json @@ -57,8 +57,90 @@ }, "templateId": "routerequesttoendpoint", "title": "Redirect to UpdateTaskDetails API" - }, - { + }, { + "parameters": { + "x-ms-apimTemplate-operationName": [ + "ListGroups" + ], + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplateParameter.newPath": "/v1.0/me/memberOf/$/microsoft.graph.group" + }, + "templateId": "routerequesttoendpoint", + "title": "Redirect to ListGroups API" + }, { + "parameters": { + "x-ms-apimTemplate-operationName": [ + "ListMyTasks_V2" + ], + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplateParameter.newPath": "/v1.0/me/planner/tasks" + }, + "templateId": "routerequesttoendpoint", + "title": "Redirect to ListMyTasks API" + }, { + "parameters": { + "x-ms-apimTemplate-operationName": [ + "ListTasks_V3" + ], + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplateParameter.newPath": "/v1.0/planner/plans/{id}/tasks" + }, + "templateId": "routerequesttoendpoint", + "title": "Redirect to ListTasks API" + }, { + "parameters": { + "x-ms-apimTemplate-operationName": [ + "CreateBucket_V2" + ], + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplateParameter.newPath": "/v1.0/planner/buckets" + }, + "templateId": "routerequesttoendpoint", + "title": "Redirect to CreateBucket API" + }, { + "parameters": { + "x-ms-apimTemplate-operationName": [ + "ListBuckets_V3" + ], + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplateParameter.newPath": "/v1.0/planner/plans/{id}/buckets" + }, + "templateId": "routerequesttoendpoint", + "title": "Redirect to ListBuckets API" + }, { + "parameters": { + "x-ms-apimTemplate-operationName": [ + "CreateTask_V3" + ], + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplateParameter.newPath": "/v1.0/planner/tasks" + }, + "templateId": "routerequesttoendpoint", + "title": "Redirect to CreateTask API" + }, { + "parameters": { + "x-ms-apimTemplate-operationName": [ + "CreateTask_V4" + ], + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplateParameter.newPath": "/beta/planner/tasks" + }, + "templateId": "routerequesttoendpoint", + "title": "Redirect to CreateTask API" + }, { + "parameters": { + "x-ms-apimTemplate-operationName": [ + "GetTask_V2", + "UpdateTask_V3", + "UnassignUsers", + "AssignUsers" + ], + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplateParameter.newPath": "/v1.0/planner/tasks/{id}" + }, + "templateId": "routerequesttoendpoint", + "title": "Redirect to Task API" + }, { "parameters": { "x-ms-apimTemplate-operationName": [ "UpdateTaskDetails_V2" @@ -71,8 +153,7 @@ }, "templateId": "SetValueFromUrl", "title": "Set If-Match header for update task details" - }, - { + }, { "parameters": { "x-ms-apimTemplate-operationName": [ "UpdateTaskDetails_V2" @@ -84,8 +165,7 @@ }, "templateId": "SetProperty", "title": "Set previewPriority" - }, - { + }, { "parameters": { "x-ms-apimTemplate-operationName": [ "UpdateTaskDetails_V2" @@ -97,8 +177,7 @@ }, "templateId": "SetProperty", "title": "Set odata type for external reference" - }, - { + }, { "parameters": { "x-ms-apimTemplate-operationName": [ "UpdateTaskDetails_V2" @@ -112,8 +191,7 @@ }, "templateId": "StringReplace", "title": "Encode percentage in resourceLink for OData" - }, - { + }, { "parameters": { "x-ms-apimTemplate-operationName": [ "UpdateTaskDetails_V2" @@ -127,8 +205,7 @@ }, "templateId": "StringReplace", "title": "Encode dots in resourceLink for OData" - }, - { + }, { "parameters": { "x-ms-apimTemplate-operationName": [ "UpdateTaskDetails_V2" @@ -142,12 +219,42 @@ }, "templateId": "StringReplace", "title": "Encode colon in resourceLink for OData" - }, - { + }, { + "parameters": { + "x-ms-apimTemplate-operationName": [ + "UpdateTaskDetails", + "UpdateTaskDetails_V2" + ], + "x-ms-apimTemplateParameter.propertyParentPath": "@body().references", + "x-ms-apimTemplateParameter.propertySubPath": "resourceLink", + "x-ms-apimTemplateParameter.sourceString": "@", + "x-ms-apimTemplateParameter.replacementString": "%40", + "x-ms-apimTemplateParameter.newPropertyPath": "@item().resourceLink", + "x-ms-apimTemplate-policySection": "Request" + }, + "templateId": "StringReplace", + "title": "Encode 'at' sign in resourceLink for OData" + }, { + "parameters": { + "x-ms-apimTemplate-operationName": [ + "UpdateTaskDetails", + "UpdateTaskDetails_V2" + ], + "x-ms-apimTemplateParameter.propertyParentPath": "@body().references", + "x-ms-apimTemplateParameter.propertySubPath": "resourceLink", + "x-ms-apimTemplateParameter.sourceString": "#", + "x-ms-apimTemplateParameter.replacementString": "%23", + "x-ms-apimTemplateParameter.newPropertyPath": "@item().resourceLink", + "x-ms-apimTemplate-policySection": "Request" + }, + "templateId": "StringReplace", + "title": "Encode sharp sign in resourceLink for OData" + }, { "parameters": { "x-ms-apimTemplate-operationName": [ "UpdateTaskDetails_V2" ], + "x-ms-apimTemplateParameter.propertyParentPath": "@body()", "x-ms-apimTemplateParameter.propertySubPath": "references", "x-ms-apimTemplateParameter.keyWithinCollectionPath": "resourceLink", @@ -157,108 +264,41 @@ }, "templateId": "ConvertArrayToObject", "title": "Convert array of references to object" - }, - { - "title": "Set odata type for checklist", - "templateId": "setproperty", + }, { "parameters": { + "x-ms-apimTemplate-operationName": [ + "UpdateTaskDetails_V2" + ], + "x-ms-apimTemplateParameter.newPropertyParentPathTemplate": "@body().checklist", "x-ms-apimTemplateParameter.newPropertySubPathTemplate": "['@odata.type']", "x-ms-apimTemplateParameter.propertyValuePathTemplate": "microsoft.graph.plannerChecklistItem", - "x-ms-apimTemplate-policySection": "Request", - "x-ms-apimTemplate-operationName": ["UpdateTaskDetails_V2"] - } - }, - { - "title": "Convert array of checklists to object", - "templateId": "convertarraytoobject", + "x-ms-apimTemplate-policySection": "Request" + + }, + "templateId": "SetProperty", + "title": "Set odata type for checklist item" + + }, { "parameters": { + "x-ms-apimTemplate-operationName": [ + "UpdateTaskDetails_V2" + ], + "x-ms-apimTemplateParameter.propertyParentPath": "@body()", "x-ms-apimTemplateParameter.propertySubPath": "checklist", "x-ms-apimTemplateParameter.keyWithinCollectionPath": "id", "x-ms-apimTemplateParameter.newPropertyPath": "@body().checklist", "x-ms-apimTemplateParameter.retainKey": "false", - "x-ms-apimTemplate-policySection": "Request", - "x-ms-apimTemplate-operationName": ["UpdateTaskDetails_V2"] - } - }, - { - "title": "Convert object of references to array for task details", - "templateId": "convertobjecttoarray", - "parameters": { - "x-ms-apimTemplateParameter.propertyParentPath": "@body()", - "x-ms-apimTemplateParameter.propertySubPath": "references", - "x-ms-apimTemplateParameter.newPropertyPath": "@body().references", - "x-ms-apimTemplateParameter.keyName": "resourceLink", - "x-ms-apimTemplateParameter.valueName": "value", - "x-ms-apimTemplate-policySection": "Response", - "x-ms-apimTemplate-operationName": ["GetTaskDetails_V2"] - } - }, - { - "title": "Encode dots in response resourceLink for OData", - "templateId": "stringreplace", - "parameters": { - "x-ms-apimTemplateParameter.propertyParentPath": "@body().references", - "x-ms-apimTemplateParameter.propertySubPath": "resourceLink", - "x-ms-apimTemplateParameter.sourceString": "%2E", - "x-ms-apimTemplateParameter.replacementString": ".", - "x-ms-apimTemplateParameter.newPropertyPath": "@item().resourceLink", - "x-ms-apimTemplate-policySection": "Response", - "x-ms-apimTemplate-operationName": ["GetTaskDetails_V2"] - } - }, - { - "title": "Encode colon in response resourceLink for OData", - "templateId": "stringreplace", - "parameters": { - "x-ms-apimTemplateParameter.propertyParentPath": "@body().references", - "x-ms-apimTemplateParameter.propertySubPath": "resourceLink", - "x-ms-apimTemplateParameter.sourceString": "%3A", - "x-ms-apimTemplateParameter.replacementString": ":", - "x-ms-apimTemplateParameter.newPropertyPath": "@item().resourceLink", - "x-ms-apimTemplate-policySection": "Response", - "x-ms-apimTemplate-operationName": ["GetTaskDetails_V2"] - } - }, - { - "title": "Encode percentage in response resourceLink for OData", - "templateId": "stringreplace", - "parameters": { - "x-ms-apimTemplateParameter.propertyParentPath": "@body().references", - "x-ms-apimTemplateParameter.propertySubPath": "resourceLink", - "x-ms-apimTemplateParameter.sourceString": "%25", - "x-ms-apimTemplateParameter.replacementString": "%", - "x-ms-apimTemplateParameter.newPropertyPath": "@item().resourceLink", - "x-ms-apimTemplate-policySection": "Response", - "x-ms-apimTemplate-operationName": ["GetTaskDetails_V2"] - } - }, - { - "title": "Convert object of checklist to array for task details", - "templateId": "convertobjecttoarray", - "parameters": { - "x-ms-apimTemplateParameter.propertyParentPath": "@body()", - "x-ms-apimTemplateParameter.propertySubPath": "checklist", - "x-ms-apimTemplateParameter.newPropertyPath": "@body().checklist", - "x-ms-apimTemplateParameter.keyName": "id", - "x-ms-apimTemplateParameter.valueName": "value", - "x-ms-apimTemplate-policySection": "Response", - "x-ms-apimTemplate-operationName": ["GetTaskDetails_V2"] - } - }, - { - "parameters": { - "x-ms-apimTemplate-operationName": [ - "ListGroups" - ], - "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", - "x-ms-apimTemplateParameter.newPath": "/v1.0/me/memberOf/$/microsoft.graph.group" + "x-ms-apimTemplate-policySection": "Request" + }, - "templateId": "routerequesttoendpoint", - "title": "Redirect to ListGroups API" - }, - { + + "templateId": "ConvertArrayToObject", + + "title": "Convert array of checklist items to object" + + }, { "parameters": { "x-ms-apimTemplate-operationName": [ "ListGroups" @@ -268,8 +308,7 @@ }, "templateId": "setQueryParameter", "title": "Set $filter query parameter for groups" - }, - { + }, { "parameters": { "x-ms-apimTemplate-operationName": [ "ListGroups" @@ -279,77 +318,7 @@ }, "templateId": "setQueryParameter", "title": "Set $select query parameter for groups" - }, - { - "parameters": { - "x-ms-apimTemplate-operationName": [ - "ListMyTasks_V2" - ], - "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", - "x-ms-apimTemplateParameter.newPath": "/v1.0/me/planner/tasks" - }, - "templateId": "routerequesttoendpoint", - "title": "Redirect to ListMyTasks API" - }, - { - "parameters": { - "x-ms-apimTemplate-operationName": [ - "ListTasks_V3" - ], - "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", - "x-ms-apimTemplateParameter.newPath": "/v1.0/planner/plans/{id}/tasks" - }, - "templateId": "routerequesttoendpoint", - "title": "Redirect to ListTasks API" - }, - { - "parameters": { - "x-ms-apimTemplate-operationName": [ - "CreateBucket_V2" - ], - "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", - "x-ms-apimTemplateParameter.newPath": "/v1.0/planner/buckets" - }, - "templateId": "routerequesttoendpoint", - "title": "Redirect to CreateBucket API" - }, - { - "parameters": { - "x-ms-apimTemplate-operationName": [ - "ListBuckets_V3" - ], - "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", - "x-ms-apimTemplateParameter.newPath": "/v1.0/planner/plans/{id}/buckets" - }, - "templateId": "routerequesttoendpoint", - "title": "Redirect to ListBuckets API" - }, - { - "parameters": { - "x-ms-apimTemplate-operationName": [ - "CreateTask_V3" - ], - "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", - "x-ms-apimTemplateParameter.newPath": "/v1.0/planner/tasks" - }, - "templateId": "routerequesttoendpoint", - "title": "Redirect to CreateTask API" - }, - { - "parameters": { - "x-ms-apimTemplate-operationName": [ - "GetTask_V2", - "UpdateTask_V3", - "UnassignUsers", - "AssignUsers" - ], - "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", - "x-ms-apimTemplateParameter.newPath": "/v1.0/planner/tasks/{id}" - }, - "templateId": "routerequesttoendpoint", - "title": "Redirect to Task API" - }, - { + }, { "parameters": { "x-ms-apimTemplate-operationName": [ "UpdateTask_V3", @@ -365,11 +334,11 @@ }, "templateId": "SetValueFromUrl", "title": "Set If-Match header for update task" - }, - { + }, { "parameters": { "x-ms-apimTemplate-operationName": [ "CreateTask_V3", + "CreateTask_V4", "UnassignUsers", "AssignUsers" ], @@ -381,12 +350,12 @@ "x-ms-apimTemplate-policySection": "Request" }, "templateId": "StringToArray", - "title": "Convert semi-colon seperated user ids to array" - }, - { + "title": "Convert semi-colon separated user ids to array" + }, { "parameters": { "x-ms-apimTemplate-operationName": [ "CreateTask_V3", + "CreateTask_V4", "AssignUsers" ], "x-ms-apimTemplateParameter.newPropertyParentPathTemplate": "@body().assignments", @@ -396,11 +365,11 @@ }, "templateId": "SetProperty", "title": "Set orderHint" - }, - { + }, { "parameters": { "x-ms-apimTemplate-operationName": [ "CreateTask_V3", + "CreateTask_V4", "AssignUsers" ], "x-ms-apimTemplateParameter.newPropertyParentPathTemplate": "@body().assignments", @@ -410,11 +379,11 @@ }, "templateId": "SetProperty", "title": "Set odata type for assignment" - }, - { + }, { "parameters": { "x-ms-apimTemplate-operationName": [ "CreateTask_V3", + "CreateTask_V4", "UnassignUsers", "AssignUsers" ], @@ -424,12 +393,12 @@ "x-ms-apimTemplate-policySection": "Request" }, "templateId": "EncodePropertyValue", - "title": "URL encode userId" - }, - { + "title": "Encode assignees" + }, { "parameters": { "x-ms-apimTemplate-operationName": [ "CreateTask_V3", + "CreateTask_V4", "UnassignUsers", "AssignUsers" ], @@ -442,11 +411,11 @@ }, "templateId": "StringReplace", "title": "Encode dots in userId for OData" - }, - { + }, { "parameters": { "x-ms-apimTemplate-operationName": [ "CreateTask_V3", + "CreateTask_V4", "UnassignUsers", "AssignUsers" ], @@ -458,13 +427,13 @@ "x-ms-apimTemplate-policySection": "Request" }, "templateId": "ConvertArrayToObject", - "title": "Convert array of assignments to object" - }, - { + "title": "Convert array of assignees to object" + }, { "parameters": { "x-ms-apimTemplate-operationName": [ "GetTask_V2", "CreateTask_V3", + "CreateTask_V4", "UpdateTask_V3", "UnassignUsers", "AssignUsers" @@ -477,9 +446,8 @@ "x-ms-apimTemplate-policySection": "Response" }, "templateId": "ConvertObjectToArray", - "title": "Convert object of assignments to array for a task" - }, - { + "title": "Convert object of assignees to array for a task" + }, { "parameters": { "x-ms-apimTemplate-operationName": [ "ListTasks_V3", @@ -493,7 +461,129 @@ "x-ms-apimTemplate-policySection": "Response" }, "templateId": "ConvertObjectToArray", - "title": "Convert object of assignments to array for an array of tasks" + "title": "Convert object of assignees to array for an array of tasks" + + }, { + "parameters": { + "x-ms-apimTemplate-operationName": [ + "GetTaskDetails_V2", + "UpdateTaskDetails_V2" + ], + + "x-ms-apimTemplateParameter.propertyParentPath": "@body()", + "x-ms-apimTemplateParameter.propertySubPath": "checklist", + "x-ms-apimTemplateParameter.newPropertyPath": "@body().checklist", + "x-ms-apimTemplateParameter.keyName": "id", + "x-ms-apimTemplateParameter.valueName": "value", + "x-ms-apimTemplate-policySection": "Response" + + }, + "templateId": "ConvertObjectToArray", + "title": "Convert object of checklist items to array" + + }, { + "parameters": { + "x-ms-apimTemplate-operationName": [ + "GetTaskDetails_V2", + "UpdateTaskDetails_V2" + ], + + "x-ms-apimTemplateParameter.propertyParentPath": "@body()", + "x-ms-apimTemplateParameter.propertySubPath": "references", + "x-ms-apimTemplateParameter.newPropertyPath": "@body().references", + "x-ms-apimTemplateParameter.keyName": "resourceLink", + "x-ms-apimTemplateParameter.valueName": "value", + "x-ms-apimTemplate-policySection": "Response" + + }, + "templateId": "ConvertObjectToArray", + "title": "Convert object of references to array for task details" + }, { + "parameters": { + "x-ms-apimTemplate-operationName": [ + "GetTaskDetails_V2", + "UpdateTaskDetails_V2" + ], + "x-ms-apimTemplateParameter.propertyParentPath": "@body().references", + "x-ms-apimTemplateParameter.propertySubPath": "resourceLink", + "x-ms-apimTemplateParameter.sourceString": "%2E", + "x-ms-apimTemplateParameter.replacementString": ".", + "x-ms-apimTemplateParameter.newPropertyPath": "@item().resourceLink", + "x-ms-apimTemplate-policySection": "Response" + }, + "templateId": "StringReplace", + "title": "Decode dots in response resourceLink for OData" + }, { + "parameters": { + "x-ms-apimTemplate-operationName": [ + "GetTaskDetails_V2", + "UpdateTaskDetails_V2" + ], + "x-ms-apimTemplateParameter.propertyParentPath": "@body().references", + "x-ms-apimTemplateParameter.propertySubPath": "resourceLink", + "x-ms-apimTemplateParameter.sourceString": "%3A", + "x-ms-apimTemplateParameter.replacementString": ":", + "x-ms-apimTemplateParameter.newPropertyPath": "@item().resourceLink", + "x-ms-apimTemplate-policySection": "Response" + }, + "templateId": "StringReplace", + "title": "Decode colon in response resourceLink for OData" + }, { + "parameters": { + "x-ms-apimTemplate-operationName": [ + "GetTaskDetails_V2", + "UpdateTaskDetails_V2" + ], + "x-ms-apimTemplateParameter.propertyParentPath": "@body().references", + "x-ms-apimTemplateParameter.propertySubPath": "resourceLink", + "x-ms-apimTemplateParameter.sourceString": "%25", + "x-ms-apimTemplateParameter.replacementString": "%", + "x-ms-apimTemplateParameter.newPropertyPath": "@item().resourceLink", + "x-ms-apimTemplate-policySection": "Response" + }, + "templateId": "StringReplace", + "title": "Decode percentage in response resourceLink for OData" + }, { + "parameters": { + "x-ms-apimTemplate-operationName": [ + "GetTaskDetails_V2", + "UpdateTaskDetails_V2" + ], + "x-ms-apimTemplateParameter.propertyParentPath": "@body().references", + "x-ms-apimTemplateParameter.propertySubPath": "resourceLink", + "x-ms-apimTemplateParameter.sourceString": "%40", + "x-ms-apimTemplateParameter.replacementString": "@", + "x-ms-apimTemplateParameter.newPropertyPath": "@item().resourceLink", + "x-ms-apimTemplate-policySection": "Response" + }, + "templateId": "StringReplace", + "title": "Decode 'at' sign in response resourceLink for OData" + }, { + "parameters": { + "x-ms-apimTemplate-operationName": [ + "GetTaskDetails_V2", + "UpdateTaskDetails_V2" + ], + "x-ms-apimTemplateParameter.propertyParentPath": "@body().references", + "x-ms-apimTemplateParameter.propertySubPath": "resourceLink", + "x-ms-apimTemplateParameter.sourceString": "%23", + "x-ms-apimTemplateParameter.replacementString": "#", + "x-ms-apimTemplateParameter.newPropertyPath": "@item().resourceLink", + "x-ms-apimTemplate-policySection": "Response" + }, + "templateId": "StringReplace", + "title": "Decode sharp sign in response resourceLink for OData" + }, { + "parameters": { + "x-ms-apimTemplate-operationName": [ + "ListTasks_V2", + "ListTasks_V3", + "ListMyTasks_V2" + ], + "x-ms-apimTemplateParameter.nextLinkPropertyName": "@odata.nextLink" + }, + "templateId": "updatenextlink", + "title": "Updates next link to make paging work" } ] }