Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
# Copyright (c) 2000-2020, Board of Trustees of Leland Stanford Jr. University
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# 3. Neither the name of the copyright holder nor the names of its contributors
# may be used to endorse or promote products derived from this software without
# specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
openapi: 3.0.3
info:
title: LOCKSS Poller Service REST API
description: REST API of the LOCKSS Poller Service
contact:
name: LOCKSS Support
url: https://www.lockss.org/
email: [email protected]
license:
name: BSD-3-Clause
url: https://opensource.org/licenses/BSD-3-Clause
version: 2.0.0
servers:
- url: https://laaws.lockss.org:443/
security:
- basicAuth: []
paths:
/polls:
post:
tags:
- service
summary: Send a request to call a poll to the poller
description: Use the information found in the descriptor object to initiate
a poll.
operationId: callPoll
requestBody:
description: A poll descriptor object used to define the poll being requested.
content:
application/json:
schema:
$ref: '#/components/schemas/PollDesc'
required: true
responses:
202:
description: The Poll request has been accepted and added to the queue.
content:
application/json:
schema:
type: string
description: Return a poll service id.
default:
description: The resulting error payload.
content:
application/json:
schema:
$ref: '#/components/schemas/errorResult'
x-codegen-request-body-name: body
/polls/{psId}:
get:
tags:
- service
summary: Get queued poll status
description: Get the status of a previously queued poll.
operationId: getPollStatus
parameters:
- name: psId
in: path
description: The poll id.
required: true
schema:
type: string
responses:
200:
description: Poll info returned.
content:
application/json:
schema:
$ref: '#/components/schemas/PollerSummary'
default:
description: The resulting error payload.
content:
application/json:
schema:
$ref: '#/components/schemas/errorResult'
delete:
tags:
- service
summary: Stop a poll and remove from queue.
description: Stop a running poll and delete any schecduled polls for poll with
the poll service id.
operationId: cancelPoll
parameters:
- name: psId
in: path
description: The poll id.
required: true
schema:
type: string
responses:
200:
description: Poll successfully stopped
content: {}
default:
description: The resulting error payload.
content:
application/json:
schema:
$ref: '#/components/schemas/errorResult'
/status:
get:
tags:
- service
summary: Get the status of the service
description: Get the status of the service
operationId: getStatus
responses:
200:
description: The status of the service
content:
application/json:
schema:
$ref: '#/components/schemas/apiStatus'
default:
description: The resulting error payload.
content:
application/json:
schema:
$ref: '#/components/schemas/errorResult'
/polls/{pollKey}/tallies:
get:
tags:
- poll-detail
summary: Page Tally
description: Return the vote tallies for a specific poll.
operationId: getTallyUrls
parameters:
- name: pollKey
in: path
description: The pollKey as listed in the PollDetail object.
required: true
schema:
type: string
- name: tally
in: query
description: The kind of tally element to return.
required: true
schema:
type: string
enum:
- agree
- disagree
- error
- noQuorum
- tooClose
- name: page
in: query
description: The page number.
schema:
type: integer
- name: size
in: query
description: The size of the page.
schema:
type: integer
responses:
200:
description: A pagable list of urls for given tally type.
headers:
X-Page-Count:
description: The total number of pages.
schema:
type: integer
X-Page-Number:
description: The current page number
schema:
type: integer
X-Total-Count:
description: The total number of items.
schema:
type: integer
X-Page-Size:
description: The number of items per page.
schema:
type: integer
content:
application/json:
schema:
$ref: '#/components/schemas/UrlPager'
default:
description: The resulting error payload.
content:
application/json:
schema:
$ref: '#/components/schemas/errorResult'
/polls/{pollKey}/repairs:
get:
tags:
- poll-detail
summary: Poll Repairs
description: Return the repair status for a specific poll.
operationId: getRepairQueueData
parameters:
- name: pollKey
in: path
description: The pollKey as listed in the PollDetail object.
required: true
schema:
type: string
- name: repair
in: query
description: The repair queue elements to return.
required: true
schema:
type: string
enum:
- pending
- active
- completed
- name: page
in: query
description: The page number.
schema:
type: integer
- name: size
in: query
description: The size of the page.
schema:
type: integer
responses:
200:
description: A pagable list of repair queue elements.
headers:
X-Page-Count:
description: The total number of pages.
schema:
type: integer
X-Page-Number:
description: The current page number.
schema:
type: integer
X-Total-Count:
description: The total number of items.
schema:
type: integer
X-Page-Size:
description: The number of items per page.
schema:
type: integer
content:
application/json:
schema:
$ref: '#/components/schemas/RepairPager'
default:
description: The resulting error payload.
content:
application/json:
schema:
$ref: '#/components/schemas/errorResult'
/polls/{pollKey}/peer/{peerId}:
get:
tags:
- poll-detail
summary: Poll Peer Data
description: Return the list of urls of vote type for a given peer in a specific
poll.
operationId: getPollPeerVoteUrls
parameters:
- name: pollKey
in: path
description: The pollKey from the PollDetail.
required: true
schema:
type: string
- name: peerId
in: path
description: The peerId from the Poll Detail.PeerData.
required: true
schema:
type: string
- name: urls
in: query
description: The voter urls to return.
required: true
schema:
type: string
enum:
- agreed
- disagreed
- pollerOnly
- voterOnly
- name: page
in: query
description: The page number
schema:
type: integer
- name: size
in: query
description: The page size
schema:
type: integer
responses:
200:
description: A pagable list of voter urls with a given status.
headers:
X-Page-Count:
description: The total number of pages.
schema:
type: integer
X-Page-Number:
description: The current page number.
schema:
type: integer
X-Total-Count:
description: The total number of items.
schema:
type: integer
X-Page-Size:
description: The number of items per page.
schema:
type: integer
content:
application/json:
schema:
$ref: '#/components/schemas/UrlPager'
default:
description: The resulting error payload.
content:
application/json:
schema:
$ref: '#/components/schemas/errorResult'
/polls/poller:
get:
tags:
- poller-polls
summary: Get the list of recent polls as poller.
description: Get the list of recent polls as poller from the poll queue. if
size and page are passed in use those arguments to limit return data.
operationId: getPollsAsPoller
parameters:
- name: size
in: query
description: Size of the page to retrieve.
schema:
type: integer
format: int32
example: 10
- name: page
in: query
description: Number of the page to retrieve.
schema:
type: integer
format: int32
example: 1
responses:
200:
description: A pagable list has been returned.
headers:
X-Page-Count:
description: The total number of pages.
schema:
type: integer
X-Page-Number:
description: The current page number.
schema:
type: integer
X-Total-Count:
description: The total number of items.
schema:
type: integer
X-Page-Size:
description: The number of items per page.
schema:
type: integer
content:
application/json:
schema:
$ref: '#/components/schemas/PollerPager'
default:
description: The resulting error payload.
content:
application/json:
schema:
$ref: '#/components/schemas/errorResult'
/polls/poller/{pollKey}:
get:
tags:
- poller-polls
summary: PollerDetails
description: Return the detailed information about a poll.
operationId: getPollerPollDetails
parameters:
- name: pollKey
in: path
description: The key assigned by the PollManager.
required: true
schema:
type: string
responses:
200:
description: Detailed poll info returned.
content:
application/json:
schema:
$ref: '#/components/schemas/PollerDetail'
default:
description: The resulting error payload.
content:
application/json:
schema:
$ref: '#/components/schemas/errorResult'
/polls/voter:
get:
tags:
- voter-polls
summary: Get the list of recent voter only polls.
description: Get the list of recent polls as voter from the poll queue. if size
and page are passed in use those arguments to limit return data.
operationId: getPollsAsVoter
parameters:
- name: size
in: query
description: Size of the page to retrieve.
schema:
type: integer
format: int32
example: 10
- name: page
in: query
description: Number of the page to retrieve.
schema:
type: integer
format: int32
example: 1
responses:
200:
description: A pagable list has been returned.
headers:
X-Page-Count:
description: The total number of pages.
schema:
type: integer
X-Page-Number:
description: The current page number.
schema:
type: integer
X-Total-Count:
description: The total number of items.
schema:
type: integer
X-Page-Size:
description: The number of items per page.
schema:
type: integer
content:
application/json:
schema:
$ref: '#/components/schemas/VoterPager'
default:
description: The resulting error payload.
content:
application/json:
schema:
$ref: '#/components/schemas/errorResult'
/polls/voter/{pollKey}:
get:
tags:
- voter-polls
summary: VoterDetails
description: Return the detailed information about a poll.
operationId: getVoterPollDetails
parameters:
- name: pollKey
in: path
description: The key assigned by the PollManager.
required: true
schema:
type: string
responses:
200:
description: Detailed poll info returned.
content:
application/json:
schema:
$ref: '#/components/schemas/VoterDetail'
default:
description: The resulting error payload.
content:
application/json:
schema:
$ref: '#/components/schemas/errorResult'
/aus/{auid}/export:
get:
tags:
- export
summary: Export artifacts in an Archival Unit
description: Export artifacts in an Archival Unit as a group of archives
operationId: getExportFiles
parameters:
- name: auid
in: path
description: Identifier of the Archival Unit containing the artifacts
required: true
schema:
type: string
- name: fileType
in: query
description: The type of archive to create
schema:
type: string
default: WARC_RESPONSE
enum:
- WARC_RESPONSE
- WARC_RESOURCE
- ARC_RESPONSE
- ARC_RESOURCE
- ZIP
- name: isCompress
in: query
description: Indication of whether contents should be compressed
schema:
type: boolean
default: true
- name: isExcludeDirNodes
in: query
description: Indication of whether directories should be excluded
schema:
type: boolean
default: true
- name: xlateFilenames
in: query
description: Type of filename translation to be done
schema:
type: string
default: XLATE_NONE
enum:
- XLATE_NONE
- XLATE_WINDOWS
- XLATE_MAC
- name: filePrefix
in: query
description: The prefix to be used to name the exported file
schema:
type: string
default: lockss_export
- name: maxSize
in: query
description: The maximum size of the exported file
schema:
type: integer
format: int64
default: -1
- name: maxVersions
in: query
description: The maximum number of versions of an artifact to be exported
schema:
type: integer
default: -1
responses:
200:
description: The archives with the requested artifacts
content:
multipart/form-data:
schema:
type: string
format: binary
default:
description: The resulting error payload.
content:
application/json:
schema:
$ref: '#/components/schemas/errorResult'
/ws/polls:
get:
tags:
- service
summary: Query for poll properties
description: Query for polls that meet a set of specified conditions
operationId: getPolls
parameters:
- name: pollQuery
in: query
description: The query that specifies the polls to be returned
required: true
schema:
type: string
responses:
200:
description: Information about the requested polls
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/pollWsResult'
default:
description: The resulting error payload.
content:
application/json:
schema:
$ref: '#/components/schemas/errorResult'
/ws/peers:
get:
tags:
- service
summary: Query for peer properties
description: Query for peers that meet a set of specified conditions
operationId: getPeers
parameters:
- name: peerQuery
in: query
description: The query that specifies the peers to be returned
required: true
schema:
type: string
responses:
200:
description: Information about the requested peers
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/peerWsResult'
default:
description: The resulting error payload.
content:
application/json:
schema:
$ref: '#/components/schemas/errorResult'
/ws/votes:
get:
tags:
- service
summary: Query for vote properties
description: Query for votes that meet a set of specified conditions
operationId: getVotes
parameters:
- name: voteQuery
in: query
description: The query that specifies the votes to be returned
required: true
schema:
type: string
responses:
200:
description: Information about the requested votes
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/voteWsResult'
default:
description: The resulting error payload.
content:
application/json:
schema:
$ref: '#/components/schemas/errorResult'
/ws/aus/import:
put:
tags:
- import
summary: Import a file into an Archival Unit
description: Import a file as an artifact in an Archival Unit
operationId: putImportFile
requestBody:
content:
multipart/form-data:
schema:
required:
- file
- targetBaseUrlPath
- targetUrl
properties:
targetBaseUrlPath:
type: string
description: The base URL path of the target AU
targetUrl:
type: string
description: The target AU URL
file:
type: string
description: The content of the file to be imported
format: binary
userProperties:
type: array
description: The user-specified properties
items:
type: string
required: true
responses:
200:
description: OK
content: {}
default:
description: The resulting error payload.
content:
application/json:
schema:
$ref: '#/components/schemas/errorResult'
/ws/hashes:
get:
tags:
- hash
summary: Get the results of all the asynchronous hashing operations
description: Get the results of all the asynchronous hashing operations
operationId: getAllHashes
responses:
200:
description: Information about all the asynchronous hashing operations
content:
multipart/form-data:
schema:
type: string
format: binary
default:
description: The resulting error payload.
content:
application/json:
schema:
$ref: '#/components/schemas/errorResult'
put:
tags:
- hash
summary: Perform a hashing operation
description: Perform the hashing of an AU or a URL
operationId: putHash
parameters:
- name: isAsynchronous
in: query
description: "Indication of whether the operation should be done \asynchronously"
schema:
type: boolean
default: true
requestBody:
description: The parameters needed to define a hash.
content:
'*/*':
schema:
$ref: '#/components/schemas/hasherWsParams'
required: true
responses:
200:
description: Information about the performed hashing operation
content:
multipart/form-data:
schema:
type: string
format: binary
default:
description: The resulting error payload.
content:
application/json:
schema:
$ref: '#/components/schemas/errorResult'
x-codegen-request-body-name: hasherWsParams
/ws/hashes/requests/{requestId}:
get:
tags:
- hash
summary: Get the result of an asynchronous hashing operation
description: Get the result of an asynchronous hashing operation
operationId: getHash
parameters:
- name: requestId
in: path
description: Identifier of the asynchronous hashing operation
required: true
schema:
type: string
responses:
200:
description: Information about the asynchronous hashing operation
content:
multipart/form-data:
schema:
type: string
format: binary
default:
description: The resulting error payload.
content:
application/json:
schema:
$ref: '#/components/schemas/errorResult'
delete:
tags:
- hash
summary: Remove an asynchronous hashing operation
description: Remove from the system an asynchronous hashing operation, terminating
it if it's still running
operationId: deleteHash
parameters:
- name: requestId
in: path
description: Identifier of the asynchronous hashing operation
required: true
schema:
type: string
responses:
200:
description: Asynchronous hashing operation successfully removed
content:
application/json:
schema:
type: string
default:
description: The resulting error payload.
content:
application/json:
schema:
$ref: '#/components/schemas/errorResult'
/ws/aurepositories:
get:
tags:
- repo
summary: Query the properties of repositories
description: Query the system for selected repository properties
operationId: getRepositories
parameters:
- name: repositoryQuery
in: query
description: The query that specifies the repository properties to be returned
required: true
schema:
type: string
responses:
200:
description: Information about the requested TDB AUs
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/repositoryWsResult'
default:
description: The resulting error payload.
content:
application/json:
schema:
$ref: '#/components/schemas/errorResult'
/ws/repositoryspaces:
get:
tags:
- repo
summary: Query the properties of repository spaces
description: Query the system for selected repository space properties
operationId: getRepositorySpaces
parameters:
- name: repositorySpaceQuery
in: query
description: The query that specifies the repository space properties to be
returned
required: true
schema:
type: string
responses:
200:
description: Information about the requested TDB AUs
content:
application/json:
schema:
type: array
description: The list of requested properties.
items:
$ref: '#/components/schemas/repositorySpaceWsResult'
default:
description: The resulting error payload.
content:
application/json:
schema:
$ref: '#/components/schemas/errorResult'
components:
schemas:
errorResult:
type: object
required:
- message
- code
properties:
message:
type: string
code:
type: integer
rootCause:
type: string
PollerDetail:
required:
- pollDesc
- pollerId
- status
type: object
properties:
pollDesc:
$ref: '#/components/schemas/PollDesc'
pollerId:
type: string
description: The id of the poller who called the poll
status:
type: string
description: The current status of the poll.
pollKey:
type: string
description: Key generated by poll manager when poll is created.
createTime:
type: integer
description: The timestamp at which the poll was created.
format: int64
duration:
type: integer
description: The estimated duration for the poll.
format: int64
deadline:
type: integer
description: The time by which the poll must have completed
format: int64
outerCircleTarget:
type: integer
description: The number of peers from the poller outer circle to taget.
format: int32
hashAlgorithm:
type: string
description: The algorithm used by the hasher for this poll.
voteMargin:
type: integer
description: The required agreement need to decide landslide agreement or
disagreement.
format: int32
voteDeadline:
type: integer
description: The time by which all voters must have voted.
format: int64
voteDuration:
type: integer
description: The estimated duration for voters.
format: int64
pollEnd:
type: integer
description: the time at which the poll ended or -1 if still running.
format: int64
quorum:
type: integer
description: The minimum required for a quroum
format: int32
errorDetails:
type: string
description: The error which caused the poll to fail.
votedPeers:
type: array
description: The data from peers whom voted.
items:
$ref: '#/components/schemas/PeerData'
noAuPeers:
type: array
description: The peers who do not have the au.
items:
type: string
tally:
$ref: '#/components/schemas/TallyData'
repairQueue:
$ref: '#/components/schemas/RepairQueue'
description: The details of a poll being performed or queued by the Poller
VoterDetail:
required:
- pollDesc
- pollerId
- status
type: object
properties:
pollDesc:
$ref: '#/components/schemas/PollDesc'
pollerId:
type: string
description: The id of the voter in the poll
callerId:
type: string
description: The id of the poller who called the poll
status:
type: string
description: The current status of the poll.
pollKey:
type: string
description: Key generated by poll manager when poll is created.
createTime:
type: integer
description: The timestamp at which the poll was created.
format: int64
duration:
type: integer
description: The estimated duration for the poll.
format: int64
deadline:
type: integer
description: The time by which the poll must have completed
format: int64
hashAlgorithm:
type: string
description: The algorithm used by the hasher for this poll.
agreement:
type: number
description: The percentage agreement.
format: double
wtAgreement:
type: number
description: The weighted percentage agreement.
format: double
symmetricAgreement:
type: number
description: The percentage of symmetric agreement.
format: double
wtSymmetricAgreement:
type: number
description: The weighted percentage of symmetric agreement.
format: double
pollerNonce:
type: string
description: the poller nonce
voterNonce:
type: string
description: the voter nonce
voter2Nonce:
type: string
description: the voter2 nonce
voteDeadline:
type: integer
description: The time by which all voters must have voted.
format: int64
numAgree:
type: integer
description: The number of urls with agreement.
format: int32
numDisagree:
type: integer
description: The number of urls with disagreement.
format: int32
numPollerOnly:
type: integer
description: The number of urls found by only the poller.
format: int32
numVoterOnly:
type: integer
description: The number of urls found by only a voter.
format: int32
errorDetails:
type: string
description: The error which caused the poll to fail.
description: The details of a poll being performed or queued as the Voter.
PeerData:
required:
- peerId
- status
type: object
properties:
peerId:
type: string
description: the peer id for this participant
status:
type: string
description: the status of this peer
agreement:
type: number
description: the percentage of vote agreement.
format: float
numAgree:
type: integer
description: The number of urls for which there was agreement.
format: int64
agreeLink:
$ref: '#/components/schemas/LinkDesc'
numDisagree:
type: integer
description: The number of urls for which there was disagreement.
format: int64
disagreeLink:
$ref: '#/components/schemas/LinkDesc'
numPollerOnly:
type: integer
description: The number of urls which were poller only.
format: int64
pollerOnlyLink:
$ref: '#/components/schemas/LinkDesc'
numVoterOnly:
type: integer
description: The number of urls for which were voter only.
format: int64
voterOnlyLink:
$ref: '#/components/schemas/LinkDesc'
bytesHashed:
type: integer
description: the number of bytes hashed.
format: int64
bytesRead:
type: integer
description: the number of bytes read.
format: int64
wtAgreement:
type: number
description: the weight of vote percentage agreement.
format: float
wtNumAgree:
type: number
description: the weight of number agree votes.
format: float
wtNumDisagree:
type: number
description: the weight of number of disagree votes.
format: float
wtNumPollerOnly:
type: number
description: the weight of number of poller only votes.
format: float
wtNumVoterOnly:
type: number
description: the weight of number of voter only votes.
format: float
state:
type: string
description: the state machine state.
lastStateChange:
type: integer
description: the time of last state change.
format: int64
description: Detail for a single voter in a poll.
TallyData:
required:
- numAgree
- numDisagree
- numError
- numNoQuorum
- numTooClose
type: object
properties:
numAgree:
type: integer
description: The number of urls with agreement.
format: int32
agreeLink:
$ref: '#/components/schemas/LinkDesc'
numDisagree:
type: integer
description: The number of urls with disagreement.
format: int32
disagreeLink:
$ref: '#/components/schemas/LinkDesc'
numTooClose:
type: integer
description: The number of urls too close.
format: int32
tooCloseLink:
$ref: '#/components/schemas/LinkDesc'
numNoQuorum:
type: integer
description: The number of urls without enough voters.
format: int32
noQuorumLink:
$ref: '#/components/schemas/LinkDesc'
numError:
type: integer
description: The number of urls wit errors.
format: int32
errorLink:
$ref: '#/components/schemas/LinkDesc'
wtAgreed:
type: number
description: The weighted sum agreed uris.
format: float
default: 0.0
wtDisagreed:
type: number
description: The weighted sum of disagree uris.
format: float
default: 0.0
wtTooClose:
type: number
description: The sum of the tooClose uris.
format: float
default: 0.0
wtNoQuorum:
type: number
description: The weighted sum of NoQuorum uris.
format: float
default: 0.0
description: The tally for the current poll.
RepairQueue:
required:
- numActive
- numCompleted
- numPending
type: object
properties:
numPending:
type: integer
description: The number of pending repairs
format: int32
pendingLink:
$ref: '#/components/schemas/LinkDesc'
numActive:
type: integer
description: The number of active repairs
format: int32
activeLink:
$ref: '#/components/schemas/LinkDesc'
numCompleted:
type: integer
description: The number of completed repairs
format: int32
completedLink:
$ref: '#/components/schemas/LinkDesc'
description: Description of the RepairQueue.
RepairData:
required:
- repairFrom
- repairUrl
type: object
properties:
repairUrl:
type: string
description: The url to repair
repairFrom:
type: string
description: The peer to repair from
result:
type: string
description: The status of this repair
enum:
- NoQuorum
- TooClose
- Lost
- LostPollerOnly
- LostVoterOnly
- Won
description: structure used to define a repair source for url. if the source
is null than repair from publisher
RepairPager:
required:
- pageDesc
type: object
properties:
pageDesc:
$ref: '#/components/schemas/PageDesc'
repairs:
type: array
description: The list of repair data on this page or null.
items:
$ref: '#/components/schemas/RepairData'
description: A Pager for a list of urls found in poll details.
UrlPager:
required:
- pageDesc
type: object
properties:
pageDesc:
$ref: '#/components/schemas/PageDesc'
urls:
type: array
description: The urls on this page.
items:
type: string
description: A Pager for a list of urls found in poll details.
PollerPager:
required:
- pageDesc
type: object
properties:
pageDesc:
$ref: '#/components/schemas/PageDesc'
polls:
type: array
description: The list of polls for the current page or null
items:
$ref: '#/components/schemas/PollerSummary'
description: A page of poller poll summaries.
PollerSummary:
required:
- auId
- deadline
- pollKey
- start
- status
- variant
type: object
properties:
auId:
type: string
description: The id for the au being polled.
variant:
type: string
description: The V3 Poll variant.
status:
type: string
description: The current status of the poll.
participants:
type: integer
description: The number of participants voting.
format: int32
numTalliedUrls:
type: integer
description: The number of tallied urls.
format: int32
numHashErrors:
type: integer
description: The number of hash errors.
format: int32
numCompletedRepairs:
type: integer
description: The number of completed repairs.
format: int32
numAgreeUrls:
type: integer
description: The number of urls with agreement.
format: int32
start:
type: integer
description: The timestamp for when the poll started.
format: int64
deadline:
type: integer
description: The deadline for voting in this poll.
format: int64
pollEnd:
type: integer
description: The time at which the poll ended.
format: int64
pollKey:
type: string
description: Key generated by poll manager when poll was created.
detailLink:
$ref: '#/components/schemas/LinkDesc'
description: A summary of a poll in which we are the poller.
VoterSummary:
required:
- auId
- caller
- deadline
- pollKey
- start
- status
type: object
properties:
auId:
type: string
description: The id for the au being polled.
caller:
type: string
description: The id of who called the poll.
start:
type: integer
description: The timestamp for when the poll started.
format: int64
status:
type: string
description: The current status of the poll.
deadline:
type: integer
description: The deadline for voting in this poll.
format: int64
pollKey:
type: string
description: Key generated by poll manager when poll was created.
detailLink:
$ref: '#/components/schemas/LinkDesc'
description: A summary of a poll in which we are acting just as a voter.
VoterPager:
required:
- pageDesc
type: object
properties:
pageDesc:
$ref: '#/components/schemas/PageDesc'
polls:
type: array
description: The list of polls for the current page or null
items:
$ref: '#/components/schemas/VoterSummary'
description: A page of voter poll summary.
PollDesc:
required:
- auId
type: object
properties:
auId:
type: string
description: The id which defines the poll
cuSetSpec:
$ref: '#/components/schemas/CachedUriSetSpec'
pollType:
minimum: 3
type: integer
description: The type of poll to run. Only V3 is supported.
protocol:
type: integer
description: The version of polling protocol.
pluginPollVersion:
type: string
description: The version of the polling features needed by the plugin.
variant:
type: string
description: The V3 poll variation.
enum:
- PoR
- PoP
- Local
- NoPoll
modulus:
type: integer
description: Poll on every 'n'th url.
description: The Poller Services poll spec used to define a poll.
CachedUriSetSpec:
required:
- urlPrefix
type: object
properties:
urlPrefix:
type: string
description: The base which roots the lower and upper bound
lowerBound:
type: string
description: lower bound of the prefix range, inclusive.
upperBound:
type: string
description: upper bound of prefix range, inclusive.
description: A set of urls bounded by upper and lower restraints. If lower
= "." this is a singleContentNode. If lower is null then start at the root
url, if upper is null end with the last.
PageDesc:
required:
- page
- size
- total
type: object
properties:
page:
type: integer
description: The page number
example: 10
size:
type: integer
description: The size or number of elements on a page
example: 5
total:
type: integer
description: The mTotal number of elements.
example: 150
prevPage:
type: string
description: The url of the prev page of results or null
nextPage:
type: string
description: The url to the next page of results or null.
description: The information needed to page in a long list of data
LinkDesc:
required:
- link
type: object
properties:
link:
type: string
description: The actual link suitable for a standard GET request
example: http:www.example.com/v1/element
desc:
type: string
description: A description of this link
example: pollerOnly
description: A wrapper for a link and a string description.
pollWsResult:
required:
- auId
- auName
type: object
properties:
auId:
type: string
description: The identifier of the Archival Unit
auName:
type: string
description: The name of the Archival Unit
description: The properties of a poll
peerWsResult:
required:
- peerId
type: object
properties:
peerId:
type: string
description: The identifier of the Archival Unit
description: The properties of a peer
voteWsResult:
required:
- auId
- auName
type: object
properties:
auId:
type: string
description: The identifier of the Archival Unit
auName:
type: string
description: The name of the Archival Unit
description: The properties of a vote
hasherWsParams:
required:
- algorithm
- auId
- challenge
- excludeSuspectVersions
- hashType
- includeWeight
- lower
- recordFilteredStream
- resultEncoding
- upper
- url
- verifier
type: object
properties:
auId:
type: string
description: The identifier of the Archival Unit content to be hashed
url:
type: string
description: The identifier of the URL content to be hashed
lower:
type: string
description: The lower boundary URL
upper:
type: string
description: The upper boundary URL
recordFilteredStream:
type: boolean
description: An indication of whether the filtered stream should be recorded
excludeSuspectVersions:
type: boolean
description: An indication of whether to exclude suspect versions
includeWeight:
type: boolean
description: An indication of whether to include hash weight
algorithm:
type: string
description: The name of the hashing algorithm to be used [SHA-1 (or SHA1),
MD5 or SHA-256]
hashType:
type: string
description: The type of hashing to be performed [V1Content, V1Name, V1File,
V3Tree or V3File]
resultEncoding:
type: string
description: The result encoding to be used [Base64 or Hex]
challenge:
type: string
description: The encoded challenge
verifier:
type: string
description: The encoded verifier
description: The parameters of a hash operation
repositoryWsResult:
required:
- repositorySpaceId
type: object
properties:
repositorySpaceId:
type: string
description: The Repository Space identifier
description: Information about the requested repositories
repositorySpaceWsResult:
required:
- repositorySpaceId
type: object
properties:
repositorySpaceId:
type: string
description: The Repository Space identifier
description: Information about the requested repository spaces
apiStatus:
required:
- apiVersion
- ready
type: object
properties:
apiVersion:
type: string
description: The version of the API
componentName:
type: string
description: The name of the component
componentVersion:
type: string
description: The version of the component software
lockssVersion:
type: string
description: The version of the LOCKSS system
ready:
type: boolean
description: The indication of whether the service is available
serviceName:
type: string
description: The name of the service
readyTime:
type: integer
description: The time the service last became ready.
format: int64
reason:
type: string
description: The reason the service isn't ready.
startupStatus:
type: string
description: Enum indicating progress of plugin/AU processing at startup.
enum:
- NONE
- PLUGINS_CRAWLING
- PLUGINS_COLLECTED
- PLUGINS_LOADING
- PLUGINS_LOADED
- AUS_STARTING
- AUS_STARTED
description: The status information of the service
securitySchemes:
basicAuth:
type: http
description: HTTP Basic Authentication. Works over `HTTP` and `HTTPS`
scheme: basic