{
 "kind": "discovery#restDescription",
 "etag": "\"YWOzh2SDasdU84ArJnpYek-OMdg/rBU1z2tHcOAAx8ktsJNBvusBoYw\"",
 "discoveryVersion": "v1",
 "id": "taskqueue:v1beta2",
 "name": "taskqueue",
 "version": "v1beta2",
 "revision": "20160428",
 "title": "TaskQueue API",
 "description": "Accesses a Google App Engine Pull Task Queue over REST.",
 "ownerDomain": "google.com",
 "ownerName": "Google",
 "icons": {
  "x16": "https://www.google.com/images/icons/product/app_engine-16.png",
  "x32": "https://www.google.com/images/icons/product/app_engine-32.png"
 },
 "documentationLink": "https://developers.google.com/appengine/docs/python/taskqueue/rest",
 "protocol": "rest",
 "baseUrl": "https://www.googleapis.com/taskqueue/v1beta2/projects/",
 "basePath": "/taskqueue/v1beta2/projects/",
 "rootUrl": "https://www.googleapis.com/",
 "servicePath": "taskqueue/v1beta2/projects/",
 "batchPath": "batch",
 "parameters": {
  "alt": {
   "type": "string",
   "description": "Data format for the response.",
   "default": "json",
   "enum": [
    "json"
   ],
   "enumDescriptions": [
    "Responses with Content-Type of application/json"
   ],
   "location": "query"
  },
  "fields": {
   "type": "string",
   "description": "Selector specifying which fields to include in a partial response.",
   "location": "query"
  },
  "key": {
   "type": "string",
   "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
   "location": "query"
  },
  "oauth_token": {
   "type": "string",
   "description": "OAuth 2.0 token for the current user.",
   "location": "query"
  },
  "prettyPrint": {
   "type": "boolean",
   "description": "Returns response with indentations and line breaks.",
   "default": "true",
   "location": "query"
  },
  "quotaUser": {
   "type": "string",
   "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.",
   "location": "query"
  },
  "userIp": {
   "type": "string",
   "description": "IP address of the site where the request originates. Use this if you want to enforce per-user limits.",
   "location": "query"
  }
 },
 "auth": {
  "oauth2": {
   "scopes": {
    "https://www.googleapis.com/auth/taskqueue": {
     "description": "Manage your Tasks and Taskqueues"
    },
    "https://www.googleapis.com/auth/taskqueue.consumer": {
     "description": "Consume Tasks from your Taskqueues"
    }
   }
  }
 },
 "schemas": {
  "Task": {
   "id": "Task",
   "type": "object",
   "properties": {
    "enqueueTimestamp": {
     "type": "string",
     "description": "Time (in seconds since the epoch) at which the task was enqueued.",
     "format": "int64"
    },
    "id": {
     "type": "string",
     "description": "Name of the task."
    },
    "kind": {
     "type": "string",
     "description": "The kind of object returned, in this case set to task.",
     "default": "taskqueues#task"
    },
    "leaseTimestamp": {
     "type": "string",
     "description": "Time (in seconds since the epoch) at which the task lease will expire. This value is 0 if the task isnt currently leased out to a worker.",
     "format": "int64"
    },
    "payloadBase64": {
     "type": "string",
     "description": "A bag of bytes which is the task payload. The payload on the JSON side is always Base64 encoded."
    },
    "queueName": {
     "type": "string",
     "description": "Name of the queue that the task is in."
    },
    "retry_count": {
     "type": "integer",
     "description": "The number of leases applied to this task.",
     "format": "int32"
    },
    "tag": {
     "type": "string",
     "description": "Tag for the task, could be used later to lease tasks grouped by a specific tag."
    }
   }
  },
  "TaskQueue": {
   "id": "TaskQueue",
   "type": "object",
   "properties": {
    "acl": {
     "type": "object",
     "description": "ACLs that are applicable to this TaskQueue object.",
     "properties": {
      "adminEmails": {
       "type": "array",
       "description": "Email addresses of users who are \"admins\" of the TaskQueue. This means they can control the queue, eg set ACLs for the queue.",
       "items": {
        "type": "string"
       }
      },
      "consumerEmails": {
       "type": "array",
       "description": "Email addresses of users who can \"consume\" tasks from the TaskQueue. This means they can Dequeue and Delete tasks from the queue.",
       "items": {
        "type": "string"
       }
      },
      "producerEmails": {
       "type": "array",
       "description": "Email addresses of users who can \"produce\" tasks into the TaskQueue. This means they can Insert tasks into the queue.",
       "items": {
        "type": "string"
       }
      }
     }
    },
    "id": {
     "type": "string",
     "description": "Name of the taskqueue."
    },
    "kind": {
     "type": "string",
     "description": "The kind of REST object returned, in this case taskqueue.",
     "default": "taskqueues#taskqueue"
    },
    "maxLeases": {
     "type": "integer",
     "description": "The number of times we should lease out tasks before giving up on them. If unset we lease them out forever until a worker deletes the task.",
     "format": "int32"
    },
    "stats": {
     "type": "object",
     "description": "Statistics for the TaskQueue object in question.",
     "properties": {
      "leasedLastHour": {
       "type": "string",
       "description": "Number of tasks leased in the last hour.",
       "format": "int64"
      },
      "leasedLastMinute": {
       "type": "string",
       "description": "Number of tasks leased in the last minute.",
       "format": "int64"
      },
      "oldestTask": {
       "type": "string",
       "description": "The timestamp (in seconds since the epoch) of the oldest unfinished task.",
       "format": "int64"
      },
      "totalTasks": {
       "type": "integer",
       "description": "Number of tasks in the queue.",
       "format": "int32"
      }
     }
    }
   }
  },
  "Tasks": {
   "id": "Tasks",
   "type": "object",
   "properties": {
    "items": {
     "type": "array",
     "description": "The actual list of tasks returned as a result of the lease operation.",
     "items": {
      "$ref": "Task"
     }
    },
    "kind": {
     "type": "string",
     "description": "The kind of object returned, a list of tasks.",
     "default": "taskqueue#tasks"
    }
   }
  },
  "Tasks2": {
   "id": "Tasks2",
   "type": "object",
   "properties": {
    "items": {
     "type": "array",
     "description": "The actual list of tasks currently active in the TaskQueue.",
     "items": {
      "$ref": "Task"
     }
    },
    "kind": {
     "type": "string",
     "description": "The kind of object returned, a list of tasks.",
     "default": "taskqueues#tasks"
    }
   }
  }
 },
 "resources": {
  "taskqueues": {
   "methods": {
    "get": {
     "id": "taskqueue.taskqueues.get",
     "path": "{project}/taskqueues/{taskqueue}",
     "httpMethod": "GET",
     "description": "Get detailed information about a TaskQueue.",
     "parameters": {
      "getStats": {
       "type": "boolean",
       "description": "Whether to get stats. Optional.",
       "location": "query"
      },
      "project": {
       "type": "string",
       "description": "The project under which the queue lies.",
       "required": true,
       "location": "path"
      },
      "taskqueue": {
       "type": "string",
       "description": "The id of the taskqueue to get the properties of.",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "project",
      "taskqueue"
     ],
     "response": {
      "$ref": "TaskQueue"
     },
     "scopes": [
      "https://www.googleapis.com/auth/taskqueue",
      "https://www.googleapis.com/auth/taskqueue.consumer"
     ]
    }
   }
  },
  "tasks": {
   "methods": {
    "delete": {
     "id": "taskqueue.tasks.delete",
     "path": "{project}/taskqueues/{taskqueue}/tasks/{task}",
     "httpMethod": "DELETE",
     "description": "Delete a task from a TaskQueue.",
     "parameters": {
      "project": {
       "type": "string",
       "description": "The project under which the queue lies.",
       "required": true,
       "location": "path"
      },
      "task": {
       "type": "string",
       "description": "The id of the task to delete.",
       "required": true,
       "location": "path"
      },
      "taskqueue": {
       "type": "string",
       "description": "The taskqueue to delete a task from.",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "project",
      "taskqueue",
      "task"
     ],
     "scopes": [
      "https://www.googleapis.com/auth/taskqueue",
      "https://www.googleapis.com/auth/taskqueue.consumer"
     ]
    },
    "get": {
     "id": "taskqueue.tasks.get",
     "path": "{project}/taskqueues/{taskqueue}/tasks/{task}",
     "httpMethod": "GET",
     "description": "Get a particular task from a TaskQueue.",
     "parameters": {
      "project": {
       "type": "string",
       "description": "The project under which the queue lies.",
       "required": true,
       "location": "path"
      },
      "task": {
       "type": "string",
       "description": "The task to get properties of.",
       "required": true,
       "location": "path"
      },
      "taskqueue": {
       "type": "string",
       "description": "The taskqueue in which the task belongs.",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "project",
      "taskqueue",
      "task"
     ],
     "response": {
      "$ref": "Task"
     },
     "scopes": [
      "https://www.googleapis.com/auth/taskqueue",
      "https://www.googleapis.com/auth/taskqueue.consumer"
     ]
    },
    "insert": {
     "id": "taskqueue.tasks.insert",
     "path": "{project}/taskqueues/{taskqueue}/tasks",
     "httpMethod": "POST",
     "description": "Insert a new task in a TaskQueue",
     "parameters": {
      "project": {
       "type": "string",
       "description": "The project under which the queue lies",
       "required": true,
       "location": "path"
      },
      "taskqueue": {
       "type": "string",
       "description": "The taskqueue to insert the task into",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "project",
      "taskqueue"
     ],
     "request": {
      "$ref": "Task"
     },
     "response": {
      "$ref": "Task"
     },
     "scopes": [
      "https://www.googleapis.com/auth/taskqueue",
      "https://www.googleapis.com/auth/taskqueue.consumer"
     ]
    },
    "lease": {
     "id": "taskqueue.tasks.lease",
     "path": "{project}/taskqueues/{taskqueue}/tasks/lease",
     "httpMethod": "POST",
     "description": "Lease 1 or more tasks from a TaskQueue.",
     "parameters": {
      "groupByTag": {
       "type": "boolean",
       "description": "When true, all returned tasks will have the same tag",
       "location": "query"
      },
      "leaseSecs": {
       "type": "integer",
       "description": "The lease in seconds.",
       "required": true,
       "format": "int32",
       "location": "query"
      },
      "numTasks": {
       "type": "integer",
       "description": "The number of tasks to lease.",
       "required": true,
       "format": "int32",
       "location": "query"
      },
      "project": {
       "type": "string",
       "description": "The project under which the queue lies.",
       "required": true,
       "location": "path"
      },
      "tag": {
       "type": "string",
       "description": "The tag allowed for tasks in the response. Must only be specified if group_by_tag is true. If group_by_tag is true and tag is not specified the tag will be that of the oldest task by eta, i.e. the first available tag",
       "location": "query"
      },
      "taskqueue": {
       "type": "string",
       "description": "The taskqueue to lease a task from.",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "project",
      "taskqueue",
      "numTasks",
      "leaseSecs"
     ],
     "response": {
      "$ref": "Tasks"
     },
     "scopes": [
      "https://www.googleapis.com/auth/taskqueue",
      "https://www.googleapis.com/auth/taskqueue.consumer"
     ]
    },
    "list": {
     "id": "taskqueue.tasks.list",
     "path": "{project}/taskqueues/{taskqueue}/tasks",
     "httpMethod": "GET",
     "description": "List Tasks in a TaskQueue",
     "parameters": {
      "project": {
       "type": "string",
       "description": "The project under which the queue lies.",
       "required": true,
       "location": "path"
      },
      "taskqueue": {
       "type": "string",
       "description": "The id of the taskqueue to list tasks from.",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "project",
      "taskqueue"
     ],
     "response": {
      "$ref": "Tasks2"
     },
     "scopes": [
      "https://www.googleapis.com/auth/taskqueue",
      "https://www.googleapis.com/auth/taskqueue.consumer"
     ]
    },
    "patch": {
     "id": "taskqueue.tasks.patch",
     "path": "{project}/taskqueues/{taskqueue}/tasks/{task}",
     "httpMethod": "PATCH",
     "description": "Update tasks that are leased out of a TaskQueue. This method supports patch semantics.",
     "parameters": {
      "newLeaseSeconds": {
       "type": "integer",
       "description": "The new lease in seconds.",
       "required": true,
       "format": "int32",
       "location": "query"
      },
      "project": {
       "type": "string",
       "description": "The project under which the queue lies.",
       "required": true,
       "location": "path"
      },
      "task": {
       "type": "string",
       "required": true,
       "location": "path"
      },
      "taskqueue": {
       "type": "string",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "project",
      "taskqueue",
      "task",
      "newLeaseSeconds"
     ],
     "request": {
      "$ref": "Task"
     },
     "response": {
      "$ref": "Task"
     },
     "scopes": [
      "https://www.googleapis.com/auth/taskqueue",
      "https://www.googleapis.com/auth/taskqueue.consumer"
     ]
    },
    "update": {
     "id": "taskqueue.tasks.update",
     "path": "{project}/taskqueues/{taskqueue}/tasks/{task}",
     "httpMethod": "POST",
     "description": "Update tasks that are leased out of a TaskQueue.",
     "parameters": {
      "newLeaseSeconds": {
       "type": "integer",
       "description": "The new lease in seconds.",
       "required": true,
       "format": "int32",
       "location": "query"
      },
      "project": {
       "type": "string",
       "description": "The project under which the queue lies.",
       "required": true,
       "location": "path"
      },
      "task": {
       "type": "string",
       "required": true,
       "location": "path"
      },
      "taskqueue": {
       "type": "string",
       "required": true,
       "location": "path"
      }
     },
     "parameterOrder": [
      "project",
      "taskqueue",
      "task",
      "newLeaseSeconds"
     ],
     "request": {
      "$ref": "Task"
     },
     "response": {
      "$ref": "Task"
     },
     "scopes": [
      "https://www.googleapis.com/auth/taskqueue",
      "https://www.googleapis.com/auth/taskqueue.consumer"
     ]
    }
   }
  }
 }
}