{
  "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"
        }
      }
    }
  },
  "basePath": "/taskqueue/v1beta2/projects/",
  "baseUrl": "https://www.googleapis.com/taskqueue/v1beta2/projects/",
  "batchPath": "batch/taskqueue/v1beta2",
  "description": "Accesses a Google App Engine Pull Task Queue over REST.",
  "discoveryVersion": "v1",
  "documentationLink": "https://developers.google.com/appengine/docs/python/taskqueue/rest",
  "etag": "\"-iA1DTNe4s-I6JZXPt1t1Ypy8IU/rBU1z2tHcOAAx8ktsJNBvusBoYw\"",
  "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"
  },
  "id": "taskqueue:v1beta2",
  "kind": "discovery#restDescription",
  "name": "taskqueue",
  "ownerDomain": "google.com",
  "ownerName": "Google",
  "parameters": {
    "alt": {
      "default": "json",
      "description": "Data format for the response.",
      "enum": [
        "json"
      ],
      "enumDescriptions": [
        "Responses with Content-Type of application/json"
      ],
      "location": "query",
      "type": "string"
    },
    "fields": {
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query",
      "type": "string"
    },
    "key": {
      "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",
      "type": "string"
    },
    "oauth_token": {
      "description": "OAuth 2.0 token for the current user.",
      "location": "query",
      "type": "string"
    },
    "prettyPrint": {
      "default": "true",
      "description": "Returns response with indentations and line breaks.",
      "location": "query",
      "type": "boolean"
    },
    "quotaUser": {
      "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",
      "type": "string"
    },
    "userIp": {
      "description": "IP address of the site where the request originates. Use this if you want to enforce per-user limits.",
      "location": "query",
      "type": "string"
    }
  },
  "protocol": "rest",
  "resources": {
    "taskqueues": {
      "methods": {
        "get": {
          "description": "Get detailed information about a TaskQueue.",
          "httpMethod": "GET",
          "id": "taskqueue.taskqueues.get",
          "parameterOrder": [
            "project",
            "taskqueue"
          ],
          "parameters": {
            "getStats": {
              "description": "Whether to get stats. Optional.",
              "location": "query",
              "type": "boolean"
            },
            "project": {
              "description": "The project under which the queue lies.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "taskqueue": {
              "description": "The id of the taskqueue to get the properties of.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "path": "{project}/taskqueues/{taskqueue}",
          "response": {
            "$ref": "TaskQueue"
          },
          "scopes": [
            "https://www.googleapis.com/auth/taskqueue",
            "https://www.googleapis.com/auth/taskqueue.consumer"
          ]
        }
      }
    },
    "tasks": {
      "methods": {
        "delete": {
          "description": "Delete a task from a TaskQueue.",
          "httpMethod": "DELETE",
          "id": "taskqueue.tasks.delete",
          "parameterOrder": [
            "project",
            "taskqueue",
            "task"
          ],
          "parameters": {
            "project": {
              "description": "The project under which the queue lies.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "task": {
              "description": "The id of the task to delete.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "taskqueue": {
              "description": "The taskqueue to delete a task from.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "path": "{project}/taskqueues/{taskqueue}/tasks/{task}",
          "scopes": [
            "https://www.googleapis.com/auth/taskqueue",
            "https://www.googleapis.com/auth/taskqueue.consumer"
          ]
        },
        "get": {
          "description": "Get a particular task from a TaskQueue.",
          "httpMethod": "GET",
          "id": "taskqueue.tasks.get",
          "parameterOrder": [
            "project",
            "taskqueue",
            "task"
          ],
          "parameters": {
            "project": {
              "description": "The project under which the queue lies.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "task": {
              "description": "The task to get properties of.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "taskqueue": {
              "description": "The taskqueue in which the task belongs.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "path": "{project}/taskqueues/{taskqueue}/tasks/{task}",
          "response": {
            "$ref": "Task"
          },
          "scopes": [
            "https://www.googleapis.com/auth/taskqueue",
            "https://www.googleapis.com/auth/taskqueue.consumer"
          ]
        },
        "insert": {
          "description": "Insert a new task in a TaskQueue",
          "httpMethod": "POST",
          "id": "taskqueue.tasks.insert",
          "parameterOrder": [
            "project",
            "taskqueue"
          ],
          "parameters": {
            "project": {
              "description": "The project under which the queue lies",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "taskqueue": {
              "description": "The taskqueue to insert the task into",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "path": "{project}/taskqueues/{taskqueue}/tasks",
          "request": {
            "$ref": "Task"
          },
          "response": {
            "$ref": "Task"
          },
          "scopes": [
            "https://www.googleapis.com/auth/taskqueue",
            "https://www.googleapis.com/auth/taskqueue.consumer"
          ]
        },
        "lease": {
          "description": "Lease 1 or more tasks from a TaskQueue.",
          "httpMethod": "POST",
          "id": "taskqueue.tasks.lease",
          "parameterOrder": [
            "project",
            "taskqueue",
            "numTasks",
            "leaseSecs"
          ],
          "parameters": {
            "groupByTag": {
              "description": "When true, all returned tasks will have the same tag",
              "location": "query",
              "type": "boolean"
            },
            "leaseSecs": {
              "description": "The lease in seconds.",
              "format": "int32",
              "location": "query",
              "required": true,
              "type": "integer"
            },
            "numTasks": {
              "description": "The number of tasks to lease.",
              "format": "int32",
              "location": "query",
              "required": true,
              "type": "integer"
            },
            "project": {
              "description": "The project under which the queue lies.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "tag": {
              "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",
              "type": "string"
            },
            "taskqueue": {
              "description": "The taskqueue to lease a task from.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "path": "{project}/taskqueues/{taskqueue}/tasks/lease",
          "response": {
            "$ref": "Tasks"
          },
          "scopes": [
            "https://www.googleapis.com/auth/taskqueue",
            "https://www.googleapis.com/auth/taskqueue.consumer"
          ]
        },
        "list": {
          "description": "List Tasks in a TaskQueue",
          "httpMethod": "GET",
          "id": "taskqueue.tasks.list",
          "parameterOrder": [
            "project",
            "taskqueue"
          ],
          "parameters": {
            "project": {
              "description": "The project under which the queue lies.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "taskqueue": {
              "description": "The id of the taskqueue to list tasks from.",
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "path": "{project}/taskqueues/{taskqueue}/tasks",
          "response": {
            "$ref": "Tasks2"
          },
          "scopes": [
            "https://www.googleapis.com/auth/taskqueue",
            "https://www.googleapis.com/auth/taskqueue.consumer"
          ]
        },
        "patch": {
          "description": "Update tasks that are leased out of a TaskQueue. This method supports patch semantics.",
          "httpMethod": "PATCH",
          "id": "taskqueue.tasks.patch",
          "parameterOrder": [
            "project",
            "taskqueue",
            "task",
            "newLeaseSeconds"
          ],
          "parameters": {
            "newLeaseSeconds": {
              "description": "The new lease in seconds.",
              "format": "int32",
              "location": "query",
              "required": true,
              "type": "integer"
            },
            "project": {
              "description": "The project under which the queue lies.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "task": {
              "location": "path",
              "required": true,
              "type": "string"
            },
            "taskqueue": {
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "path": "{project}/taskqueues/{taskqueue}/tasks/{task}",
          "request": {
            "$ref": "Task"
          },
          "response": {
            "$ref": "Task"
          },
          "scopes": [
            "https://www.googleapis.com/auth/taskqueue",
            "https://www.googleapis.com/auth/taskqueue.consumer"
          ]
        },
        "update": {
          "description": "Update tasks that are leased out of a TaskQueue.",
          "httpMethod": "POST",
          "id": "taskqueue.tasks.update",
          "parameterOrder": [
            "project",
            "taskqueue",
            "task",
            "newLeaseSeconds"
          ],
          "parameters": {
            "newLeaseSeconds": {
              "description": "The new lease in seconds.",
              "format": "int32",
              "location": "query",
              "required": true,
              "type": "integer"
            },
            "project": {
              "description": "The project under which the queue lies.",
              "location": "path",
              "required": true,
              "type": "string"
            },
            "task": {
              "location": "path",
              "required": true,
              "type": "string"
            },
            "taskqueue": {
              "location": "path",
              "required": true,
              "type": "string"
            }
          },
          "path": "{project}/taskqueues/{taskqueue}/tasks/{task}",
          "request": {
            "$ref": "Task"
          },
          "response": {
            "$ref": "Task"
          },
          "scopes": [
            "https://www.googleapis.com/auth/taskqueue",
            "https://www.googleapis.com/auth/taskqueue.consumer"
          ]
        }
      }
    }
  },
  "revision": "20160428",
  "rootUrl": "https://www.googleapis.com/",
  "schemas": {
    "Task": {
      "id": "Task",
      "properties": {
        "enqueueTimestamp": {
          "description": "Time (in seconds since the epoch) at which the task was enqueued.",
          "format": "int64",
          "type": "string"
        },
        "id": {
          "description": "Name of the task.",
          "type": "string"
        },
        "kind": {
          "default": "taskqueues#task",
          "description": "The kind of object returned, in this case set to task.",
          "type": "string"
        },
        "leaseTimestamp": {
          "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",
          "type": "string"
        },
        "payloadBase64": {
          "description": "A bag of bytes which is the task payload. The payload on the JSON side is always Base64 encoded.",
          "type": "string"
        },
        "queueName": {
          "description": "Name of the queue that the task is in.",
          "type": "string"
        },
        "retry_count": {
          "description": "The number of leases applied to this task.",
          "format": "int32",
          "type": "integer"
        },
        "tag": {
          "description": "Tag for the task, could be used later to lease tasks grouped by a specific tag.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "TaskQueue": {
      "id": "TaskQueue",
      "properties": {
        "acl": {
          "description": "ACLs that are applicable to this TaskQueue object.",
          "properties": {
            "adminEmails": {
              "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"
              },
              "type": "array"
            },
            "consumerEmails": {
              "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"
              },
              "type": "array"
            },
            "producerEmails": {
              "description": "Email addresses of users who can \"produce\" tasks into the TaskQueue. This means they can Insert tasks into the queue.",
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          "type": "object"
        },
        "id": {
          "description": "Name of the taskqueue.",
          "type": "string"
        },
        "kind": {
          "default": "taskqueues#taskqueue",
          "description": "The kind of REST object returned, in this case taskqueue.",
          "type": "string"
        },
        "maxLeases": {
          "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",
          "type": "integer"
        },
        "stats": {
          "description": "Statistics for the TaskQueue object in question.",
          "properties": {
            "leasedLastHour": {
              "description": "Number of tasks leased in the last hour.",
              "format": "int64",
              "type": "string"
            },
            "leasedLastMinute": {
              "description": "Number of tasks leased in the last minute.",
              "format": "int64",
              "type": "string"
            },
            "oldestTask": {
              "description": "The timestamp (in seconds since the epoch) of the oldest unfinished task.",
              "format": "int64",
              "type": "string"
            },
            "totalTasks": {
              "description": "Number of tasks in the queue.",
              "format": "int32",
              "type": "integer"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "Tasks": {
      "id": "Tasks",
      "properties": {
        "items": {
          "description": "The actual list of tasks returned as a result of the lease operation.",
          "items": {
            "$ref": "Task"
          },
          "type": "array"
        },
        "kind": {
          "default": "taskqueue#tasks",
          "description": "The kind of object returned, a list of tasks.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Tasks2": {
      "id": "Tasks2",
      "properties": {
        "items": {
          "description": "The actual list of tasks currently active in the TaskQueue.",
          "items": {
            "$ref": "Task"
          },
          "type": "array"
        },
        "kind": {
          "default": "taskqueues#tasks",
          "description": "The kind of object returned, a list of tasks.",
          "type": "string"
        }
      },
      "type": "object"
    }
  },
  "servicePath": "taskqueue/v1beta2/projects/",
  "title": "TaskQueue API",
  "version": "v1beta2"
}