All Downloads are FREE. Search and download functionalities are using the official Maven repository.

swagger.swagger.yaml Maven / Gradle / Ivy

# 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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy