'This operation lists jobs for a vault, including jobs that are
in-progress and jobs that have recently finished.
Amazon Glacier retains recently completed jobs for a period
before deleting them; however, it eventually removes completed
jobs. The output of completed jobs can be retrieved. Retaining
completed jobs for a period of time after they have completed
enables you to get a job output in the event you miss the job
completion notification or your first attempt to download it
fails. For example, suppose you start an archive retrieval job
to download an archive. After the job completes, you start to
download the archive but encounter a network error. In this
scenario, you can retry and download the archive while the job
exists.
To retrieve an archive or retrieve a vault inventory from
Amazon Glacier, you first initiate a job, and after the job
completes, you download the data. For an archive retrieval,
the output is the archive data, and for an inventory
retrieval, it is the inventory list. The List Job operation
returns a list of these jobs sorted by job initiation time.
This List Jobs operation supports pagination. By default, this
operation returns up to 1,000 jobs in the response. You should
always check the response for a `marker` at which to continue
the list; if there are no more items the `marker` is `null`.
To return a list of jobs that begins at a specific job, set
the `marker` request parameter to the value you obtained from
a previous List Jobs request. You can also limit the number of
jobs returned in the response by specifying the `limit`
parameter in the request.
Additionally, you can filter the jobs list returned by
specifying an optional `statuscode` (InProgress, Succeeded, or
Failed) and `completed` (true, false) parameter. The
`statuscode` allows you to specify that only jobs that match a
specified status are returned. The `completed` parameter
allows you to specify that only jobs in a specific completion
state are returned.
An AWS account has full permission to perform all operations
(actions). However, AWS Identity and Access Management (IAM)
users don\'t have any permissions by default. You must grant
them explicit permission to perform specific actions. For more
information, see `Access Control Using AWS Identity and Access
Management (IAM)`_.
For the underlying REST API, go to `List Jobs `_
:type vault_name: string
:param vault_name: The name of the vault.
:type limit: string
:param limit: Specifies that the response be limited to the specified
number of items or fewer. If not specified, the List Jobs operation
returns up to 1,000 jobs.
:type marker: string
:param marker: An opaque string used for pagination. This value
specifies the job at which the listing of jobs should begin. Get
the marker value from a previous List Jobs response. You need only
include the marker if you are continuing the pagination of results
started in a previous List Jobs request.
:type statuscode: string
:param statuscode: Specifies the type of job status to return. You can
specify the following values: "InProgress", "Succeeded", or
"Failed".
:type completed: string
:param completed: Specifies the state of the jobs to return. You can
specify `True` or `False`.'

def list_jobs(self, vault_name, completed=None, status_code=None, limit=None, marker=None):

    params = {}
    if limit:
        params['limit'] = limit
    if marker:
        params['marker'] = marker
    if status_code:
        params['statuscode'] = status_code
    if (completed is not None):
        params['completed'] = ('true' if completed else 'false')
    uri = ('vaults/%s/jobs' % vault_name)
    return self.make_request('GET', uri, params=params)
