---
openapi: 3.0.0
servers:
- url: "/"
tags:
- name: Announcements
- name: Attribute Namespaces
- name: Attributes
- name: Build
- name: Comments
- name: Configuration
- name: Distributions
- name: General Information
- name: Groups
- name: Issue Trackers
- name: Notifications
- name: Person
- name: Published Binaries
- name: Requests
- name: Search
  description: |
    All endpoints besides the owner search listed in the search group use Xpath expressions. The `match` query parameter is used
    to pass the Xpath predicate. The individual endpoints refer to different objects like Packages, Projects, Issues and more...
    Please refer to the documentation of the individual search endpoints to know which attributes can be accessed through the predicate,
    and which extra query parameters are supported or might be required in order to run the search.


    These functions can be used with the predicates: `boolean`, `contains`, `not`, `starts_with`, `ends_with`.

    _Example_:

    For a list of all projects where the name starts with "OBS:".

    `/search/project?match=starts_with(@name,'OBS:')`


    More than one predicate can be combined with the following operators: `eq`, `and`, `or`, `neq`, `gt`, `lt`, `gteq`, `lteq`.

    _Example_:

    To receive details about the package "obs-server" that is part of the project "OBS:Server:Unstable".

    `/search/package?match=@name='obs-server'+and+@project='OBS:Server:Unstable'`
- name: Sources
- name: Sources - Projects
- name: Sources - Packages
- name: Sources - Files
- name: Staging Workflow
- name: Statistics
- name: Status Messages
- name: Status Project
- name: Status Reports
- name: Status Reports - Required Checks
- name: Trigger
- name: Workers
info:
  description: |
    The _Open Build Service API_ is an XML API. To make sure you are querying the API and not the Web User Interface, provide the `Accept: application/xml; charset=utf-8` header in your API requests.

    To authenticate, use [HTTP basic authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) by passing the _Authorization_ header in the form of `Authorization: Basic <credentials>`.

    There is no API versioning, since there is no need for it right now.

    Only rudimentary rate limiting is implemented, so please be gentle when using the API concurrently, especially with potentially expensive operations.

    Your OBS Admin might have implemented other authentication schemes or stricter rate limiting in front of the application. Check the [site main page](/) for details.

    For command-line users, we recommend using [osc](https://github.com/openSUSE/osc) with its _api_ command to interact with the API.
    It's as simple as this example: `osc api /about` (_about_ is one of the endpoints documented below)

    In order to make sure that the XML that is send in a requests body is in the expected format, the API validates it.
    Either against a XML Schema Definition (`.xsd`) or a RELAX NG Schema (`.rng`). The schemas are mentioned
    in the endpoint documentation. If there is no schema file mentioned, no validation of the XML is done.
    In case the XML is not valid, a validation error is reported.

    The legacy API documentation is reachable [here](https://api.opensuse.org/apidocs-old/index).
  version: 2.10.50
  title: Open Build Service API
  contact:
    url: https://openbuildservice.org/
    name: Open Build Service
  license:
    url: https://github.com/openSUSE/open-build-service/blob/master/COPYING
    name: GNU General Public License v2.0
paths:
  "/about":
    get:
      summary: Get information about API.
      description: Get generic information about the API.
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [about.xsd](../schema/about.xsd)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                required:
                - title
                - description
                - revision
                properties:
                  title:
                    type: string
                    example: Open Build Service API
                  description:
                    type: string
                    example: API to the Open Build Service
                  revision:
                    type: string
                    example: 2.11~alpha.20201110T101235.7b5d82e614
                  last_deployment:
                    type: string
                    example: '2020-11-10 15:07:02 +0000'
                  commit:
                    type: string
                    example: 7b5d82e6143442a8eb8459f35cc94d2fbe263ebe
                xml:
                  name: about
      tags:
      - General Information
  "/announcements":
    get:
      deprecated: true
      summary: List all announcements.
      description: List all messages from type announcement.
      security:
      - basic_authentication: []
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  status_message:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          xml:
                            attribute: true
                        message:
                          type: string
                        user:
                          type: string
                        severity:
                          type: string
                        scope:
                          type: string
                        created_at:
                          type: string
                      xml:
                        name: status_message
                  count:
                    type: integer
                    xml:
                      attribute: true
                xml:
                  name: status_messages
              example:
                count: 2
                status_message:
                - id: 2
                  message: OBS 3.0 is released!
                  user: Iggy
                  severity: announcement
                  scope: all_users
                  created_at: 2021-10-15 13:28:22 UTC
                - id: 1
                  message: Feature number 42 was implemented!
                  user: Iggy
                  severity: announcement
                  scope: all_users
                  created_at: 2021-10-12 11:18:12 UTC
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Announcements
    post:
      deprecated: true
      summary: Create an announcement.
      description: |
        Create an announcement.

        This is only for users with roles "Admin" or "Staff".
      security:
      - basic_authentication: []
      requestBody:
        description: Announcement definition.
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                title:
                  type: string
                content:
                  type: string
              xml:
                name: announcement
            example:
              title: OBS 3.0 released!
              content: We are glad to announce that OBS 3.0 is released.
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: |
            Invalid Announcement.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                message_cant_be_blank:
                  summary: Message can't be blank
                  value:
                    code: invalid_announcement
                    summary: '["Message can''t be blank"]'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Announcements
  "/announcements/{announcement_id}":
    get:
      deprecated: true
      summary: Show an announcement.
      description: Show the content of an announcement.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: announcement_id
        schema:
          type: integer
        required: true
        description: The id of the announcement.
        example: 16
      responses:
        '200':
          description: OK. The request has succeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                    xml:
                      attribute: true
                  message:
                    type: string
                  user:
                    type: string
                  severity:
                    type: string
                  scope:
                    type: string
                  created_at:
                    type: string
                xml:
                  name: status_message
              example:
                id: 16
                message: Feature number 42 was implemented!
                user: Iggy
                severity: announcement
                scope: all_users
                created_at: 2021-10-12 11:18:12 UTC
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: Couldn't find StatusMessage with 'id'=0 [WHERE `status_messages`.`severity`
                  = ?]
      tags:
      - Announcements
    put:
      deprecated: true
      summary: Update an announcement.
      description: |
        Update the content of an announcement.

        This is only for users with roles "Admin" or "Staff".
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: announcement_id
        schema:
          type: integer
        required: true
        description: The id of the announcement.
        example: 16
      requestBody:
        description: Announcement definition.
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                title:
                  type: string
                content:
                  type: string
              xml:
                name: announcement
            examples:
              update_title:
                summary: Update only the title
                value:
                  title: New title!
              update_title_and_content:
                summary: Update title and content
                value:
                  title: New title!
                  content: New content.
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: |
            Invalid Announcement.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                message_cant_be_blank:
                  summary: Message can't be blank
                  value:
                    code: invalid_announcement
                    summary: '["Message can''t be blank"]'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: Couldn't find StatusMessage with 'id'=0 [WHERE `status_messages`.`severity`
                  = ?]
      tags:
      - Announcements
    delete:
      deprecated: true
      summary: Delete an announcement.
      description: |
        Delete an announcement.

        This is only for users with roles "Admin" or "Staff".
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: announcement_id
        schema:
          type: integer
        required: true
        description: The id of the announcement.
        example: 16
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: Couldn't find StatusMessage with 'id'=0 [WHERE `status_messages`.`severity`
                  = ?]
      tags:
      - Announcements
  "/architectures":
    get:
      summary: List all known architectures.
      description: |
        Get a list of all known architectures known to OBS in general.
        This is not the list of architectures provided by this instance. Check the
        schedulers element from the `/configuration` route for this.
      security:
      - basic_authentication: []
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    xml:
                      attribute: true
                  name:
                    type: string
                    xml:
                      attribute: true
                  rev:
                    type: string
                    xml:
                      attribute: true
                  vrev:
                    type: string
                    xml:
                      attribute: true
                  srcmd5:
                    type: string
                    xml:
                      attribute: true
                  entry:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        md5:
                          type: string
                          xml:
                            attribute: true
                        size:
                          type: string
                          xml:
                            attribute: true
                        mtime:
                          type: string
                          xml:
                            attribute: true
                xml:
                  name: directory
              example:
                count: '4'
                entry:
                - name: aarch64
                - name: armv7l
                - name: s390x
                - name: x86_64
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - General Information
  "/architectures/{architecture_name}":
    get:
      summary: Show one architecture.
      description: Show information about one architecture.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  name:
                    type: string
                    xml:
                      attribute: true
                xml:
                  name: architecture
                example:
                  name: x86_64
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: unknown_architecture
                summary: 'Architecture does not exist: x999'
      tags:
      - General Information
  "/attribute":
    get:
      summary: List all attribute namespaces.
      description: List all attribute namespaces.
      security:
      - basic_authentication: []
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [directory.xsd](../schema/directory.xsd)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    xml:
                      attribute: true
                  name:
                    type: string
                    xml:
                      attribute: true
                  rev:
                    type: string
                    xml:
                      attribute: true
                  vrev:
                    type: string
                    xml:
                      attribute: true
                  srcmd5:
                    type: string
                    xml:
                      attribute: true
                  entry:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        md5:
                          type: string
                          xml:
                            attribute: true
                        size:
                          type: string
                          xml:
                            attribute: true
                        mtime:
                          type: string
                          xml:
                            attribute: true
                xml:
                  name: directory
              example:
                count: '2'
                entry:
                - name: OBS
                - name: openSUSE
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Attribute Namespaces
  "/attribute/{namespace}":
    get:
      summary: List all attributes below a namespace.
      description: List all attributes under a given attribute namespace.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: namespace
        schema:
          type: string
        required: true
        description: The namespace
        example: OBS_TEST
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [directory.xsd](../schema/directory.xsd)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    xml:
                      attribute: true
                  name:
                    type: string
                    xml:
                      attribute: true
                  rev:
                    type: string
                    xml:
                      attribute: true
                  vrev:
                    type: string
                    xml:
                      attribute: true
                  srcmd5:
                    type: string
                    xml:
                      attribute: true
                  entry:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        md5:
                          type: string
                          xml:
                            attribute: true
                        size:
                          type: string
                          xml:
                            attribute: true
                        mtime:
                          type: string
                          xml:
                            attribute: true
                xml:
                  name: directory
              example:
                count: '2'
                entry:
                - name: AutoCleanup
                - name: OwnerRootProject
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: Couldn't find AttribNamespace
      tags:
      - Attributes
    delete:
      summary: Delete an attribute namespace and all attributes below.
      description: |
        Delete an attribute namespace and all attributes below.

        This operation is the same as the one defined with [DELETE /attribute/{namespace}/_meta](#/Attributes/delete_attribute__namespace___meta).
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: namespace
        schema:
          type: string
        required: true
        description: The namespace
        example: OBS_TEST
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Attribute Namespaces
  "/attribute/{namespace}/_meta":
    get:
      summary: Show attribute namespace.
      description: Shows attribute namespace.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: namespace
        schema:
          type: string
        required: true
        description: The namespace
        example: OBS_TEST
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [attribute_namespace_meta.xsd](../schema/attribute_namespace_meta.xsd)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  name:
                    type: string
                    example: OBS_TEST
                    xml:
                      attribute: true
                  modifiable_by:
                    type: array
                    items:
                      type: object
                      properties:
                        user:
                          type: string
                          example: user_login_name
                          xml:
                            attribute: true
                xml:
                  name: namespace
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: Couldn't find AttribNamespace
      tags:
      - Attribute Namespaces
    post:
      summary: Change attribute namespace. Create an attribute namespace if it doesn't
        exist.
      description: |
        This endpoint can be used for both, creating an attribute namespace and updating it:
          * If the attribute namespace passed as parameter doesn't exist, it will create the attribute namespace.
          * If the attribute namespace passed as parameter already exists, it will update the namespace attribute.

        This operation is the same as the one defined with [PUT](#/Attributes/put_attribute__namespace___meta).
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: namespace
        schema:
          type: string
        required: true
        description: The namespace
        example: OBS_TEST
      requestBody:
        description: |
          Attribute namespace definition.

          XML Schema used for body validation: [attribute_namespace_meta.xsd](../schema/attribute_namespace_meta.xsd)
        required: true
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                name:
                  type: string
                  example: OBS_TEST
                  xml:
                    attribute: true
                modifiable_by:
                  type: array
                  items:
                    type: object
                    properties:
                      user:
                        type: string
                        example: user_login_name
                        xml:
                          attribute: true
              xml:
                name: namespace
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: Validation Failed.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                empty_body:
                  value:
                    code: validation_failed
                    summary: Document is empty, not allowed for attribute_namespace_meta
                  summary: Validation Failed (Empty Body)
                wrong_xml_element:
                  value:
                    code: validation_failed
                    summary: 'attribute_namespace_meta validation error: 1:0: ERROR:
                      Element ''foo'': No matching global declaration available for
                      the validation root.'
                  summary: Validation Failed (Wrong XML Element)
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                namespace:
                  value:
                    code: not_found
                    summary: Couldn't find AttribNamespace
                  summary: Not Found (Namespace)
                user:
                  value:
                    code: not_found
                    summary: Couldn't find User with login = user_login_name
                  summary: Not Found (User)
      tags:
      - Attribute Namespaces
    put:
      summary: Change attribute namespace. Create an attribute namespace if it doesn't
        exist.
      description: |
        This endpoint can be used for both, creating an attribute namespace and updating it:
          * If the attribute namespace passed as parameter doesn't exist, it will create the attribute namespace.
          * If the attribute namespace passed as parameter already exists, it will update the namespace attribute.

        This operation is the same as the one defined with [POST](#/Attributes/post_attribute__namespace___meta).
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: namespace
        schema:
          type: string
        required: true
        description: The namespace
        example: OBS_TEST
      requestBody:
        description: |
          Attribute namespace definition.

          XML Schema used for body validation: [attribute_namespace_meta.xsd](../schema/attribute_namespace_meta.xsd)
        required: true
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                name:
                  type: string
                  example: OBS_TEST
                  xml:
                    attribute: true
                modifiable_by:
                  type: array
                  items:
                    type: object
                    properties:
                      user:
                        type: string
                        example: user_login_name
                        xml:
                          attribute: true
              xml:
                name: namespace
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: Validation Failed.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                empty_body:
                  value:
                    code: validation_failed
                    summary: Document is empty, not allowed for attribute_namespace_meta
                  summary: Validation Failed (Empty Body)
                wrong_xml_element:
                  value:
                    code: validation_failed
                    summary: 'attribute_namespace_meta validation error: 1:0: ERROR:
                      Element ''foo'': No matching global declaration available for
                      the validation root.'
                  summary: Validation Failed (Wrong XML Element)
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                namespace:
                  value:
                    code: not_found
                    summary: Couldn't find AttribNamespace
                  summary: Not Found (Namespace)
                user:
                  value:
                    code: not_found
                    summary: Couldn't find User with login = user_login_name
                  summary: Not Found (User)
      tags:
      - Attribute Namespaces
    delete:
      summary: Delete an attribute namespace and all attributes below.
      description: |
        Delete an attribute namespace and all attributes below.

        This operation is the same as the one defined with [DELETE /attribute/{namespace}](#/Attributes/delete_attribute__namespace_).
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: namespace
        schema:
          type: string
        required: true
        description: The namespace
        example: OBS_TEST
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Attribute Namespaces
  "/attribute/{namespace}/{attribute_name}":
    delete:
      summary: Delete an attribute and all its values in projects or packages.
      description: |
        Delete an attribute and all its values in projects or packages.

        This operation is the same as the one defined with [DELETE /attribute/{namespace}/{attribute_name}/_meta](#/Attributes/delete_attribute__namespace___attribute_name___meta)
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: namespace
        schema:
          type: string
        required: true
        description: The namespace
        example: OBS_TEST
      - in: path
        name: attribute_name
        schema:
          type: string
        required: true
        description: The name of the attribute
        example: OBS:OwnerRootProjectTest
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                namespace:
                  value:
                    code: not_found
                    summary: Couldn't find AttribNamespace
                  summary: Not Found (Namespace)
      tags:
      - Attributes
  "/attribute/{namespace}/{attribute_name}/_meta":
    get:
      summary: Shows attribute.
      description: Shows attribute.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: namespace
        schema:
          type: string
        required: true
        description: The namespace
        example: OBS_TEST
      - in: path
        name: attribute_name
        schema:
          type: string
        required: true
        description: The name of the attribute
        example: OBS:OwnerRootProjectTest
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  name:
                    type: string
                    example: OBS_TEST
                    xml:
                      attribute: true
                  namespace:
                    type: string
                    example: OwnerRootProjectTest
                    xml:
                      attribute: true
                  description:
                    type: string
                    example: An example description for an attribute.
                  allowed:
                    type: object
                    properties:
                      value:
                        type: array
                        items:
                          type: string
                        example:
                        - DisableDevelTest
                        - BugownerOnlyTest
                  count:
                    type: integer
                    example: 0
                  modifiable_by:
                    type: array
                    items:
                      type: object
                      properties:
                        user:
                          type: string
                          example: user_login_name
                          xml:
                            attribute: true
                xml:
                  name: definition
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                namespace:
                  value:
                    code: not_found
                    summary: Couldn't find AttribNamespace
                  summary: Not Found (Namespace)
                unknown_attribute:
                  value:
                    code: unknown_attribute
                    summary: Unknown attribute 'OBS_TEST':'OwnerRootProjectTest'
                  summary: Unknown Attribute
      tags:
      - Attributes
    post:
      summary: Change attribute data. Create an attribute if it doesn't exist.
      description: |
        This endpoint can be used for both, creating an attribute and updating it:
          * If the attribute passed as parameter doesn't exist, it will create the attribute.
          * If the attribute passed as parameter already exists, it will update the attribute.

        This operation is the same as the one defined with [PUT](#/Attributes/put_attribute__namespace___attribute_name___meta).
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: namespace
        schema:
          type: string
        required: true
        description: The namespace
        example: OBS_TEST
      - in: path
        name: attribute_name
        schema:
          type: string
        required: true
        description: The name of the attribute
        example: OBS:OwnerRootProjectTest
      requestBody:
        description: Attribute definition.
        required: true
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                name:
                  type: string
                  example: OBS_TEST
                  xml:
                    attribute: true
                namespace:
                  type: string
                  example: OwnerRootProjectTest
                  xml:
                    attribute: true
                description:
                  type: string
                  example: An example description for an attribute.
                allowed:
                  type: object
                  properties:
                    value:
                      type: array
                      items:
                        type: string
                      example:
                      - DisableDevelTest
                      - BugownerOnlyTest
                count:
                  type: integer
                  example: 0
                modifiable_by:
                  type: array
                  items:
                    type: object
                    properties:
                      user:
                        type: string
                        example: user_login_name
                        xml:
                          attribute: true
              xml:
                name: definition
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: Validation Failed.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                empty_body:
                  value:
                    code: validation_failed
                    summary: Document is empty, not allowed for attrib_type
                  summary: Validation Failed (Empty Body)
                wrong_xml_element:
                  value:
                    code: validation_failed
                    summary: 'attrib_type validation error: 1:0: ERROR: Element definition
                      failed to validate attributes'
                  summary: Validation Failed (Wrong XML Attributes)
                illegal_request:
                  value:
                    code: illegal_request
                    summary: 'Illegal request: PUT/POST /attribute/OBS_TEST/OwnerRootProjectTest/_meta:
                      path does not match content'
                  summary: Illegal Request
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                namespace:
                  value:
                    code: not_found
                    summary: Couldn't find AttribNamespace
                  summary: Not Found (Namespace)
                unknown_attribute:
                  value:
                    code: unknown_attribute
                    summary: Unknown attribute 'OBS_TEST':'OwnerRootProjectTest'
                  summary: Unknown Attribute
      tags:
      - Attributes
    put:
      summary: Change attribute data. Create an attribute if it doesn't exist.
      description: |
        This endpoint can be used for both, creating an attribute and updating it:
          * If the attribute passed as parameter doesn't exist, it will create the attribute.
          * If the attribute passed as parameter already exists, it will update the attribute.

        This operation is the same as the one defined with [POST](#/Attributes/post_attribute__namespace___attribute_name___meta).
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: namespace
        schema:
          type: string
        required: true
        description: The namespace
        example: OBS_TEST
      - in: path
        name: attribute_name
        schema:
          type: string
        required: true
        description: The name of the attribute
        example: OBS:OwnerRootProjectTest
      requestBody:
        description: Attribute definition.
        required: true
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                name:
                  type: string
                  example: OBS_TEST
                  xml:
                    attribute: true
                namespace:
                  type: string
                  example: OwnerRootProjectTest
                  xml:
                    attribute: true
                description:
                  type: string
                  example: An example description for an attribute.
                allowed:
                  type: object
                  properties:
                    value:
                      type: array
                      items:
                        type: string
                      example:
                      - DisableDevelTest
                      - BugownerOnlyTest
                count:
                  type: integer
                  example: 0
                modifiable_by:
                  type: array
                  items:
                    type: object
                    properties:
                      user:
                        type: string
                        example: user_login_name
                        xml:
                          attribute: true
              xml:
                name: definition
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: Validation Failed.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                empty_body:
                  value:
                    code: validation_failed
                    summary: Document is empty, not allowed for attrib_type
                  summary: Validation Failed (Empty Body)
                wrong_xml_element:
                  value:
                    code: validation_failed
                    summary: 'attrib_type validation error: 1:0: ERROR: Element definition
                      failed to validate attributes'
                  summary: Validation Failed (Wrong XML Attributes)
                illegal_request:
                  value:
                    code: illegal_request
                    summary: 'Illegal request: PUT/POST /attribute/OBS_TEST/OwnerRootProjectTest/_meta:
                      path does not match content'
                  summary: Illegal Request
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                namespace:
                  value:
                    code: not_found
                    summary: Couldn't find AttribNamespace
                  summary: Not Found (Namespace)
                unknown_attribute:
                  value:
                    code: unknown_attribute
                    summary: Unknown attribute 'OBS_TEST':'OwnerRootProjectTest'
                  summary: Unknown Attribute
      tags:
      - Attributes
    delete:
      summary: Delete an attribute and all its values in projects or packages.
      description: |
        Delete an attribute and all its values in projects or packages.

        This operation is the same as the one defined with [DELETE /attribute/{namespace}/{attribute_name}](#/Attributes/delete_attribute__namespace___attribute_name_)
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: namespace
        schema:
          type: string
        required: true
        description: The namespace
        example: OBS_TEST
      - in: path
        name: attribute_name
        schema:
          type: string
        required: true
        description: The name of the attribute
        example: OBS:OwnerRootProjectTest
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                namespace:
                  value:
                    code: not_found
                    summary: Couldn't find AttribNamespace
                  summary: Not Found (Namespace)
      tags:
      - Attributes
  "/build":
    get:
      summary: Get a simple directory listing of all projects
      description: Get a simple directory listing of all projects
      security:
      - basic_authentication: []
      responses:
        '200':
          description: |
            OK

            XML Schema used for body validation: [directory.xsd](../schema/directory.xsd)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    xml:
                      attribute: true
                  name:
                    type: string
                    xml:
                      attribute: true
                  rev:
                    type: string
                    xml:
                      attribute: true
                  vrev:
                    type: string
                    xml:
                      attribute: true
                  srcmd5:
                    type: string
                    xml:
                      attribute: true
                  entry:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        md5:
                          type: string
                          xml:
                            attribute: true
                        size:
                          type: string
                          xml:
                            attribute: true
                        mtime:
                          type: string
                          xml:
                            attribute: true
                xml:
                  name: directory
              example:
                entry:
                - name: openSUSE:Leap:15.1
                - name: openSUSE:Leap:15.2
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Build
  "/build/_workerstatus":
    get:
      deprecated: true
      summary: Lists status of workers, jobs, backend services and general statistics.
      description: |
        Lists status of workers, running jobs, waiting jobs, status of the backend services and general statistics.

        This endpoint is exactly the same as `GET /worker/_status`, please use that one.
      security:
      - basic_authentication: []
      responses:
        '200':
          description: OK
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  clients:
                    type: integer
                    xml:
                      attribute: true
                  idle:
                    type: array
                    items:
                      type: object
                      properties:
                        workerid:
                          type: string
                          xml:
                            attribute: true
                        hostarch:
                          type: string
                          xml:
                            attribute: true
                  building:
                    type: array
                    items:
                      type: object
                      properties:
                        repository:
                          type: string
                          xml:
                            attribute: true
                        arch:
                          type: string
                          xml:
                            attribute: true
                        project:
                          type: string
                          xml:
                            attribute: true
                        package:
                          type: string
                          xml:
                            attribute: true
                        starttime:
                          type: string
                          xml:
                            attribute: true
                        workerid:
                          type: string
                          xml:
                            attribute: true
                        hostarch:
                          type: string
                          xml:
                            attribute: true
                  down:
                    type: array
                    items:
                      type: object
                      properties:
                        workerid:
                          type: string
                          xml:
                            attribute: true
                        hostarch:
                          type: string
                          xml:
                            attribute: true
                  waiting:
                    type: array
                    items:
                      type: object
                      properties:
                        arch:
                          type: string
                          xml:
                            attribute: true
                        jobs:
                          type: string
                          xml:
                            attribute: true
                  blocked:
                    type: array
                    items:
                      type: object
                      properties:
                        arch:
                          type: string
                          xml:
                            attribute: true
                        jobs:
                          type: string
                          xml:
                            attribute: true
                  buildavg:
                    type: array
                    items:
                      type: object
                      properties:
                        arch:
                          type: string
                          xml:
                            attribute: true
                        buildavg:
                          type: string
                          xml:
                            attribute: true
                  partition:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        daemon:
                          type: array
                          items:
                            type: object
                            properties:
                              type:
                                type: string
                                xml:
                                  attribute: true
                              state:
                                type: string
                                xml:
                                  attribute: true
                              starttime:
                                type: string
                                xml:
                                  attribute: true
                              arch:
                                type: string
                                xml:
                                  attribute: true
                              queue:
                                type: object
                                properties:
                                  high:
                                    type: string
                                    xml:
                                      attribute: true
                                  med:
                                    type: string
                                    xml:
                                      attribute: true
                                  low:
                                    type: string
                                    xml:
                                      attribute: true
                                  next:
                                    type: string
                                    xml:
                                      attribute: true
                xml:
                  name: workerstatus
              example:
                clients: '2'
                idle:
                - workerid: 1a1f67b948b6:1
                  hostarch: x86_64
                building:
                - repository: openSUSE_11.3_Update
                  arch: x86_64
                  project: home:enzokiel
                  package: android-sdk
                  starttime: '1289838671'
                  workerid: 1a1f67b948b6:2
                  hostarch: x86_64
                down:
                - workerid: armbuild03:1
                  hostarch: aarch64
                waiting:
                - arch: i586
                  jobs: '0'
                - arch: x86_64
                  jobs: '0'
                blocked:
                - arch: i586
                  jobs: '0'
                - arch: x86_64
                  jobs: '0'
                buildavg:
                - arch: i586
                  buildavg: '1200'
                - arch: x86_64
                  buildavg: '1200'
                partition:
                - daemon:
                  - type: srcserver
                    state: running
                    starttime: '1617711138'
                  - type: servicedispatch
                    state: running
                    starttime: '1617711144'
                  - type: service
                    state: running
                    starttime: '1617711144'
                  - type: clouduploadserver
                    state: running
                    starttime: '1617711145'
                  - type: clouduploadworker
                    state: running
                    starttime: '1617711144'
                  - type: scheduler
                    arch: i586
                    state: running
                    starttime: '1617711145'
                    queue:
                      high: '0'
                      med: '0'
                      low: '11'
                      next: '0'
                  - type: scheduler
                    arch: x86_64
                    state: running
                    starttime: '1617711145'
                    queue:
                      high: '0'
                      med: '0'
                      low: '11'
                      next: '0'
                  - type: repserver
                    state: running
                    starttime: '1617711143'
                  - type: dispatcher
                    state: running
                    starttime: '1617711144'
                  - type: publisher
                    state: running
                    starttime: '1617711145'
                  - type: signer
                    state: running
                    starttime: '1617711146'
                - name: back-main
                  daemon:
                  - type: scheduler
                    arch: aarch64
                    state: running
                    starttime: '1617148925'
                    queue:
                      high: '0'
                      med: '1'
                      low: '4'
                      next: '22'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Build
  "/build/{project_name}":
    get:
      summary: Get a simple directory listing of all repositories for the specified
        project
      description: Get a simple directory listing of all repositories for the specified
        project
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      responses:
        '200':
          description: |
            OK

            XML Schema used for body validation: [directory.xsd](../schema/directory.xsd)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    xml:
                      attribute: true
                  name:
                    type: string
                    xml:
                      attribute: true
                  rev:
                    type: string
                    xml:
                      attribute: true
                  vrev:
                    type: string
                    xml:
                      attribute: true
                  srcmd5:
                    type: string
                    xml:
                      attribute: true
                  entry:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        md5:
                          type: string
                          xml:
                            attribute: true
                        size:
                          type: string
                          xml:
                            attribute: true
                        mtime:
                          type: string
                          xml:
                            attribute: true
                xml:
                  name: directory
              example:
                entry:
                - name: openSUSE_Tumbleweed
                - name: openSUSE_Leap_15.3
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Build
    post:
      summary: Apply different actions on builds/build processes of the specified
        project
      description: Apply different actions on builds/build processes of the specified
        project
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: query
        name: package
        schema:
          type: string
        description: Name of the package. Scope the commands to the specified package.
        example: firefox
      - in: query
        name: arch
        schema:
          type: string
        description: Name of the build architecture. Scope the commands to the specified
          architectures.
        example: x86_64
      - in: query
        name: repository
        schema:
          type: string
        description: Name of the repository. Scope the commands to the specified repository.
        example: openSUSE_Leap_15.2
      - in: query
        name: cmd
        required: true
        schema:
          type: string
          enum:
          - wipe
          - restartbuild
          - killbuild
          - abortbuild
          - rebuild
          - unpublish
          - sendsysrq
        description: |
          **NOTE**: All commands described below, can be scoped to a package within the project by setting the `package`
          parameter.

          * `wipe`: Delete all binaries build by the project.
          * `restartbuild`: Restart all running build processes inside the project.
          * `rebuild`: Trigger a rebuild of all packages inside the project.
          * `abortbuild`: Abort all running build processes for the specified project, marking them as failed.
          * `killbuild`: Alias for `abortbuild`.
          * `unpublish`: Delete all published package binaries, for the specified project, from the download repository.
          * `sendsysrq`: Send a single sysrq character to the kernel of a running build. Character need to be specified
                         through the `sysrq` parameter. Only a subset of debugging requests are supported (eg. 9, t or w).
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: |
            Illegal request.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Illegal Request:
                  value:
                    code: illegal_request
                    summary: unsupported POST command '<some command>' to <some url>.
        '403':
          description: |
            Execute command no permission.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Execute cmd no permission:
                  value:
                    code: execute_cmd_no_permission
                    summary: No permission to execute command on package <some package>
                      in project <some project>
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Build
  "/build/{project_name}/_result":
    get:
      summary: Get the build results for packages, architectures and repositories
        of the specified project.
      description: Get the build results for packages, architectures and repositories
        of the specified project.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: query
        name: view
        schema:
          type: string
          enum:
          - status
          - summary
          - binarylist
        default: status
        description: |
          Specify which sections should be included in the result list.

          * `status`: Include detailed infos about the build status.
          * `summary`: Include the summary of the status values.
          * `binarylist`: Include a list of generated binary files.
      - in: query
        name: package
        schema:
          type: string
        description: Name of the package. Limit results to the specified package.
        example: obs-server
      - in: query
        name: arch
        schema:
          type: string
        description: Name of the build architecture. Limit results to the specified
          build architecture.
        example: x86_64
      - in: query
        name: repository
        schema:
          type: string
        description: Name of the repository. Limit results to the specified repository.
        example: openSUSE_Leap_15.2
      - in: query
        name: lastbuild
        schema:
          type: string
        description: Set to `1` to show the last build result (excludes current building
          job states).
        enum:
        - 0
        - 1
        default: 0
        example: 1
      - in: query
        name: locallink
        schema:
          type: string
        description: Set to `1` to include build results from packages with project
          local links.
        enum:
        - 0
        - 1
        default: 0
        example: 1
      - in: query
        name: multibuild
        schema:
          type: string
        description: Set to `1` to include build results from _multibuild definitions.
        enum:
        - 0
        - 1
        default: 0
        example: 1
      responses:
        '200':
          description: |
            OK.

            XML Schema used for body validation: [buildresult.rng](../schema/buildresult.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  state:
                    type: string
                    example: e096d16554264fa553ca0aa3226cf189
                    xml:
                      attribute: true
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        project:
                          type: string
                          example: home:foo
                          xml:
                            attribute: true
                        repository:
                          type: string
                          example: openSUSE_Leap_15.3
                          xml:
                            attribute: true
                        arch:
                          type: string
                          example: x86_64
                          xml:
                            attribute: true
                        code:
                          type: string
                          example: published
                          xml:
                            attribute: true
                        state:
                          type: string
                          example: published
                          xml:
                            attribute: true
                        status:
                          type: array
                          items:
                            type: object
                            properties:
                              package:
                                type: string
                                example: ctris
                                xml:
                                  attribute: true
                              code:
                                type: string
                                example: succeeded
                                xml:
                                  attribute: true
                              details:
                                type: string
                                example: package whitelist
                        binarylist:
                          type: array
                          items:
                            type: object
                            properties:
                              package:
                                type: string
                                example: ctris
                                xml:
                                  attribute: true
                              binary:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    filename:
                                      type: string
                                      example: hello-2.10-3.1.x86_64.rpm
                                      xml:
                                        attribute: true
                                    size:
                                      type: string
                                      example: '58352'
                                      xml:
                                        attribute: true
                                    mtime:
                                      type: string
                                      example: '1617270174'
                                      xml:
                                        attribute: true
                        summary:
                          type: object
                          properties:
                            statuscount:
                              type: array
                              items:
                                type: object
                                properties:
                                  code:
                                    type: string
                                    example: disabled
                                    xml:
                                      attribute: true
                                  count:
                                    type: string
                                    example: '2'
                                    xml:
                                      attribute: true
                xml:
                  name: resultlist
        '400':
          description: Bad Request.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Not Boolean:
                  description: Passing a value different than `0` or `1` to `multibuild`,
                    for example.
                  value:
                    code: 400
                    summary: not boolean
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Build
  "/build/{project_name}/{repository_name}":
    get:
      summary: List of all architectures the specified project builds against a given
        repository.
      description: List of all architectures the specified project builds against
        a given repository.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      responses:
        '200':
          description: |
            OK

            XML Schema used for body validation: [directory.xsd](../schema/directory.xsd)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    xml:
                      attribute: true
                  name:
                    type: string
                    xml:
                      attribute: true
                  rev:
                    type: string
                    xml:
                      attribute: true
                  vrev:
                    type: string
                    xml:
                      attribute: true
                  srcmd5:
                    type: string
                    xml:
                      attribute: true
                  entry:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        md5:
                          type: string
                          xml:
                            attribute: true
                        size:
                          type: string
                          xml:
                            attribute: true
                        mtime:
                          type: string
                          xml:
                            attribute: true
                xml:
                  name: directory
              example:
                entry:
                - name: x86_64
                - name: i586
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: 404
                summary: project '<project_name>' has no repository '<repository_name>'
                details: 404 project '<project_name>' has no repository '<repository_name>'
      tags:
      - Build
  "/build/{project_name}/{repository_name}/_buildconfig":
    get:
      summary: Show the build configuration for the specified repository.
      description: |
        Show the build configuration for the specified repository. Includes all base package
        requirements, mappings and macros.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      responses:
        '200':
          description: OK
          content:
            text/plain:
              example: |
                %define _project home:Admin

                ### from openSUSE.org:openSUSE:Leap:15.2
                %define _repository standard

                Macros:
                %vendor obs://build.some.where/home:Admin
                %_project home:Admin

                ### from openSUSE.org:openSUSE:Leap:15.2

                %_repository standard
                :Macros


                Release: <CI_CNT>.<B_CNT> spec:lp152.<CI_CNT>.<B_CNT>
                %define gcc_version 7

                # testing new cycle algorithm
                BuildFlags: genmetaalgo:1

                # abort the build if the log file didn't move in an hour (seen in libreoffice builds)
                BuildFlags: logidlelimit:3600

                PublishFlags: ympdist:openSUSE%20Leap%2015.2

                # Help with the switch to the gcc7 provided libs
                Prefer: -libstdc++6-gcc7 -libtsan0-gcc7 -libgomp1-gcc7 -libgcc_s1-gcc7 -libatomic1-gcc7 -libcilkrts5-gcc7 -libitm1-gcc7
                Prefer: -liblsan0-gcc7 -libmpx2-gcc7 -libubsan0-gcc7
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Build
  "/build/{project_name}/{repository_name}/{architecture_name}/_builddepinfo":
    get:
      summary: Show the build dependencies of packages that are part of the project.
      description: |
        Show the build dependencies of packages that are part of the project,
        for a given repository and architecture.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      - in: query
        name: package
        schema:
          type: string
        description: Name of the package. Limit results to the specified package.
        example: obs-server
      - in: query
        name: view
        schema:
          type: string
          enum:
          - pkgnames
          - revpkgnames
          - order
        description: |
          * `pkgnames`: Show whole package dependencies, instead of individual binaries.
          * `revpkgnames`: Show which packages depend on the provided project/package for
            the given repository/architecture, and therefore a rebuild gets triggered on change.
          * `order`: Show packages ordered by dependencies.
      responses:
        '200':
          description: OK
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  package:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          example: memcached
                          xml:
                            attribute: true
                        source:
                          type: string
                          example: memcached
                        pkgdep:
                          type: array
                          items:
                            type: string
                            example:
                            - gzip
                            - obs-server
                        subpkg:
                          type: array
                          items:
                            type: string
                            example:
                            - memcached-devel
                            - memcached-debugsource
                xml:
                  name: builddepinfo
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Build
    post:
      deprecated: true
      summary: Show the build dependencies of packages that are part of the project.
      description: |
        This endpoint is exactly the same as
        `GET /build/{project_name}/{repository_name}/{architecture_name}/{package_name}/_builddepinfo`, please use that one.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      tags:
      - Build
  "/build/{project_name}/{repository_name}/{architecture_name}/_jobhistory":
    get:
      summary: Get the build log of all finished builds.
      description: Get the build log of all finished builds, for a given project,
        repository and architecture.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      - in: query
        name: code
        schema:
          type: string
        description: 'Filter results by finished build code: `failed`, `succeeded`,
          `unchanged`.'
        example: succeeded
      - in: query
        name: endtime_end
        schema:
          type: integer
        description: Show builds which finished before given time.
        example: 1714135617
      - in: query
        name: endtime_start
        schema:
          type: integer
        description: Show builds which finished after given time.
        example: 1714130617
      - in: query
        name: limit
        schema:
          type: integer
        description: Limit the number of retrieved results elements to the specified
          number.
        example: 10
      - in: query
        name: package
        schema:
          type: string
        description: Name of the package. Limit results to the specified package.
        example: obs-server
      responses:
        '200':
          description: OK
          content:
            application/xml; charset=utf-8:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    package:
                      type: string
                      xml:
                        attribute: true
                    rev:
                      type: string
                      xml:
                        attribute: true
                    srcmd5:
                      type: string
                      xml:
                        attribute: true
                    versrel:
                      type: string
                      xml:
                        attribute: true
                    bcnt:
                      type: integer
                      xml:
                        attribute: true
                    readytime:
                      type: integer
                      xml:
                        attribute: true
                    starttime:
                      type: integer
                      xml:
                        attribute: true
                    endtime:
                      type: integer
                      xml:
                        attribute: true
                    code:
                      type: string
                      xml:
                        attribute: true
                    uri:
                      type: string
                      xml:
                        attribute: true
                    workerid:
                      type: string
                      xml:
                        attribute: true
                    hostarch:
                      type: string
                      xml:
                        attribute: true
                    reason:
                      type: string
                      xml:
                        attribute: true
                    verifymd5:
                      type: string
                      xml:
                        attribute: true
                  xml:
                    name: jobhist
                xml:
                  wrapped: true
                  name: jobhistlist
              example:
              - package: obs-server
                rev: 17367
                srcmd5: e2fc6b9e014441f3f8a33beb62446215
                versrel: 2.11~alpha.20240426T143809.ab0551f7-16803
                bcnt: 1
                readytime: 1714135430
                starttime: 1714135490
                endtime: 1714135617
                code: succeeded
                uri: http://192.168.2.130:42344
                workerid: i02-ch1d:21
                hostarch: x86_64
                reason: source change
                verifymd5: 518a4d1c0e95fe3c04117aafba722a1f
              - package: obs-server:obs-bundled-gems
                rev: 17368
                srcmd5: feac17ca9cf334d57d719f3ba52a300f
                versrel: 2.11~alpha.20240426T150958.ca259016-16804
                bcnt: 1
                readytime: 1714137054
                starttime: 1714137078
                endtime: 1714137296
                code: succeeded
                uri: http://192.168.2.130:42344
                workerid: i04-ch4d:9
                hostarch: x86_64
                reason: source change
                verifymd5: f81504abf10aaca978a8acea9eaa5bf5
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Build
  "/build/{project_name}/{repository_name}/{architecture_name}/_repository":
    get:
      summary: List all binaries (produced by all packages of the given project).
      description: |
        List all binaries (produced by all packages of the given project) for the specified
        repository and architecture.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      responses:
        '200':
          description: OK.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  binary:
                    type: array
                    items:
                      type: object
                      properties:
                        filename:
                          type: string
                          example: hello-2.10-3.1.x86_64.rpm
                          xml:
                            attribute: true
                        size:
                          type: string
                          example: '58352'
                          xml:
                            attribute: true
                        mtime:
                          type: string
                          example: '1617270174'
                          xml:
                            attribute: true
                xml:
                  name: binarylist
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Build
  "/build/{project_name}/{repository_name}/{architecture_name}/{package_name}":
    get:
      summary: List binaries built by the sources of the specified package.
      description: List binaries built by the sources of the specified package.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      responses:
        '200':
          description: OK.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  binary:
                    type: array
                    items:
                      type: object
                      properties:
                        filename:
                          type: string
                          example: hello-2.10-3.1.x86_64.rpm
                          xml:
                            attribute: true
                        size:
                          type: string
                          example: '58352'
                          xml:
                            attribute: true
                        mtime:
                          type: string
                          example: '1617270174'
                          xml:
                            attribute: true
                xml:
                  name: binarylist
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Build
  "/build/{project_name}/{repository_name}/{architecture_name}/{package_name}/_buildenv":
    get:
      summary: Return the environment information for the last performed build.
      description: Get specifics of the environment information for the last performed
        build.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  project:
                    type: string
                    example: home:Admin
                    xml:
                      attribute: true
                  repository:
                    type: string
                    example: openSUSE_Tumbleweed
                    xml:
                      attribute: true
                  package:
                    type: string
                    example: ctris
                    xml:
                      attribute: true
                  arch:
                    type: string
                    example: i586
                  srcmd5:
                    type: string
                    example: 6b7c8d9cb5c5d36453c1dc8e102016b1
                  verifymd5:
                    type: string
                    example: 6b7c8d9cb5c5d36453c1dc8e102016b1
                  versrel:
                    type: string
                    example: 0.42.1-3
                  bcnt:
                    type: string
                    example: '2'
                  release:
                    type: string
                    example: '3.2'
                  config:
                    type: string
                    example: |
                      %define _project home:enavarro_suse

                      ### from openSUSE:Factory
                      %define _repository ports

                      Macros:
                      %vendor obs://build.opensuse.org/home:enavarro_suse
                      %_download_url https://download.opensuse.org/repositories
                      %_project home:enavarro_suse
                  bdep:
                    type: object
                    properties:
                      name:
                        type: string
                        example: liblua5_4-5
                        xml:
                          attribute: true
                      hdrmd5:
                        type: string
                        example: 4f50c1ea427e184620686ded4baa3097
                        xml:
                          attribute: true
                      project:
                        type: string
                        example: openSUSE:Tumbleweed
                        xml:
                          attribute: true
                      repository:
                        type: string
                        example: dod
                        xml:
                          attribute: true
                xml:
                  name: buildinfo
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Error: Not Found

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: unknown_project
                summary: 'Project not found: 1'
      tags:
      - Build
  "/build/{project_name}/{repository_name}/{architecture_name}/{package_name}/_buildinfo":
    get:
      summary: Return build information about a build description would produce.
      description: |
        Get build information using the default spec file.

        To use other file than the default spec file, use this same endpoint path with the `POST` action.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - name: add
        in: query
        schema:
          type: array
          items:
            type: string
        description: Add a list of build dependencies (`BuildRequires`) to the build.
        example:
        - less
        - vim
      - name: debug
        in: query
        schema:
          type: string
        description: Set to `1` to add debug information about dependencies. This
          information is added inside an `expandeddebug` xml element.
        example: 0
      responses:
        '200':
          description: Returns the artifact building information.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  project:
                    type: string
                    example: home:Admin
                    xml:
                      attribute: true
                  repository:
                    type: string
                    example: openSUSE_Tumbleweed
                    xml:
                      attribute: true
                  package:
                    type: string
                    example: ctris
                    xml:
                      attribute: true
                  arch:
                    type: string
                    example: i586
                  srcmd5:
                    type: string
                    example: 6b7c8d9cb5c5d36453c1dc8e102016b1
                  verifymd5:
                    type: string
                    example: 6b7c8d9cb5c5d36453c1dc8e102016b1
                  rev:
                    type: integer
                    example: 3
                  specfile:
                    type: string
                    example: ctris.spec
                  file:
                    type: string
                    example: ctris.spec
                  versrel:
                    type: string
                    example: 0.42.1-3
                  bcnt:
                    type: string
                    example: '2'
                  release:
                    type: string
                    example: '3.2'
                  debuginfo:
                    type: integer
                    example: 0
                  subpack:
                    type: string
                    example: ctris
                  bdep:
                    type: object
                    properties:
                      name:
                        type: string
                        example: liblua5_4-5
                        xml:
                          attribute: true
                      preinstall:
                        type: string
                        example: '1'
                        xml:
                          attribute: true
                      notmeta:
                        type: string
                        example: '1'
                        xml:
                          attribute: true
                      version:
                        type: string
                        example: 5.4.2
                        xml:
                          attribute: true
                      release:
                        type: string
                        example: '3.1'
                        xml:
                          attribute: true
                      arch:
                        type: string
                        example: i586
                        xml:
                          attribute: true
                      project:
                        type: string
                        example: openSUSE.org:openSUSE:Tumbleweed
                        xml:
                          attribute: true
                      repository:
                        type: string
                        example: dod
                        xml:
                          attribute: true
                  path:
                    type: object
                    properties:
                      project:
                        type: string
                        example: home:Admin
                        xml:
                          attribute: true
                      repository:
                        type: string
                        example: openSUSE_Tumbleweed
                        xml:
                          attribute: true
                      url:
                        type: string
                        example: https://download.opensuse.org/repositories/home:/enavarro_suse/openSUSE_Tumbleweed/
                        xml:
                          attribute: true
                  expanddebug:
                    type: string
                    example: |
                      === meta deps expansion
                      expand args: rpm-build gcc-PIE
                      added rpm-build@openSUSE:Tumbleweed/dod because of (direct):rpm-build
                      added gcc-PIE@openSUSE:Tumbleweed/dod because of (direct):gcc-PIE
                      --- now doing normal dependencies
                      added glibc@openSUSE:Tumbleweed/dod because of rpm-build:libc.so.6(GLIBC_2.34)(64bit)
                      added glibc@openSUSE:Tumbleweed/dod because of rpm-build:libc.so.6(GLIBC_2.4)(64bit)
                xml:
                  name: buildinfo
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Error: Not Found

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: unknown_project
                summary: 'Project not found: 1'
      tags:
      - Build
    post:
      summary: Return build information about a build description would produce.
      description: |
        Get build information using the file passed in the request body.

        Despite using the method `POST`, this endpoint doesn't alter any data.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: |
          Package name.

          It can take the value `_repository`, if the designated package does not exist yet in the server.
          This is useful for testing a build locally before committing a package.
        examples:
          Normal Package Name:
            value: ctris
          No Package Yet:
            value: _repository
      - name: add
        in: query
        schema:
          type: array
          items:
            type: string
        description: Add a list of build dependencies (`BuildRequires`) to the build.
        example:
        - less
        - vim
      - name: debug
        in: query
        schema:
          type: string
        description: Set to `1` to add debug information about dependencies. This
          information is added inside an `expandeddebug` xml element.
        example: 0
      requestBody:
        description: A RPM specfile or a Debian "dsc" file.
        required: true
        content:
          text/plain:
            schema:
              type: string
            example: |
              Name:       hello_world
              Version:    1
              Release:    1
              Summary:    Most simple RPM package
              License:    CC0-1.0

              %build
              cat > hello_world.sh <<EOF
              #!/usr/bin/bash
              echo Hello world
              EOF

              %install
              mkdir -p %{buildroot}/usr/bin/
              install -m 755 hello_world.sh %{buildroot}/usr/bin/hello_world.sh

              %files
              /usr/bin/hello_world.sh
      responses:
        '200':
          description: Returns the artifact building information.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  project:
                    type: string
                    example: home:Admin
                    xml:
                      attribute: true
                  repository:
                    type: string
                    example: openSUSE_Tumbleweed
                    xml:
                      attribute: true
                  package:
                    type: string
                    example: ctris
                    xml:
                      attribute: true
                  arch:
                    type: string
                    example: i586
                  srcmd5:
                    type: string
                    example: 6b7c8d9cb5c5d36453c1dc8e102016b1
                  verifymd5:
                    type: string
                    example: 6b7c8d9cb5c5d36453c1dc8e102016b1
                  rev:
                    type: integer
                    example: 3
                  specfile:
                    type: string
                    example: ctris.spec
                  file:
                    type: string
                    example: ctris.spec
                  versrel:
                    type: string
                    example: 0.42.1-3
                  bcnt:
                    type: string
                    example: '2'
                  release:
                    type: string
                    example: '3.2'
                  debuginfo:
                    type: integer
                    example: 0
                  subpack:
                    type: string
                    example: ctris
                  bdep:
                    type: object
                    properties:
                      name:
                        type: string
                        example: liblua5_4-5
                        xml:
                          attribute: true
                      preinstall:
                        type: string
                        example: '1'
                        xml:
                          attribute: true
                      notmeta:
                        type: string
                        example: '1'
                        xml:
                          attribute: true
                      version:
                        type: string
                        example: 5.4.2
                        xml:
                          attribute: true
                      release:
                        type: string
                        example: '3.1'
                        xml:
                          attribute: true
                      arch:
                        type: string
                        example: i586
                        xml:
                          attribute: true
                      project:
                        type: string
                        example: openSUSE.org:openSUSE:Tumbleweed
                        xml:
                          attribute: true
                      repository:
                        type: string
                        example: dod
                        xml:
                          attribute: true
                  path:
                    type: object
                    properties:
                      project:
                        type: string
                        example: home:Admin
                        xml:
                          attribute: true
                      repository:
                        type: string
                        example: openSUSE_Tumbleweed
                        xml:
                          attribute: true
                      url:
                        type: string
                        example: https://download.opensuse.org/repositories/home:/enavarro_suse/openSUSE_Tumbleweed/
                        xml:
                          attribute: true
                  expanddebug:
                    type: string
                    example: |
                      === meta deps expansion
                      expand args: rpm-build gcc-PIE
                      added rpm-build@openSUSE:Tumbleweed/dod because of (direct):rpm-build
                      added gcc-PIE@openSUSE:Tumbleweed/dod because of (direct):gcc-PIE
                      --- now doing normal dependencies
                      added glibc@openSUSE:Tumbleweed/dod because of rpm-build:libc.so.6(GLIBC_2.34)(64bit)
                      added glibc@openSUSE:Tumbleweed/dod because of rpm-build:libc.so.6(GLIBC_2.4)(64bit)
                xml:
                  name: buildinfo
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: 400
                origin: backend
                details: '400 remote error: could not parse name in build description
                  (spec) (http://backend:5252/build/home:Admin/openSUSE_Tumbleweed/x86_64/hello_world/_buildinfo)'
                summary: 'remote error: could not parse name in build description
                  (spec) (http://backend:5252/build/home:Admin/openSUSE_Tumbleweed/x86_64/hello_world/_buildinfo)'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Error: Not Found

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: unknown_project
                summary: 'Project not found: 1'
      tags:
      - Build
  "/build/{project_name}/{repository_name}/{architecture_name}/{package_name}/_history":
    get:
      description: This endpoint returns the build history for a specific artifact
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      responses:
        '200':
          description: Returns ok when the build status is ok
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  entry:
                    type: object
                    properties:
                      rev:
                        type: string
                        example: '4'
                        xml:
                          attribute: true
                      srcmd5:
                        type: string
                        example: 63a6f075d3d420c6c1160a7b5dc31354
                        xml:
                          attribute: true
                      versrel:
                        type: string
                        example: 0.42.1-4
                        xml:
                          attribute: true
                      bcnt:
                        type: string
                        example: '1'
                        xml:
                          attribute: true
                      time:
                        type: string
                        example: '1617812788'
                        xml:
                          attribute: true
                      duration:
                        type: string
                        example: '222'
                        xml:
                          attribute: true
                xml:
                  name: buildhistory
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Error: Not Found

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: unknown_project
                summary: 'Project not found: 1'
      tags:
      - Build
    post:
      deprecated: true
      summary: Return the build history for a specific artifact
      description: |
        This endpoint is exactly the same as
        `GET /build/{project_name}/{repository_name}/{architecture_name}/{package_name}/_history`, please use that one.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      tags:
      - Build
  "/build/{project_name}/{repository_name}/{architecture_name}/{package_name}/_jobstatus":
    get:
      summary: Show the build status of a currently running build job.
      description: |
        Show the build status of a currently running build job. Shows an empty
        result if no build job is running.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      responses:
        '200':
          description: |
            OK.

            XML Schema used for body validation: [jobstatus.rng](../schema/jobstatus.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    example: building
                    xml:
                      attribute: true
                  starttime:
                    type: string
                    example: '1618222900'
                  lastduration:
                    type: string
                    example: '43'
                  hostarch:
                    type: string
                    example: x86_64
                  uri:
                    type: string
                    example: http://172.18.0.5:38963
                  jobid:
                    type: string
                    example: 17c8d25b92da67f6ec428ea51a9b5342
                xml:
                  name: jobstatus
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Build
  "/build/{project_name}/{repository_name}/{architecture_name}/{package_name}/_log":
    get:
      description: This endpoint returns the last log file for a specific build artifact
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      responses:
        '200':
          description: This endpoint returns the log file content
          content:
            text/plain:
              example: "[    0s] Memory limit set to 23077696KB\n[    0s] Using BUILD_ROOT=/var/cache/obs/worker/root_2\n[
                \   0s] Using BUILD_ARCH=i586:i486:i386\n[    0s] \n[    0s] \n[    0s]
                5d0262043f4a started \"build ctris.spec\" at Tue Apr  6 12:27:31 UTC
                2021.\n[    0s] \n[    0s] Building ctris for project 'home:Admin'
                repository 'openSUSE_Tumbleweed' arch 'i586' srcmd5 '6b7c8d9cb5c5d36453c1dc8e102016b1'\n"
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: |
            Error: Not Acceptable

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: download_binary_no_permission
                summary: No permission to download binaries from package ctris, project
                  home:Admin
        '404':
          description: |
            Error: Not Found

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: unknown_project
                summary: 'Project not found: 1'
      tags:
      - Build
  "/build/{project_name}/{repository_name}/{architecture_name}/{package_name}/_reason":
    get:
      summary: Show the reason for the lastly triggered build.
      description: Details about the reason of the lastly triggered build.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      responses:
        '200':
          description: OK
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  explain:
                    type: string
                    example: source change
                  time:
                    type: string
                    example: '1617982407'
                  oldsource:
                    type: string
                    example: da9ebc6a12b6da45f9ead3fc2f924889
                xml:
                  name: reason
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Build
  "/build/{project_name}/{repository_name}/{architecture_name}/{package_name}/_statistics":
    get:
      summary: Return build statistics from the last performed build.
      description: Get specifics of build statistics from the last performed build.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  disk:
                    type: object
                    properties:
                      usage:
                        type: object
                        properties:
                          size:
                            type: object
                            properties:
                              unit:
                                type: string
                                xml:
                                  attribute: true
                          io_requests:
                            type: string
                          io_sectors:
                            type: string
                  memory:
                    type: object
                    properties:
                      usage:
                        type: object
                        properties:
                          size:
                            type: object
                            properties:
                              unit:
                                type: string
                                xml:
                                  attribute: true
                  times:
                    type: object
                    properties:
                      total:
                        type: object
                        properties:
                          time:
                            type: object
                            properties:
                              unit:
                                type: string
                                xml:
                                  attribute: true
                      preinstall:
                        type: object
                        properties:
                          time:
                            type: object
                            properties:
                              unit:
                                type: string
                                xml:
                                  attribute: true
                      install:
                        type: object
                        properties:
                          time:
                            type: object
                            properties:
                              unit:
                                type: string
                                xml:
                                  attribute: true
                      main:
                        type: object
                        properties:
                          time:
                            type: object
                            properties:
                              unit:
                                type: string
                                xml:
                                  attribute: true
                      postchecks:
                        type: object
                        properties:
                          time:
                            type: object
                            properties:
                              unit:
                                type: string
                                xml:
                                  attribute: true
                      rpmlint:
                        type: object
                        properties:
                          time:
                            type: object
                            properties:
                              unit:
                                type: string
                                xml:
                                  attribute: true
                      buildcmp:
                        type: object
                        properties:
                          time:
                            type: object
                            properties:
                              unit:
                                type: string
                                xml:
                                  attribute: true
                      deltarpms:
                        type: object
                        properties:
                          time:
                            type: object
                            properties:
                              unit:
                                type: string
                                xml:
                                  attribute: true
                      download:
                        type: object
                        properties:
                          time:
                            type: object
                            properties:
                              unit:
                                type: string
                                xml:
                                  attribute: true
                      cpusteal:
                        type: object
                        properties:
                          time:
                            type: object
                            properties:
                              unit:
                                type: string
                                xml:
                                  attribute: true
                  download:
                    type: object
                    properties:
                      size:
                        type: object
                        properties:
                          unit:
                            type: string
                            xml:
                              attribute: true
                      binaries:
                        type: string
                      cachehits:
                        type: string
                xml:
                  name: buildstatistics
              example:
                disk:
                  usage:
                    size:
                      unit: M
                    io_requests: 7750
                    io_sectors: 1248010
                memory:
                  usage:
                    size:
                      unit: M
                times:
                  total:
                    time:
                      unit: s
                  preinstall:
                    time:
                      unit: s
                download:
                  size:
                    unit: k
                  binaries: 5
                  cachehits: 131
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Error: Not Found

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: unknown_project
                summary: 'Project not found: 1'
      tags:
      - Build
  "/build/{project_name}/{repository_name}/{architecture_name}/{package_name}/_status":
    get:
      description: This endpoint returns the building status for a specific artifact
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      responses:
        '200':
          description: Returns ok when the build status is ok
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  package:
                    type: string
                    example: ctris
                    xml:
                      attribute: true
                  code:
                    type: string
                    example: failed
                    xml:
                      attribute: true
                xml:
                  name: status
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Error: Not Found

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: unknown_project
                summary: 'Project not found: 1'
      tags:
      - Build
    post:
      deprecated: true
      summary: Return the building status for a specific artifact
      description: |
        This endpoint is exactly the same as
        `GET /build/{project_name}/{repository_name}/{architecture_name}/{package_name}/_status`, please use that one.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      tags:
      - Build
  "/build/{project_name}/{repository_name}/{architecture_name}/{package_name}/{file_name}":
    get:
      summary: Return a specific artifact file contents
      description: Given a project, repository, architecture and package, retrieve
        the given file's content.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: path
        name: file_name
        schema:
          type: string
        required: true
        description: The file name
        example: ctris-0.42.1-4.1.x86_64.rpm
      responses:
        '200':
          description: Returns the artifact's actual file contents
          content:
            application/*:
              schema:
                type: string
                format: binary
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Error: Not Found

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: '404'
                summary: project 'home:Admin' has no repository '4'
                details: 404 project 'home:Admin' has no repository '4'
      tags:
      - Build
    put:
      summary: Update a specific artifact file contents
      description: |
        Given a project, repository, architecture and package, update the given file's content.

        This is for Admins only.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      - name: package_name
        in: path
        schema:
          type: array
          items:
            type: string
            enum:
            - _repository
        required: true
        description: Package name
      - in: path
        name: file_name
        schema:
          type: string
        required: true
        description: The file name
        example: ctris-0.42.1-4.1.x86_64.rpm
      requestBody:
        content:
          plain/text:
            schema:
              type: string
              properties:
                file:
                  type: string
                  format: binary
      responses:
        '200':
          description: Updates the artifact's file contents
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: No permission to upload binaries for this project
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: upload_binary_no_permission
                summary: No permission to upload binaries.
        '404':
          description: |
            Error: Not Found

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: '404'
                summary: project 'home:Admin' has no repository '4'
                details: 404 project 'home:Admin' has no repository '4'
      tags:
      - Build
    delete:
      summary: Delete an existing repository artifact
      description: |
        Given a project, repository and architecture delete the given file in the repository.

        The user needs to have write permissions into the artifact
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      - name: package_name
        in: path
        schema:
          type: array
          items:
            type: string
            enum:
            - _repository
        required: true
        description: Package name. '_repository' is the only posible value.
      - in: path
        name: file_name
        schema:
          type: string
        required: true
        description: The file name
        example: ctris-0.42.1-4.1.x86_64.rpm
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: Operation is not allowed
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: invalid_operation
                summary: Delete operation of build results is not allowed
        '403':
          description: No permission to delete binaries from this project
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: delete_binary_no_permission
                summary: No permission to delete binaries from project home:Admin.
        '404':
          description: |
            Error: Not Found

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: '404'
                summary: project 'home:Admin' has no repository '4'
      tags:
      - Build
  "/build/{project_name}/{repository_name}/{architecture_name}/{package_name}/{file_name}?view=fileinfo":
    get:
      summary: This endpoint returns details about an specific artifact
      description: Given a project, repository, architecture and package, retrieve
        the given artifact's details.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: path
        name: file_name
        schema:
          type: string
        required: true
        description: The file name
        example: ctris-0.42.1-4.1.x86_64.rpm
      - name: view
        in: query
        required: true
        schema:
          type: array
          items:
            type: string
            enum:
            - fileinfo
            - fileinfo_ext
      responses:
        '200':
          description: Returns details about the artifact
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  filename:
                    type: string
                    xml:
                      attribute: true
                  name:
                    type: string
                  version:
                    type: string
                  release:
                    type: string
                  arch:
                    type: string
                  source:
                    type: string
                  summary:
                    type: string
                  description:
                    type: string
                  size:
                    type: string
                  mtime:
                    type: string
                  provides:
                    type: array
                    items:
                      type: string
                  requires:
                    type: array
                    items:
                      type: string
                  provides_ext:
                    type: array
                    items:
                      type: object
                      properties:
                        dep:
                          type: string
                          xml:
                            attribute: true
                  requires_ext:
                    type: array
                    items:
                      type: object
                      properties:
                        dep:
                          type: string
                          xml:
                            attribute: true
                        provided_by:
                          type: object
                          properties:
                            name:
                              type: string
                              xml:
                                attribute: true
                            version:
                              type: string
                              xml:
                                attribute: true
                            release:
                              type: string
                              xml:
                                attribute: true
                            arch:
                              type: string
                              xml:
                                attribute: true
                            project:
                              type: string
                              xml:
                                attribute: true
                            repository:
                              type: string
                              xml:
                                attribute: true
                xml:
                  name: fileinfo
              examples:
                fileinfo:
                  summary: view=fileinfo
                  value:
                    filename: ctris-0.42.1-4.1.x86_64.rpm
                    name: ctris
                    version: 0.42.1
                    release: '4.1'
                    arch: x86_64
                    summary: Console based tetris clone
                    description: ctris is a colorized, small and flexible Tetris(TM)-clone
                      for the console. Go play!
                    size: '765725'
                    mtime: '1617270174'
                    provides:
                    - ctris = 0.42.1-6.2
                    - ctris(x86-64) = 0.42.1-6.2
                    requires:
                    - libc.so.6()(64bit)
                    - libc.so.6(GLIBC_2.2.5)(64bit)
                fileinfo_ext:
                  summary: view=fileinfo_ext
                  value:
                    filename: ctris-0.42.1-4.2.x86_64.rpm
                    name: ctris
                    version: 0.42.1
                    release: '4.1'
                    arch: x86_64
                    source: ctris
                    summary: Console based tetris clone
                    description: ctris is a colorized, small and flexible Tetris(TM)-clone
                      for the console. Go play!
                    size: '765725'
                    mtime: '1617270174'
                    provides:
                    - ctris = 0.42.1-6.2
                    - ctris(x86-64) = 0.42.1-6.2
                    requires:
                    - libc.so.6()(64bit)
                    - libc.so.6(GLIBC_2.2.5)(64bit)
                    provides_ext:
                      dep: ctris(x86-64) = 0.42.1-6.2
                    requires_ext:
                      dep: libc.so.6()(64bit)
                      provided_by:
                        name: glibc
                        version: '2.33'
                        release: '4.1'
                        arch: x86_64
                        project: openSUSE.org:openSUSE:Tumbleweed
                        repository: dod
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Error: Not Found

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: '404'
                summary: project 'home:Admin' has no repository '4'
                details: 404 project 'home:Admin' has no repository '4'
      tags:
      - Build
  "/comment/{comment_id}":
    delete:
      summary: Delete a comment
      description: Delete a given comment based on its id.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: comment_id
        schema:
          type: integer
        required: true
        description: Id of the comment.
        example: 1124
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Forbidden
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: delete_comment_not_authorized
                summary: Sorry, you are not authorized to delete this comment
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: Couldn't find Comment with id '1124'
      tags:
      - Comments
  "/comment/{comment_id}/history":
    get:
      summary: List the history of a comment
      description: |
        List the versions of a edited comment.

        **(Beta/Unstable)** This endpoint is currently behind the `content_moderation` beta flag.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: comment_id
        schema:
          type: integer
        required: true
        description: Id of the comment.
        example: 5
      responses:
        '200':
          description: |
            OK. The request has succeeded.
            XML Schema used for body validation: [comment_history.rng](../schema/comment_history.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  comment:
                    type: integer
                    xml:
                      attribute: true
                xml:
                  name: comment_history
              example: |
                <comment_history comment="6">
                  <comment who="bar" when="2024-02-28 16:12:45 UTC" id="6">First version of comment</comment>
                  <comment who="bar" when="2024-02-28 16:15:27 UTC" id="6">UHH DONT LIKE MY COMMENT</comment>
                </comment_history>
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Forbidden
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: history_comment_not_authorized
                summary: Sorry, you are not authorized to history this comment.
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: Couldn't find Comment with 'id'=67
      tags:
      - Comments
  "/comments/user":
    get:
      summary: List all the logged in user's comments
      description: List all the comments for the currently logged in user.
      security:
      - basic_authentication: []
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  comment:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          xml:
                            attribute: true
                        who:
                          type: string
                          xml:
                            attribute: true
                        when:
                          type: string
                          xml:
                            attribute: true
                        parent:
                          type: integer
                          xml:
                            attribute: true
                        bsrequest:
                          type: integer
                          xml:
                            attribute: true
                        project:
                          type: string
                          xml:
                            attribute: true
                        package:
                          type: string
                          xml:
                            attribute: true
                  request:
                    type: integer
                    xml:
                      attribute: true
                  package:
                    type: string
                    xml:
                      attribute: true
                  project:
                    type: string
                    xml:
                      attribute: true
                  user:
                    type: string
                    xml:
                      attribute: true
                xml:
                  name: comments
              example: |
                <comments user="Iggy">
                  <comment who="Iggy" when="2021-10-15 13:28:22 UTC" id="1" bsrequest="115">This is a pretty cool request!</comment>
                  <comment who="Iggy" when="2021-10-15 13:49:39 UTC" id="2" project="home:Admin">This is a pretty cool project!</comment>
                  <comment who="Iggy" when="2021-10-15 13:54:38 UTC" id="3" project="home:Admin" package="0ad">This is a pretty cool package!</comment>
                </comments>
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Comments
  "/comments/request/{id}":
    get:
      summary: List all the request's comments
      description: List all the comments for the request.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
        description: Id of the choosen request.
        example: 743
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  comment:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          xml:
                            attribute: true
                        who:
                          type: string
                          xml:
                            attribute: true
                        when:
                          type: string
                          xml:
                            attribute: true
                        parent:
                          type: integer
                          xml:
                            attribute: true
                        bsrequest:
                          type: integer
                          xml:
                            attribute: true
                        project:
                          type: string
                          xml:
                            attribute: true
                        package:
                          type: string
                          xml:
                            attribute: true
                  request:
                    type: integer
                    xml:
                      attribute: true
                  package:
                    type: string
                    xml:
                      attribute: true
                  project:
                    type: string
                    xml:
                      attribute: true
                  user:
                    type: string
                    xml:
                      attribute: true
                xml:
                  name: comments
              example: |
                <comments request="115">
                  <comment who="Iggy" when="2021-10-15 13:28:22 UTC" id="1">This is a pretty cool comment!</comment>
                </comments>
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                not_found:
                  summary: Couldn't find Request with number '1234'
                  value:
                    code: not_found
                    summary: Couldn't find Request with number '1234'
      tags:
      - Comments
    post:
      summary: Create a request comment
      description: Create a comment for the request.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
        description: Id of the choosen request.
        example: 743
      - in: query
        name: parent_id
        schema:
          type: integer
        description: Id of the comment to reply to
        example: 10401
      requestBody:
        description: Content of the comment
        required: true
        content:
          text/plain:
            schema:
              type: string
            example: This is a very valuable comment
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: |
            Invalid Comment.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                invalid_record:
                  summary: Parent belongs to different object
                  value:
                    code: invalid_record
                    summary: Parent belongs to different object
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                not_found:
                  summary: Couldn't find Request with number '1234'
                  value:
                    code: not_found
                    summary: Couldn't find Request with number '1234'
      tags:
      - Comments
  "/comments/project/{project_name}":
    get:
      summary: List all the project's comments
      description: List all the comments for the project.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  comment:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          xml:
                            attribute: true
                        who:
                          type: string
                          xml:
                            attribute: true
                        when:
                          type: string
                          xml:
                            attribute: true
                        parent:
                          type: integer
                          xml:
                            attribute: true
                        bsrequest:
                          type: integer
                          xml:
                            attribute: true
                        project:
                          type: string
                          xml:
                            attribute: true
                        package:
                          type: string
                          xml:
                            attribute: true
                  request:
                    type: integer
                    xml:
                      attribute: true
                  package:
                    type: string
                    xml:
                      attribute: true
                  project:
                    type: string
                    xml:
                      attribute: true
                  user:
                    type: string
                    xml:
                      attribute: true
                xml:
                  name: comments
              example: |
                <comments project="home:Admin">
                  <comment who="Iggy" when="2021-10-15 13:28:22 UTC" id="1">This is a pretty cool comment!</comment>
                </comments>
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                not_found:
                  summary: 'Project not found: notaproject'
                  value:
                    code: not_found
                    summary: 'Project not found: notaproject'
      tags:
      - Comments
    post:
      summary: Create a project comment
      description: Create a comment for the project.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: query
        name: parent_id
        schema:
          type: integer
        description: Id of the comment to reply to
        example: 10401
      requestBody:
        description: Content of the comment
        required: true
        content:
          text/plain:
            schema:
              type: string
            example: This is a very valuable comment
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: |
            Invalid Comment.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                invalid_record:
                  summary: Parent belongs to different object
                  value:
                    code: invalid_record
                    summary: Parent belongs to different object
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                not_found:
                  value:
                    code: not_found
      tags:
      - Comments
  "/comments/package/{project_name}/{package_name}":
    get:
      summary: List all the package's comments
      description: List all the comments for the package.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  comment:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          xml:
                            attribute: true
                        who:
                          type: string
                          xml:
                            attribute: true
                        when:
                          type: string
                          xml:
                            attribute: true
                        parent:
                          type: integer
                          xml:
                            attribute: true
                        bsrequest:
                          type: integer
                          xml:
                            attribute: true
                        project:
                          type: string
                          xml:
                            attribute: true
                        package:
                          type: string
                          xml:
                            attribute: true
                  request:
                    type: integer
                    xml:
                      attribute: true
                  package:
                    type: string
                    xml:
                      attribute: true
                  project:
                    type: string
                    xml:
                      attribute: true
                  user:
                    type: string
                    xml:
                      attribute: true
                xml:
                  name: comments
              example: |
                <comments project="home:Admin" package="0ad">
                  <comment who="Iggy" when="2021-10-15 13:28:22 UTC" id="1">This is a pretty cool comment!</comment>
                </comments>
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                not_found:
                  summary: 'Package not found: home:Admin/notapackage'
                  value:
                    code: not_found
                    summary: 'Package not found: home:Admin/notapackage'
      tags:
      - Comments
    post:
      summary: Create a package comment
      description: Create a comment for the package.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: query
        name: parent_id
        schema:
          type: integer
        description: Id of the comment to reply to
        example: 10401
      requestBody:
        description: Content of the comment
        required: true
        content:
          text/plain:
            schema:
              type: string
            example: This is a very valuable comment
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: |
            Invalid Comment.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                invalid_record:
                  summary: Parent belongs to different object
                  value:
                    code: invalid_record
                    summary: Parent belongs to different object
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                not_found:
                  summary: 'Package not found: openSUSE:Factory/eeee'
                  value:
                    code: not_found
                    summary: 'Package not found: openSUSE:Factory/eeee'
      tags:
      - Comments
  "/configuration":
    get:
      summary: Display the configuration of this Open Build Service instance
      description: Display the configuration of this Open Build Service instance.
      security:
      - basic_authentication: []
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  title:
                    type: string
                    example: Open Build Service
                  description:
                    type: string
                    example: The openSUSE Build Service is the public instance of
                      the Open Build Service (OBS)
                  name:
                    type: string
                    example: private
                  download_on_demand:
                    type: string
                    example: true
                  enforce_project_keys:
                    type: string
                    example: false
                  anonymous:
                    type: string
                    example: true
                  registration:
                    type: string
                    example: allow
                  default_access_disabled:
                    type: string
                    example: false
                  allow_user_to_create_home_project:
                    type: string
                    example: true
                  disallow_group_creation:
                    type: string
                    example: false
                  change_password:
                    type: string
                    example: true
                  obs_url:
                    type: string
                    example: https://unconfigured.openbuildservice.org
                  tos_url:
                    type: string
                    example: https://en.opensuse.org/Terms_of_site
                  hide_private_options:
                    type: string
                    example: false
                  gravatar:
                    type: string
                    example: true
                  cleanup_empty_projects:
                    type: string
                    example: true
                  disable_publish_for_branches:
                    type: string
                    example: true
                  admin_email:
                    type: string
                    example: unconfigured@openbuildservice.org
                  unlisted_projects_filter:
                    type: string
                    example: "^home:.+"
                  unlisted_projects_filter_description:
                    type: string
                    example: home projects
                  default_tracker:
                    type: string
                    example: bnc
                  code_of_conduct:
                    type: string
                    example: |
                      This is an example of a "Code of Conduct".

                      1. First point.

                      2. Second point.
                  schedulers:
                    type: object
                    properties:
                      arch:
                        type: array
                        items:
                          type: string
                        example:
                        - armv7l
                        - i586
                        - x86_64
                xml:
                  name: configuration
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Configuration
    put:
      summary: Update the configuration of this Open Build Service instance
      description: |
        Update the configuration of this Open Build Service instance.

        This is for admins only.
      security:
      - basic_authentication: []
      requestBody:
        description: Configuration definition.
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                title:
                  type: string
                  example: Open Build Service
                description:
                  type: string
                  example: The openSUSE Build Service is the public instance of the
                    Open Build Service (OBS)
                name:
                  type: string
                  example: private
                download_on_demand:
                  type: string
                  example: true
                enforce_project_keys:
                  type: string
                  example: false
                anonymous:
                  type: string
                  example: true
                registration:
                  type: string
                  example: allow
                default_access_disabled:
                  type: string
                  example: false
                allow_user_to_create_home_project:
                  type: string
                  example: true
                disallow_group_creation:
                  type: string
                  example: false
                change_password:
                  type: string
                  example: true
                obs_url:
                  type: string
                  example: https://unconfigured.openbuildservice.org
                tos_url:
                  type: string
                  example: https://en.opensuse.org/Terms_of_site
                hide_private_options:
                  type: string
                  example: false
                gravatar:
                  type: string
                  example: true
                cleanup_empty_projects:
                  type: string
                  example: true
                disable_publish_for_branches:
                  type: string
                  example: true
                admin_email:
                  type: string
                  example: unconfigured@openbuildservice.org
                unlisted_projects_filter:
                  type: string
                  example: "^home:.+"
                unlisted_projects_filter_description:
                  type: string
                  example: home projects
                default_tracker:
                  type: string
                  example: bnc
                code_of_conduct:
                  type: string
                  example: |
                    This is an example of a "Code of Conduct".

                    1. First point.

                    2. Second point.
                schedulers:
                  type: object
                  properties:
                    arch:
                      type: array
                      items:
                        type: string
                      example:
                      - armv7l
                      - i586
                      - x86_64
              xml:
                name: configuration
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  title:
                    type: string
                    example: Open Build Service
                  description:
                    type: string
                    example: The openSUSE Build Service is the public instance of
                      the Open Build Service (OBS)
                  name:
                    type: string
                    example: private
                  download_on_demand:
                    type: string
                    example: true
                  enforce_project_keys:
                    type: string
                    example: false
                  anonymous:
                    type: string
                    example: true
                  registration:
                    type: string
                    example: allow
                  default_access_disabled:
                    type: string
                    example: false
                  allow_user_to_create_home_project:
                    type: string
                    example: true
                  disallow_group_creation:
                    type: string
                    example: false
                  change_password:
                    type: string
                    example: true
                  obs_url:
                    type: string
                    example: https://unconfigured.openbuildservice.org
                  tos_url:
                    type: string
                    example: https://en.opensuse.org/Terms_of_site
                  hide_private_options:
                    type: string
                    example: false
                  gravatar:
                    type: string
                    example: true
                  cleanup_empty_projects:
                    type: string
                    example: true
                  disable_publish_for_branches:
                    type: string
                    example: true
                  admin_email:
                    type: string
                    example: unconfigured@openbuildservice.org
                  unlisted_projects_filter:
                    type: string
                    example: "^home:.+"
                  unlisted_projects_filter_description:
                    type: string
                    example: home projects
                  default_tracker:
                    type: string
                    example: bnc
                  code_of_conduct:
                    type: string
                    example: |
                      This is an example of a "Code of Conduct".

                      1. First point.

                      2. Second point.
                  schedulers:
                    type: object
                    properties:
                      arch:
                        type: array
                        items:
                          type: string
                        example:
                        - armv7l
                        - i586
                        - x86_64
                xml:
                  name: configuration
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: |
            Forbidden.

            In the example below, _default_access_disabled_ is one of the possible configuration options which is set in the options.yml file.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: no_permission_to_change
                summary: The api has a different value for default_access_disabled
                  configured in options.yml file. Remove it there first
      tags:
      - Configuration
  "/distributions":
    get:
      summary: List all distributions.
      description: |
        List all distributions that can be build against.
        This will not list distributions that are available via [interconnect](https://openbuildservice.org/help/manuals/obs-user-guide/cha.obs.concepts.html#id-1.5.10.3.5).
        Check /distributions/include_remotes for this.
      security:
      - basic_authentication: []
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [distributions.rng](../schema/distributions.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  distribution:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 16626
                          xml:
                            attribute: true
                        vendor:
                          type: string
                          example: opensuse
                          xml:
                            attribute: true
                        version:
                          type: string
                          example: Tumbleweed
                          xml:
                            attribute: true
                        name:
                          type: string
                          example: openSUSE Tumbleweed
                        project:
                          type: string
                          example: openSUSE:Factory
                        repository:
                          type: string
                          example: snapshot
                        reponame:
                          type: string
                          example: openSUSE_Tumbleweed
                        link:
                          type: string
                          example: http://www.opensuse.org/
                        architecture:
                          type: array
                          example:
                          - i586
                          - x86_64
                          items:
                            type: string
                        icon:
                          type: array
                          example:
                          - width: 8
                            height: 8
                            url: https://static.opensuse.org/distributions/logos/opensuse.png
                          - width: 16
                            height: 16
                            url: https://static.opensuse.org/distributions/logos/opensuse.png
                          items:
                            type: object
                            properties:
                              width:
                                type: integer
                                xml:
                                  attribute: true
                              height:
                                type: integer
                                xml:
                                  attribute: true
                              url:
                                type: string
                                xml:
                                  attribute: true
                xml:
                  name: distributions
              example:
                distribution:
                - vendor: opensuse
                  version: Tumbleweed
                  id: 16626
                  name: openSUSE Tumbleweed
                  project: openSUSE:Factory
                  reponame: openSUSE_Tumbleweed
                  repository: snapshot
                  link: http://www.opensuse.org/
                  icon:
                  - url: https://static.opensuse.org/distributions/logos/opensuse.png
                    width: 8
                    height: 8
                  - url: https://static.opensuse.org/distributions/logos/opensuse.png
                    width: 16
                    height: 16
                  architecture:
                  - i586
                  - x86_64
                - vendor: openSUSE
                  version: '15.3'
                  id: 16629
                  name: openSUSE Leap 15.3
                  project: openSUSE:Leap:15.3
                  reponame: openSUSE_Leap_15.3
                  repository: standard
                  link: http://www.opensuse.org/
                  icon:
                  - url: https://static.opensuse.org/distributions/logos/opensuse.png
                    width: 8
                    height: 8
                  - url: https://static.opensuse.org/distributions/logos/opensuse.png
                    width: 16
                    height: 16
                  architecture: x86_64
                - vendor: Fedora
                  version: '33'
                  id: 16731
                  name: Fedora 33
                  project: Fedora:33
                  reponame: Fedora_33
                  repository: standard
                  link: http://www.fedoraproject.org/
                  icon:
                  - url: https://static.opensuse.org/distributions/logos/fedora.png
                    width: 8
                    height: 8
                  - url: https://static.opensuse.org/distributions/logos/fedora.png
                    width: 16
                    height: 16
                  architecture:
                  - i586
                  - x86_64
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Distributions
    post:
      summary: Create a distribution.
      description: |
        Create a distribution.

        This is only for admins.
      security:
      - basic_authentication: []
      requestBody:
        description: Distribution definition
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  example: 16626
                  xml:
                    attribute: true
                vendor:
                  type: string
                  example: opensuse
                  xml:
                    attribute: true
                version:
                  type: string
                  example: Tumbleweed
                  xml:
                    attribute: true
                name:
                  type: string
                  example: openSUSE Tumbleweed
                project:
                  type: string
                  example: openSUSE:Factory
                repository:
                  type: string
                  example: snapshot
                reponame:
                  type: string
                  example: openSUSE_Tumbleweed
                link:
                  type: string
                  example: http://www.opensuse.org/
                architecture:
                  type: array
                  example:
                  - i586
                  - x86_64
                  items:
                    type: string
                icon:
                  type: array
                  example:
                  - width: 8
                    height: 8
                    url: https://static.opensuse.org/distributions/logos/opensuse.png
                  - width: 16
                    height: 16
                    url: https://static.opensuse.org/distributions/logos/opensuse.png
                  items:
                    type: object
                    properties:
                      width:
                        type: integer
                        xml:
                          attribute: true
                      height:
                        type: integer
                        xml:
                          attribute: true
                      url:
                        type: string
                        xml:
                          attribute: true
              xml:
                name: distribution
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [distribution.rng](../schema/distribution.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                    example: 16626
                    xml:
                      attribute: true
                  vendor:
                    type: string
                    example: opensuse
                    xml:
                      attribute: true
                  version:
                    type: string
                    example: Tumbleweed
                    xml:
                      attribute: true
                  name:
                    type: string
                    example: openSUSE Tumbleweed
                  project:
                    type: string
                    example: openSUSE:Factory
                  repository:
                    type: string
                    example: snapshot
                  reponame:
                    type: string
                    example: openSUSE_Tumbleweed
                  link:
                    type: string
                    example: http://www.opensuse.org/
                  architecture:
                    type: array
                    example:
                    - i586
                    - x86_64
                    items:
                      type: string
                  icon:
                    type: array
                    example:
                    - width: 8
                      height: 8
                      url: https://static.opensuse.org/distributions/logos/opensuse.png
                    - width: 16
                      height: 16
                      url: https://static.opensuse.org/distributions/logos/opensuse.png
                    items:
                      type: object
                      properties:
                        width:
                          type: integer
                          xml:
                            attribute: true
                        height:
                          type: integer
                          xml:
                            attribute: true
                        url:
                          type: string
                          xml:
                            attribute: true
                xml:
                  name: distribution
              example:
                distribution:
                - vendor: opensuse
                  version: Tumbleweed
                  id: 16626
                  name: openSUSE Tumbleweed
                  project: openSUSE:Factory
                  reponame: openSUSE_Tumbleweed
                  repository: snapshot
                  link: http://www.opensuse.org/
                  icon:
                  - url: https://static.opensuse.org/distributions/logos/opensuse.png
                    width: 8
                    height: 8
                  - url: https://static.opensuse.org/distributions/logos/opensuse.png
                    width: 16
                    height: 16
                  architecture:
                  - i586
                  - x86_64
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Distributions
  "/distributions/include_remotes":
    get:
      summary: List all distributions including remote.
      description: List all distributions that can be build against, including the
        ones provided by the interconnect.
      security:
      - basic_authentication: []
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [distributions.rng](../schema/distributions.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  distribution:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 16626
                          xml:
                            attribute: true
                        vendor:
                          type: string
                          example: opensuse
                          xml:
                            attribute: true
                        version:
                          type: string
                          example: Tumbleweed
                          xml:
                            attribute: true
                        name:
                          type: string
                          example: openSUSE Tumbleweed
                        project:
                          type: string
                          example: openSUSE:Factory
                        repository:
                          type: string
                          example: snapshot
                        reponame:
                          type: string
                          example: openSUSE_Tumbleweed
                        link:
                          type: string
                          example: http://www.opensuse.org/
                        architecture:
                          type: array
                          example:
                          - i586
                          - x86_64
                          items:
                            type: string
                        icon:
                          type: array
                          example:
                          - width: 8
                            height: 8
                            url: https://static.opensuse.org/distributions/logos/opensuse.png
                          - width: 16
                            height: 16
                            url: https://static.opensuse.org/distributions/logos/opensuse.png
                          items:
                            type: object
                            properties:
                              width:
                                type: integer
                                xml:
                                  attribute: true
                              height:
                                type: integer
                                xml:
                                  attribute: true
                              url:
                                type: string
                                xml:
                                  attribute: true
                xml:
                  name: distributions
              example:
                distribution:
                - vendor: opensuse
                  version: Tumbleweed
                  id: 16626
                  name: openSUSE Tumbleweed
                  project: openSUSE:Factory
                  reponame: openSUSE_Tumbleweed
                  repository: snapshot
                  link: http://www.opensuse.org/
                  icon:
                  - url: https://static.opensuse.org/distributions/logos/opensuse.png
                    width: 8
                    height: 8
                  - url: https://static.opensuse.org/distributions/logos/opensuse.png
                    width: 16
                    height: 16
                  architecture:
                  - i586
                  - x86_64
                - vendor: openSUSE
                  version: '15.3'
                  id: 16629
                  name: openSUSE Leap 15.3
                  project: openSUSE:Leap:15.3
                  reponame: openSUSE_Leap_15.3
                  repository: standard
                  link: http://www.opensuse.org/
                  icon:
                  - url: https://static.opensuse.org/distributions/logos/opensuse.png
                    width: 8
                    height: 8
                  - url: https://static.opensuse.org/distributions/logos/opensuse.png
                    width: 16
                    height: 16
                  architecture: x86_64
                - vendor: Fedora
                  version: '33'
                  id: 16731
                  name: Fedora 33
                  project: Fedora:33
                  reponame: Fedora_33
                  repository: standard
                  link: http://www.fedoraproject.org/
                  icon:
                  - url: https://static.opensuse.org/distributions/logos/fedora.png
                    width: 8
                    height: 8
                  - url: https://static.opensuse.org/distributions/logos/fedora.png
                    width: 16
                    height: 16
                  architecture:
                  - i586
                  - x86_64
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Distributions
  "/distributions/{distribution_id}":
    get:
      summary: Show a distribution.
      description: Show a distribution that can be build against.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: distribution_id
        schema:
          type: integer
        required: true
        description: The id of the distribution
        example: 16626
      responses:
        '200':
          description: OK. The request has succeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                    example: 16626
                    xml:
                      attribute: true
                  vendor:
                    type: string
                    example: opensuse
                    xml:
                      attribute: true
                  version:
                    type: string
                    example: Tumbleweed
                    xml:
                      attribute: true
                  name:
                    type: string
                    example: openSUSE Tumbleweed
                  project:
                    type: string
                    example: openSUSE:Factory
                  repository:
                    type: string
                    example: snapshot
                  reponame:
                    type: string
                    example: openSUSE_Tumbleweed
                  link:
                    type: string
                    example: http://www.opensuse.org/
                  architecture:
                    type: array
                    example:
                    - i586
                    - x86_64
                    items:
                      type: string
                  icon:
                    type: array
                    example:
                    - width: 8
                      height: 8
                      url: https://static.opensuse.org/distributions/logos/opensuse.png
                    - width: 16
                      height: 16
                      url: https://static.opensuse.org/distributions/logos/opensuse.png
                    items:
                      type: object
                      properties:
                        width:
                          type: integer
                          xml:
                            attribute: true
                        height:
                          type: integer
                          xml:
                            attribute: true
                        url:
                          type: string
                          xml:
                            attribute: true
                xml:
                  name: distribution
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: Couldn't find Distribution with 'id'=0
      tags:
      - Distributions
    put:
      summary: Update a distribution.
      description: Update the data of a distribution.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: distribution_id
        schema:
          type: integer
        required: true
        description: The id of the distribution
        example: 16626
      requestBody:
        description: Distribution definition
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  example: 16626
                  xml:
                    attribute: true
                vendor:
                  type: string
                  example: opensuse
                  xml:
                    attribute: true
                version:
                  type: string
                  example: Tumbleweed
                  xml:
                    attribute: true
                name:
                  type: string
                  example: openSUSE Tumbleweed
                project:
                  type: string
                  example: openSUSE:Factory
                repository:
                  type: string
                  example: snapshot
                reponame:
                  type: string
                  example: openSUSE_Tumbleweed
                link:
                  type: string
                  example: http://www.opensuse.org/
                architecture:
                  type: array
                  example:
                  - i586
                  - x86_64
                  items:
                    type: string
                icon:
                  type: array
                  example:
                  - width: 8
                    height: 8
                    url: https://static.opensuse.org/distributions/logos/opensuse.png
                  - width: 16
                    height: 16
                    url: https://static.opensuse.org/distributions/logos/opensuse.png
                  items:
                    type: object
                    properties:
                      width:
                        type: integer
                        xml:
                          attribute: true
                      height:
                        type: integer
                        xml:
                          attribute: true
                      url:
                        type: string
                        xml:
                          attribute: true
              xml:
                name: distribution
      responses:
        '200':
          description: |
            OK. The Request has succeeded.

            XML Schema used for body validation: [distribution.rng](../schema/distribution.rng)
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: Couldn't find Distribution with 'id'=0
      tags:
      - Distributions
    delete:
      summary: Delete a distribution.
      description: |
        Delete a distribution.

        This is only for admins.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: distribution_id
        schema:
          type: integer
        required: true
        description: The id of the distribution
        example: 16626
      responses:
        '200':
          description: OK. The request has succeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: Couldn't find Distribution with 'id'=0
      tags:
      - Distributions
  "/distributions/bulk_replace":
    put:
      summary: Bulk replace all distributions.
      description: |
        Bulk replace all distributions.

        This is only for admins.
      security:
      - basic_authentication: []
      requestBody:
        description: Distributions definition
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                distribution:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 16626
                        xml:
                          attribute: true
                      vendor:
                        type: string
                        example: opensuse
                        xml:
                          attribute: true
                      version:
                        type: string
                        example: Tumbleweed
                        xml:
                          attribute: true
                      name:
                        type: string
                        example: openSUSE Tumbleweed
                      project:
                        type: string
                        example: openSUSE:Factory
                      repository:
                        type: string
                        example: snapshot
                      reponame:
                        type: string
                        example: openSUSE_Tumbleweed
                      link:
                        type: string
                        example: http://www.opensuse.org/
                      architecture:
                        type: array
                        example:
                        - i586
                        - x86_64
                        items:
                          type: string
                      icon:
                        type: array
                        example:
                        - width: 8
                          height: 8
                          url: https://static.opensuse.org/distributions/logos/opensuse.png
                        - width: 16
                          height: 16
                          url: https://static.opensuse.org/distributions/logos/opensuse.png
                        items:
                          type: object
                          properties:
                            width:
                              type: integer
                              xml:
                                attribute: true
                            height:
                              type: integer
                              xml:
                                attribute: true
                            url:
                              type: string
                              xml:
                                attribute: true
              xml:
                name: distributions
      responses:
        '200':
          description: |
            OK. The Request has succeeded.

            XML Schema used for body validation: [distributions.rng](../schema/distributions.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: Bad Request.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: validation_failed
                summary: 'distributions validation error: 40:0: ERROR: Expecting an
                  element name, got nothing'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Distributions
  "/group":
    get:
      summary: List available groups.
      description: List available groups.
      security:
      - basic_authentication: []
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [directory.xsd](../schema/directory.xsd)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    xml:
                      attribute: true
                  name:
                    type: string
                    xml:
                      attribute: true
                  rev:
                    type: string
                    xml:
                      attribute: true
                  vrev:
                    type: string
                    xml:
                      attribute: true
                  srcmd5:
                    type: string
                    xml:
                      attribute: true
                  entry:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        md5:
                          type: string
                          xml:
                            attribute: true
                        size:
                          type: string
                          xml:
                            attribute: true
                        mtime:
                          type: string
                          xml:
                            attribute: true
                xml:
                  name: directory
              example:
                count: '2'
                entry:
                - name: group-admin
                - name: group-test
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Groups
  "/group/{group_title}":
    get:
      summary: Read group data.
      description: Read group data.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: group_title
        schema:
          type: string
        required: true
        description: Group title
        example: group-test
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [group.rng](../schema/group.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  title:
                    type: string
                    example: group-test
                  maintainer:
                    type: array
                    items:
                      type: object
                      properties:
                        userid:
                          type: string
                          example: user-test
                          xml:
                            attribute: true
                  person:
                    type: array
                    items:
                      type: object
                      properties:
                        userid:
                          type: string
                          example: user-test
                          xml:
                            attribute: true
                    xml:
                      wrapped: true
                xml:
                  name: group
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: Couldn't find Group 'group-testd'
      tags:
      - Groups
    post:
      summary: Modify group data.
      description: Modify group data.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: group_title
        schema:
          type: string
        required: true
        description: Group title
        example: group-test
      - in: query
        name: cmd
        schema:
          type: string
          enum:
          - add_user
          - remove_user
          - set_email
        description: |
          Command to be executed. It takes one of these available values:
          * `add_user`: add a user to a group. `userid` query parameter must be also used.
          * `remove_user`: remove a user from a group. `userid` query parameter must be also used.
          * `set_email`: set email adress of group. `email` query parameter must be also used.
      - in: query
        name: userid
        schema:
          type: string
        description: User login. Used with `cmd=add_user` or `cmd=remove_user`.
      - in: query
        name: email
        schema:
          type: string
        description: Group email. Used with `cmd=set_email`.
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: Bad Request.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: bad_request
                summary: cmd must be set to add_user or remove_user
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                user_not_found:
                  value:
                    code: not_found
                    summary: Couldn't find User with login = user_test
                  summary: User Not Found
                group_not_found:
                  value:
                    code: not_found
                    summary: Couldn't find Group 'group-testd'
                  summary: Group Not Found
      tags:
      - Groups
    put:
      summary: Write group data.
      description: Write group data.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: group_title
        schema:
          type: string
        required: true
        description: Group title
        example: group-test
      requestBody:
        description: |
          Group definition.

          XML Schema used for body validation: [group.rng](../schema/group.rng)
        required: true
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                title:
                  type: string
                  example: group-test
                maintainer:
                  type: array
                  items:
                    type: object
                    properties:
                      userid:
                        type: string
                        example: user-test
                        xml:
                          attribute: true
                person:
                  type: array
                  items:
                    type: object
                    properties:
                      userid:
                        type: string
                        example: user-test
                        xml:
                          attribute: true
                  xml:
                    wrapped: true
              xml:
                name: group
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: Couldn't find Group 'group-testd'
      tags:
      - Groups
    delete:
      summary: Delete a group.
      description: Delete a group.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: group_title
        schema:
          type: string
        required: true
        description: Group title
        example: group-test
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: Couldn't find Group 'group-testd'
      tags:
      - Groups
  "/image_templates":
    get:
      summary: Get the list of image templates.
      description: Get the list of image templates.
      security:
      - basic_authentication: []
      responses:
        '200':
          description: List of image templates.
          content:
            application/xml; charset=utf-8:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                      xml:
                        attribute: true
                    image_template_package:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                          title:
                            type: string
                          description:
                            type: string
                  xml:
                    name: image_template_project
                    wrapped: true
                xml:
                  name: image_template_projects
                  wrapped: true
              example:
              - name: openSUSE:Templates:Images:Tumbleweed
                image_template_package:
                - name: kiwi-templates-Minimal
                  title: openSUSE Tumbleweed Minimal Images
                  description: Images based on Tumbleweed for several platforms.
                - name: minimal-container-image
                  title: Application Container using KIWI
                  description: |
                    Starting ground to build a container image for openSUSE:Factory.

                    It follows the requirements outlined on https://en.opensuse.org/Building_derived_containers.
              - name: OBS:Flatpak:Templates
                image_template_package:
                - name: FlatpakTemplate
                  title: Flatpak manifest template
                  description: This is an example template how to build a Flatpak
                    app in Open Build Service (OBS)
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - General Information
  "/issue_trackers":
    get:
      summary: Get the list of issue trackers.
      description: Get the list of issue trackers.
      security:
      - basic_authentication: []
      responses:
        '200':
          description: |
            List of issue trackers.

            XML Schema used for body validation: [issue_trackers.rng](../schema/issue_trackers.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                      example: fate
                    kind:
                      type: string
                      example: fate
                    description:
                      type: string
                      example: openSUSE Feature Database
                    url:
                      type: string
                      example: https://features.opensuse.org/
                    show-url:
                      type: string
                      example: https://features.opensuse.org/@@@
                    regex:
                      type: string
                      example: "(?:fate|Fate|FATE)\\s*#\\s*(\\d+)"
                    label:
                      type: string
                      example: fate#@@@
                    enable-fetch:
                      type: string
                      example: 'false'
                  xml:
                    name: issue-tracker
                xml:
                  name: issue-trackers
                  wrapped: true
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Issue Trackers
    post:
      summary: Create an issue tracker.
      description: Create an issue tracker.
      security:
      - basic_authentication: []
      requestBody:
        description: |
          Issue tracker definition.

          XML Schema used for body validation: [issue_tracker.rng](../schema/issue_tracker.rng)
        required: true
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                name:
                  type: string
                  example: fate
                kind:
                  type: string
                  example: fate
                description:
                  type: string
                  example: openSUSE Feature Database
                url:
                  type: string
                  example: https://features.opensuse.org/
                show-url:
                  type: string
                  example: https://features.opensuse.org/@@@
                regex:
                  type: string
                  example: "(?:fate|Fate|FATE)\\s*#\\s*(\\d+)"
                label:
                  type: string
                  example: fate#@@@
                enable-fetch:
                  type: string
                  example: 'false'
              xml:
                name: issue-tracker
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: |
            Validation failed.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                empty_body:
                  value:
                    code: validation_failed
                    summary: Document is empty, not allowed for issue_tracker
                  summary: Empty Body
                wrong_xml_element:
                  value:
                    code: validation_failed
                    summary: 'issue_tracker validation error: 1:0: ERROR: Expecting
                      element issue-tracker, got foo'
                  summary: Wrong XML Element
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Issue Trackers
  "/issue_trackers/{issue_tracker_name}":
    get:
      summary: Show an issue tracker.
      description: Show an issue tracker.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: issue_tracker_name
        schema:
          type: string
        required: true
        description: Issue tracker name
        example: fate
      responses:
        '200':
          description: |
            Issue tracker definition.

            XML Schema used for body validation: [issue_tracker.rng](../schema/issue_tracker.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  name:
                    type: string
                    example: fate
                  kind:
                    type: string
                    example: fate
                  description:
                    type: string
                    example: openSUSE Feature Database
                  url:
                    type: string
                    example: https://features.opensuse.org/
                  show-url:
                    type: string
                    example: https://features.opensuse.org/@@@
                  regex:
                    type: string
                    example: "(?:fate|Fate|FATE)\\s*#\\s*(\\d+)"
                  label:
                    type: string
                    example: fate#@@@
                  enable-fetch:
                    type: string
                    example: 'false'
                xml:
                  name: issue-tracker
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: Unable to find issue tracker 'foo'
      tags:
      - Issue Trackers
    put:
      summary: Update or create an issue tracker.
      description: Update the issue tracker given as path parameter. If it is not
        found, create it.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: issue_tracker_name
        schema:
          type: string
        required: true
        description: Issue tracker name
        example: fate
      requestBody:
        description: |
          Issue tracker definition.

          XML Schema used for body validation: [issue_tracker.rng](../schema/issue_tracker.rng)
        required: true
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                name:
                  type: string
                  example: fate
                kind:
                  type: string
                  example: fate
                description:
                  type: string
                  example: openSUSE Feature Database
                url:
                  type: string
                  example: https://features.opensuse.org/
                show-url:
                  type: string
                  example: https://features.opensuse.org/@@@
                regex:
                  type: string
                  example: "(?:fate|Fate|FATE)\\s*#\\s*(\\d+)"
                label:
                  type: string
                  example: fate#@@@
                enable-fetch:
                  type: string
                  example: 'false'
              xml:
                name: issue-tracker
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: |
            Validation failed.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                empty_body:
                  value:
                    code: validation_failed
                    summary: Document is empty, not allowed for issue_tracker
                  summary: Empty Body
                wrong_xml_element:
                  value:
                    code: validation_failed
                    summary: 'issue_tracker validation error: 1:0: ERROR: Expecting
                      element issue-tracker, got foo'
                  summary: Wrong XML Element
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Issue Trackers
    delete:
      summary: Delete an issue tracker.
      description: Delete an issue tracker.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: issue_tracker_name
        schema:
          type: string
        required: true
        description: Issue tracker name
        example: fate
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: Unable to find issue tracker 'foo'
      tags:
      - Issue Trackers
  "/issue_trackers/{issue_tracker_name}/issues/{issue_name}":
    get:
      summary: Show an issue of an issue tracker.
      description: Show an issue of an issue tracker.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: issue_tracker_name
        schema:
          type: string
        required: true
        description: Issue tracker name
        example: fate
      - in: path
        name: issue_name
        schema:
          type: string
        required: true
        description: Issue name.
        example: 12345
      responses:
        '200':
          description: |
            Issue definition.

            XML Schema used for body validation: [issue.rng](../schema/issue.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  created_at:
                    type: string
                    example: 2021-01-18 19:17:51 UTC
                  updated_at:
                    type: string
                    example: 2021-01-18 19:17:51 UTC
                  name:
                    type: string
                    example: 12345
                  tracker:
                    type: string
                    example: fate
                  label:
                    type: string
                    example: fate#12345
                  url:
                    type: string
                    example: https://features.opensuse.org/12345
                  state:
                    type: string
                  summary:
                    type: string
                  owner:
                    type: object
                    properties:
                      login:
                        type: string
                      email:
                        type: string
                      realname:
                        type: string
                xml:
                  name: issue
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: issue_tracker_not_found
                summary: 'Error: Issue Tracker ''foo'' not found.'
      tags:
      - Issue Trackers
  "/my/notifications":
    get:
      summary: List the notifications of the authenticated user.
      description: |
        **(Unstable)** List user's notifications.

        **NOTE:** Available only in OBS Unstable.
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: project
        schema:
          type: string
      - in: query
        name: page
        schema:
          type: integer
      - in: query
        name: show_maximum
        schema:
          type: string
        example: 1
      - in: query
        name: notifications_type
        schema:
          type: string
          enum:
          - read
          - comments
          - requests
          - unread
          - incoming_requests
          - outgoing_requests
          - relationships_created
          - relationships_deleted
          - build_failures
          - reports
          - workflow_runs
          - appealed_decisions
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  count:
                    type: string
                    xml:
                      attribute: true
                  total_pages:
                    type: string
                  current_page:
                    type: string
                  notification:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          xml:
                            attribute: true
                        when:
                          type: string
                        description:
                          type: string
                        title:
                          type: string
                        who:
                          type: string
                        event_type:
                          type: string
                xml:
                  name: notifications
              example:
                count: 2
                total_pages: 1
                current_page: 0
                notification:
                - id: 3
                  title: test 1
                  who: Administrator
                  state: new
                  when: 2021-09-30 09:12:02.000000000 +02:00
                  event_type: review_wanted
                - id: 25
                  title: test 2
                  who: User 2
                  event_type: comment_for_package
                  when: 2021-09-27 09:16:19.000000000 +02:00
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Notifications
  "/my/notifications/{id}":
    put:
      summary: Mark a notification as read/unread.
      description: |
        **(Unstable)** If a notification is unread, it will be marked as read. If a notification is read, it will be marked as unread.

        **NOTE:** Available only in OBS Unstable.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '403':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Not Found:
                  value:
                    code: not_found
                    summary: Couldn't find Notification with 'id'=213453
      tags:
      - Notifications
  "/person":
    get:
      summary: List all people.
      description: List all people.
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: prefix
        schema:
          type: string
        required: false
        description: A prefix to filter the people to look for
        example: Adm
      - in: query
        name: confirmed
        schema:
          type: string
        required: false
        description: List only active users. This parameter is interpreted as `true`
          if present, `false` otherwise.
        example: 1
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [directory.xsd](../schema/directory.xsd)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    xml:
                      attribute: true
                  name:
                    type: string
                    xml:
                      attribute: true
                  rev:
                    type: string
                    xml:
                      attribute: true
                  vrev:
                    type: string
                    xml:
                      attribute: true
                  srcmd5:
                    type: string
                    xml:
                      attribute: true
                  entry:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        md5:
                          type: string
                          xml:
                            attribute: true
                        size:
                          type: string
                          xml:
                            attribute: true
                        mtime:
                          type: string
                          xml:
                            attribute: true
                xml:
                  name: directory
              example:
                count: '9'
                entry:
                - name: Admin
                - name: _nobody_
                - name: Iggy
                - name: user_1
                - name: repo-checker
                - name: reviewhero
                - name: user_2
                - name: user_3
                - name: Requestor
      tags:
      - Person
    post:
      summary: Executes a command on the person endpoint.
      description: |
        Allows executing command on the person endpoint.

        As of now, the only command allowed is 'register'.
      parameters:
      - in: query
        name: cmd
        schema:
          type: string
          enum:
          - register
        required: true
        description: The command to execute
        example: register
      requestBody:
        description: The data for the person to register.
        required: true
        content:
          application/xml:
            schema:
              type: object
              properties:
                login:
                  type: string
                  example: jane
                realname:
                  type: string
                  example: Jane Doe
                email:
                  type: string
                  example: janedoe@example.com
                password:
                  type: string
                  example: superpassword123
                note:
                  type: string
                  example: Jane works in the Engineering team
                state:
                  type: string
                  example: confirmed
              xml:
                name: unregisteredperson
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: |
            Bad request.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Command:
                  value:
                    code: unknown_command
                    summary: Allowed command is 'register'.
                Bad Request:
                  value:
                    code: err_register_save
                    summary: 'Could not save the registration, details: Login is the
                      name of an already existing user and Password can''t be blank.'
      tags:
      - Person
  "/person/register":
    post:
      summary: Registers a new person
      deprecated: true
      description: This endpoint is exactly the same as `POST /person?cmd=register`,
        please use that one.
      requestBody:
        description: Data for the person to register.
        required: true
        content:
          application/xml:
            schema:
              type: object
              properties:
                login:
                  type: string
                  example: jane
                realname:
                  type: string
                  example: Jane Doe
                email:
                  type: string
                  example: janedoe@example.com
                password:
                  type: string
                  example: superpassword123
                note:
                  type: string
                  example: Jane works in the Engineering team
                state:
                  type: string
                  example: confirmed
              xml:
                name: unregisteredperson
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Forbidden
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: permission_denied
                summary: |
                  User accounts can not be registered via OBS when in LDAP mode. Please refer
                  to your LDAP server to create new users.
      tags:
      - Person
  "/person/{login}":
    get:
      summary: Get details about a person
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: login
        schema:
          type: string
        required: true
        description: Person login.
        example: Admin
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [user.rng](../schema/user.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  login:
                    type: string
                    example: user_1
                  email:
                    type: string
                    example: unconfigured@openbuildservice.org
                  realname:
                    type: string
                    example: User1
                  state:
                    type: string
                    example: confirmed
                  globalrole:
                    type: string
                  ignore_auth_services:
                    type: boolean
                  watchlist:
                    type: array
                    items:
                      type: object
                      properties:
                        project:
                          type: object
                          properties:
                            name:
                              type: string
                              xml:
                                attribute: true
                        package:
                          type: object
                          properties:
                            name:
                              type: string
                              xml:
                                attribute: true
                            project:
                              type: string
                              xml:
                                attribute: true
                        request:
                          type: object
                          properties:
                            number:
                              type: string
                              xml:
                                attribute: true
                    xml:
                      name: watchlist
                xml:
                  name: person
              example:
                login: Admin
                email: root@localhost
                realname: OBS Instance Superuser
                state: confirmed
                globalrole: Admin
                ignore_auth_services: false
                watchlist:
                - project:
                    name: home:Admin
                  package:
                    name: ad
                    project: home:Admin
                  request:
                    number: '7'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: Couldn't find User with login = <login>
      tags:
      - Person
    post:
      summary: Perform changes on a registered person
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: login
        schema:
          type: string
        required: true
        description: Person login.
        example: Admin
      - in: query
        name: cmd
        schema:
          type: string
          enum:
          - change_password
          - lock
          - delete
        required: true
        description: The command to execute against the provided person.
        example: change_password
      requestBody:
        description: The password in plain text when the cmd param is 'change_password'.
        required: false
        content:
          text/plain:
            schema:
              type: string
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [api_response.xsd](../schema/api_response.xsd)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '400':
          description: |
            Bad request.
            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Command:
                  value:
                    code: unknown_command
                    summary: Allowed commands are '<some command>'.
                Bad Request:
                  value:
                    code: err_register_save
                    summary: 'Could not save the registration, details: Login is the
                      name of an already existing user and Password can''t be blank.'
        '403':
          description: |
            Forbidden.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                update_user_not_authorized:
                  value:
                    code: update_user_not_authorized
                    summary: You are not authorized to update this User.
        '404':
          description: |
            Not found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: Couldn't find User with login = <login>
      tags:
      - Person
    put:
      summary: Update person
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: login
        schema:
          type: string
        required: true
        description: Person login.
        example: Admin
      requestBody:
        description: The new data for the person referred in the login parameter.
        required: true
        content:
          application/xml:
            schema:
              type: object
              properties:
                login:
                  type: string
                  example: jane
                realname:
                  type: string
                  example: Jane Doe
                email:
                  type: string
                  example: janedoe@example.com
                password:
                  type: string
                  example: superpassword123
                note:
                  type: string
                  example: Jane works in the Engineering team
                state:
                  type: string
                  example: confirmed
              xml:
                name: unregisteredperson
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: |
            Bad request.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Subaccount chaining:
                  value:
                    code: subaccount_chaining
                    summary: A subaccount can not be assigned to subaccount <login>
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Change user info not permitted:
                  value:
                    code: change_userinfo_no_permission
                    summary: no permission to change userinfo for user <login>
        '404':
          description: |
            Not found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: password_empty
                summary: Requested non-existing user
      tags:
      - Person
  "/person/{login}/group":
    get:
      summary: List the groups of a person
      description: List the groups the person belongs to.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: login
        schema:
          type: string
        required: true
        description: Person login.
        example: Admin
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [directory.xsd](../schema/directory.xsd)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    xml:
                      attribute: true
                  name:
                    type: string
                    xml:
                      attribute: true
                  rev:
                    type: string
                    xml:
                      attribute: true
                  vrev:
                    type: string
                    xml:
                      attribute: true
                  srcmd5:
                    type: string
                    xml:
                      attribute: true
                  entry:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        md5:
                          type: string
                          xml:
                            attribute: true
                        size:
                          type: string
                          xml:
                            attribute: true
                        mtime:
                          type: string
                          xml:
                            attribute: true
                xml:
                  name: directory
              example:
                count: '2'
                entry:
                - name: factory-maintainers
                - name: obs-developers
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: Couldn't find User with login = fake
      tags:
      - Person
  "/person/{login}/token":
    get:
      summary: List the authentication tokens of a person.
      description: List the authentication tokens of a person.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: login
        schema:
          type: string
        required: true
        description: Person login.
        example: Admin
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [tokenlist.rng](../schema/tokenlist.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    xml:
                      attribute: true
                  entry:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          xml:
                            attribute: true
                        description:
                          type: string
                          xml:
                            attribute: true
                        string:
                          type: string
                          xml:
                            attribute: true
                        kind:
                          type: string
                          xml:
                            attribute: true
                        triggered_at:
                          type: string
                          format: date-time
                          xml:
                            attribute: true
                        project:
                          type: string
                          xml:
                            attribute: true
                        package:
                          type: string
                          xml:
                            attribute: true
                xml:
                  name: directory
              example:
                count: 2
                entry:
                - id: 3
                  string: FK49K39DKK
                  kind: rss
                  triggered_at: 2021-10-28 12:32:18 UTC
                - id: 25
                  description: Release ghcz
                  string: 4T04JGI691
                  kind: release
                  triggered_at: 2021-09-21 11:12:18 UTC
                  project: devel:languages:haskell
                  package: ghcz
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: |
            Forbidden.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: view_user_not_authorized
                summary: You are not authorized to view this User.
      tags:
      - Person
    post:
      summary: Create a new authentication token for a person.
      description: |
        Create a new authentication token for a person.

        The token may be limited to a specific package. In this case the query parameters
        `project` and `package` should be provided.

        With an empty request body, a token of the default kind 'runservice' is created.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: login
        schema:
          type: string
        required: true
        description: Person login.
        example: Admin
      - in: query
        name: description
        schema:
          type: string
        description: 'Token description. It helps to identify a token from the rest
          of the tokens of a user.

          '
        example: Rebuild gchz
      - in: query
        name: project
        schema:
          type: string
        description: |
          Project name. Should be provided, together with the package query parameter,
          to limit the token to a specific package.
        example: home:hans
      - in: query
        name: package
        schema:
          type: string
        description: |
          Package name. Should be provided, together with the project query parameter,
          to limit the token to a specific package.
        example: gchz
      - in: query
        name: operation
        schema:
          type: string
          enum:
          - runservice
          - rebuild
          - release
        description: |
          Operation indicates the kind of token that is going to be created.

          When operation is not specified, 'runservice' is the default value.
        example: runservice
      - in: query
        name: scm_token
        schema:
          type: string
        description: |
          **(Beta/Unstable)**

          SCM token used in OBS workflows to report back the workflow status, when the operation is workflow.

          It's normally possible to generate SCM tokens directly on the SCM's website like GitHub or GitLab.
        example: ghp_fake_token_123
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)

            **NOTE:** This is an example of a valid response. It should include the attribute 'name'
            in every 'data' tag, which is missing in the example using the schema.
            ```
              <status code="ok">
                <summary>Ok</summary>
                <data name="token">i6iF4M5cn</data>
                <data name="id">5</data>
              </status>
            ```
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
                data:
                - i6iF4M5cn
                - 5
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: invalid_token
                summary: 'Failed to create token: Name is too long (maximum is 64
                  characters).'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: |
            Forbidden.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: update_user_not_authorized
                summary: You are not authorized to update this User.
      tags:
      - Person
  "/person/{login}/token/{id}":
    delete:
      summary: Delete a token of a person.
      description: Delete a token of the specified person.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: login
        schema:
          type: string
        required: true
        description: Person login.
        example: Admin
      - in: path
        name: id
        schema:
          type: string
        required: true
        description: Id of the token to be removed.
        example: 3
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: |
            Forbidden.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: update_user_not_authorized
                summary: You are not authorized to update this User.
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: Couldn't find Token with 'id'=33
      tags:
      - Person
  "/person/{login}/watchlist":
    get:
      summary: Get details about watchlist
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: login
        schema:
          type: string
        required: true
        description: Person login.
        example: Admin
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    project:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                    package:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        project:
                          type: string
                          xml:
                            attribute: true
                    request:
                      type: object
                      properties:
                        number:
                          type: string
                          xml:
                            attribute: true
                xml:
                  name: watchlist
              example:
              - project:
                  name: home:Admin
                package:
                  name: ad
                  project: home:Admin
                request:
                  number: '7'
        '404':
          description: |
            Not found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: password_empty
                summary: Requested non-existing user
      tags:
      - Person
    put:
      summary: Update watchlist
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: login
        schema:
          type: string
        required: true
        description: Person login.
        example: Admin
      requestBody:
        description: The new data for the person referred in the login parameter.
        required: true
        content:
          application/xml:
            schema:
              type: array
              items:
                type: object
                properties:
                  project:
                    type: object
                    properties:
                      name:
                        type: string
                        xml:
                          attribute: true
                  package:
                    type: object
                    properties:
                      name:
                        type: string
                        xml:
                          attribute: true
                      project:
                        type: string
                        xml:
                          attribute: true
                  request:
                    type: object
                    properties:
                      number:
                        type: string
                        xml:
                          attribute: true
              xml:
                name: watchlist
            example:
            - project:
                name: home:Admin
              package:
                name: ad
                project: home:Admin
              request:
                number: '7'
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '404':
          description: |
            Not found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: password_empty
                summary: Requested non-existing user
      tags:
      - Person
  "/published":
    get:
      summary: List all the published projects.
      description: Get a list of all the projects, all of them are considered published.
      security:
      - basic_authentication: []
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    xml:
                      attribute: true
                  name:
                    type: string
                    xml:
                      attribute: true
                  rev:
                    type: string
                    xml:
                      attribute: true
                  vrev:
                    type: string
                    xml:
                      attribute: true
                  srcmd5:
                    type: string
                    xml:
                      attribute: true
                  entry:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        md5:
                          type: string
                          xml:
                            attribute: true
                        size:
                          type: string
                          xml:
                            attribute: true
                        mtime:
                          type: string
                          xml:
                            attribute: true
                xml:
                  name: directory
              example:
                entry:
                - name: OBS:Server:Unstable
                - name: devel:languages:ruby
                - name: openSUSE:Maintenance:9810
                - name: zypp:plugins
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Published Binaries
  "/published/{project_name}":
    get:
      summary: List the repositories of a project with published binaries
      description: Get a list of the repositories of the project that already have
        published binaries.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    xml:
                      attribute: true
                  name:
                    type: string
                    xml:
                      attribute: true
                  rev:
                    type: string
                    xml:
                      attribute: true
                  vrev:
                    type: string
                    xml:
                      attribute: true
                  srcmd5:
                    type: string
                    xml:
                      attribute: true
                  entry:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        md5:
                          type: string
                          xml:
                            attribute: true
                        size:
                          type: string
                          xml:
                            attribute: true
                        mtime:
                          type: string
                          xml:
                            attribute: true
                xml:
                  name: directory
              example:
                entry:
                - name: SLE_15_SP3
                - name: containers
                - name: images
                - name: openSUSE_15.2
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: |
            Forbidden.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: download_binary_no_permission
                summary: No permission for binaries from project home:Admin
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: Couldn't find Project
      tags:
      - Published Binaries
  "/published/{project_name}/{repository_name}":
    get:
      summary: List the content of the directory tree where the binaries are published
        at the level project/repository.
      description: |
        Get a list of architectures' directories and other files (.repo, .ymp, etc.) present at the level
        project/repository of the directory tree where the published binaries are stored.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    xml:
                      attribute: true
                  name:
                    type: string
                    xml:
                      attribute: true
                  rev:
                    type: string
                    xml:
                      attribute: true
                  vrev:
                    type: string
                    xml:
                      attribute: true
                  srcmd5:
                    type: string
                    xml:
                      attribute: true
                  entry:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        md5:
                          type: string
                          xml:
                            attribute: true
                        size:
                          type: string
                          xml:
                            attribute: true
                        mtime:
                          type: string
                          xml:
                            attribute: true
                xml:
                  name: directory
              example:
                entry:
                - name: OBS:Server:Unstable.repo
                - name: OBS_Server.ymp
                - name: aarch64
                - name: x86_64
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: |
            Forbidden.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: download_binary_no_permission
                summary: No permission for binaries from project home:Admin
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: Couldn't find Project
      tags:
      - Published Binaries
  "/published/{project_name}/{repository_name}?view=status":
    get:
      summary: Present information about the last publication of the pair project
        and repository.
      description: Get information about the build process (build id, start time,
        etc.) for the pair project and repository.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: query
        name: view
        schema:
          type: string
          enum:
          - status
        description: Set this parameter to status in order to get details about the
          last publication.
        example: status
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    example: succeeded
                    xml:
                      attribute: true
                  starttime:
                    type: integer
                    example: 1617574611
                  endtime:
                    type: integer
                    example: 1617574611
                  buildid:
                    type: integer
                    example: 1569496563
                xml:
                  name: status
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: |
            Forbidden.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: download_binary_no_permission
                summary: No permission for binaries from project home:Admin
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                project:
                  code: not_found
                  summary: Couldn't find Project
                unknown:
                  value:
                    code: unknown
      tags:
      - Published Binaries
  "/published/{project_name}/{repository_name}/{architecture_name}":
    get:
      summary: List the content of the directory tree where the binaries are published
        at the level project/repository/architecture.
      description: |
        Get a list of binaries and other files present at the level project/repository/architecture of the directory
        tree as a result of successful building and publishing processes.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    xml:
                      attribute: true
                  name:
                    type: string
                    xml:
                      attribute: true
                  rev:
                    type: string
                    xml:
                      attribute: true
                  vrev:
                    type: string
                    xml:
                      attribute: true
                  srcmd5:
                    type: string
                    xml:
                      attribute: true
                  entry:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        md5:
                          type: string
                          xml:
                            attribute: true
                        size:
                          type: string
                          xml:
                            attribute: true
                        mtime:
                          type: string
                          xml:
                            attribute: true
                xml:
                  name: directory
              example:
                entry:
                - name: apache2-mod_auth_memcookie-1.1.1-lp152.2.1.x86_64.rpm
                - name: obs-api-testsuite-rspec-2.11~alpha.20200618T200341.d42d8310aa-lp152.10515.1.x86_64.rpm
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: |
            Forbidden.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: download_binary_no_permission
                summary: No permission for binaries from project home:Admin
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: Couldn't find Project
      tags:
      - Published Binaries
  "/published/{project_name}/{repository_name}/{architecture_name}/{binary_filename}":
    get:
      summary: Return the binary file itself.
      description: |
        Allow to download the binary file that was published and stored under the directory
        given by project/repository/architecture/.

        Can response with Media Types like application/x-rpm, text/xml, etc.

        NOTE: Use this only if you absolutely have to, as it doesn't use the redirector.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      - in: path
        name: binary_filename
        schema:
          type: string
        required: true
        description: Binary filename
        example: ctris-0.42.1-8.1.x86_64.rpm
      responses:
        '200':
          description: OK
          content:
            application/*:
              schema:
                type: string
                format: binary
            text/xml:
              schema:
                type: string
                format: binary
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: |
            Forbidden.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: download_binary_no_permission
                summary: No permission for binaries from project home:Admin
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                NotFound:
                  value:
                    code: not_found
                    summary: Couldn't find Project
                NoSuchFile:
                  value:
                    code: 404
                    summary: no such file
                    details: 404 no such file
      tags:
      - Published Binaries
  "/published/{project_name}/{repository_name}/{architecture_name}/{binary_filename}?view=ymp":
    get:
      summary: Generate a ymp pattern that includes the needed repositories to install
        the given binary.
      description: |
        Generate a ymp pattern, which contains the list of packages needed for intalling certain software without having to
        create dependencies between them.

        Read more about patterns [in this tutorial](https://en.opensuse.org/openSUSE:Build_Service_Tutorial#Create_Patterns).
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        description: Architecture name
        example: x86_64
      - in: path
        name: binary_filename
        schema:
          type: string
        required: true
        description: Binary filename
        example: ctris-0.42.1-8.1.x86_64.rpm
      responses:
        '200':
          description: OK.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  group:
                    type: object
                    properties:
                      repositories:
                        type: object
                        properties:
                          repository:
                            type: array
                            items:
                              type: object
                              properties:
                                recommended:
                                  type: string
                                  xml:
                                    attribute: true
                                name:
                                  type: string
                                summary:
                                  type: string
                                description:
                                  type: string
                                url:
                                  type: string
                      software:
                        type: object
                        properties:
                          item:
                            type: object
                            properties:
                              name:
                                type: string
                              summary:
                                type: string
                              description:
                                type: string
                      distversion:
                        type: string
                        xml:
                          attribute: true
                  xmlns:os:
                    type: string
                    xml:
                      attribute: true
                      example: http://opensuse.org/Standards/One_Click_Install
                  xmlns:
                    type: string
                    xml:
                      attribute: true
                      example: http://opensuse.org/Standards/One_Click_Install
                xml:
                  name: metapackage
              example:
                group:
                  repositories:
                    repository:
                    - recommended: true
                      name: OBS:Server:Unstable
                      summary: Developer versions of the Open Build Service Server
                      description: These are the developer versions of the tools for
                        the Open Build Service project
                      url: https://download.opensuse.org/repositories/OBS:/Server:/Unstable/openSUSE_15.2
                    - recommended: false
                      name: openSUSE:Leap:15.2
                      summary: openSUSE Leap 15.2
                      description: openSUSE Leap borrows packages from SLE for the
                        base system
                      url: http://download.opensuse.org/distribution/leap/15.2/repo/oss
                  software:
                    item:
                      name: virt-v2v-debuginfo
                      summary: Debug information for package virt-v2v
                      description: This package provides debug information for package
                        virt-v2v
                  distversion: openSUSEsLeap 15.2
                xmlns:os: http://opensuse.org/Standards/One_Click_Install
                xmlns: http://opensuse.org/Standards/One_Click_Install
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: |
            Forbidden.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: download_binary_no_permission
                summary: No permission for binaries from project home:Admin
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: Couldn't find Project
      tags:
      - Published Binaries
  "/request":
    get:
      summary: Get a simple directory listing of all requests
      description: Get a simple directory listing of all requests
      security:
      - basic_authentication: []
      responses:
        '200':
          description: |
            OK

            XML Schema used for body validation: [directory.xsd](../schema/directory.xsd)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    xml:
                      attribute: true
                  name:
                    type: string
                    xml:
                      attribute: true
                  rev:
                    type: string
                    xml:
                      attribute: true
                  vrev:
                    type: string
                    xml:
                      attribute: true
                  srcmd5:
                    type: string
                    xml:
                      attribute: true
                  entry:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        md5:
                          type: string
                          xml:
                            attribute: true
                        size:
                          type: string
                          xml:
                            attribute: true
                        mtime:
                          type: string
                          xml:
                            attribute: true
                xml:
                  name: directory
              example:
                entry:
                - name: 122
                - name: 123
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Requests
    post:
      summary: Create a request
      description: Create a request
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: cmd
        required: true
        schema:
          type: string
          enum:
          - create
        description: This endpoint will refuse the creation of a new request if this
          parameter is not set.
      - in: query
        name: addrevision
        schema:
          type: string
          enum:
          - 1
        description: Ask the server to add revisions of the current sources to the
          request.
      - in: query
        name: ignore_delegate
        schema:
          type: string
          enum:
          - 1
        description: Enforce a new package instance in a project which has OBS:DelegateRequestTarget
          set
      - in: query
        name: ignore_build_state
        schema:
          type: string
          enum:
          - 1
        description: Skip the build state check
      requestBody:
        description: |
          Request XML

          **NOTE:** You cannot pass the request id in the xml. You can pass the history in the xml, but it will be simply ignored.
        required: true
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  example: 42
                  xml:
                    attribute: true
                creator:
                  type: string
                  example: foo-user
                  xml:
                    attribute: true
                action:
                  type: object
                  properties:
                    type:
                      type: string
                      example: submit
                      xml:
                        attribute: true
                    source:
                      type: object
                      properties:
                        project:
                          type: string
                          example: home:foo-user
                          xml:
                            attribute: true
                        package:
                          type: string
                          example: obs-server
                          xml:
                            attribute: true
                        rev:
                          type: integer
                          example: 521
                          xml:
                            attribute: true
                    target:
                      type: object
                      properties:
                        project:
                          type: string
                          example: OBS:Unstable
                          xml:
                            attribute: true
                        package:
                          type: string
                          example: obs-server
                          xml:
                            attribute: true
                    options:
                      type: object
                      properties:
                        sourceupdate:
                          type: string
                          example: cleanup
                state:
                  type: object
                  properties:
                    name:
                      type: string
                      example: accepted
                      xml:
                        attribute: true
                    who:
                      type: string
                      example: bar-user
                      xml:
                        attribute: true
                    when:
                      type: string
                      example: '2021-01-15T13:39:43'
                      xml:
                        attribute: true
                    comment:
                      type: string
                      example: allright
                review:
                  type: array
                  items:
                    type: object
                    properties:
                      state:
                        type: string
                        xml:
                          attribute: true
                      when:
                        type: string
                        xml:
                          attribute: true
                      who:
                        type: string
                        xml:
                          attribute: true
                      by_user:
                        type: string
                        xml:
                          attribute: true
                      by_group:
                        type: string
                        xml:
                          attribute: true
                      by_project:
                        type: string
                        xml:
                          attribute: true
                      by_package:
                        type: string
                        xml:
                          attribute: true
                      comment:
                        type: string
                      history:
                        type: object
                        properties:
                          when:
                            type: string
                            xml:
                              attribute: true
                          who:
                            type: string
                            xml:
                              attribute: true
                          description:
                            type: string
                  example:
                  - state: accepted
                    when: '2021-01-15T15:49:32'
                    who: obs-maintainer
                    by_user: obs-maintainer
                  - state: accepted
                    when: '2021-01-15T15:49:32'
                    who: obs-maintainer
                    by_group: obs-group
                  - state: accepted
                    when: '2021-01-15T15:49:32'
                    who: obs-maintainer
                    by_project: OBS:Unstable
                  - state: accepted
                    when: '2021-01-15T15:49:32'
                    who: obs-maintainer
                    by_package: obs-server
                history:
                  type: array
                  items:
                    type: object
                    properties:
                      who:
                        type: string
                        example: foo
                        xml:
                          attribute: true
                      when:
                        type: string
                        example: '2021-01-15T13:39:43'
                        xml:
                          attribute: true
                      description:
                        type: string
                        example: Request created
                      comment:
                        type: string
                        example: Please review sources
                description:
                  type: string
                  example: A little version update
              xml:
                name: request
      responses:
        '200':
          description: |
            OK.

            XML Schema used for body validation: [request.rng](../schema/request.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                    example: 42
                    xml:
                      attribute: true
                  creator:
                    type: string
                    example: foo-user
                    xml:
                      attribute: true
                  action:
                    type: object
                    properties:
                      type:
                        type: string
                        example: submit
                        xml:
                          attribute: true
                      source:
                        type: object
                        properties:
                          project:
                            type: string
                            example: home:foo-user
                            xml:
                              attribute: true
                          package:
                            type: string
                            example: obs-server
                            xml:
                              attribute: true
                          rev:
                            type: integer
                            example: 521
                            xml:
                              attribute: true
                      target:
                        type: object
                        properties:
                          project:
                            type: string
                            example: OBS:Unstable
                            xml:
                              attribute: true
                          package:
                            type: string
                            example: obs-server
                            xml:
                              attribute: true
                      options:
                        type: object
                        properties:
                          sourceupdate:
                            type: string
                            example: cleanup
                  state:
                    type: object
                    properties:
                      name:
                        type: string
                        example: accepted
                        xml:
                          attribute: true
                      who:
                        type: string
                        example: bar-user
                        xml:
                          attribute: true
                      when:
                        type: string
                        example: '2021-01-15T13:39:43'
                        xml:
                          attribute: true
                      comment:
                        type: string
                        example: allright
                  review:
                    type: array
                    items:
                      type: object
                      properties:
                        state:
                          type: string
                          xml:
                            attribute: true
                        when:
                          type: string
                          xml:
                            attribute: true
                        who:
                          type: string
                          xml:
                            attribute: true
                        by_user:
                          type: string
                          xml:
                            attribute: true
                        by_group:
                          type: string
                          xml:
                            attribute: true
                        by_project:
                          type: string
                          xml:
                            attribute: true
                        by_package:
                          type: string
                          xml:
                            attribute: true
                        comment:
                          type: string
                        history:
                          type: object
                          properties:
                            when:
                              type: string
                              xml:
                                attribute: true
                            who:
                              type: string
                              xml:
                                attribute: true
                            description:
                              type: string
                    example:
                    - state: accepted
                      when: '2021-01-15T15:49:32'
                      who: obs-maintainer
                      by_user: obs-maintainer
                    - state: accepted
                      when: '2021-01-15T15:49:32'
                      who: obs-maintainer
                      by_group: obs-group
                    - state: accepted
                      when: '2021-01-15T15:49:32'
                      who: obs-maintainer
                      by_project: OBS:Unstable
                    - state: accepted
                      when: '2021-01-15T15:49:32'
                      who: obs-maintainer
                      by_package: obs-server
                  history:
                    type: array
                    items:
                      type: object
                      properties:
                        who:
                          type: string
                          example: foo
                          xml:
                            attribute: true
                        when:
                          type: string
                          example: '2021-01-15T13:39:43'
                          xml:
                            attribute: true
                        description:
                          type: string
                          example: Request created
                        comment:
                          type: string
                          example: Please review sources
                  description:
                    type: string
                    example: A little version update
                xml:
                  name: request
        '400':
          description: Bad Request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: expand_error
                summary: The source of package test-project/test-package for revision
                  2 is broken
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Forbidden
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: create_bs_request_not_authorized
                summary: You are not authorized to create this Bs request.
      tags:
      - Requests
  "/request?view=collection":
    get:
      summary: Get a collection of requests for a specified target.
      description: |
        Get a collection of requests for a specified target.

        **NOTE:** You need to set at least one of the following parameters in order to use this endpoint:

        * `user`
        * `group`
        * `project`
        * `package`
        * `states`
        * `reviewstates`
        * `types`
        * `ids`
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: user
        schema:
          type: string
        description: |
          Filter the results of requests and open reviews for a certain user. If no other parameters are
          applied, it will include requests where the user is maintainer of the target or the creator of
          the request.
        example: hans
      - in: query
        name: group
        schema:
          type: string
        description: Filter the results of requests and open reviews for a certain
          group.
        example: obs-group
      - in: query
        name: project
        schema:
          type: string
        description: |
          Limit the results to requests with this project as source or target,
          or requests which were assigned to be reviewed by the maintainers of this project.
        example: home:hans
      - in: query
        name: package
        schema:
          type: string
        description: |
          Limit the results to requests with this package as source or target,
          or requests which were assigned to be reviewed by the maintainers of this package.
        example: ruby
      - in: query
        name: states
        schema:
          type: string
        description: Limit results to a given request state. Multiple states can be
          provided as a comma separated list.
        example: new,review
      - in: query
        name: reviewstates
        schema:
          type: string
        description: Limit results to a given review state. Multiple states can be
          provided as a comma separated list.
        example: new,declined,accepted,superseded,obsoleted
      - in: query
        name: types
        schema:
          type: string
        description: Limit the results to certain action types. Multiple types can
          be provided as a comma separated list.
        example: add_role,submit
      - in: query
        name: roles
        schema:
          type: string
        description: Limit the results to a given role. Multiple roles can be provided
          as a comma separated list.
        example: creator,maintainer,reviewer,source,target
      - in: query
        name: withhistory
        schema:
          type: string
        description: Include the request history in the results.
        example: 1
      - in: query
        name: withfullhistory
        schema:
          type: string
        description: Includes both, request and review history in the results.
        example: 1
      - in: query
        name: limit
        schema:
          type: integer
        description: Limit the results by the specified amount of requests.
        example: 7
      - in: query
        name: offset
        schema:
          type: integer
        description: Offset the results by the specified amount of requests.
        example: 7
      - in: query
        name: ids
        schema:
          type: string
        description: Limit the result to specified request id's. Multiple id's can
          be provided as a comma separated list.
        example: 151923
      responses:
        '200':
          description: OK
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  matches:
                    type: string
                    example: 7
                    xml:
                      attribute: true
                  request:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 42
                          xml:
                            attribute: true
                        creator:
                          type: string
                          example: foo-user
                          xml:
                            attribute: true
                        action:
                          type: object
                          properties:
                            type:
                              type: string
                              example: submit
                              xml:
                                attribute: true
                            source:
                              type: object
                              properties:
                                project:
                                  type: string
                                  example: home:foo-user
                                  xml:
                                    attribute: true
                                package:
                                  type: string
                                  example: obs-server
                                  xml:
                                    attribute: true
                                rev:
                                  type: integer
                                  example: 521
                                  xml:
                                    attribute: true
                            target:
                              type: object
                              properties:
                                project:
                                  type: string
                                  example: OBS:Unstable
                                  xml:
                                    attribute: true
                                package:
                                  type: string
                                  example: obs-server
                                  xml:
                                    attribute: true
                            options:
                              type: object
                              properties:
                                sourceupdate:
                                  type: string
                                  example: cleanup
                        state:
                          type: object
                          properties:
                            name:
                              type: string
                              example: accepted
                              xml:
                                attribute: true
                            who:
                              type: string
                              example: bar-user
                              xml:
                                attribute: true
                            when:
                              type: string
                              example: '2021-01-15T13:39:43'
                              xml:
                                attribute: true
                            comment:
                              type: string
                              example: allright
                        review:
                          type: array
                          items:
                            type: object
                            properties:
                              state:
                                type: string
                                xml:
                                  attribute: true
                              when:
                                type: string
                                xml:
                                  attribute: true
                              who:
                                type: string
                                xml:
                                  attribute: true
                              by_user:
                                type: string
                                xml:
                                  attribute: true
                              by_group:
                                type: string
                                xml:
                                  attribute: true
                              by_project:
                                type: string
                                xml:
                                  attribute: true
                              by_package:
                                type: string
                                xml:
                                  attribute: true
                              comment:
                                type: string
                              history:
                                type: object
                                properties:
                                  when:
                                    type: string
                                    xml:
                                      attribute: true
                                  who:
                                    type: string
                                    xml:
                                      attribute: true
                                  description:
                                    type: string
                          example:
                          - state: accepted
                            when: '2021-01-15T15:49:32'
                            who: obs-maintainer
                            by_user: obs-maintainer
                          - state: accepted
                            when: '2021-01-15T15:49:32'
                            who: obs-maintainer
                            by_group: obs-group
                          - state: accepted
                            when: '2021-01-15T15:49:32'
                            who: obs-maintainer
                            by_project: OBS:Unstable
                          - state: accepted
                            when: '2021-01-15T15:49:32'
                            who: obs-maintainer
                            by_package: obs-server
                        history:
                          type: array
                          items:
                            type: object
                            properties:
                              who:
                                type: string
                                example: foo
                                xml:
                                  attribute: true
                              when:
                                type: string
                                example: '2021-01-15T13:39:43'
                                xml:
                                  attribute: true
                              description:
                                type: string
                                example: Request created
                              comment:
                                type: string
                                example: Please review sources
                        description:
                          type: string
                          example: A little version update
                      xml:
                        name: request
                xml:
                  name: collection
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Require Filter:
                  value:
                    code: require_filter
                    summary: This call requires at least one filter, either by user,
                      project or package or states or types or reviewstates
                Not Found:
                  value:
                    code: not_found
                    summary: Couldn't find User with login = foo
      tags:
      - Requests
  "/request/{id}":
    get:
      summary: Show details about a specified request.
      description: Show details about a specified request.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
        description: Id of the choosen request.
        example: 743
      - in: query
        name: withhistory
        schema:
          type: string
        description: Include the request history in the results.
        example: 1
      - in: query
        name: withfullhistory
        schema:
          type: string
        description: Includes both, request and review history in the results.
        example: 1
      responses:
        '200':
          description: |
            OK.

            XML Schema used for body validation: [request.rng](../schema/request.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                    example: 42
                    xml:
                      attribute: true
                  creator:
                    type: string
                    example: foo-user
                    xml:
                      attribute: true
                  action:
                    type: object
                    properties:
                      type:
                        type: string
                        example: submit
                        xml:
                          attribute: true
                      source:
                        type: object
                        properties:
                          project:
                            type: string
                            example: home:foo-user
                            xml:
                              attribute: true
                          package:
                            type: string
                            example: obs-server
                            xml:
                              attribute: true
                          rev:
                            type: integer
                            example: 521
                            xml:
                              attribute: true
                      target:
                        type: object
                        properties:
                          project:
                            type: string
                            example: OBS:Unstable
                            xml:
                              attribute: true
                          package:
                            type: string
                            example: obs-server
                            xml:
                              attribute: true
                      options:
                        type: object
                        properties:
                          sourceupdate:
                            type: string
                            example: cleanup
                  state:
                    type: object
                    properties:
                      name:
                        type: string
                        example: accepted
                        xml:
                          attribute: true
                      who:
                        type: string
                        example: bar-user
                        xml:
                          attribute: true
                      when:
                        type: string
                        example: '2021-01-15T13:39:43'
                        xml:
                          attribute: true
                      comment:
                        type: string
                        example: allright
                  review:
                    type: array
                    items:
                      type: object
                      properties:
                        state:
                          type: string
                          xml:
                            attribute: true
                        when:
                          type: string
                          xml:
                            attribute: true
                        who:
                          type: string
                          xml:
                            attribute: true
                        by_user:
                          type: string
                          xml:
                            attribute: true
                        by_group:
                          type: string
                          xml:
                            attribute: true
                        by_project:
                          type: string
                          xml:
                            attribute: true
                        by_package:
                          type: string
                          xml:
                            attribute: true
                        comment:
                          type: string
                        history:
                          type: object
                          properties:
                            when:
                              type: string
                              xml:
                                attribute: true
                            who:
                              type: string
                              xml:
                                attribute: true
                            description:
                              type: string
                    example:
                    - state: accepted
                      when: '2021-01-15T15:49:32'
                      who: obs-maintainer
                      by_user: obs-maintainer
                    - state: accepted
                      when: '2021-01-15T15:49:32'
                      who: obs-maintainer
                      by_group: obs-group
                    - state: accepted
                      when: '2021-01-15T15:49:32'
                      who: obs-maintainer
                      by_project: OBS:Unstable
                    - state: accepted
                      when: '2021-01-15T15:49:32'
                      who: obs-maintainer
                      by_package: obs-server
                  history:
                    type: array
                    items:
                      type: object
                      properties:
                        who:
                          type: string
                          example: foo
                          xml:
                            attribute: true
                        when:
                          type: string
                          example: '2021-01-15T13:39:43'
                          xml:
                            attribute: true
                        description:
                          type: string
                          example: Request created
                        comment:
                          type: string
                          example: Please review sources
                  description:
                    type: string
                    example: A little version update
                xml:
                  name: request
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: Couldn't find request with id '5'
      tags:
      - Requests
    post:
      summary: Apply certain actions on a specified request.
      description: Apply certain actions on a specified request.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
        description: Id of the choosen request.
        example: 743
      - in: query
        name: cmd
        description: |
          - `addreview`:
            Add a review to a request. **NOTE:** You need to specify who has to address
            the review by providing an additional paramter. Possible options are:
            * by_user
            * by_group
            * by_project

          - `assignreview`:
            Accept a review for a given group and assign a new review to a specific user.
            **NOTE:** You need to pass the group name in the `by_group` parameter
            and the new reviewer in the `reviewer` parameter.

          - `changestate`: Modify the state of a given request.
            **NOTE:** You need to pass the new state through the `newstate` parameter. Changing
            from one state to another is in certain cases not allowed. You can still force
            the operation by using the `force` parameter.

            To supersede the given request with another request, pass the ID of the other request
            in the `superseded_by` parameter, in addition to `newstate=superseded`.

          - `changereviewstate`:
            Change the state of a review inside a given request.

          - `setpriority`:
            Change the priority of a given request. You have to pass the choosen priority through
            the `priority` parameter. Possible values are:
            * low
            * moderate
            * important
            * critical

          - `setincident`: Change the target incident for maintenance_incident actions
            **NOTE:** You need to provide the incident number through the `incident`
            parameter.

          - `setacceptat`: Set or modify the accept_at time. Either specified by the `time`
            parameter or by default set to now.

          - `approve`: Pre-approve a request in the review state. It will turn into state `accepted`
            after the last review.

          - `cancelapproval`: Reset the approval of a request
        schema:
          type: string
        style: form
        explode: false
        examples:
          addreview:
            value: cmd=addreview&by_group=heroes
          assignreview:
            value: cmd=assignreview&by_group=heroes&reviewer=foo
          assignreview with revert:
            value: cmd=assignreview&by_group=heroes&reviewer=foo&revert=1
          changestate:
            value: cmd=changestate&newstate=accepted
          changestate (superseded):
            value: cmd=changestate&newstate=superseded&superseded_by=173
          changereviewstate:
            value: cmd=changereviewstate&by_group=heroes&newstate=new&comment=reopened
          setpriority:
            value: cmd=setpriority&priority=low&comment=notsoimportant
          setincident:
            value: cmd=setincident&incident=12
          setacceptat:
            value: cmd=setacceptat&time='2020-12-01%2000:00:00%20UTC'
          approve:
            value: cmd=approve
          cancelapproval:
            value: cmd=cancelapproval
      - in: query
        name: newstate
        schema:
          type: string
        description: Define the new state
      - in: query
        name: superseded_by
        schema:
          type: string
        description: Required and used only with the combination of the `changestate`
          command and the `newstate=superseded` parameter - Supersede the given request
          with another request by passing its ID in this parameter
      - in: query
        name: priority
        schema:
          type: string
        description: Define the new priority
      - in: query
        name: by_user
        schema:
          type: string
        description: Specify the user of a new review
      - in: query
        name: by_group
        schema:
          type: string
        description: Specify the group of the new review
      - in: query
        name: by_project
        schema:
          type: string
        description: Specify the project of the new review
      - in: query
        name: by_package
        schema:
          type: string
        description: Specify the package of the new review
      - in: query
        name: force
        schema:
          type: string
        allowEmptyValue: true
        description: Pass this parameter with an empty value to force the `changestate`
          command.
      - in: query
        name: incident
        schema:
          type: string
        description: Specify the incident number for `setincident`
      - in: query
        name: revert
        schema:
          type: string
        description: Revert an assignreview command to assign review back to group
      - in: query
        name: time
        schema:
          type: string
        description: Specify the time for `setacceptat`
      - in: query
        name: comment
        schema:
          type: string
        description: Add a comment to one of the actions
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: Bad Request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: no_maintenance_release_target
                summary: |
                  Maintenance incident request contains release target project test_maintenance_project with
                  invalid project kind "standard" (should be "maintenance_release") for package package01
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Request Not Modifiable:
                  value:
                    code: request_not_modifiable
                    summary: request is not in review state
                Not Found:
                  value:
                    code: not_found
                    summary: Couldn't find request with id '120'
      tags:
      - Requests
    put:
      summary: Modify a given request.
      description: |
        Modify a given request.

        **NOTE:** Certain parts of a request can only be changed by admins.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
        description: Id of the choosen request.
        example: 743
      requestBody:
        description: |
          Request XML

          **NOTE:** You cannot pass the request id in the xml. You can pass the history in the xml, but it will be simply ignored.

          XML Schema used for body validation: [request.rng](../schema/request.rng)
        required: true
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  example: 42
                  xml:
                    attribute: true
                creator:
                  type: string
                  example: foo-user
                  xml:
                    attribute: true
                action:
                  type: object
                  properties:
                    type:
                      type: string
                      example: submit
                      xml:
                        attribute: true
                    source:
                      type: object
                      properties:
                        project:
                          type: string
                          example: home:foo-user
                          xml:
                            attribute: true
                        package:
                          type: string
                          example: obs-server
                          xml:
                            attribute: true
                        rev:
                          type: integer
                          example: 521
                          xml:
                            attribute: true
                    target:
                      type: object
                      properties:
                        project:
                          type: string
                          example: OBS:Unstable
                          xml:
                            attribute: true
                        package:
                          type: string
                          example: obs-server
                          xml:
                            attribute: true
                    options:
                      type: object
                      properties:
                        sourceupdate:
                          type: string
                          example: cleanup
                state:
                  type: object
                  properties:
                    name:
                      type: string
                      example: accepted
                      xml:
                        attribute: true
                    who:
                      type: string
                      example: bar-user
                      xml:
                        attribute: true
                    when:
                      type: string
                      example: '2021-01-15T13:39:43'
                      xml:
                        attribute: true
                    comment:
                      type: string
                      example: allright
                review:
                  type: array
                  items:
                    type: object
                    properties:
                      state:
                        type: string
                        xml:
                          attribute: true
                      when:
                        type: string
                        xml:
                          attribute: true
                      who:
                        type: string
                        xml:
                          attribute: true
                      by_user:
                        type: string
                        xml:
                          attribute: true
                      by_group:
                        type: string
                        xml:
                          attribute: true
                      by_project:
                        type: string
                        xml:
                          attribute: true
                      by_package:
                        type: string
                        xml:
                          attribute: true
                      comment:
                        type: string
                      history:
                        type: object
                        properties:
                          when:
                            type: string
                            xml:
                              attribute: true
                          who:
                            type: string
                            xml:
                              attribute: true
                          description:
                            type: string
                  example:
                  - state: accepted
                    when: '2021-01-15T15:49:32'
                    who: obs-maintainer
                    by_user: obs-maintainer
                  - state: accepted
                    when: '2021-01-15T15:49:32'
                    who: obs-maintainer
                    by_group: obs-group
                  - state: accepted
                    when: '2021-01-15T15:49:32'
                    who: obs-maintainer
                    by_project: OBS:Unstable
                  - state: accepted
                    when: '2021-01-15T15:49:32'
                    who: obs-maintainer
                    by_package: obs-server
                history:
                  type: array
                  items:
                    type: object
                    properties:
                      who:
                        type: string
                        example: foo
                        xml:
                          attribute: true
                      when:
                        type: string
                        example: '2021-01-15T13:39:43'
                        xml:
                          attribute: true
                      description:
                        type: string
                        example: Request created
                      comment:
                        type: string
                        example: Please review sources
                description:
                  type: string
                  example: A little version update
              xml:
                name: request
      responses:
        '200':
          description: |
            OK.

            XML Schema used for body validation: [request.rng](../schema/request.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                    example: 42
                    xml:
                      attribute: true
                  creator:
                    type: string
                    example: foo-user
                    xml:
                      attribute: true
                  action:
                    type: object
                    properties:
                      type:
                        type: string
                        example: submit
                        xml:
                          attribute: true
                      source:
                        type: object
                        properties:
                          project:
                            type: string
                            example: home:foo-user
                            xml:
                              attribute: true
                          package:
                            type: string
                            example: obs-server
                            xml:
                              attribute: true
                          rev:
                            type: integer
                            example: 521
                            xml:
                              attribute: true
                      target:
                        type: object
                        properties:
                          project:
                            type: string
                            example: OBS:Unstable
                            xml:
                              attribute: true
                          package:
                            type: string
                            example: obs-server
                            xml:
                              attribute: true
                      options:
                        type: object
                        properties:
                          sourceupdate:
                            type: string
                            example: cleanup
                  state:
                    type: object
                    properties:
                      name:
                        type: string
                        example: accepted
                        xml:
                          attribute: true
                      who:
                        type: string
                        example: bar-user
                        xml:
                          attribute: true
                      when:
                        type: string
                        example: '2021-01-15T13:39:43'
                        xml:
                          attribute: true
                      comment:
                        type: string
                        example: allright
                  review:
                    type: array
                    items:
                      type: object
                      properties:
                        state:
                          type: string
                          xml:
                            attribute: true
                        when:
                          type: string
                          xml:
                            attribute: true
                        who:
                          type: string
                          xml:
                            attribute: true
                        by_user:
                          type: string
                          xml:
                            attribute: true
                        by_group:
                          type: string
                          xml:
                            attribute: true
                        by_project:
                          type: string
                          xml:
                            attribute: true
                        by_package:
                          type: string
                          xml:
                            attribute: true
                        comment:
                          type: string
                        history:
                          type: object
                          properties:
                            when:
                              type: string
                              xml:
                                attribute: true
                            who:
                              type: string
                              xml:
                                attribute: true
                            description:
                              type: string
                    example:
                    - state: accepted
                      when: '2021-01-15T15:49:32'
                      who: obs-maintainer
                      by_user: obs-maintainer
                    - state: accepted
                      when: '2021-01-15T15:49:32'
                      who: obs-maintainer
                      by_group: obs-group
                    - state: accepted
                      when: '2021-01-15T15:49:32'
                      who: obs-maintainer
                      by_project: OBS:Unstable
                    - state: accepted
                      when: '2021-01-15T15:49:32'
                      who: obs-maintainer
                      by_package: obs-server
                  history:
                    type: array
                    items:
                      type: object
                      properties:
                        who:
                          type: string
                          example: foo
                          xml:
                            attribute: true
                        when:
                          type: string
                          example: '2021-01-15T13:39:43'
                          xml:
                            attribute: true
                        description:
                          type: string
                          example: Request created
                        comment:
                          type: string
                          example: Please review sources
                  description:
                    type: string
                    example: A little version update
                xml:
                  name: request
        '400':
          description: Bad Request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: request_save_error
                summary: Auto accept time is in the past
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: Couldn't find request with id '10'
      tags:
      - Requests
    delete:
      summary: Delete a given request.
      description: Delete a given request.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
        description: Id of the choosen request.
        example: 743
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: Couldn't find request with id '10'
      tags:
      - Requests
  "/request/{id}?cmd=diff":
    post:
      summary: Get the diff for all packages affected by the request.
      description: Get the diff for all packages affected by the request.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
        description: Id of the choosen request.
        example: 743
      - in: query
        name: diff_to_superseded
        schema:
          type: integer
        description: 'Diff relative to a given superseded request. State the id of
          the corresponding superseded request.

          '
        example: 10401
      - in: query
        name: view
        schema:
          type: string
          enum:
          - xml
        description: Set this parameter to xml in order to receive a structured diff
          instead of plain text.
      - in: query
        name: withissues
        schema:
          type: string
          enum:
          - true
          - 1
        description: Include parsed issues from referenced sources
      - in: query
        name: withdescriptionissues
        schema:
          type: string
        description: Include parsed issues from request description
      responses:
        '200':
          description: OK
          content:
            text/plain; charset=utf-8:
              schema:
                type: string
              example: |
                spec files:
                -----------
                --- test.spec
                +++ test.spec
                @@ -0,0 +1 @@
                +# NEW COMMENT
                \ No newline at end of file
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    example: 12
                    xml:
                      attribute: true
                  actions:
                    type: string
                    example: 0
                    xml:
                      attribute: true
                  action:
                    type: object
                    properties:
                      type:
                        type: string
                        example: submit
                        xml:
                          attribute: true
                      source:
                        type: object
                        properties:
                          project:
                            type: string
                            example: home:Iggy:branches:home:Admin
                            xml:
                              attribute: true
                          package:
                            type: string
                            example: ruby
                            xml:
                              attribute: true
                          rev:
                            type: string
                            example: 3
                            xml:
                              attribute: true
                      target:
                        type: object
                        properties:
                          project:
                            type: string
                            example: home:Admin
                            xml:
                              attribute: true
                          package:
                            type: string
                            example: ruby
                            xml:
                              attribute: true
                      options:
                        type: object
                        properties:
                          sourceupdate:
                            example: cleanup
                            type: string
                      sourcediff:
                        type: object
                        properties:
                          key:
                            type: string
                            example: 9dbe9eb1767c5e12c69839af893dc239
                            xml:
                              attribute: true
                          old: &1
                            type: object
                            properties:
                              project:
                                type: string
                                example: home:Iggy:branches:home:Admin
                                xml:
                                  attribute: true
                              package:
                                type: string
                                example: ruby
                                xml:
                                  attribute: true
                              rev:
                                type: string
                                example: 3
                                xml:
                                  attribute: true
                              srcmd5:
                                type: string
                                example: 59300f4ba65f53334b2e2a39f87ba3a0
                                xml:
                                  attribute: true
                          new: *1
                          files:
                            type: array
                            items:
                              type: object
                              properties:
                                file:
                                  type: object
                                  properties:
                                    state:
                                      type: string
                                      example: changed
                                      xml:
                                        attribute: true
                                    old: &2
                                      type: object
                                      properties:
                                        name:
                                          type: string
                                          example: ruby.spec
                                          xml:
                                            attribute: true
                                        md5:
                                          type: string
                                          example: d4f573d2bf9a0e306f87dad7eee0cf56
                                          xml:
                                            attribute: true
                                        size:
                                          type: string
                                          example: 70
                                          xml:
                                            attribute: true
                                    new: *2
                                    diff:
                                      type: string
                                      example: |
                                        spec files:
                                        -----------
                                        --- test.spec
                                        +++ test.spec
                                        @@ -0,0 +1 @@
                                        +# NEW COMMENT
                                        \ No newline at end of file
                          issues:
                            type: array
                            items:
                              type: object
                              properties:
                                issue:
                                  type: object
                                  properties:
                                    state:
                                      type: string
                                      example: added
                                      xml:
                                        attribute: true
                                    tracker:
                                      type: string
                                      example: bnc
                                      xml:
                                        attribute: true
                                    name:
                                      type: string
                                      example: 922894
                                      xml:
                                        attribute: true
                                    label:
                                      type: string
                                      example: boo#944302
                                      xml:
                                        attribute: true
                                    url:
                                      type: string
                                      example: https://bugzilla.opensuse.org/show_bug.cgi?id=944302
                                      xml:
                                        attribute: true
                components:
                  schemas:
                    NewOldDestination: *1
                    OldNewFile: *2
                xml:
                  name: diff
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: Couldn't find request with id '355'
      tags:
      - Requests
  "/search":
    get:
      summary: Search in projects or in packages.
      description: Get a list of projects or a list of packages that match a XPath
        expression, passed in the query parameter `match`.
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: in
        required: true
        schema:
          type: string
          enum:
          - projects
          - packages
          example: projects
        description: |
          Where to search and apply a XPath expression: either the list of projects or the list of packages.

          Example of a result when `projects` is selected:
          ```
          <collection>
            <project name="home:Admin">
              <title></title>
              <description></description>
              <person userid="Admin" role="maintainer"/>
              <repository name="openSUSE_Tumbleweed">
                <path project="openSUSE.org:openSUSE:Factory" repository="snapshot"/>
                <arch>x86_64</arch>
              </repository>
              <repository name="15.3">
                <path project="openSUSE.org:openSUSE:Leap:15.3" repository="standard"/>
                <arch>x86_64</arch>
              </repository>
            </project>
            <project name="openSUSE.org">
              <title>Standard OBS instance at build.opensuse.org</title>
              <description>This instance delivers the default build targets for OBS.</description>
              <remoteurl>https://api.opensuse.org/public</remoteurl>
            </project>
          </collection>
          ```

          Example of a result when `packages` is selected:
          ```
          <collection>
            <package name="ctris" project="home:Admin">
              <title></title>
              <description></description>
            </package>
          </collection>
          ```
      - in: query
        name: match
        required: true
        schema:
          type: string
        description: XPath expression used to filter the results.
        examples:
          non_empty_element:
            summary: Non empty element
            value: repository/arch
          non_empty_attribute:
            summary: Non empty attribute
            value: repository/name
          element_content:
            summary: Element content
            value: repository/arch='x86_64'
          attribute_content:
            summary: Attribute content
            value: repository/name='openSUSE_Tumbleweed'
          compound_condition:
            summary: Compound condition
            value: name='OBS:Server:Unstable'+and+repository/arch='x86_64'
      - in: query
        name: return
        schema:
          type: string
          example: repository/name
        description: |
          XPath expression that defines which values will be returned.

          Instead of returning a collection of projects or packages, the result will be a collection of:
            - contents of elements, when that XPath expression match elements, or,
            - values of atttributes, when that XPath expression match atttributes.

          Example of result, for a query string like `?in=projects&match=repository/arch='x86_64'&return=repository/name`:
          ```
          <collection>
            <value>openSUSE_Tumbleweed</value>
            <value>15.3</value>
          </collection>
          ```
      - in: query
        name: values
        schema:
          type: string
          example: 1
        description: |
          When set to `1`, return a list of values, instead of returning a list of projects or packages.

          The result will be a collection of:
            - contents of elements, when the expression defined in the `match` query parameter match elements.
              For example: `match=repository/arch`.
            - values of atttributes, when the expression defined in the `match` query parameter match atttributes.
              For example: `match=repository/name`.

          Example of result, for a query string like `?in=projects&match=repository/path/project&values=1`:
          ```
          <collection>
            <value>openSUSE.org:openSUSE:Factory</value>
            <value>openSUSE.org:openSUSE:Leap:15.3</value>
          </collection>
          ```
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                oneOf:
                - type: object
                  properties:
                    matches:
                      type: integer
                      xml:
                        attribute: true
                    project:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                            xml:
                              attribute: true
                          title:
                            type: string
                          description:
                            type: string
                          person:
                            type: object
                            properties:
                              userid:
                                type: string
                                xml:
                                  attribute: true
                              role:
                                type: string
                                xml:
                                  attribute: true
                  xml:
                    name: collection
                - type: object
                  properties:
                    matches:
                      type: integer
                      xml:
                        attribute: true
                    package:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                            xml:
                              attribute: true
                          project:
                            type: string
                            xml:
                              attribute: true
                          title:
                            type: string
                          description:
                            type: string
                  xml:
                    name: collection
        '400':
          description: Bad Request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                invalid_in_parameter:
                  summary: Invalid in parameter
                  value:
                    code: 400
                    origin: backend
                    summary: "'in' parameter needs to be either 'projects' or 'packages'"
                missing_match_parameter:
                  summary: Missing match parameter
                  value:
                    code: 400
                    origin: backend
                    summary: parameter 'match' is missing
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Search
    post:
      deprecated: true
      summary: Search in projects or in packages.
      description: This endpoint is exactly the same as `GET /search`, please use
        that one.
      tags:
      - Search
  "/search/channel":
    get:
      summary: List channel objects that match a XPath condition.
      description: Return a collection of channel objects with release informations
        that match a XPath condition.
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: match
        schema:
          type: string
        required: true
        description: |
          Expression based in XPath.

          Providing a value of `*` will return all channels.

          Available predicates are:
            - General fields: `@package` and `@project`
            - Binary fields: `binary/@name`, `binary/@binaryarch`, `binary/@package` and `binary/@supportstatus`
            - Target fields: `target/disabled`, `target/updatefor/@project` and `target/updatefor/@product`
        examples:
          all:
            summary: All
            value: "*"
          package:
            summary: Name of the package that contains the `_channel` xml
            value: "@package=openSUSE_Channels"
          function_contains:
            summary: Function contains
            value: starts_with(@project,'open')
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  matches:
                    type: string
                    example: 1
                    xml:
                      attribute: true
                  channel:
                    type: array
                    items:
                      type: object
                      properties:
                        project:
                          type: string
                          xml:
                            attribute: true
                        package:
                          type: string
                          xml:
                            attribute: true
                        binary:
                          type: object
                          properties:
                            name:
                              type: string
                              xml:
                                attribute: true
                            project:
                              type: string
                              xml:
                                attribute: true
                            package:
                              type: string
                              xml:
                                attribute: true
                            supportstatus:
                              type: string
                              xml:
                                attribute: true
                        target:
                          type: object
                          properties:
                            project:
                              type: string
                              xml:
                                attribute: true
                            repository:
                              type: string
                              xml:
                                attribute: true
                            updatefor:
                              type: object
                              properties:
                                project:
                                  type: string
                                  xml:
                                    attribute: true
                                product:
                                  type: string
                                  xml:
                                    attribute: true
                                baseversion:
                                  type: string
                                  xml:
                                    attribute: true
                                version:
                                  type: string
                                  xml:
                                    attribute: true
                                patchlevel:
                                  type: string
                                  xml:
                                    attribute: true
                      xml:
                        name: channel
                xml:
                  name: collection
              examples:
                no_results:
                  summary: No matching results
                  value:
                    matches: 0
                one_result:
                  summary: One matching result
                  value:
                    matches: 1
                    channel:
                    - project: openSUSE:Channels
                      package: openSUSE:Leap_15_2_x86
                      binary:
                        name: Mesa
                        project: openSUSE:Leap:15.2:Update
                        package: Mesa
                        supportstatus: l3
                      target:
                        project: openSUSE:Updates:Leap:15.2:x86
                        repository: update
                        updatefor:
                          project: openSUSE:Leap:15.2:Update
                          product: Leap
                          baseversion: 15
                          version: 2
                          patchlevel: 2
        '400':
          description: Bad Request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: illegal_xpath_error
                summary: unable to evaluate 'foo' for 'channels'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Search
    post:
      deprecated: true
      summary: List channel objects that match a XPath condition.
      description: This endpoint is exactly the same as `GET /search/channel`, please
        use that one.
      tags:
      - Search
  "/search/channel/binary":
    get:
      summary: List channel objects that match a XPath condition.
      description: |
        Return a collection of channel objects with release informations that match a XPath condition.

        This operation is the same as the one defined with `GET /search/channel/binary/id` with the exception of the results returned.
        While the former operation only returns a list of channel objects with the channel definition related to the binary, this one returns a list of channel
        objects with release information.
        See example values of a succeeded request below.
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: match
        schema:
          type: string
        required: true
        description: |
          Expression based in XPath.

          Providing a value of `*` will return all channels.

          Available predicates are:
            - General fields: `@name`, `@binaryarch`, `@package`, `@project` and `@supportstatus`
            - Target fields: `target/disabled`
            - Updatefor fields: `updatefor/@product` and `updatefor/@product`
        examples:
          all:
            summary: All
            value: "*"
          package:
            summary: Name of the package that contains the `_channel` xml
            value: "@name=Mesa-debuginfo"
          function_contains:
            summary: Function contains
            value: starts_with(@project,'open')
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  matches:
                    type: string
                    example: 1
                    xml:
                      attribute: true
                  channel:
                    type: array
                    items:
                      type: object
                      properties:
                        project:
                          type: string
                          xml:
                            attribute: true
                        package:
                          type: string
                          xml:
                            attribute: true
                        binary:
                          type: object
                          properties:
                            name:
                              type: string
                              xml:
                                attribute: true
                            project:
                              type: string
                              xml:
                                attribute: true
                            package:
                              type: string
                              xml:
                                attribute: true
                            supportstatus:
                              type: string
                              xml:
                                attribute: true
                        target:
                          type: object
                          properties:
                            project:
                              type: string
                              xml:
                                attribute: true
                            repository:
                              type: string
                              xml:
                                attribute: true
                            updatefor:
                              type: object
                              properties:
                                project:
                                  type: string
                                  xml:
                                    attribute: true
                                product:
                                  type: string
                                  xml:
                                    attribute: true
                                baseversion:
                                  type: string
                                  xml:
                                    attribute: true
                                version:
                                  type: string
                                  xml:
                                    attribute: true
                                patchlevel:
                                  type: string
                                  xml:
                                    attribute: true
                      xml:
                        name: channel
                xml:
                  name: collection
              examples:
                no_results:
                  summary: No matching results
                  value:
                    matches: 0
                one_result:
                  summary: One matching result
                  value:
                    matches: 1
                    channel:
                    - project: openSUSE:Channels
                      package: openSUSE:Leap_15_2_x86
                      binary:
                        name: Mesa
                        project: openSUSE:Leap:15.2:Update
                        package: Mesa
                        supportstatus: l3
                      target:
                        project: openSUSE:Updates:Leap:15.2:x86
                        repository: update
                        updatefor:
                          project: openSUSE:Leap:15.2:Update
                          product: Leap
                          baseversion: 15
                          version: 2
                          patchlevel: 2
        '400':
          description: Bad Request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: illegal_xpath_error
                summary: unable to evaluate 'foo' for 'channel_binaries'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Search
    post:
      deprecated: true
      summary: List channel objects that match a XPath condition.
      description: This endpoint is exactly the same as `GET /search/channel/binary`,
        please use that one.
      tags:
      - Search
  "/search/channel/binary/id":
    get:
      summary: List channel objects that match a XPath condition.
      description: |
        Return a collection of channel objects that match a XPath condition.

        This operation is the same as the one defined with `GET /search/channel/binary` with the exception of the results returned.
        While the former operation returns a list of channel objects with release information, this one only returns a list of channel
        objects with the channel definition related to the binary.
        See example values of a succeeded request below.
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: match
        schema:
          type: string
        description: |
          Expression based in XPath.

          Not providing a value or providing a value of `*` will return all released binaries.

          Available predicates are:
            - General fields: `@name`, `@binaryarch`, `@package`, `@project` and `@supportstatus`
            - Target fields: `target/disabled`
            - Updatefor fields: `updatefor/@product` and `updatefor/@product`
        examples:
          all:
            summary: All
            value: "*"
          package:
            summary: Name of the package that contains the `_channel` xml
            value: "@name=Mesa-debuginfo"
          function_contains:
            summary: Function contains
            value: starts_with(@project,'open')
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  matches:
                    type: string
                    example: 1
                    xml:
                      attribute: true
                  channel:
                    type: array
                    items:
                      type: object
                      properties:
                        project:
                          type: string
                          xml:
                            attribute: true
                        package:
                          type: string
                          xml:
                            attribute: true
                        binary:
                          type: object
                          properties:
                            name:
                              type: string
                              xml:
                                attribute: true
                            project:
                              type: string
                              xml:
                                attribute: true
                            package:
                              type: string
                              xml:
                                attribute: true
                            supportstatus:
                              type: string
                              xml:
                                attribute: true
                        target:
                          type: object
                          properties:
                            project:
                              type: string
                              xml:
                                attribute: true
                            repository:
                              type: string
                              xml:
                                attribute: true
                            updatefor:
                              type: object
                              properties:
                                project:
                                  type: string
                                  xml:
                                    attribute: true
                                product:
                                  type: string
                                  xml:
                                    attribute: true
                                baseversion:
                                  type: string
                                  xml:
                                    attribute: true
                                version:
                                  type: string
                                  xml:
                                    attribute: true
                                patchlevel:
                                  type: string
                                  xml:
                                    attribute: true
                      xml:
                        name: channel
                xml:
                  name: collection
              examples:
                no_results:
                  summary: No matching results
                  value:
                    matches: 0
                one_result:
                  summary: One matching result
                  value:
                    matches: 1
                    channel:
                    - project: openSUSE:Channels
                      package: openSUSE:Leap_15_2_x86
                      binary:
                        name: Mesa
                        project: openSUSE:Leap:15.2:Update
                        package: Mesa
        '400':
          description: Bad Request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: illegal_xpath_error
                summary: unable to evaluate 'foo' for 'channel_binaries'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Search
    post:
      deprecated: true
      summary: List channel objects that match a XPath condition.
      description: This endpoint is exactly the same as `GET /search/channel/binary/id`,
        please use that one.
      tags:
      - Search
  "/search/issue":
    get:
      summary: List issues that match a XPath condition.
      description: Return a collection of issue objects that match a XPath condition.
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: match
        schema:
          type: string
        required: true
        description: |
          Expression based in XPath.

          Providing a value of `*` will return all issues.

          Available predicates are:
            - Issue fields: `@name`, `@state`, and `@tracker`.
            - Issue owner fields: `owner/@email`, and `owner/@login`.
        examples:
          all:
            summary: All
            value: "*"
          name:
            summary: Issue name
            value: "@name='5021'"
          function_contains:
            summary: Funcion contains
            value: contains(owner/@email,'my-domain.org')
          combination:
            summary: Tracker and state
            value: "@tracker='bnc' and @state='CLOSED'"
      - in: query
        name: limit
        schema:
          type: integer
        description: Limit the number of results.
        example: 20
      - in: query
        name: offset
        schema:
          type: integer
        description: Return results starting from the element specified by offset.
        example: 10
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  matches:
                    type: integer
                    xml:
                      attribute: true
                  issue:
                    type: array
                    items:
                      type: object
                      properties:
                        created_at:
                          type: string
                          example: 2021-01-18 19:17:51 UTC
                        updated_at:
                          type: string
                          example: 2021-01-18 19:17:51 UTC
                        name:
                          type: string
                          example: 12345
                        tracker:
                          type: string
                          example: fate
                        label:
                          type: string
                          example: fate#12345
                        url:
                          type: string
                          example: https://features.opensuse.org/12345
                        state:
                          type: string
                        summary:
                          type: string
                        owner:
                          type: object
                          properties:
                            login:
                              type: string
                            email:
                              type: string
                            realname:
                              type: string
                      xml:
                        name: issue
                xml:
                  name: collection
              examples:
                no_results:
                  summary: No matching results
                  value:
                    matches: 0
                two_results:
                  summary: Two matching results
                  value:
                    matches: 2
                    issue:
                    - name: 941384
                      created_at: 2015-08-12 06:11:00 UTC
                      updated_at: 2020-01-09 10:58:33 UTC
                      tracker: bnc
                      label: boo#941384
                      url: https://opensusebugzilla-next.opensuse.org/show_bug.cgi?id=941384
                      state: CLOSED
                      summary: vmware-guest-kmp is not built for SLE_11_SP3
                      owner:
                        login: user_1
                        email: user_1@example.com
                        realname:
                    - name: 4883
                      created_at: 2018-12-11 03:22:54 UTC
                      updated_at: 2018-12-11 03:22:54 UTC
                      tracker: boost
                      label: boost#4883
                      url: https://svn.boost.demo/trac/boost/ticket/4883
        '400':
          description: Bad Request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: illegal_xpath_error
                summary: unable to evaluate 'foo' for 'issues'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Search
    post:
      deprecated: true
      summary: List issues that match a XPath condition.
      description: This endpoint is exactly the same as `GET /search/issue`, please
        use that one.
      tags:
      - Search
  "/search/missing_owner":
    get:
      summary: |
        Search for packages that miss the definition for a by default
        responsible person or group.
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: project
        schema:
          type: string
        description: Only return results for a given project.
      - in: query
        name: filter
        schema:
          type: string
        description: |
          A comma separated list of role names that should be
          taken into account in the result.
        example: bugowner,maintainer
      - in: query
        name: attribute
        schema:
          type: string
        description: |
          Choose the attribute name that marks the rootproject which defines the
          owner's for all corresponding subprojects and limit the returned results
          to those. The default value is `OBS:OwnerRootProject`.
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  missing_owner:
                    type: array
                    items:
                      type: object
                      properties:
                        rootproject:
                          type: string
                          example: openSUSE
                          xml:
                            attribute: true
                        project:
                          type: string
                          example: openSUSE:Factory
                          xml:
                            attribute: true
                        package:
                          type: string
                          example: yast2-branding-openSUSE
                          xml:
                            attribute: true
                xml:
                  name: collection
        '400':
          description: Bad request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: invalid_attribute
                summary: 'Attribute ''foo'' must be in the $NAMESPACE:$NAME style

                  '
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Not Found:
                  value:
                    code: unknown_project
                    summary: 'Project not found: bla'
      tags:
      - Search
    post:
      deprecated: true
      summary: |
        Search for packages that miss the definition for a by default
        responsible person or group.
      description: This endpoint is exactly the same as `GET /search/missing_owner`,
        please use that one.
      tags:
      - Search
  "/search/owner":
    get:
      summary: Search for the users or groups who are the owners of a project or package.
      description: |
        The owners are users/groups with the maintainer or bugowner roles in the given project/package.

        By default the owner search will get results from projects (and their sub-projects) that have the
        OBS:OwnerRootProject attribute.

        You can search for the package name, a user login, a group title or a binary package name.
        If you don't want to search the default projects, you can provide another project to search in.
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: package
        schema:
          type: string
        description: The name of the package whose owners you want to search.
      - in: query
        name: binary
        schema:
          type: string
        description: 'The name of a binary package whose owners you want to search.

          '
      - in: query
        name: user
        schema:
          type: string
        description: 'Search what this user is owner of.

          '
      - in: query
        name: group
        schema:
          type: string
        description: 'The title of a group. Search what this group is owner of.

          '
      - in: query
        name: limit
        schema:
          type: string
        description: |
          Limit the number of returned results. This is only available for
          the search with the `binary` parameter. The default is set to `1`,
          use `0` to receive all results or `-1` for the deepest match.
      - in: query
        name: devel
        schema:
          type: string
          enum:
          - true
          - false
          - 1
          - 0
        description: Include/exclude devel packages in the result.
      - in: query
        name: project
        schema:
          type: string
        description: |
          By default the owner search will get results from projects (and their sub-projects) that have the OBS:OwnerRootProject attribute.
          Use this parameter to overwrite the default and search in this project (and it's sub-projects).
      - in: query
        name: filter
        schema:
          type: string
        description: |
          A comma separated list of role names that should be
          taken into account in the result.
        example: bugowner,maintainer
      - in: query
        name: attribute
        schema:
          type: string
        description: |
          Choose the attribute name that marks the rootproject which defines the
          owner's for all corresponding subprojects and limit the returned results
          to those. The default value is `OBS:OwnerRootProject`.
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  owner:
                    type: array
                    items:
                      type: object
                      properties:
                        rootproject:
                          type: string
                          example: openSUSE
                          xml:
                            attribute: true
                        project:
                          type: string
                          example: openSUSE:Factory
                          xml:
                            attribute: true
                        package:
                          type: string
                          example: yast2-branding-openSUSE
                          xml:
                            attribute: true
                        person:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                example: foo
                                xml:
                                  attribute: true
                              role:
                                type: string
                                example: bugowner
                                xml:
                                  attribute: true
                        group:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                example: bar
                                xml:
                                  attribute: true
                              role:
                                type: string
                                example: maintainer
                                xml:
                                  attribute: true
                xml:
                  name: collection
              examples:
                only package:
                  summary: Search by package name
                  description: Search by package name 'aaa_base' only.
                  value:
                    owner:
                    - rootproject: ''
                      project: Base:System
                      package: aaa_base
                      person:
                        name: user_1
                        role: maintainer
                    - rootproject: ''
                      project: Base:System
                      person:
                        name: user_1
                        role: maintainer
                      group:
                        name: factory-maintainers
                        role: maintainer
                    - rootproject: ''
                      project: Base
                      person:
                        name: user_2
                        role: maintainer
                only project:
                  summary: Search by project name
                  description: Search by project name 'openSUSE:Factory' only.
                  value:
                    owner:
                    - rootproject: ''
                      project: openSUSE:Factory
                      person:
                        name: user_1
                        role: maintainer
                      group:
                        name: factory-maintainers
                        role: maintainer
                    - rootproject: ''
                      project: openSUSE
                      group:
                        name: factory-maintainers
                        role: maintainer
                only binary:
                  summary: Search by binary name
                  description: Search by binary name 'aaa_base' only.
                  value:
                    owner:
                      rootproject: openSUSE
                      project: Base:System
                      package: aaa_base
                      person:
                      - name: user_1
                        role: maintainer
                      - name: user_2
                        role: maintainer
                group and project:
                  summary: Search by group and project
                  description: Search by group title 'factory-maintainers' and project
                    name 'openSUSE:Leap:42.3'.
                  value:
                    owner:
                      rootproject: openSUSE:Leap:42.3
                      project: openSUSE:Leap:42.3
        '400':
          description: Bad request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                without expected parameters:
                  summary: Without the expected parameters
                  description: One or a combination of the parameters package, user,
                    group, binay and project is required.
                  value:
                    code: no_binary
                    summary: 'The search needs at least a ''binary'', ''package''
                      or ''user'' parameter

                      '
                search root not set:
                  summary: Search root is not set
                  description: At least one of the projects in your instance should
                    contain the OBS:OwnerRootProject attribute.
                  value:
                    summary: 'The attribute OBS:OwnerRootProject is not set to define
                      default projects.

                      '
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Not Found:
                  value:
                    code: unknown_project
                    summary: 'Project not found: bla'
                Group Not Found:
                  value:
                    code: not_found
                    summary: Couldn't find Group 'fake'
      tags:
      - Search
    post:
      deprecated: true
      summary: Search for the users or groups who are the owners of a project or package.
      description: This endpoint is exactly the same as `GET /search/owner`, please
        use that one.
      tags:
      - Search
  "/search/package":
    get:
      summary: List package objects that match a XPath condition.
      description: |
        Return a collection of package objects that match a XPath condition.

        This operation is the same as the one defined with [GET /search/package/id](#/Search/get_search_package_id) with the exception of the results returned.
        While the former operation returns a list of package names, this one return a list of package objects. See example values of a succeeded request below.
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: match
        schema:
          type: string
        required: true
        description: |
          Expression based in XPath.

          Providing a value of `*` will return all packages.

          Available predicates are:
            - Package fields: `@name`, `title`, `description`, `scmsync`, and `kind`.
            - `@project`: name of the project of the package.
            - Devel package fields:
              - `devel/@project`: name of the devel project of the package.
              - `devel/@package`: name of the devel package of the package.
            - Issue fields: `issue/@state`, `issue/@name`, `issue/@tracker`, and `issue/@change`.
            - Issue owner fields: `issue/owner/@email`, and `issue/owner/@login`.
            - Fields of attributes of an issue: `attribute_issue/@state`, `attribute_issue/@name`, and `attribute_issue/@tracker`.
            - Fields of owners of an attribute of an issue: `attribute_issue/owner/@email` and `attribute_issue/owner/@login`.
            - Users and groups:
              - `person/@userid`: login of a user related to this package.
              - `person/@role`: name of the role which a user could be related with this package.
              - `group/@groupid`: name (title) of a group related to this package.
              - `group/@role`: name of the role which a group could be related with this package.
            - `attribute/@name`: name of an attribute of the package.
            - `project/attribute/@name`: name of an attribute of the project of the package.
        examples:
          all:
            summary: All
            value: "*"
          project_name_and_package_name:
            summary: Project name and package name
            value: "@project='my:project:name' and @name='my_package_name'"
          function_contains:
            summary: Function contains
            value: contains(description,'editor')
          combination:
            summary: User and role
            value: person/@userid='iggy' and person/@role='reviewer'
      - in: query
        name: limit
        schema:
          type: integer
        description: Limit the number of results.
        example: 20
      - in: query
        name: offset
        schema:
          type: integer
        description: Return results starting from the element specified by offset.
        example: 10
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  matches:
                    type: integer
                    xml:
                      attribute: true
                  package:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        project:
                          type: string
                          xml:
                            attribute: true
                        title:
                          type: string
                        description:
                          type: string
                xml:
                  name: collection
              examples:
                no_results:
                  summary: No matching results
                  value:
                    matches: 0
                two_results:
                  summary: Two matching results
                  value:
                    matches: 2
                    package:
                    - project: home:Admin
                      name: ruby
                      title: A Glass of Blessings
                      description: Qui quod nostrum laudantium.
                    - project: home:Admin:branch:home:Admin
                      name: ruby
                      title: To Your Scattered Bodies Go
                      description: Quasi reiciendis qui ut.
        '400':
          description: Bad Request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: illegal_xpath_error
                summary: unable to evaluate 'foo' for 'packages'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Search
    post:
      deprecated: true
      summary: List packages that match a XPath condition.
      description: This endpoint is exactly the same as `GET /search/package`, please
        use that one.
      tags:
      - Search
  "/search/package/id":
    get:
      summary: List packages that match a XPath condition.
      description: |
        Return a collection of package names that match a XPath condition.

        This operation is the same as the one defined with [GET /search/package](#/Search/get_search_package) with the exception of the results returned.
        While the former operation returns a list of package objects, this one return a list of package names. See example values of a succeeded request below.
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: match
        schema:
          type: string
        description: |
          Expression based in XPath.

          Not providing a value or providing a value of `*` will return all packages.

          Available predicates are:
            - Package fields: `@name`, `title`, `description`, `scysync`, and `kind`.
            - `@project`: name of the project of the package.
            - Devel package fields:
              - `devel/@project`: name of the devel project of the package.
              - `devel/@package`: name of the devel package of the package.
            - Issue fields: `issue/@state`, `issue/@name`, `issue/@tracker`, and `issue/@change`.
            - Issue owner fields: `issue/owner/@email`, and `issue/owner/@login`.
            - Fields of attributes of an issue: `attribute_issue/@state`, `attribute_issue/@name`, and `attribute_issue/@tracker`.
            - Fields of owners of an attribute of an issue: `attribute_issue/owner/@email` and `attribute_issue/owner/@login`.
            - Users and groups:
              - `person/@userid`: login of a user related to this package.
              - `person/@role`: name of the role which a user could be related with this package.
              - `group/@groupid`: name (title) of a group related to this package.
              - `group/@role`: name of the role which a group could be related with this package.
            - `attribute/@name`: name of an attribute of the package.
            - `project/attribute/@name`: name of an attribute of the project of the package.
        examples:
          all:
            summary: All
            value: "*"
          project_name_and_package_name:
            summary: Project name and package name
            value: "@project='my:project:name' and @name='my_package_name'"
          function_contains:
            summary: Function contains
            value: contains(description,'editor')
          combination:
            summary: User and role
            value: person/@userid='iggy' and person/@role='reviewer'
      - in: query
        name: limit
        schema:
          type: integer
        description: Limit the number of results.
        example: 20
      - in: query
        name: offset
        schema:
          type: integer
        description: Return results starting from the element specified by offset.
        example: 10
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  matches:
                    type: integer
                    xml:
                      attribute: true
                  package:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        project:
                          type: string
                          xml:
                            attribute: true
                        title:
                          type: string
                        description:
                          type: string
                xml:
                  name: collection
              examples:
                no_results:
                  summary: No matching results
                  value:
                    matches: 0
                two_results:
                  summary: Two matching results
                  value:
                    matches: 2
                    package:
                    - project: home:Admin
                      name: ruby
                    - project: home:Admin:branch:home:Admin
                      name: ruby
        '400':
          description: Bad Request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: illegal_xpath_error
                summary: unable to evaluate 'foo' for 'packages'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Search
    post:
      deprecated: true
      summary: List packages that match a XPath condition.
      description: This endpoint is exactly the same as `GET /search/package/id`,
        please use that one.
      tags:
      - Search
  "/search/package_id":
    get:
      deprecated: true
      summary: List packages that match a XPath condition.
      description: This endpoint is exactly the same as `GET /search/package/id`,
        please use that one.
      tags:
      - Search
    post:
      deprecated: true
      summary: List packages that match a XPath condition.
      description: This endpoint is exactly the same as `GET /search/package/id`,
        please use that one.
      tags:
      - Search
  "/search/person":
    get:
      summary: List users that match a XPath condition.
      description: Return a collection of users that match a XPath condition.
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: match
        schema:
          type: string
        required: true
        description: |
          Expression based in XPath.

          Providing a value of `*` will return all users.

          Available predicates are: `@login`, `@email`, `@realname`, and `@state`.
        examples:
          all:
            summary: All
            value: "*"
          login:
            summary: Login
            value: "@login='user_1'"
          function_contains:
            summary: Function contains
            value: contains(@realname,'lee')
          combination:
            summary: User email and state
            value: "@email='iggy@example.com' and @state='confirmed'"
      - in: query
        name: limit
        schema:
          type: integer
        description: Limit the number of results.
        example: 20
      - in: query
        name: offset
        schema:
          type: integer
        description: Return results starting from the element specified by offset.
        example: 10
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  matches:
                    type: integer
                    xml:
                      attribute: true
                  person:
                    type: array
                    items:
                      type: object
                      properties:
                        login:
                          type: string
                        email:
                          type: string
                        realname:
                          type: string
                        state:
                          type: string
                        globalrole:
                          type: string
                        ignore_auth_services:
                          type: string
                xml:
                  name: collection
              examples:
                no_results:
                  summary: No matching results
                  value:
                    matches: 0
                two_results:
                  summary: Two matching results
                  value:
                    matches: 2
                    person:
                    - login: Iggy
                      email: iggy@example.com
                      realname: Shanta
                      state: confirmed
                    - login: superkraig
                      email: kraig@example.com
                      realname: Kraig Doe
                      state: confirmed
                      globalrole: Admin
                      ignore_auth_services: false
        '400':
          description: Bad Request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: illegal_xpath_error
                summary: unable to evaluate '@foo' for 'users'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Search
    post:
      deprecated: true
      summary: List users that match a XPath condition.
      description: This endpoint is exactly the same as `GET /search/person`, please
        use that one.
      tags:
      - Search
  "/search/project":
    get:
      summary: List project objects that match a XPath condition.
      description: |
        Return a collection of projects objects that match a XPath condition.

        This operation is the same as the one defined with [GET /search/project/id](#/Search/get_search_project_id) with the exception of the results returned.
        While the former operation returns a list of project names, this one return a list of project objects. See example values of a succeeded request below.
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: match
        schema:
          type: string
        required: true
        description: |
          Expression based in XPath.

          Providing a value of `*` will return all projects.

          Available predicates are:
            - Project fields: `@name`, `@kind`, `title`, `description`, `scmsync`, `url`, and `remoteurl`.
            - `package/@name`: name of the packages of the project.
            - `attribute/@name`: name of the attributes of the project.
            - Users and groups:
              - `person/@userid`: login of a user related to this project.
              - `person/@role`: name of the role which a user could be related with this project.
              - `group/@groupid`: name (title) of a group related to this project.
              - `group/@role`: name of the role which a group could be related with this project.
            - More complex predicates are: `maintenance/maintains/@project`, `repository/@name`,
              `repository/path/@project`, `repository/releasetarget/@trigger`.
        examples:
          all:
            summary: All
            value: "*"
          name:
            summary: Project name
            value: "@name='my:project:name'"
          function_contains:
            summary: Funcion contains
            value: contains(@name,'Test')
          combination:
            summary: User and role
            value: person/@userid='iggy' and person/@role='reviewer'
      - in: query
        name: limit
        schema:
          type: integer
        description: Limit the number of results.
        example: 20
      - in: query
        name: offset
        schema:
          type: integer
        description: Return results starting from the element specified by offset.
        example: 10
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  matches:
                    type: integer
                    xml:
                      attribute: true
                  project:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        title:
                          type: string
                        description:
                          type: string
                        person:
                          type: object
                          properties:
                            userid:
                              type: string
                              xml:
                                attribute: true
                            role:
                              type: string
                              xml:
                                attribute: true
                xml:
                  name: collection
              examples:
                no_results:
                  summary: No matching results
                  value:
                    matches: 0
                two_results:
                  summary: Two matching results
                  value:
                    matches: 2
                    project:
                    - name: home:Iggy
                      title:
                      description:
                      person:
                        userid: Iggy
                        role: maintainer
                    - name: home:Iggy:branches:home:Admin
                      title: East of Eden
                      description:
        '400':
          description: Bad Request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: illegal_xpath_error
                summary: unable to evaluate 'foo' for 'projects'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Search
    post:
      deprecated: true
      summary: List project objects that match a XPath condition.
      description: This endpoint is exactly the same as `GET /search/project`, please
        use that one.
      tags:
      - Search
  "/search/project/id":
    get:
      summary: List projects that match a XPath condition.
      description: |
        Return a collection of project names that match a XPath condition.

        This operation is the same as the one defined with [GET /search/project](#/Search/get_search_project) with the exception of the results returned.
        While the former operation returns a list of project objects, this one return a list of project names. See example values of a succeeded request below.
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: match
        schema:
          type: string
        description: |
          Expression based in XPath.

          Not providing a value or providing a value of `*` will return all projects.

          Available predicates are:
            - Project fields: `@name`, `@kind`, `title`, `description`, `scmsync`, `url`, and `remoteurl`.
            - `package/@name`: name of the packages of the project.
            - `attribute/@name`: name of the attributes of the project.
            - Users and groups:
              - `person/@userid`: login of a user related to this project.
              - `person/@role`: name of the role which a user could be related with this project.
              - `group/@groupid`: name (title) of a group related to this project.
              - `group/@role`: name of the role which a group could be related with this project.
            - More complex predicates are: `maintenance/maintains/@project`, `repository/@name`,
              `repository/path/@project`, `repository/releasetarget/@trigger`.
        examples:
          all:
            summary: All
            value: "*"
          name:
            summary: Project name
            value: "@name='my:project:name'"
          function_contains:
            summary: Funcion contains
            value: contains(@name,'Test')
          combination:
            summary: User and role
            value: person/@userid='iggy' and person/@role='reviewer'
      - in: query
        name: limit
        schema:
          type: integer
        description: Limit the number of results.
        example: 20
      - in: query
        name: offset
        schema:
          type: integer
        description: Return results starting from the element specified by offset.
        example: 10
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  matches:
                    type: integer
                    xml:
                      attribute: true
                  project:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        title:
                          type: string
                        description:
                          type: string
                        person:
                          type: object
                          properties:
                            userid:
                              type: string
                              xml:
                                attribute: true
                            role:
                              type: string
                              xml:
                                attribute: true
                xml:
                  name: collection
              examples:
                no_results:
                  summary: No matching results
                  value:
                    matches: 0
                two_results:
                  summary: Two matching results
                  value:
                    matches: 2
                    project:
                    - name: home:Admin
                    - name: openSUSE.org
        '400':
          description: Bad Request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: illegal_xpath_error
                summary: unable to evaluate 'foo' for 'projects'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Search
    post:
      deprecated: true
      summary: List projects that match a XPath condition.
      description: This endpoint is exactly the same as `GET /search/project/id`,
        please use that one.
      tags:
      - Search
  "/search/project_id":
    get:
      deprecated: true
      summary: List projects that match a XPath condition.
      description: This endpoint is exactly the same as `GET /search/project/id`,
        please use that one.
      tags:
      - Search
    post:
      deprecated: true
      summary: List projects that match a XPath condition.
      description: This endpoint is exactly the same as `GET /search/project/id`,
        please use that one.
      tags:
      - Search
  "/search/published/binary/id":
    get:
      summary: Search for currently available binaries in the publish area.
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: match
        schema:
          type: string
        required: true
        description: XPath expression.
        example: project='home:foo'+and+name='bar'
      - in: query
        name: limit
        schema:
          type: integer
        description: Override default maximum value of 1000 entries to be returned.
        example: 20
      - in: query
        name: withdownloadurl
        schema:
          type: integer
          enum:
          - 0
          - 1
        description: |
          Add the download url in the results as attribute `downloadurl`.

          A value `0` means without the download url. A value `1` means with the download url.
        example: 1
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  matches:
                    type: integer
                    xml:
                      attribute: true
                  limited:
                    type: boolean
                    xml:
                      attribute: true
                  binary:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        project:
                          type: string
                          xml:
                            attribute: true
                        package:
                          type: string
                          xml:
                            attribute: true
                        repository:
                          type: string
                          xml:
                            attribute: true
                        version:
                          type: string
                          xml:
                            attribute: true
                        release:
                          type: string
                          xml:
                            attribute: true
                        arch:
                          type: string
                          xml:
                            attribute: true
                        filename:
                          type: string
                          xml:
                            attribute: true
                        filepath:
                          type: string
                          xml:
                            attribute: true
                        baseproject:
                          type: string
                          xml:
                            attribute: true
                        type:
                          type: string
                          xml:
                            attribute: true
                        downloadurl:
                          type: string
                          xml:
                            attribute: true
                xml:
                  name: collection
                  wrapped: true
              examples:
                including_download_urls:
                  value:
                    matches: 2
                    binary:
                    - name: package_name
                      project: home:foo
                      package: package_name
                      repository: openSUSE_Tumbleweed
                      version: 20201220
                      release: 3.1
                      arch: src
                      filename: package_name-20201220-3.1.src.rpm
                      filepath: home:/foo/openSUSE_Tumbleweed/src/package_name-20201220-3.1.src.rpm
                      baseproject: home:bar
                      type: rpm
                      downloadurl: https://server1.myorg.org/repositories/home:/foo/openSUSE_Tumbleweed/src/package_name-20201220-3.1.src.rpm
                    - name: package_name2
                      project: home:foo
                      package: package_name2
                      repository: openSUSE_Tumbleweed
                      version: 20201220
                      release: 3.1
                      arch: src
                      filename: package_name2-20201220-3.1.src.rpm
                      filepath: home:/foo/openSUSE_Tumbleweed/src/package_name2-20201220-3.1.src.rpm
                      baseproject: home:bar
                      type: rpm
                      downloadurl: https://server1.myorg.org/repositories/home:/foo/openSUSE_Tumbleweed/src/package_name2-20201220-3.1.src.rpm
                  summary: Including download urls
                  description: Result after adding the `withdownloadurl=1` parameter/value
                    pair to the request.
                with_limit:
                  value:
                    matches: 2
                    limited: true
                    binary:
                    - name: package_name
                      project: home:foo
                      repository: openSUSE_Tumbleweed
                      package: package_name
                      version: 20201220
                      release: 3.1
                      arch: src
                      filename: package_name-20201220-3.1.src.rpm
                      filepath: home:/foo/openSUSE_Tumbleweed/src/package_name-20201220-3.1.src.rpm
                      baseproject: home:bar
                      type: rpm
                    - name: package_name2
                      project: home:foo
                      package: package_name2
                      repository: openSUSE_Tumbleweed
                      version: 20201220
                      release: 3.1
                      arch: src
                      filename: package_name2-20201220-3.1.src.rpm
                      filepath: home:/foo/openSUSE_Tumbleweed/src/package_name2-20201220-3.1.src.rpm
                      baseproject: home:bar
                      type: rpm
                  summary: Limiting results
                  description: Result after adding `limit=2` parameter/value pair
                    to the request.
        '400':
          description: Bad Request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: 400
                summary: missing string terminator
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                project_not_found:
                  value:
                    code: 404
                    summary: project 'home:foo' does not exist
                    description: 404 project 'home:foo' does not exist
                  summary: Not Found
      tags:
      - Search
    post:
      deprecated: true
      summary: Search for currently available binaries in the publish area.
      description: This endpoint is exactly the same as `GET /search/published/binary/id`,
        please use that one.
      tags:
      - Search
  "/search/published/pattern/id":
    get:
      summary: Search for published patterns.
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: match
        schema:
          type: string
        required: true
        description: XPath expression.
        example: project='home:foo'+and+name='bar'
      - in: query
        name: limit
        schema:
          type: integer
        description: Override default maximum value of 1000 entries to be returned.
        example: 20
      - in: query
        name: withdownloadurl
        schema:
          type: integer
          enum:
          - 0
          - 1
        description: |
          Add the download url in the results as attribute `downloadurl`.

          A value `0` means without the download url. A value `1` means with the download url.
        example: 1
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  matches:
                    type: integer
                    xml:
                      attribute: true
                  limited:
                    type: boolean
                    xml:
                      attribute: true
                  pattern:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        project:
                          type: string
                          xml:
                            attribute: true
                        repository:
                          type: string
                          xml:
                            attribute: true
                        filename:
                          type: string
                          xml:
                            attribute: true
                        filepath:
                          type: string
                          xml:
                            attribute: true
                        baseproject:
                          type: string
                          xml:
                            attribute: true
                        type:
                          type: string
                          xml:
                            attribute: true
                        downloadurl:
                          type: string
                          xml:
                            attribute: true
                xml:
                  name: collection
                  wrapped: true
              examples:
                including_download_urls:
                  value:
                    matches: 1
                    pattern:
                    - name: OBS_Server
                      project: OBS:Server:Unstable
                      repository: SLE_12_SP4
                      filename: OBS_Server.ymp
                      filepath: OBS:/Server:/Unstable/SLE_12_SP4/OBS_Server.ymp
                      baseproject: SUSE:SLE-12:SLE-Module-Adv-Systems-Management
                      type: ymp
                      downloadurl: https://download.opensuse.org/repositories/OBS:/Server:/Unstable/SLE_12_SP4/SLE_12_SP4/OBS_Server.ymp
                  summary: Including download urls
                  description: Result after adding the `withdownloadurl=1` parameter/value
                    pair to the request.
                with_limit:
                  value:
                    matches: 9
                    limited: true
                    pattern:
                    - name: OBS_Server
                      project: OBS:Server:Unstable
                      repository: 15.3
                      filename: OBS_Server.ymp
                      filepath: OBS:/Server:/Unstable/15.3/OBS_Server.ymp
                      baseproject: SUSE:SLE-15:GA
                      type: ymp
                    - name: OBS_Server
                      project: OBS:Server:Unstable
                      repository: SLE_12_SP4
                      filename: OBS_Server.ymp
                      filepath: OBS:/Server:/Unstable/SLE_12_SP4/OBS_Server.ymp
                      baseproject: SUSE:SLE-12:SLE-Module-Adv-Systems-Management
                      type: ymp
                  summary: Limiting results
                  description: Result after adding `limit=2` parameter/value pair
                    to the request.
                without_matches:
                  value:
                    matches: 0
                  summary: No matches
                  description: 'Empty result, when there is no matches. For example:
                    `?match=project=''home:bs-team:OBS''`.

                    '
        '400':
          description: Bad Request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: 400
                summary: missing string terminator
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Search
    post:
      deprecated: true
      summary: Search for published patterns.
      description: This endpoint is exactly the same as `GET /search/published/pattern/id`,
        please use that one.
      tags:
      - Search
  "/search/published/repoinfo/id":
    get:
      summary: Search for currently available repositories in the publish area.
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: match
        schema:
          type: string
        required: true
        description: XPath expression.
        example: project='home:foo'
      - in: query
        name: limit
        schema:
          type: integer
        description: Override default maximum value of 1000 entries to be returned.
        example: 20
      - in: query
        name: withdownloadurl
        schema:
          type: integer
          enum:
          - 0
          - 1
        description: |
          Add the download url in the results as attribute `downloadurl`.

          A value `0` means without the download url. A value `1` means with the download url.
        example: 1
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  matches:
                    type: integer
                    xml:
                      attribute: true
                  limited:
                    type: boolean
                    xml:
                      attribute: true
                  repoinfo:
                    type: array
                    items:
                      type: object
                      properties:
                        project:
                          type: string
                          xml:
                            attribute: true
                        repository:
                          type: string
                          xml:
                            attribute: true
                xml:
                  name: collection
                  wrapped: true
              examples:
                including_download_urls:
                  value:
                    matches: 1
                    repoinfo:
                    - project: OBS:Server:Unstable
                      repository: SLE_12_SP4
                      downloadurl: https://download.opensuse.org/repositories/OBS:/Server:/Unstable/SLE_12_SP4/SLE_12_SP4/OBS_Server.ymp
                  summary: Including download urls
                  description: Result after adding the `withdownloadurl=1` parameter/value
                    pair to the request.
                with_limit:
                  value:
                    matches: 2
                    limited: true
                    repoinfo:
                    - project: OBS:Server:Unstable
                      repository: SLE_12_SP4
                    - project: OBS:Server:Unstable
                      repository: SLE_12_SP5
                  summary: Limiting results
                  description: Result after adding `limit=2` parameter/value pair
                    to the request.
                without_matches:
                  value:
                    matches: 0
                  summary: No matches
                  description: 'Empty result, when there is no matches. For example:
                    `?match=project=''home:bs-team:OBS''`.

                    '
        '400':
          description: Bad Request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: 400
                summary: missing string terminator
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Search
    post:
      deprecated: true
      summary: Search for currently available repositories in the publish area.
      description: This endpoint is exactly the same as `GET /search/published/repoinfo/id`,
        please use that one.
      tags:
      - Search
  "/search/released/binary":
    get:
      summary: List released binaries that match a XPath condition.
      description: |
        Return a collection of released binaries that match a XPath condition.

        Released binaries are binaries published via the release mechanism. Binaries which got removed are also included.

        This operation is the same as the one defined with [GET /search/released/binary/id](#/Search/get_search_released_binary_id) with the exception of the results returned.
        While the former operation returns a list of released binaries without details, this one return a list of detailed released binaries. See example values of a succeeded request below.
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: match
        schema:
          type: string
        required: true
        description: |
          Expression based in XPath.

          Providing a value of `*` will return all released binaries.

          Available predicates are:
            - Released binary fields: `@name`, `disturl`, `@version`, `@release`, `@arch`, `@medium`, `binaryid`, `cpeid`, `supportstatus`, and `operation`.
            - Update info fields: `updateinfo/@id` and `updateinfo/@version`.
            - Build fields: `build/@time` and `build/@binaryid`.
            - Other fields: `modify/@time` and `obsolete/@time`.
            - Repository fields: `repository/@project` and `repository/@name`.
            - Publish fields: `publish/@time`, `publish/@package` and `publish/@flavor`.
            - "Update for" fields: `updatefor/@project`, `updatefor/@arch`, `updatefor/@product`, `updatefor/@baseversion`, `updatefor/@patchlevel`, and `updatefor/@version`.
            - Product fields: `product/@project`, `product/@version`, `product/@release`, `product/@baseversion`, `product/@patchlevel`, `product/@name`, `product/@arch`, and `product/@medium`.
        examples:
          all:
            summary: All
            value: "*"
          example1:
            summary: Latest version of given binary in all products
            description: Find the latest version of a given `glibc-devel` binary in
              all products, skipping old and revoked versions.
            value: "@name='glibc-devel'+and+obsolete[not(@time)]"
          example2:
            summary: Specific version by given updateinfo id
            description: Find a specific version by given updateinfo id. This ID is
              visible in the update tools to the end user.
            value: updateinfo/@id='OBS-2014-42'
          example3:
            summary: Specific version by given disturl
            description: Find a specific version by given disturl. Used to find all
              affected products by a certain build of a binary.
            value: disturl='obs://...'
          example4:
            summary: First release of a specific package version
            value: "@name='kernel-default'+and+@version='1.0'+and+@release='1'+and+@arch='i586'+and+supportstatus='l3'+and+operation='added'"
          example5:
            summary: All binaries of a given repository
            value: repository/@project='BaseDistro3'+and+repository/@name='BaseDistro3_repo'
          example6:
            summary: All binaries part of a product release
            value: product/@project='openSUSE'+and+product/@name='openSUSE'+and+(product/@arch='x86_64'+or+not(product/@arch))
          example7:
            summary: All binaries part of the update repositories of a product
            value: updatefor/@project='openSUSE'+and+updatefor/@product='openSUSE'+and+(updatefor/@arch='x86_64'+or+not(updatefor/@arch))
          example8:
            summary: All binaries part of the update repositories of a versioned product
            value: updatefor/@project='openSUSE'+and+updatefor/@product='openSUSE'+and+updatefor/@version='13.2'
          example9:
            summary: All binaries part of the update repositories of a versioned product
              (enterprise style)
            value: updatefor/@project='openSUSE'+and+updatefor/@product='openSUSE'+and+updatefor/@baseversion='12'+and+updatefor/@patchlevel='1'
      - in: query
        name: limit
        schema:
          type: integer
        description: Limit the number of results.
        example: 20
      - in: query
        name: offset
        schema:
          type: integer
        description: Return results starting from the element specified by offset.
        example: 10
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  matches:
                    type: integer
                    xml:
                      attribute: true
                  binary:
                    type: array
                    items:
                      type: object
                      properties:
                        project:
                          type: string
                          xml:
                            attribute: true
                        repository:
                          type: string
                          xml:
                            attribute: true
                        name:
                          type: string
                          xml:
                            attribute: true
                        version:
                          type: string
                          xml:
                            attribute: true
                        release:
                          type: string
                          xml:
                            attribute: true
                        arch:
                          type: string
                          xml:
                            attribute: true
                        operation:
                          type: string
                        publish:
                          type: object
                          properties:
                            package:
                              type: string
                              xml:
                                attribute: true
                            time:
                              type: string
                              xml:
                                attribute: true
                        build:
                          type: object
                          properties:
                            time:
                              type: string
                              xml:
                                attribute: true
                        obsolete:
                          type: object
                          properties:
                            time:
                              type: string
                              xml:
                                attribute: true
                        disturl:
                          type: string
                xml:
                  name: collection
              examples:
                no_results:
                  summary: No matching results
                  value:
                    matches: 0
                two_results:
                  summary: Two matching results
                  value:
                    matches: 2
                    binary:
                    - project: home:user_1
                      repository: openSUSE_Tumbleweed
                      name: cowsay
                      version: 3.03
                      release: 5.7
                      arch: noarch
                      operation: added
                      publish:
                        package: cowsay
                        time: 2017-11-22 01:26:25 UTC
                      build:
                        time: 2014-11-22 01:26:25 UTC
                      obsolete:
                        time: 2018-11-22 01:26:25 UTC
                      disturl: obs://openSUSE_TEST/home:user_1/openSUSE_Tumbleweed/60a1a1850b9fd0d3b30f3eefa195579b-cowsay
                    - project: home:user_2:branches:openSUSE.org:Cloud:OpenStack:Pike:venv
                      repository: SLE_12_SP3
                      name: pyhon-Babel
                      version: 2.3.4
                      release: 3.1
                      arch: src
                      operation: added
                      publish:
                        package: python-Babel
                        time: 2018-02-08 12:56:52 UTC
                      build:
                        time: 2018-01-08 12:56:52 UTC
                      obsolete:
                        time: 2018-02-28 12:56:52 UTC
                      disturl: obs://openSUSE_TEST/home:user_2:branches:openSUSE.org:Cloud:OpenStack:Pike:venv/SLE_12_SP3/783d831d5cd44b08db0ca95ebe06c6cc-python-Babel
        '400':
          description: Bad Request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: illegal_xpath_error
                summary: unable to evaluate 'foo' for 'released_binaries'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Search
    post:
      deprecated: true
      summary: List released binaries that match a XPath condition.
      description: This endpoint is exactly the same as `GET /search/released/binary`,
        please use that one.
      tags:
      - Search
  "/search/released/binary/id":
    get:
      summary: List released binaries that match a XPath condition.
      description: |
        Return a collection of released binaries that match a XPath condition.

        Released binaries are binaries published via the release mechanism. Binaries which got removed are also included.

        This operation is the same as the one defined with [GET /search/released/binary](#/Search/get_search_released_binary) with the exception of the results returned.
        While the former operation returns a list of detailed released binaries, this one return a list of released binaries without details. See example values of a succeeded request below.
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: match
        schema:
          type: string
        description: |
          Expression based in XPath.

          Not providing a value or providing a value of `*` will return all released binaries.

          Available predicates are:
            - Released binary fields: `@name`, `disturl`, `@version`, `@release`, `@arch`, `@medium`, `binaryid`, `cpeid`, `supportstatus`, and `operation`.
            - Update info fields: `updateinfo/@id` and `updateinfo/@version`.
            - Build fields: `build/@time` and `build/@binaryid`.
            - Other fields: `modify/@time` and `obsolete/@time`.
            - Repository fields: `repository/@project` and `repository/@name`.
            - Publish fields: `publish/@time`, `publish/@package` and `publish/@flavor`.
            - "Update for" fields: `updatefor/@project`, `updatefor/@arch`, `updatefor/@product`, `updatefor/@baseversion`, `updatefor/@patchlevel`, and `updatefor/@version`.
            - Product fields: `product/@project`, `product/@version`, `product/@release`, `product/@baseversion`, `product/@patchlevel`, `product/@name`, `product/@arch`, and `product/@medium`.
        examples:
          all:
            summary: All
            value: "*"
          example1:
            summary: Latest version of given binary in all products
            description: Find the latest version of a given `glibc-devel` binary in
              all products, skipping old and revoked versions.
            value: "@name='glibc-devel'+and+obsolete[not(@time)]"
          example2:
            summary: Specific version by given updateinfo id
            description: Find a specific version by given updateinfo id. This ID is
              visible in the update tools to the end user.
            value: updateinfo/@id='OBS-2014-42'
          example3:
            summary: Specific version by given disturl
            description: Find a specific version by given disturl. Used to find all
              affected products by a certain build of a binary.
            value: disturl='obs://...'
          example4:
            summary: First release of a specific package version
            value: "@name='kernel-default'+and+@version='1.0'+and+@release='1'+and+@arch='i586'+and+supportstatus='l3'+and+operation='added'"
          example5:
            summary: All binaries of a given repository
            value: repository/@project='BaseDistro3'+and+repository/@name='BaseDistro3_repo'
          example6:
            summary: All binaries part of a product release
            value: product/@project='openSUSE'+and+product/@name='openSUSE'+and+(product/@arch='x86_64'+or+not(product/@arch))
          example7:
            summary: All binaries part of the update repositories of a product
            value: updatefor/@project='openSUSE'+and+updatefor/@product='openSUSE'+and+(updatefor/@arch='x86_64'+or+not(updatefor/@arch))
          example8:
            summary: All binaries part of the update repositories of a versioned product
            value: updatefor/@project='openSUSE'+and+updatefor/@product='openSUSE'+and+updatefor/@version='13.2'
          example9:
            summary: All binaries part of the update repositories of a versioned product
              (enterprise style)
            value: updatefor/@project='openSUSE'+and+updatefor/@product='openSUSE'+and+updatefor/@baseversion='12'+and+updatefor/@patchlevel='1'
      - in: query
        name: limit
        schema:
          type: integer
        description: Limit the number of results.
        example: 20
      - in: query
        name: offset
        schema:
          type: integer
        description: Return results starting from the element specified by offset.
        example: 10
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  matches:
                    type: integer
                    xml:
                      attribute: true
                  binary:
                    type: array
                    items:
                      type: object
                      properties:
                        project:
                          type: string
                          xml:
                            attribute: true
                        repository:
                          type: string
                          xml:
                            attribute: true
                        name:
                          type: string
                          xml:
                            attribute: true
                        version:
                          type: string
                          xml:
                            attribute: true
                        release:
                          type: string
                          xml:
                            attribute: true
                        arch:
                          type: string
                          xml:
                            attribute: true
                        operation:
                          type: string
                        publish:
                          type: object
                          properties:
                            package:
                              type: string
                              xml:
                                attribute: true
                            time:
                              type: string
                              xml:
                                attribute: true
                        build:
                          type: object
                          properties:
                            time:
                              type: string
                              xml:
                                attribute: true
                        obsolete:
                          type: object
                          properties:
                            time:
                              type: string
                              xml:
                                attribute: true
                        disturl:
                          type: string
                xml:
                  name: collection
              examples:
                no_results:
                  summary: No matching results
                  value:
                    matches: 0
                two_results:
                  summary: Two matching results
                  value:
                    matches: 2
                    binary:
                    - project: openSUSE:13.1:Update
                      repository: standard
                      name: ImageMagick-extra
                      version: 6.8.6.9
                      release: 2.12.1
                      arch: i586
                    - project: openSUSE:13.1:Update
                      repository: standard
                      name: Mesa
                      version: 9.2.3
                      release: 61.9.1
                      arch: i586
        '400':
          description: Bad Request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: illegal_xpath_error
                summary: unable to evaluate 'foo' for 'released_binaries'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Search
    post:
      deprecated: true
      summary: List released binaries that match a XPath condition.
      description: This endpoint is exactly the same as `GET /search/released/binary/id`,
        please use that one.
      tags:
      - Search
  "/search/repository/id":
    get:
      summary: List repositories that match a XPath condition.
      description: Return a collection of repository names that match a XPath condition.
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: match
        schema:
          type: string
        description: |
          Expression based in XPath.

          Not providing a value or providing a value of `*` will return all projects.

          Available predicates are:
            - `@name`: name of the repository.
            - `@project`: name of the project of the repository.
            - Path fields: `path/@project` and `path/@repository`.
            - Target product fields: `targetproduct/@project`, `targetproduct/@arch`, `targetproduct/@name`,
              `targetproduct/@baseversion`, `targetproduct/@patchlevel`, and `targetproduct/@version`.
        examples:
          all:
            summary: All
            value: "*"
          name:
            summary: Project name
            value: "@project='home:Admin'"
          function_contains:
            summary: Funcion contains
            value: contains(@name,'Tumb')
      - in: query
        name: limit
        schema:
          type: integer
        description: Limit the number of results.
        example: 20
      - in: query
        name: offset
        schema:
          type: integer
        description: Return results starting from the element specified by offset.
        example: 10
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  matches:
                    type: integer
                    xml:
                      attribute: true
                  repository:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        project:
                          type: string
                          xml:
                            attribute: true
                xml:
                  name: collection
              examples:
                no_results:
                  summary: No matching results
                  value:
                    matches: 0
                two_results:
                  summary: Two matching results
                  value:
                    matches: 2
                    repository:
                    - name: openSUSE_Tumbleweed
                      project: home:Admin
                    - name: snapshot
                      project: openSUSE.org
        '400':
          description: Bad Request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: illegal_xpath_error
                summary: unable to evaluate 'foo' for 'repositories'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Search
    post:
      deprecated: true
      summary: List repositories that match a XPath condition.
      description: This endpoint is exactly the same as `GET /search/repository/id`,
        please use that one.
      tags:
      - Search
  "/search/request":
    get:
      summary: List request objects that match a XPath condition.
      description: |
        Return a collection of request objects that match a XPath condition.

        This operation is the same as the one defined with [GET /search/request/id](#/Search/get_search_request_id) with the exception of the results returned.
        While the former operation returns a list of request numbers, this one return a list of request objects. See example values of a succeeded request below.
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: match
        schema:
          type: string
        required: true
        description: |
          Expression based in XPath.

          Providing a value of `*` will return all requests.

          Available predicates are:
            - Request fields: `@id` and `@creator`.
            - State fields: `state/@name`, `state/@who`, and `state/@when`.
            - Target fields: `target/@project` and `target/@package`.
            - Source fields: `source/@project` and `source/@package`.
            - Actions fields: `action/@type`, `action/grouped/@id`, `action/target/@project`, `action/target/@package`, `action/source/@project`, and `action/source/@package`.
            - Reviews fields:
              - General: `review/@when`, `review/@state`.
              - Review by: `review/@by_user`, `review/@by_group`, `review/@by_project`, and `review/@by_package`.
              - History: `review/history/@when`.
            - History fields: `history/@when` and `history/@who`.
        examples:
          all:
            summary: All
            value: "*"
          id:
            summary: Request number
            value: "@id=123456"
          function_contains:
            summary: Function contains
            value: contains(@creator,'Igg')
          combination:
            summary: State name and date
            value: state/@name='review' and starts_with(state/@when,'2022-08-22')
      - in: query
        name: limit
        schema:
          type: integer
        description: Limit the number of results.
        example: 20
      - in: query
        name: offset
        schema:
          type: integer
        description: Return results starting from the element specified by offset.
        example: 10
      - in: query
        name: withhistory
        schema:
          type: string
        description: |
          Include the request history.

          Without a value or with the value `0` means without the request history. A value `1` means with the request history.
        example: 1
      - in: query
        name: withfullhistory
        schema:
          type: string
        description: |
          Include the request and review history.

          Without a value or with the value `0` means without the request and review history. A value `1` means with the request and review history.
        example: 1
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  matches:
                    type: string
                    example: 7
                    xml:
                      attribute: true
                  request:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 42
                          xml:
                            attribute: true
                        creator:
                          type: string
                          example: foo-user
                          xml:
                            attribute: true
                        action:
                          type: object
                          properties:
                            type:
                              type: string
                              example: submit
                              xml:
                                attribute: true
                            source:
                              type: object
                              properties:
                                project:
                                  type: string
                                  example: home:foo-user
                                  xml:
                                    attribute: true
                                package:
                                  type: string
                                  example: obs-server
                                  xml:
                                    attribute: true
                                rev:
                                  type: integer
                                  example: 521
                                  xml:
                                    attribute: true
                            target:
                              type: object
                              properties:
                                project:
                                  type: string
                                  example: OBS:Unstable
                                  xml:
                                    attribute: true
                                package:
                                  type: string
                                  example: obs-server
                                  xml:
                                    attribute: true
                            options:
                              type: object
                              properties:
                                sourceupdate:
                                  type: string
                                  example: cleanup
                        state:
                          type: object
                          properties:
                            name:
                              type: string
                              example: accepted
                              xml:
                                attribute: true
                            who:
                              type: string
                              example: bar-user
                              xml:
                                attribute: true
                            when:
                              type: string
                              example: '2021-01-15T13:39:43'
                              xml:
                                attribute: true
                            comment:
                              type: string
                              example: allright
                        review:
                          type: array
                          items:
                            type: object
                            properties:
                              state:
                                type: string
                                xml:
                                  attribute: true
                              when:
                                type: string
                                xml:
                                  attribute: true
                              who:
                                type: string
                                xml:
                                  attribute: true
                              by_user:
                                type: string
                                xml:
                                  attribute: true
                              by_group:
                                type: string
                                xml:
                                  attribute: true
                              by_project:
                                type: string
                                xml:
                                  attribute: true
                              by_package:
                                type: string
                                xml:
                                  attribute: true
                              comment:
                                type: string
                              history:
                                type: object
                                properties:
                                  when:
                                    type: string
                                    xml:
                                      attribute: true
                                  who:
                                    type: string
                                    xml:
                                      attribute: true
                                  description:
                                    type: string
                          example:
                          - state: accepted
                            when: '2021-01-15T15:49:32'
                            who: obs-maintainer
                            by_user: obs-maintainer
                          - state: accepted
                            when: '2021-01-15T15:49:32'
                            who: obs-maintainer
                            by_group: obs-group
                          - state: accepted
                            when: '2021-01-15T15:49:32'
                            who: obs-maintainer
                            by_project: OBS:Unstable
                          - state: accepted
                            when: '2021-01-15T15:49:32'
                            who: obs-maintainer
                            by_package: obs-server
                        history:
                          type: array
                          items:
                            type: object
                            properties:
                              who:
                                type: string
                                example: foo
                                xml:
                                  attribute: true
                              when:
                                type: string
                                example: '2021-01-15T13:39:43'
                                xml:
                                  attribute: true
                              description:
                                type: string
                                example: Request created
                              comment:
                                type: string
                                example: Please review sources
                        description:
                          type: string
                          example: A little version update
                      xml:
                        name: request
                xml:
                  name: collection
              examples:
                no_results:
                  summary: No matching results
                  value:
                    matches: 0
                two_results:
                  summary: Two matching results
                  value:
                    matches: 2
                    request:
                    - id: 2
                      creator: Iggy
                      description: Praesentium in nobis.
                      action:
                        type: submit
                        source:
                          project: openSUSE:Leap:15.0
                          package: apache2
                        target:
                          project: my_organization:Factory
                          package: inreview
                      state:
                        name: review
                        who: Iggy
                        when: '2022-08-22T08:06:58'
                      review:
                      - state: new
                        when: '2022-08-22T08:06:58'
                        by_package: apache2
                        by_project: openSUSE:Leap:15.0
                      - state: new
                        when: '2022-08-22T08:06:58'
                        by_user: repo-checker
                      - state: accepted
                        when: '2022-08-22T08:06:58'
                        who: Admin
                        by_group: group_1
                    - id: 4
                      creator: Iggy2
                      description: Ut voluptas quibusdam.
                      action:
                        type: submit
                        source:
                          project: requestor_project
                          package: package_1661161028_1
                        target:
                          project: my_organization:Admin
                          package: package_1661161028_1
                      state:
                        name: review
                        who: Requestor
                        when: '2022-08-22T09:37:09'
                        comment: Dolores dolore animi.
                      review:
                      - state: new
                        when: '2022-08-22T09:37:09'
                        who: Requestor
                        by_group: dolorum
                        comment: Aut ipsum accusantium.
                      - state: accepted
                        when: '2022-08-22T09:37:09'
                        who: Requestor
                        by_group: group_1
                        comment:
                        history:
                          who: Admin
                          when: '2022-08-22T09:37:09'
                          description: Review got accepted
                one_result_with_history:
                  summary: One result with history
                  value:
                    matches: 1
                    request:
                    - id: 4
                      creator: Iggy2
                      description: Ut voluptas quibusdam.
                      action:
                        type: submit
                        source:
                          project: requestor_project
                          package: package_1661161028_1
                        target:
                          project: my_organization:Admin
                          package: package_1661161028_1
                      state:
                        name: review
                        who: Requestor
                        when: '2022-08-22T09:37:09'
                        comment: Dolores dolore animi.
                      review:
                      - state: new
                        when: '2022-08-22T09:37:09'
                        who: Requestor
                        by_group: dolorum
                        comment: Aut ipsum accusantium.
                      - state: accepted
                        when: '2022-08-22T09:37:09'
                        who: Admin
                        by_group: group_1
                        comment:
                        history:
                          who: Admin
                          when: '2022-08-22T09:37:09'
                          description: Review got accepted
                      history:
                      - who: Iggy
                        when: '2022-08-22T09:37:09'
                        description: Request created
                        comment: Praesentium in nobis. Tempore omnis error.
                one_result_with_full_history:
                  summary: One result with full history
                  value:
                    matches: 1
                    request:
                    - id: 4
                      creator: Iggy2
                      description: Ut voluptas quibusdam.
                      action:
                        type: submit
                        source:
                          project: requestor_project
                          package: package_1661161028_1
                        target:
                          project: my_organization:Admin
                          package: package_1661161028_1
                      state:
                        name: review
                        who: Requestor
                        when: '2022-08-22T09:37:09'
                        comment: Dolores dolore animi.
                      review:
                      - state: new
                        when: '2022-08-22T09:37:09'
                        who: Requestor
                        by_group: dolorum
                        comment: Aut ipsum accusantium.
                      - state: accepted
                        when: '2022-08-22T09:37:09'
                        who: Admin
                        by_group: group_1
                        comment:
                        history:
                          who: Admin
                          when: '2022-08-22T09:37:09'
                          description: Review got accepted
                      history:
                      - who: Iggy
                        when: '2022-08-22T09:37:09'
                        description: Request created
                        comment: Praesentium in nobis. Tempore omnis error.
                      - who: Admin
                        when: '2022-08-22T09:37:09'
                        description: Request got accepted
        '400':
          description: Bad Request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: illegal_xpath_error
                summary: unable to evaluate 'foo' for 'requests'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: |
            Forbidden.

            XML Schema used for body validation: [status.rng](../schema/status.rng).
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: search_results_exceed_configured_limit
                summary: |
                  The number of results returned by the performed search exceeds the configured limit.

                  You can:
                  - retrieve only the ids by using an '/search/.../id' API endpoint, or
                  - reduce the number of matches of your search:
                    - paginating your results, through the 'limit' and 'offset' parameters, or
                    - adjusting your `match` expression.
      tags:
      - Search
    post:
      deprecated: true
      summary: List requests objects that match a XPath condition.
      description: This endpoint is exactly the same as `GET /search/request`, please
        use that one.
      tags:
      - Search
  "/search/request/id":
    get:
      summary: List request numbers that match a XPath condition.
      description: |
        Return a collection of request numbers that match a XPath condition.

        This operation is the same as the one defined with [GET /search/request](#/Search/get_search_request) with the exception of the results returned.
        While the former operation returns a list of request objects, this one return a list of request numbers. See example values of a succeeded request below.
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: match
        schema:
          type: string
        description: |
          Expression based in XPath.

          Not providing a value or providing a value of `*` will return all requests.

          Available predicates are:
            - Request fields: `@id` and `@creator`.
            - State fields: `state/@name`, `state/@who`, and `state/@when`.
            - Target fields: `target/@project` and `target/@package`.
            - Source fields: `source/@project` and `source/@package`.
            - Actions fields: `action/@type`, `action/grouped/@id`, `action/target/@project`, `action/target/@package`, `action/source/@project`, and `action/source/@package`.
            - Reviews fields:
              - General: `review/@when`, `review/@state`.
              - Review by: `review/@by_user`, `review/@by_group`, `review/@by_project`, and `review/@by_package`.
              - History: `review/history/@when`.
            - History fields: `history/@when` and `history/@who`.
        examples:
          all:
            summary: All
            value: "*"
          id:
            summary: Request number
            value: "@id=123456"
          function_contains:
            summary: Function contains
            value: contains(@creator,'Igg')
          combination:
            summary: State name and date
            value: "/search/request?match=state/@name='review' and starts_with(state/@when,'2022-08-22')"
      - in: query
        name: limit
        schema:
          type: integer
        description: Limit the number of results.
        example: 20
      - in: query
        name: offset
        schema:
          type: integer
        description: Return results starting from the element specified by offset.
        example: 10
      - in: query
        name: withhistory
        schema:
          type: string
        description: |
          Include the request history.

          Without a value or with the value `0` means without the request history. A value `1` means with the request history.
        example: 1
      - in: query
        name: withfullhistory
        schema:
          type: string
        description: |
          Include the request and review history.

          Without a value or with the value `0` means without the request and review history. A value `1` means with the request and review history.
        example: 1
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  matches:
                    type: string
                    example: 7
                    xml:
                      attribute: true
                  request:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 42
                          xml:
                            attribute: true
                        creator:
                          type: string
                          example: foo-user
                          xml:
                            attribute: true
                        action:
                          type: object
                          properties:
                            type:
                              type: string
                              example: submit
                              xml:
                                attribute: true
                            source:
                              type: object
                              properties:
                                project:
                                  type: string
                                  example: home:foo-user
                                  xml:
                                    attribute: true
                                package:
                                  type: string
                                  example: obs-server
                                  xml:
                                    attribute: true
                                rev:
                                  type: integer
                                  example: 521
                                  xml:
                                    attribute: true
                            target:
                              type: object
                              properties:
                                project:
                                  type: string
                                  example: OBS:Unstable
                                  xml:
                                    attribute: true
                                package:
                                  type: string
                                  example: obs-server
                                  xml:
                                    attribute: true
                            options:
                              type: object
                              properties:
                                sourceupdate:
                                  type: string
                                  example: cleanup
                        state:
                          type: object
                          properties:
                            name:
                              type: string
                              example: accepted
                              xml:
                                attribute: true
                            who:
                              type: string
                              example: bar-user
                              xml:
                                attribute: true
                            when:
                              type: string
                              example: '2021-01-15T13:39:43'
                              xml:
                                attribute: true
                            comment:
                              type: string
                              example: allright
                        review:
                          type: array
                          items:
                            type: object
                            properties:
                              state:
                                type: string
                                xml:
                                  attribute: true
                              when:
                                type: string
                                xml:
                                  attribute: true
                              who:
                                type: string
                                xml:
                                  attribute: true
                              by_user:
                                type: string
                                xml:
                                  attribute: true
                              by_group:
                                type: string
                                xml:
                                  attribute: true
                              by_project:
                                type: string
                                xml:
                                  attribute: true
                              by_package:
                                type: string
                                xml:
                                  attribute: true
                              comment:
                                type: string
                              history:
                                type: object
                                properties:
                                  when:
                                    type: string
                                    xml:
                                      attribute: true
                                  who:
                                    type: string
                                    xml:
                                      attribute: true
                                  description:
                                    type: string
                          example:
                          - state: accepted
                            when: '2021-01-15T15:49:32'
                            who: obs-maintainer
                            by_user: obs-maintainer
                          - state: accepted
                            when: '2021-01-15T15:49:32'
                            who: obs-maintainer
                            by_group: obs-group
                          - state: accepted
                            when: '2021-01-15T15:49:32'
                            who: obs-maintainer
                            by_project: OBS:Unstable
                          - state: accepted
                            when: '2021-01-15T15:49:32'
                            who: obs-maintainer
                            by_package: obs-server
                        history:
                          type: array
                          items:
                            type: object
                            properties:
                              who:
                                type: string
                                example: foo
                                xml:
                                  attribute: true
                              when:
                                type: string
                                example: '2021-01-15T13:39:43'
                                xml:
                                  attribute: true
                              description:
                                type: string
                                example: Request created
                              comment:
                                type: string
                                example: Please review sources
                        description:
                          type: string
                          example: A little version update
                      xml:
                        name: request
                xml:
                  name: collection
              examples:
                no_results:
                  summary: No matching results
                  value:
                    matches: 0
                two_results:
                  summary: Two matching results
                  value:
                    matches: 2
                    request:
                    - id: 2
                    - id: 4
        '400':
          description: Bad Request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: illegal_xpath_error
                summary: unable to evaluate 'foo' for 'requests'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Search
    post:
      deprecated: true
      summary: List request numbers that match a XPath condition.
      description: This endpoint is exactly the same as `GET /search/request/id`,
        please use that one.
      tags:
      - Search
  "/service":
    get:
      summary: List all services.
      description: Get a list of all services known to OBS.
      security:
      - basic_authentication: []
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                      xml:
                        attribute: true
                    summary:
                      type: string
                    description:
                      type: string
                    parameter:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                            xml:
                              attribute: true
                          description:
                            type: string
                          allowedvalue:
                            type: array
                            items:
                              type: string
                          required:
                            type: string
                  xml:
                    name: service
                xml:
                  wrapped: true
                  name: servicelist
              example:
              - name: download_url
                summary: Download a file
                description: This services uses curl to download files from remote
                  servers via supported protocols.
                parameter:
                - name: protocol
                  description: Used Protocol
                  allowedvalue:
                  - ftp
                  - http
                  - https
                - name: host
                  description: Server Hostname
                  required: ''
              - name: source_validator
                summary: Validate sources
                description: The default SUSE source validator which catches common
                  pitfalls before build.
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - General Information
  "/source?cmd=branch":
    post:
      summary: Branch a set of packages based on attributes
      description: |
        Create a source link from a package of an existing project to a
        new subproject of the requesters home project.
      security:
      - basic_authentication: []
      parameters:
      - name: project
        description: The project that you want to branch
        in: query
        schema:
          type: string
      - name: package
        description: The package that you want to branch
        in: query
        schema:
          type: string
      - name: target_project
        description: Project which will be used or created
        in: query
        schema:
          type: string
      - name: target_package
        description: Package name which will be used
        in: query
        schema:
          type: string
      - name: attribute
        description: Attribute used for package search, default is OBS:MaintenanceProject
        in: query
        schema:
          type: string
      - name: add_repositories
        description: Copy the repositories from branched project
        in: query
        schema:
          type: boolean
      - name: update_path_elements
        description: Check if repository path elements do use each other and adapt
          our own path elements
        in: query
        schema:
          type: boolean
      - name: update_project_attribute
        description: Set a different Update Project attribute.
        in: query
        schema:
          type: string
        default: OBS:UpdateProject
      - name: noaccess
        description: Create hidden project. The new created project will be read protected
        in: query
        schema:
          type: boolean
      - name: extend_package_names
        description: Extend repo and package names
        in: query
        schema:
          type: boolean
      - name: add_repositories_rebuild
        description: Use defined rebuild policy for new repos or copy it from the
          source project
        in: query
        schema:
          type: string
          enum:
          - transitive direct local copy
      - name: add_repositories_block
        description: Use defined block policy for new repos
        in: query
        schema:
          type: string
          enum:
          - all
          - local
          - never
      - name: newinstance
        description: The target package exists only via project links, but the link
          should point to given project
        in: query
        schema:
          type: boolean
      - name: maintenance
        describe: Explicitly asked for maintenance branch
        in: query
        schema:
          type: boolean
      responses:
        '200':
          description: ok
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
                data:
                - home:Admin
                - hello_world
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: no packages found by search criteria
      tags:
      - Sources
  "/source?cmd=createmaintenanceincident":
    post:
      summary: Create maintenance incident projects
      description: Create a mainatenance incident project based on attribute search.
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: attribute
        schema:
          type: string
        example: OBS:MaintenanceProject
        description: attribute used for package search, default is OBS:MaintenanceProject
      responses:
        '200':
          description: ok
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
                data:
                - MaintenanceProject:1
        '400':
          description: Bad Request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: incident_has_no_maintenance_project
                summary: incident projects shall only create below maintenance projects
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Forbidden
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: modify_project_no_permission
                summary: no permission to modify project 'MaintenanceProject'
      tags:
      - Sources
  "/source?cmd=orderkiwirepos":
    post:
      summary: Sort the repositories inside of a kiwi file according to path relationships.
      description: This API takes kiwi XML file in the request body and sort the repositories
        based on priority.
      security:
      - basic_authentication: []
      requestBody:
        required: true
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                name:
                  type: string
                  xml:
                    attribute: true
                schemaversion:
                  type: string
                  xml:
                    attribute: true
                repository:
                  type: array
                  items:
                    type: object
                    properties:
                      source:
                        type: object
                        properties:
                          path:
                            type: string
                            xml:
                              attribute: true
                  xml:
                    name: repository
              xml:
                name: image
            example: |
              <image name="{exc_image_base_name}" schemaversion="7.4">
                <repository type="rpm-md" priority="99" alias="kiwi">
                  <source path="obs://Virtualization:Appliances:Builder/openSUSE_Leap_15.3"/>
                </repository>
                <repository type="rpm-md" priority="1" alias="OS" imageinclude="true">
                  <source path="{exc_repo}"/>
                </repository>
              </image>
      responses:
        '200':
          description: Sorted list of repositories
          content:
            text/xml:
              schema:
                type: object
                properties:
                  name:
                    type: string
                    xml:
                      attribute: true
                  schemaversion:
                    type: string
                    xml:
                      attribute: true
                  repository:
                    type: array
                    items:
                      type: object
                      properties:
                        source:
                          type: object
                          properties:
                            path:
                              type: string
                              xml:
                                attribute: true
                    xml:
                      name: repository
                xml:
                  name: image
              example: |
                <image name="{exc_image_base_name}" schemaversion="7.4">
                  <repository type="rpm-md" priority="1" alias="OS" imageinclude="true">
                    <source path="{exc_repo}"/>
                  </repository>
                  <repository type="rpm-md" priority="99" alias="kiwi">
                    <source path="obs://Virtualization:Appliances:Builder/openSUSE_Leap_15.3"/>
                  </repository>
                </image>
        '400':
          description: Bad Request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                xml:
                  name: status
              example:
                code: 400
                summary: "/srv/obs/sources/:upload/1344: not xml"
      tags:
      - Sources
  "/source":
    get:
      summary: List all the projects.
      description: Get the list of all projects.
      security:
      - basic_authentication: []
      parameters:
      - name: deleted
        in: query
        schema:
          type: integer
        description: Set to `1` to list the deleted projects. This is available for
          Admins only.
        example: 0
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    xml:
                      attribute: true
                  name:
                    type: string
                    xml:
                      attribute: true
                  rev:
                    type: string
                    xml:
                      attribute: true
                  vrev:
                    type: string
                    xml:
                      attribute: true
                  srcmd5:
                    type: string
                    xml:
                      attribute: true
                  entry:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        md5:
                          type: string
                          xml:
                            attribute: true
                        size:
                          type: string
                          xml:
                            attribute: true
                        mtime:
                          type: string
                          xml:
                            attribute: true
                xml:
                  name: directory
              examples:
                List of projects:
                  value:
                    entry:
                    - name: home:Admin
                    - name: home:Iggy
                Deleted projects:
                  value:
                    entry:
                    - name: home:user_1
        '400':
          description: Wrong value for deleted parameter.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                not boolean:
                  value:
                    code: 400
                    summary: not boolean
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: No permission to access deleted projects.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: no_permission_for_deleted
                summary: only admins can see deleted projects.
      tags:
      - Sources - Projects
  "/source/{project_name}":
    get:
      summary: List packages of a project.
      description: Get a list of packages belonging to a project.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - name: deleted
        in: query
        schema:
          type: string
        description: Set to `1` to list the packages of a deleted project.
        example: 1
      - in: query
        name: expand
        schema:
          type: string
          enum:
          - 1
          - 0
        description: Set to `1` to include packages from linked projects.
        example: 1
      - in: query
        name: view
        schema:
          type: string
          enum:
          - issues
          - productlist
          - verboseproductlist
        description: |
          Specify which sections should be included in the packages list.

          * `issues`: Show all tracked issues for all the packages.
          * `productlist`: Show all contained products.
          * `verboseproductlist`: List all contained products with detailed information about the product.

          Example of a result when `issues` is selected:
          ```
          <project name="Base:System">
            <package project="Base:System" name="xz">
              <issue change="kept">
                <created_at>2009-05-21 10:50:00 UTC</created_at>
                <updated_at>2020-02-24 13:01:11 UTC</updated_at>
                <name>505969</name>
                <tracker>bnc</tracker>
                <label>boo#505969</label>
                <url>https://bugzilla.opensuse.org/show_bug.cgi?id=505969</url>
                <state>CLOSED</state>
                <summary>lzma, xz: missing manpages</summary>
                <owner>
                  <login>coolo</login>
                  <email>coolo@suse.com</email>
                  <realname>Stephan Kulow</realname>
                </owner>
              </issue>
              <issue change="kept">
                <created_at>2009-06-04 14:35:00 UTC</created_at>
                <updated_at>2020-02-24 13:01:11 UTC</updated_at>
                <name>509945</name>
                <tracker>bnc</tracker>
                <label>boo#509945</label>
                <url>https://bugzilla.opensuse.org/show_bug.cgi?id=509945</url>
                <state>CLOSED</state>
                <summary>Enforce packaging of static libraries by rpmlint check</summary>
                <owner>
                  <login>dirkmueller</login>
                  <email>dmueller@suse.com</email>
                  <realname>Dirk Mueller</realname>
                </owner>
              </issue>
            </package>
          </project>

          ```

          Example of a result when `productlist` is selected:
          ```
          <productlist count="3">
            <product name="openSUSE-Addon-NonOss" cpe="cpe:/o:opensuse:opensuse-addon-nonoss:20230108" originproject="openSUSE:Factory" originpackage="000product" mtime="1673224560"/>
            <product name="openSUSE" cpe="cpe:/o:opensuse:opensuse:20230108" originproject="openSUSE:Factory" originpackage="000product" mtime="1673224560"/>
            <product name="MicroOS" cpe="cpe:/o:opensuse:microos:20230108" originproject="openSUSE:Factory" originpackage="000product" mtime="1673224560"/>
          </productlist>
          ```

          Example of a result when `verboseproductlist` is selected:
          ```
          <productlist count="3">
            <product name="openSUSE-Addon-NonOss" originproject="openSUSE:Factory" originpackage="000product">
              <cpe>cpe:/o:opensuse:opensuse-addon-nonoss:20230108</cpe>
              <version>20230108</version>
            </product>
            <product name="openSUSE" originproject="openSUSE:Factory" originpackage="000product">
              <cpe>cpe:/o:opensuse:opensuse:20230108</cpe>
              <version>20230108</version>
            </product>
            <product name="MicroOS" originproject="openSUSE:Factory" originpackage="000product">
              <cpe>cpe:/o:opensuse:microos:20230108</cpe>
              <version>20230108</version>
            </product>
          </productlist>
          ```
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                oneOf:
                - type: object
                  properties:
                    count:
                      type: string
                      xml:
                        attribute: true
                    entry:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                            xml:
                              attribute: true
                          originpackage:
                            type: string
                            xml:
                              attribute: true
                  xml:
                    name: directory
                - type: object
                  properties:
                    count:
                      type: string
                      xml:
                        attribute: true
                    entry:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                            xml:
                              attribute: true
                          cpe:
                            type: string
                            xml:
                              attribute: true
                          originproject:
                            type: string
                            xml:
                              attribute: true
                          originpackage:
                            type: string
                            xml:
                              attribute: true
                          mtime:
                            type: string
                            xml:
                              attribute: true
                      xml:
                        name: product
                  xml:
                    name: productlist
                - type: object
                  properties:
                    count:
                      type: string
                      xml:
                        attribute: true
                    entry:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                            xml:
                              attribute: true
                          originproject:
                            type: string
                            xml:
                              attribute: true
                          originpackage:
                            type: string
                            xml:
                              attribute: true
                          cpe:
                            type: string
                          version:
                            type: string
                      xml:
                        name: product
                  xml:
                    name: productlist
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                not boolean:
                  description: Passing a non boolean value to the `deleted` query
                    parameter.
                  value:
                    code: 400
                    summary: not boolean
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: unknown_project
                summary: 'Project not found: home:nonExistentUser'
      tags:
      - Sources - Packages
    delete:
      summary: Delete a specified project.
      description: Deletes a specified project and all the packages of this project.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - name: force
        in: query
        schema:
          type: integer
        description: |
          Set to `1` if you want to delete the project even if the repositories of other
          projects include a path to this project. After deletion, the path
          in the other repository will start pointing towards 'deleted/standard' to
          prevent the build and publishing
      - name: comment
        in: query
        schema:
          type: string
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Unauthorized to delete project.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                delete_project_no_permission:
                  value:
                    code: delete_project_no_permission
                    summary: Permission denied (delete project 'project_name')
                  summary: No permission
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Sources - Projects
  "/source/{project_name}?view=info":
    get:
      summary: Show information of the packages of a project.
      description: Show source version, md5sums and build description files of all
        packages belonging to a project.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: query
        name: view
        schema:
          type: string
          enum:
          - info
          - issues
          - productlist
          - verboseproductlist
        description: |
          Specify which information about each package should be returned.

          * `info`: Show source version, md5sums and build description files of all packages belonging to a project.
          * `issues`, `productlist`, `verboseproductlist`:
            See this [other endpoint](<#/Sources - Packages/get_source__project_name_>) for details.
        example: info
      - in: query
        name: arch
        schema:
          type: string
        description: Filter by architecture name.
        example: x86_64
      - in: query
        name: noexpand
        schema:
          type: string
          enum:
          - 1
          - 0
        default: 0
        description: Set to `1` to prevent from showing some elements about packages,
          like `filename`, `error` or `linked` elements.
        example: 1
      - in: query
        name: nofilename
        schema:
          type: string
          enum:
          - 1
          - 0
        default: 0
        description: Set to `1` to prevent from showing filename elements. Shows only
          the `sourceinfo` root element.
        example: 1
      - in: query
        name: package
        schema:
          type: string
        description: Filter by package name.
        example: test
      - in: query
        name: parse
        schema:
          type: string
          enum:
          - 1
          - 0
        default: 0
        description: Set to `1` to show more details, like `originproject`, `linked
          package`, `name`, `version`, `release`, `subpacks`, `deps`, and `prereqs`
          elements.
        example: 1
      - in: query
        name: repository
        schema:
          type: string
        description: Filter by repository name.
        example: openSUSE_Tumbleweed
      - in: query
        name: withmetamd5
        schema:
          type: string
          enum:
          - 1
          - 0
        default: 0
        description: Set to `1` to show the `metamd5` attribute.
        example: 1
      - in: query
        name: withchangesmd5
        schema:
          type: string
          enum:
          - 1
          - 0
        default: 0
        description: Set to `1` to show the `revtime` element.
        example: 1
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    package:
                      type: string
                      xml:
                        attribute: true
                    rev:
                      type: string
                      xml:
                        attribute: true
                    vrev:
                      type: string
                      xml:
                        attribute: true
                    srcmd5:
                      type: string
                      xml:
                        attribute: true
                    verifymd5:
                      type: string
                      xml:
                        attribute: true
                    metamd5:
                      type: string
                      xml:
                        attribute: true
                    filename:
                      type: string
                    originproject:
                      type: string
                    linked:
                      type: array
                      items:
                        type: object
                        properties:
                          project:
                            type: string
                            xml:
                              attribute: true
                          package:
                            type: string
                            xml:
                              attribute: true
                    name:
                      type: string
                    version:
                      type: string
                    release:
                      type: string
                    revtime:
                      type: string
                    error:
                      type: string
                    subpacks:
                      type: array
                      items:
                        type: string
                    deps:
                      type: array
                      items:
                        type: string
                    prereqs:
                      type: array
                      items:
                        type: string
                  xml:
                    name: sourceinfo
                xml:
                  name: sourceinfolist
                  wrapped: true
              examples:
                A project contains three packages:
                  value:
                  - package: texlive-specs
                    rev: 9f5336fcf6e4521b6a9587b02087eef9
                    vrev: 25
                    srcmd5: 9f5336fcf6e4521b6a9587b02087eef9
                    verifymd5: 9b49b7314f5d0dfd8002cd329e048f73
                    filename: texlive-specs.spec
                  - package: texlive-specs-w
                    rev: 9f5336fcf6e4521b6a9587b02087eef9
                    vrev: 55
                    srcmd5: 9f5336fcf6e4521b6a9587b02087eef9
                    verifymd5: 9b49b7314f5d0dfd8002cd329e048f73
                    filename: texlive-specs-w.spec
                  - package: test
                    rev: 5
                    vrev: 5
                    srcmd5: e3a71081cb7245e3c09c3655dffa7384
                    verifymd5: e3a71081cb7245e3c09c3655dffa7384
                    error: bad build configuration, no build type defined or detected
                Applying a filter doesn't return any result:
                  value:
                  - package: hello
                    error: 404 package 'hello' does not exist
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Not Boolean:
                  description: Passing a value different than `0` or `1` to `parse`,
                    for example.
                  value:
                    code: 400
                    summary: not boolean
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
      tags:
      - Sources - Projects
  "/source/{project_name}/_config":
    get:
      summary: Get project's configuration
      description: Read configuration for the specified project
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - name: rev
        in: query
        schema:
          type: string
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            text/plain:
              schema:
                type: string
              example: |
                # temporary should be fixed in SUSE:SLE-15-SP4:GA
                Prefer: -libudev-devel
                Prefer: -libudev-devel-32bit
                ...
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Sources - Projects
    put:
      summary: Update project's configuration
      description: Update configuration for the specified project
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - name: comment
        in: query
        schema:
          type: string
      requestBody:
        description: configuration you want to update
        content:
          text/plain:
            schema:
              type: string
            example: |
              # temporary should be fixed in SUSE:SLE-15-SP4:GA
              Prefer: -libudev-devel
              Prefer: -libudev-devel-32bit
              ...
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Sources - Projects
  "/source/{project_name}/_meta":
    get:
      summary: Get project meta file
      description: Get project meta file
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - name: view
        in: query
        schema:
          type: string
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  name:
                    type: string
                    xml:
                      attribute: true
                  title:
                    type: string
                  description:
                    type: string
                  person:
                    type: object
                    properties:
                      userid:
                        type: string
                        xml:
                          attribute: true
                      role:
                        type: string
                        xml:
                          attribute: true
                  repository:
                    type: object
                    properties:
                      name:
                        type: string
                        xml:
                          attribute: true
                      path:
                        type: object
                        properties:
                          project:
                            type: string
                            xml:
                              attribute: true
                          repository:
                            type: string
                            xml:
                              attribute: true
                      arch:
                        type: array
                        items:
                          type: string
                xml:
                  name: project
              example:
                name: home:Admin
                title: Endless Night
                description: Test project
                person:
                  userid: Admin
                  role: maintainer
                repository:
                  name: openSUSE_Tumbleweed
                  path:
                    project: openSUSE.org:openSUSE:Factory
                    repository: snapshot
                  arch:
                  - x86_64
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Unknown project.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
                Invalid Project Parameters:
                  value:
                    code: invalid_project_parameters
                    summary: Not found
      tags:
      - Sources - Projects
    put:
      summary: Write project meta file
      description: Write project's meta file. Create the project if it doesn't exist.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: query
        name: comment
        schema:
          type: string
        description: Comment that explains the changes you made in meta file.
      requestBody:
        description: Project meta definition.
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                name:
                  type: string
                  xml:
                    attribute: true
                title:
                  type: string
                description:
                  type: string
                person:
                  type: object
                  properties:
                    userid:
                      type: string
                      xml:
                        attribute: true
                    role:
                      type: string
                      xml:
                        attribute: true
                repository:
                  type: object
                  properties:
                    name:
                      type: string
                      xml:
                        attribute: true
                    path:
                      type: object
                      properties:
                        project:
                          type: string
                          xml:
                            attribute: true
                        repository:
                          type: string
                          xml:
                            attribute: true
                    arch:
                      type: array
                      items:
                        type: string
              xml:
                name: project
            example:
              name: home:Admin
              title: Endless Night
              description: Test project
              person:
                userid: Admin
                role: maintainer
              repository:
                name: openSUSE_Tumbleweed
                path:
                  project: openSUSE.org:openSUSE:Factory
                  repository: snapshot
                arch:
                - x86_64
                - aarch64
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: |
            Bad request.
            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Command:
                  value:
                    code: unknown_command
                    summary: Allowed commands are '<some command>'.
                Bad Request:
                  value:
                    code: err_register_save
                    summary: 'Could not save the registration, details: Login is the
                      name of an already existing user and Password can''t be blank.'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: The user does not have permission to change the project.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Change project no permission:
                  value:
                    code: change_project_no_permission
                    summary: The project <some project> is locked
      tags:
      - Sources - Projects
  "/source/{project_name}/_pattern":
    get:
      summary: Get list of patterns
      description: Get a list of all patterns for the project
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  name:
                    type: string
                    xml:
                      attribute: true
                  rev:
                    type: string
                    xml:
                      attribute: true
                  vrev:
                    type: string
                    xml:
                      attribute: true
                  srcmd5:
                    type: string
                    xml:
                      attribute: true
                  entry:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        md5:
                          type: string
                          xml:
                            attribute: true
                        size:
                          type: string
                          xml:
                            attribute: true
                        ntime:
                          type: string
                          xml:
                            attribute: true
                xml:
                  name: directory
              example:
                name: _pattern
                rev: '3'
                vrev: '555'
                srcmd5: db8d976cd59b1a933ab82a539247aeac
                entry:
                - name: OBS_Server
                  md5: d4ba5bf938ed8d26e68a7c6d1237854e
                  size: '947'
                  ntime: '1463555386'
                - name: OBS_Server:unstable
                  md5: d4ba5bf938ed8d26e6xvv8a7c6d12ddd
                  size: '737'
                  ntime: 146355ddd6
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Sources - Projects
  "/source/{project_name}/_pattern/{file_name}":
    get:
      deprecated: true
      summary: Read a specified pattern file
      description: Read a specified pattern file and return the content
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: file_name
        schema:
          type: string
        required: true
        description: The file name
        example: ctris-0.42.1-4.1.x86_64.rpm
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown File:
                  value:
                    code: unknown_file
                    summary: 'File not found: home:some_project/_pattern/some_file'
      tags:
      - Sources - Projects
    delete:
      deprecated: true
      summary: Deletes a specified pattern file.
      description: Deletes a specified pattern file of a project.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: file_name
        schema:
          type: string
        required: true
        description: The file name
        example: ctris-0.42.1-4.1.x86_64.rpm
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown File:
                  value:
                    code: unknown_file
                    summary: 'File not found: home:some_project/_pattern/some_file'
      tags:
      - Sources - Projects
    put:
      deprecated: true
      summary: Write a specified pattern file.
      description: Write a specified pattern file of a project.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: file_name
        schema:
          type: string
        required: true
        description: The file name
        example: ctris-0.42.1-4.1.x86_64.rpm
      requestBody:
        content:
          plain/text:
            schema:
              type: string
              properties:
                file:
                  type: string
                  format: binary
      responses:
        '200':
          description: Updates the artifact's file contents
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  rev:
                    type: string
                    xml:
                      attribute: true
                  vrev:
                    type: string
                    xml:
                      attribute: true
                  srcmd5:
                    type: string
                  version:
                    type: string
                  time:
                    type: string
                  user:
                    type: string
                  comment:
                    type: string
                  requestid:
                    type: string
                xml:
                  name: revision
              example:
                rev: 28
                srcmd5: 6c73fc9ef8d43369f0778564617b4a93
                time: 1682497725
                user: Admin
                comment:
                requestid:
        '400':
          description: 'Error: Bad request.'
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Bad Request:
                  value:
                    code: validation_failed
                    summary: 'pattern validation error: 1:1: FATAL: Start tag expected,
                      < not found

                      '
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown File:
                  value:
                    code: unknown_file
                    summary: 'File not found: home:some_project/_pattern/some_file'
      tags:
      - Sources - Projects
  "/source/{project_name}/_project":
    get:
      summary: List project files
      description: List all the files in project
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: query
        name: meta
        required: false
        schema:
          type: integer
        description: Set to 1 to include _meta files
        example: 1
      - in: query
        name: rev
        required: false
        schema:
          type: integer
        description: Revision number
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  name:
                    type: string
                    xml:
                      attribute: true
                  rev:
                    type: string
                    xml:
                      attribute: true
                  vrev:
                    type: string
                    xml:
                      attribute: true
                  srcmd5:
                    type: string
                    xml:
                      attribute: true
                  entry:
                    type: object
                    properties:
                      name:
                        type: string
                        xml:
                          attribute: true
                      md5:
                        type: string
                        xml:
                          attribute: true
                      size:
                        type: string
                        xml:
                          attribute: true
                      mtime:
                        type: string
                        xml:
                          attribute: true
                xml:
                  name: directory
              example:
                name: _project
                rev: '7'
                vrev: '445'
                srcmd5: 9a18405476229262648b4c3e548a90a9
                entry:
                  name: _pubkey
                  md5: 1536ab133eb76be69aaba65d934d827a
                  size: '1369'
                  mtime: '1650378374'
        '400':
          description: Wrong value for meta parameter.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                not boolean:
                  value:
                    code: 400
                    summary: not boolean
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Sources - Projects
  "/source/{project_name}/_pubkey":
    get:
      summary: Get GPG key
      description: |
        Get the project's GPG key. If the project doesn't have a default GPG key, it looks for the first one
        available in the namespace hierarchy, ending at the global buildservice key.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            text/plain:
              schema:
                type: string
                example: |
                  -----BEGIN PGP PUBLIC KEY BLOCK-----
                  Version: GnuPG v1.4.5 (GNU/Linux)
                  mQENBFfX+W4BCAC89VZEUt8O/o2rXnFoNrW0nsZoaHZX5Kjtzwuns5/UwzBffY/h
                  [...]
                  -----END PGP PUBLIC KEY BLOCK-----
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Not Found:
                  value:
                    code: not_found
                    summary: 'Project not found: <some project>.'
                No pubkey:
                  value:
                    code: no_pubkey
                    summary: no pubkey available
      tags:
      - Sources - Projects
    delete:
      summary: Removes the current gpg key
      description: Removes the current gpg key if it exists
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Sources - Projects
  "/source/{project_name}/_keyinfo":
    get:
      summary: Get a projects signing keys
      description: Read information about the signing keys for the specified project
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  project:
                    type: string
                    xml:
                      attribute: true
                  pubkey:
                    type: object
                    properties:
                      keyid:
                        type: string
                        xml:
                          attribute: true
                      userid:
                        type: string
                        xml:
                          attribute: true
                      algo:
                        type: string
                        xml:
                          attribute: true
                      keysize:
                        type: string
                        xml:
                          attribute: true
                      expires:
                        type: string
                        xml:
                          attribute: true
                      fingerprint:
                        type: string
                        xml:
                          attribute: true
                  sslcert:
                    type: object
                    properties:
                      keyid:
                        type: string
                        xml:
                          attribute: true
                      serial:
                        type: string
                        xml:
                          attribute: true
                      issuer:
                        type: string
                        xml:
                          attribute: true
                      subject:
                        type: string
                        xml:
                          attribute: true
                      algo:
                        type: string
                        xml:
                          attribute: true
                      keysize:
                        type: string
                        xml:
                          attribute: true
                      begins:
                        type: string
                        xml:
                          attribute: true
                      expires:
                        type: string
                        xml:
                          attribute: true
                      fingerprint:
                        type: string
                        xml:
                          attribute: true
                xml:
                  name: keyinfo
              example:
                project: openSUSE:Leap
                pubkey:
                  keyid: b88b2fd43dbdc284
                  userid: openSUSE Project Signing Key &lt;opensuse@opensuse.org&gt;
                  algo: rsa
                  keysize: 2048
                  expires: 1887851113
                  fingerprint: 22c0 7ba5 3417 8cd0 2efe 22aa b88b 2fd4 3dbd c284
                sslcert:
                  serial: 18068117070991220325
                  issuer: CN=openSUSE Secure Boot CA, C=DE, L=Nuremberg, O=openSUSE
                    Project, emailAddress=build@opensuse.org
                  subject: CN=openSUSE Secure Boot Signkey, C=DE, L=Nuremberg, O=openSUSE
                    Project, emailAddress=build@opensuse.org
                  algo: rsa
                  keysize: 2048
                  begins: 1655126536
                  expires: 1966166536
                  fingerprint: 1f67 3297 da56 8ae0 dedf db7c 8cc6 8f9e cb85 7275
                  keyid: fd9f 2c12 e599 d67c c7f9 0675 41ad f426 b712 469e
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Sources - Projects
  "/source/{project_name}/_attribute":
    get:
      summary: Get all the project's attributes
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - name: view
        in: query
        schema:
          type: string
          enum:
          - blame
        description: With view=blame, information about who changed each XML tag and
          when is displayed.
        example: blame
      - name: with_default
        in: query
        schema:
          type: string
        description: |
          If the attribute doesn't contain any value and `with_default` is present,
          the default values will be displayed, if any.
        example: 1
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                      xml:
                        attribute: true
                    namespace:
                      type: string
                      xml:
                        attribute: true
                    binary:
                      type: string
                      xml:
                        attribute: true
                  xml:
                    name: attribute
                xml:
                  name: attributes
                  wrapped: true
              examples:
                listOfAttributes:
                  value:
                  - name: MaintenanceProject
                    namespace: OBS
                  - name: ScreenShots
                    namespace: OBS
                viewBlame:
                  description: Passing view=blame.
                  value: |
                    10 (Admin        2023-03-09 11:46:01     1) <attributes>
                    12 (Iggy         2023-03-13 14:46:01     5)   <attribute namespace="OBS" name="MakeOriginOlder"/>
                    14 (Admin        2023-03-13 15:14:21     6)   <attribute namespace="OBS" name="QualityCategory">
                    14 (Admin        2023-03-13 15:14:21     7)     <value>Development</value>
                    14 (Admin        2023-03-13 15:14:21     8)   </attribute>
                    10 (Admin        2023-03-09 11:46:01     9) </attributes>
        '400':
          description: Bad Request.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: remote_project
                summary: Attribute access to remote project is not yet supported
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Sources - Projects
  "/source/{project_name}/_attribute/{attribute_name}":
    get:
      summary: Get project's attribute
      description: Get a specified attribute of the project
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: attribute_name
        schema:
          type: string
        required: true
        description: The name of the attribute
        example: OBS:OwnerRootProjectTest
      - name: view
        in: query
        schema:
          type: string
          enum:
          - blame
        description: With view=blame, information about who changed each XML tag and
          when is displayed.
        example: blame
      - name: with_default
        in: query
        schema:
          type: string
        description: |
          If the attribute doesn't contain any value and `with_default` is present,
          the default values will be displayed, if any.
        example: 1
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                      xml:
                        attribute: true
                    namespace:
                      type: string
                      xml:
                        attribute: true
                    binary:
                      type: string
                      xml:
                        attribute: true
                  xml:
                    name: attribute
                xml:
                  name: attributes
                  wrapped: true
              examples:
                oneAttribute:
                  value:
                  - name: MaintenanceProject
                    namespace: OBS
                viewBlame:
                  description: Passing view=blame.
                  value: |
                    6  (Admin        2023-03-09 11:46:01     1) <attributes>
                    12 (Iggy         2023-03-13 14:46:01     5)   <attribute namespace="OBS" name="MakeOriginOlder"/>
                    14 (Admin        2023-03-13 15:14:21     6)   <attribute namespace="OBS" name="QualityCategory">
                    14 (Admin        2023-03-13 15:14:21     7)     <value>Development</value>
                    14 (Admin        2023-03-13 15:14:21     8)   </attribute>
                    6  (Admin        2023-03-09 11:46:01     9) </attributes>
        '400':
          description: Wrong value for deleted parameter.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                invalid_attribute:
                  value:
                    code: 400
                    summary: Attribute 'OwnerRootProjectTest' must be in the $NAMESPACE:$NAME
                      style
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Sources - Projects
    post:
      summary: Modifies the specified attribute
      description: Modifies the specified attribute
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: attribute_name
        schema:
          type: string
        required: true
        description: The name of the attribute
        example: OBS:OwnerRootProjectTest
      - name: comment
        in: query
        schema:
          type: string
      requestBody:
        description: Attributes you want to update
        content:
          application/xml; charset=utf-8:
            schema:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                    xml:
                      attribute: true
                  namespace:
                    type: string
                    xml:
                      attribute: true
                  binary:
                    type: string
                    xml:
                      attribute: true
                xml:
                  name: attribute
              xml:
                name: attributes
                wrapped: true
            example:
            - name: MaintenanceProject
              namespace: OBS
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: Wrong value for deleted parameter.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                invalid_attribute:
                  value:
                    code: 400
                    summary: Attribute 'OwnerRootProjectTest' must be in the $NAMESPACE:$NAME
                      style
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Sources - Projects
    delete:
      summary: Removes a specified attribute
      description: Removes a specified attribute
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: attribute_name
        schema:
          type: string
        required: true
        description: The name of the attribute
        example: OBS:OwnerRootProjectTest
      - name: comment
        in: query
        schema:
          type: string
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: Wrong value for deleted parameter.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                invalid_attribute:
                  value:
                    code: 400
                    summary: Attribute 'OwnerRootProjectTest' must be in the $NAMESPACE:$NAME
                      style
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Sources - Projects
  "/source/{project_name}/_project/_history":
    get:
      summary: Get project commit history.
      description: Get project commit history.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: query
        name: deleted
        schema:
          type: string
        description: Set to `1` to allow to retrieve the revision history of a deleted
          project.
        example: 1
      - in: query
        name: limit
        schema:
          type: integer
        description: Limit the number of retrieved revision history elements to the
          specified number.
        example: 20
      - in: query
        name: meta
        schema:
          type: string
        description: Set to `1` to retrieve the revision history of the meta file
          (`_meta`) of the project.
        example: 1
      - in: query
        name: startbefore
        schema:
          type: integer
        description: Start the list of revision history elements before the given
          revision number.
        example: 124
      - in: query
        name: rev
        schema:
          type: string
        description: Return the revision entry for a specific revision number.
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [revisionlist.rng](../schema/revisionlist.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    rev:
                      type: string
                      xml:
                        attribute: true
                    vrev:
                      type: string
                      xml:
                        attribute: true
                    srcmd5:
                      type: string
                    version:
                      type: string
                    time:
                      type: string
                    user:
                      type: string
                    comment:
                      type: string
                    requestid:
                      type: string
                  xml:
                    name: revision
                xml:
                  name: revisionlist
                  wrapped: true
              examples:
                Two Revisions:
                  value:
                  - rev: 1
                    vrev: ''
                    srcmd5: d41d8cd98f00b204e9800998ecf8427e
                    version: ''
                    time: 1678364228
                    user: Admin
                    comment: project was deleted
                  - rev: 2
                    vrev: ''
                    srcmd5: d41d8cd98f00b204e9800998ecf8427e
                    version: ''
                    time: 1678364246
                    user: Admin
                    comment: project was undeleted
                rev Parameter Specified (rev = 1):
                  value:
                  - rev: 1
                    vrev: ''
                    srcmd5: d41d8cd98f00b204e9800998ecf8427e
                    version: ''
                    time: 1678364228
                    user: Admin
                    comment: project was deleted
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
      tags:
      - Sources - Projects
  "/source/{project_name}/_project/{file_name}":
    get:
      summary: Read a project file
      description: Read a project file
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: file_name
        schema:
          type: string
        required: true
        description: The file name
        example: ctris-0.42.1-4.1.x86_64.rpm
      - name: deleted
        in: query
        schema:
          type: string
        description: Set to `1` to read a file of a deleted project.
        example: 1
      - in: query
        name: meta
        required: false
        schema:
          type: integer
        description: Set to `1` to include _meta files
        example: 1
      - in: query
        name: rev
        required: false
        schema:
          type: integer
        description: Revision number
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  name:
                    type: string
                    xml:
                      attribute: true
                  title:
                    type: string
                  description:
                    type: string
                  person:
                    type: object
                    properties:
                      userid:
                        type: string
                        xml:
                          attribute: true
                      role:
                        type: string
                        xml:
                          attribute: true
                  repository:
                    type: object
                    properties:
                      name:
                        type: string
                        xml:
                          attribute: true
                      path:
                        type: object
                        properties:
                          project:
                            type: string
                            xml:
                              attribute: true
                          repository:
                            type: string
                            xml:
                              attribute: true
                      arch:
                        type: array
                        items:
                          type: string
                xml:
                  name: project
              example:
                name: home:Admin
                title: Endless Night
                description: Test project
                person:
                  userid: Admin
                  role: maintainer
                repository:
                  name: openSUSE_Tumbleweed
                  path:
                    project: openSUSE.org:openSUSE:Factory
                    repository: snapshot
                  arch:
                  - x86_64
        '400':
          description: Wrong value for meta parameter.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                not boolean:
                  value:
                    code: 400
                    summary: not boolean
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: The user does not have permission to access the source.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Source access no permission:
                  value:
                    code: source_access_no_permission
                    summary: Source Access not allowed
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Sources - Projects
  "/source/{project_name}?cmd=addchannels":
    post:
      summary: Add channels and extend repository list.
      description: |
        Add channels for each one of the provided project packages.
        If the mode parameter is provided, that mode is added to the package channel.
        The mode parameter can be:
          - 'skip_disabled'
          - 'enable_all'
          - 'add_disabled' being the default.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: query
        name: mode
        schema:
          type: string
          enum:
          - skip_disabled
          - enable_all
          - add_disabled
        description: The channel will be added to the package using this mode.
        example: add_disabled
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Sources - Projects
  "/source/{project_name}?cmd=copy":
    post:
      summary: Copy an entire project.
      description: Copy the source project provided by the required parameter `oproject`
        to the target project provided by the path parameter `project_name`.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: |
          Target project name

          The target project must exist. Otherwise, the copy is not performed and a not found error (404) is returned.
        example: home:Iggy:target
      - in: query
        name: oproject
        schema:
          type: string
        required: true
        description: Origin project name
        example: home:Iggy:source
      - in: query
        name: comment
        schema:
          type: string
        description: Comment to be added in the revision history.
        example: Copy project for testing.
      - in: query
        name: makeolder
        schema:
          type: string
          enum:
          - 1
          - 0
        default: 0
        description: Make target older. Set to `1` to bump the source vrev by two
          numbers and the target by one.
        example: 1
      - in: query
        name: makeoriginolder
        schema:
          type: string
          enum:
          - 1
          - 0
        default: 0
        description: Make origin older. Set to `1` to extend the source vrev.
        example: 1
      - in: query
        name: nodelay
        schema:
          type: string
          enum:
          - 1
          - 0
        default: 0
        description: By default the copying is done as a deferred job. Set to `1`
          to perform the copy right away.
        example: 1
      - in: query
        name: noservice
        schema:
          type: string
          enum:
          - 1
          - 0
        default: 0
        description: Set to `1` not to run source services.
        example: 1
      - in: query
        name: resign
        schema:
          type: string
          enum:
          - 1
          - 0
        default: 0
        description: Set to `1` to resign all binaries with the target project key.
        example: 1
      - in: query
        name: withbinaries
        schema:
          type: string
          enum:
          - 1
          - 0
        default: 0
        description: Set to `1` to also copy binaries.
        example: 1
      - in: query
        name: withhistory
        schema:
          type: string
          enum:
          - 1
          - 0
        default: 0
        description: Set to `1` to also copy the revision history.
        example: 1
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [about.xsd](../schema/about.xsd)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                job_invoked:
                  summary: Job Invoked
                  value:
                    code: invoked
                    summary: Job invoked
                ok:
                  summary: Ok
                  description: Response given when `nodelay` is set to `1`.
                  value:
                    code: ok
                    summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Forbidden.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                cmd_execution_no_permission:
                  summary: No Permission to Execute Command
                  value:
                    code: cmd_execution_no_permission
                    summary: no permission to execute command 'copy'
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Sources - Projects
  "/source/{project_name}?cmd=createkey":
    post:
      summary: Generate a new GPG key for a project.
      description: Generate a new GPG key. If the project already has a GPG key, the
        old key is discarded.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      responses:
        '200':
          description: ok
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                xml:
                  name: status
              example:
                code: ok
        '400':
          description: Bad Request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: invalid_project_name
                summary: invalid project name '{project_name}'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Forbidden
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: cmd_execution_no_permission
                summary: no permission to execute command 'createkey'
      tags:
      - Sources - Projects
  "/source/{project_name}?cmd=createmaintenanceincident":
    post:
      summary: Create a single maintenance incident project.
      description: Create a single maintenance incident project as a sub project.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      responses:
        '200':
          description: ok
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
                data:
                - MaintenanceProject:17
        '400':
          description: Bad Request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: incident_has_no_maintenance_project
                summary: incident projects shall only create below maintenance projects
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Forbidden
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: cmd_execution_no_permission
                summary: no permission to execute command 'createmaintenanceincident'
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: unknown_project
                summary: 'Project not found: home:Admin'
      tags:
      - Sources - Projects
  "/source/{project_name}?cmd=createpatchinfo":
    post:
      summary: Creates a patchinfo inside the given project
      description: |
        Creates a new patchinfo package, in the given project, containing a '_patchinfo' file.
        The file will include all the issues in other project's sources, if any.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: query
        name: name
        schema:
          type: string
        description: Name of the patchinfo package. If not passed, 'patchinfo' is
          the default value.
        example: BaseDistro_patchinfo
      - in: query
        name: comment
        schema:
          type: string
        description: Comment to be included in the 'summary' XML tag of the patchinfo.
        example: Security update for the Linux Kernel
      - in: query
        name: force
        schema:
          type: string
        description: |
          If the patchinfo with the given name already existed and the force parameter is passed,
          then the patchinfo will be overwritten.
          If the force parameter is not passed, an error will be raised giving you some suggestions.
        example: 1
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example: |
                <status code="ok">
                  <summary>Ok</summary>
                  <data name="targetproject">home:Admin</data>
                  <data name="targetpackage">BaseDistro_patchinfo</data>
                </status>
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                invalid_project_name:
                  value:
                    code: invalid_project_name
                    summary: invalid project name '0'
                  summary: Invalid Project Name
                invalid_package_name:
                  value:
                    code: invalid_package_name
                    summary: invalid package name 'base:distro'
                  summary: Invalid Package Name
                patchinfo_file_exists:
                  value:
                    code: patchinfo_file_exists
                    summary: 'createpatchinfo command: the patchinfo BaseDistro exists
                      already. Either use force=1 re-create the _patchinfo or use
                      updatepatchinfo for updating.'
                  summary: Patchinfo File Exists
                package_already_exists:
                  value:
                    code: package_already_exists
                    summary: 'createpatchinfo command: the package BaseDistro exists
                      already, but is  no patchinfo. Please create a new package instead.'
                  summary: Package Already Exists
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Sources - Projects
  "/source/{project_name}?cmd=extendkey":
    post:
      summary: Extend the expiration date of GPG keys.
      description: Extend the expiration date of GPG key for the given project.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: query
        name: days
        schema:
          type: integer
        description: Define the number of days until key expiry
        example: 712
      responses:
        '200':
          description: ok
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Forbidden
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: cmd_execution_no_permission
                summary: no permission to execute command 'extendkey'
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: unknown_project
                summary: 'Project not found: home:Admin'
      tags:
      - Sources - Projects
  "/source/{project_name}?cmd=freezelink":
    post:
      summary: Freeze a project link.
      description: Freeze a project link, either creating the freeze or updating it.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: query
        name: comment
        schema:
          type: string
        description: A comment that will appear in the project's comment section explaining
          the reason behind the freezing.
        example: Project link frozen due to some important reason.
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Sources - Projects
  "/source/{project_name}?cmd=lock":
    post:
      summary: Locks the project.
      description: Locks the project given as parameter. You can pass a comment with
        the reason of the lock.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: query
        name: comment
        schema:
          type: string
        description: Comment that can be added to describe the reasoning behind the
          lock.
        example: Locked project beacause A, B and C.
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '403':
          description: |
            No permission to execute command 'lock' because the project is already locked or
            because the user do not have permission to modify the project.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: cmd_execution_no_permission
                summary: no permission to execute command 'lock'.
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Sources - Projects
  "/source/{project_name}?cmd=modifychannels":
    post:
      summary: Modify existing channels.
      description: Add repositories or enable them for existing channels.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: query
        name: mode
        schema:
          type: string
          enum:
          - add_disabled
          - enable_all
        example: add_disabled
        description: The channel will be added to the package using this mode.
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: Bad Request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: invalid_parameter
                summary: Internal Server Error
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Forbidden
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: cmd_execution_no_permission
                summary: no permission to execute command 'modifychannels'
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: unknown_project
                summary: 'Project not found: home:Admin'
      tags:
      - Sources - Projects
  "/source/{project_name}?cmd=move":
    post:
      summary: Move all sources and binaries.
      description: |
        Admin permissions required and schedulers need to be stopped.
        This api moves all sources and binaries from a source project (oproject) to a new project (project_name).
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: query
        name: oproject
        required: true
        schema:
          type: string
        description: The project you want to move. Source project.
        example: home:Admin
      - in: query
        name: comment
        schema:
          type: string
      responses:
        '200':
          description: ok
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: Bad Request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Project Exists:
                  value:
                    code: project_exists
                    summary: Target project exists already.
                Move Failed:
                  value:
                    code: move_failed
                    summary: Move operation failed
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Forbidden
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: cmd_execution_no_permission
                summary: Admin permissions required. STOP SCHEDULER BEFORE.
      tags:
      - Sources - Projects
  "/source/{project_name}?cmd=release":
    post:
      summary: Release the project.
      description: Release source and binaries for a repository of the project, if
        you have the permissions to do so.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: query
        name: nodelay
        schema:
          type: string
        description: If this parameter is present, do not delay the relase. If this
          parameter is not present, the release will be delayed to be done later.
        example: 1
      - in: query
        name: target_project
        schema:
          type: string
        description: Project containing the repository targeted by the release.
        example: openSUSE:Factory
      - in: query
        name: target_repository
        schema:
          type: string
        description: Repository targeted by the release.
        example: standard
      - in: query
        name: repository
        schema:
          type: string
        description: Repository for which source and binaries will be released.
        example: openSUSE_Tumbleweed
      - in: query
        name: setrelease
        schema:
          type: string
        description: If this parameter is present, the release will be tagged with
          this parameter's value.
        example: Beta1
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Sources - Projects
  "/source/{project_name}?cmd=remove_flag":
    post:
      summary: Delete a flag for the project.
      description: |
        For the project, you can delete a flag with the provided flag name, repository and architecture.
        You can only delete the flag if you have the permissions to do so.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: query
        name: flag
        required: true
        schema:
          type: string
        description: Name of the flag to be deleted
        example: access
      - in: query
        name: repository
        schema:
          type: string
        description: Repository for which the flag is set
        example: openSUSE_Tumbleweed
      - in: query
        name: arch
        schema:
          type: string
        description: Architecture for which the flag is set
        example: x86_64
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                missing_parameter:
                  value:
                    code: missing_parameter
                    summary: Required Parameter flag missing.
                  summary: Missing Parameter
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Forbidden
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: cmd_execution_no_permission
                summary: no permission to execute command 'remove_flag'.
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Sources - Projects
  "/source/{project_name}?cmd=set_flag":
    post:
      summary: Set a flag for the project.
      description: |
        For the project, you can set a flag with the provided flag name, status, repository and architecture.
        You can only set the flag if you have the permissions to do so.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: query
        name: flag
        required: true
        schema:
          type: string
        description: Name of the flag to be set
        example: access
      - in: query
        name: status
        required: true
        schema:
          type: string
        description: Status of the flag to be set
        example: disable
      - in: query
        name: repository
        schema:
          type: string
        description: Repository for which the flag is to be set
        example: openSUSE_Tumbleweed
      - in: query
        name: arch
        schema:
          type: string
        description: Architecture for which the flag is to be set
        example: x86_64
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                missing_parameter_flag:
                  value:
                    code: missing_parameter
                    summary: Required Parameter flag missing.
                  summary: Missing Parameter flag
                missing_parameter_status:
                  value:
                    code: missing_parameter
                    summary: Required Parameter status missing.
                  summary: Missing Parameter status
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Forbidden
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: cmd_execution_no_permission
                summary: no permission to execute command 'set_flag'.
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Sources - Projects
  "/source/{project_name}?cmd=showlinked":
    post:
      summary: List projects linking to the provided project.
      description: Return a list of projects linking to the provided project. This
        command doesn't perform any action.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                      xml:
                        attribute: true
                  xml:
                    name: project
                xml:
                  name: collection
                  wrapped: true
              examples:
                no_results:
                  summary: No results
                  value: |
                    <?xml version="1.0" encoding="UTF-8"?>
                    <collection/>
                one_result:
                  summary: One result
                  value:
                  - name: OBS:Server:Unstable:Containers:ruby2.7
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Sources - Projects
  "/source/{project_name}?cmd=undelete":
    post:
      summary: Restore a deleted project.
      description: |
        If the given project was previously deleted, you can restore it.
        You can only restore it if you have the permissions to do so.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '403':
          description: Forbidden
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: cmd_execution_no_permission
                summary: no permission to execute command 'undelete'.
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Not deleted project:
                  value:
                    code: 404
                    summary: project 'Sandbox' already exists
                  description: Response when trying to "undelete" a project that was
                    not deleted previously.
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Sources - Projects
  "/source/{project_name}?cmd=unlock":
    post:
      summary: Unlocks the project.
      description: Unlocks the previously locked project, given as parameter. You
        can pass a comment with the reason of the lock.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: query
        name: comment
        required: true
        schema:
          type: string
        description: Comment that should be added to describe the reasoning behind
          the unlock.
        example: Unlocked project beacause A, B and C.
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                missing_parameter:
                  value:
                    code: missing_parameter
                    summary: Required Parameter comment missing.
                  summary: Missing Parameter
                not_locked:
                  value:
                    code: not_locked
                    summary: project 'Sandbox' is not locked.
                  summary: Not Locked
        '403':
          description: No permission to execute command 'unlock' because the user
            do not have permission to modify the project.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: cmd_execution_no_permission
                summary: no permission to execute command 'unlock'.
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Sources - Projects
  "/source/{project_name}/{package_name}":
    get:
      summary: List source files of a package.
      description: Get a list of source files belonging to a package.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: query
        name: deleted
        schema:
          type: string
        description: |
          Set to `1` to list source files of deleted packages.

          Return a "Bad Request" error (400) if it is set to `1` and the package exists.
        example: 1
      - in: query
        name: expand
        schema:
          type: string
          enum:
          - 1
          - 0
        default: 0
        description: Expand links.
        example: 1
      - in: query
        name: extension
        schema:
          type: string
        description: List source files with the given extension.
        example: txt
      - in: query
        name: lastworking
        schema:
          type: string
          enum:
          - 1
          - 0
        default: 0
        description: Show sources of the last mergeable sources in case of conflicting
          changes.
        example: 1
      - in: query
        name: linkrev
        schema:
          type: string
        description: Show sources of the specified linked revision in the base package.
      - in: query
        name: meta
        schema:
          type: string
          enum:
          - 1
          - 0
        default: 0
        description: Set to `1` to show only the metadata file (`_meta`) in the list
          of files.
        example: 1
      - in: query
        name: product
        schema:
          type: string
        description: Use with `view=products`. Limit the product view to a given product.
      - in: query
        name: rev
        schema:
          type: string
        description: Show sources of the specified revision.
        example: 42
      - in: query
        name: view
        schema:
          type: string
          enum:
          - cpio
          - getmultibuild
          - info
          - issues
          - products
          - productrepositories
        description: |
          Specify which information about a package should be returned.

          * `cpio`: Stream all package files as cpio.
          * `getmultibuild`: List multibuild packages.
          * `info`: Show source version, md5sums and build description files, among other information.
             See this [other endpoint](<#/Sources - Packages/get_source__project_name___package_name__view_info>) for details.
          * `issues`: Show all tracked issues for this package.
          * `products`: Show all products of a package (works only on `_product` or `000product` packages).
          * `productrepositories`: Show all repositories used in product definitions (or a given product).
        example: issues
      - in: query
        name: withlinked
        schema:
          type: string
          enum:
          - 1
          - 0
        default: 0
        description: Set to `1` to show all used packages (in case of multiple link
          indirections) in linkinfo information.
        example: 1
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [directory.xsd](../schema/directory.xsd). This schema is not used in the following cases:
            * view=cpio
            * view=issues
            * view=products
            * view=productrepositories
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    xml:
                      attribute: true
                  name:
                    type: string
                    xml:
                      attribute: true
                  rev:
                    type: string
                    xml:
                      attribute: true
                  vrev:
                    type: string
                    xml:
                      attribute: true
                  srcmd5:
                    type: string
                    xml:
                      attribute: true
                  entry:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        md5:
                          type: string
                          xml:
                            attribute: true
                        size:
                          type: string
                          xml:
                            attribute: true
                        mtime:
                          type: string
                          xml:
                            attribute: true
                xml:
                  name: directory
              examples:
                Without Any Parameters:
                  value:
                    name: package_1
                    rev: 4
                    vrev: 4
                    srcmd5: 2e276a9a18eb1f4e6d1187d456c9335d
                    entry:
                    - name: _config
                      md5: 38a56fe6747ddc35214cb2ace161496f
                      size: 59
                      mtime: 1677507657
                    - name: somefile.txt
                      md5: 8680db994e398a1542c6fd05ee7f9fef
                      size: 55
                      mtime: 1677507647
                With Parameter meta=1:
                  value:
                    name: package_1
                    rev: 4
                    vrev: 4
                    srcmd5: 2e276a9a18eb1f4e6d1187d456c9335d
                    entry:
                    - name: _meta
                      md5: 6742b7fc375300ce04e56819a1a52f64
                      size: 181
                      mtime: 1678724165
                With Parameter view=getmultibuild:
                  value:
                    entry:
                    - name: obs-bundled-gems
                    - name: obs-api-testsuite-rspec
                With Parameter view=issues:
                  value: |
                    <?xml version="1.0" encoding="UTF-8"?>
                    <package project="project_1" name="package_1">
                      <issue change="kept">
                        <created_at>2008-11-18 16:47:00 UTC</created_at>
                        <updated_at>2020-02-24 13:01:11 UTC</updated_at>
                        <name>446164</name>
                        <tracker>bnc</tracker>
                        <label>boo#246064</label>
                        <url>https://bugzilla.test.com/show_bug.cgi?id=246064</url>
                        <state>CLOSED</state>
                        <summary>AUDIT-0: obs-server: /usr/bin/sign</summary>
                        <owner>
                          <login>user_1</login>
                          <email>user_1@test.com</email>
                          <realname>John Doe</realname>
                        </owner>
                      </issue>
                    </package>
                With Parameter view=products:
                  value: |
                    <productlist>
                      <productdefinition xmlns:xi="http://www.w3.org/2001/XInclude">
                        <products>
                          <product>
                            <vendor>openSUSE</vendor>
                            <name>openSUSE</name>
                            <version>20230315</version>
                            <release>0</release>
                            <productline>openSUSE</productline>
                            <register>
                              <updates>
                                <distrotarget arch="x86_64">openSUSE-Tumbleweed-x86_64</distrotarget>
                                <distrotarget arch="s390x">openSUSE-Tumbleweed-s390x</distrotarget>
                                <distrotarget arch="ppc64le">openSUSE-Tumbleweed-ppc64le</distrotarget>
                                <distrotarget arch="aarch64">openSUSE-Tumbleweed-aarch64</distrotarget>
                              </updates>
                            </register>
                            <updaterepokey>000000000</updaterepokey>
                            <summary>openSUSE Tumbleweed</summary>
                            <shortsummary>openSUSE</shortsummary>
                            <description>openSUSE Tumbleweed is the rolling distribution by the openSUSE.org project.</description>
                            <linguas>
                              <language>cs</language>
                              <language>da</language>
                            </linguas>
                            <urls>
                              <url name="releasenotes">http://doc.opensuse.org/release-notes/x86_64/openSUSE/Tumbleweed/release-notes-openSUSE.rpm</url>
                              <url name="repository">http://download.opensuse.org/tumbleweed/repo/oss/</url>
                            </urls>
                            <buildconfig>
                              <producttheme>openSUSE</producttheme>
                              <create_flavors>true</create_flavors>
                            </buildconfig>
                            <installconfig>
                              <defaultlang>en_US</defaultlang>
                              <default_obs_repository_name>openSUSE_Tumbleweed</default_obs_repository_name>
                              <releasepackage name="openSUSE-release" flag="EQ" version="%{version}"/>
                              <distribution>openSUSE</distribution>
                            </installconfig>
                            <runtimeconfig/>
                          </product>
                        </products>
                        <conditionals>
                          <conditional name="baselibs_only_x86_64">
                            <platform onlyarch="x86_64"/>
                          </conditional>
                          <conditional name="baselibs_hammer_from_i686">
                            <platform arch="x86_64" baselibs_arch="i686"/>
                          </conditional>
                        </conditionals>
                        <repositories>
                          <repository path="obsrepositories:/"/>
                        </repositories>
                        <archsets>
                          <archset name="i586" productarch="i586">
                            <arch>i586</arch>
                            <arch>i686</arch>
                            <arch>noarch</arch>
                          </archset>
                          <archset name="i686" productarch="i686">
                            <arch>i686</arch>
                            <arch>i586</arch>
                            <arch>i486</arch>
                            <arch>i386</arch>
                            <arch>noarch</arch>
                          </archset>
                        </archsets>
                      </productdefinition>
                    </productlist>
                With Parameter view=productrepositories:
                  value: |
                    <productrepositories>
                      <product name="MicroOS">
                      </product>
                      <product name="openSUSE-Addon-NonOss">
                      </product>
                      <product name="openSUSE">
                        <distrotarget arch="x86_64">openSUSE-Tumbleweed-x86_64</distrotarget>
                        <distrotarget arch="s390x">openSUSE-Tumbleweed-s390x</distrotarget>
                        <distrotarget arch="ppc64le">openSUSE-Tumbleweed-ppc64le</distrotarget>
                        <distrotarget arch="aarch64">openSUSE-Tumbleweed-aarch64</distrotarget>
                      </product>
                    </productrepositories>
            application/x-cpio:
              schema:
                type: string
              examples:
                With Parameter view=cpio:
                  value: |
                    07070100000000000081a40000000000000000000000015331456900000135000000000000000000000000000000000000000d00000000_constraints<constraints>
                      <overwrite>
                        <conditions>
                          <package>obs-server</package>
                        </conditions>

                        <hardware>
                          <memory>
                            <size unit="M">2000</size>
                          </memory>
                          <physicalmemory>
                            <size unit="M">1500</size>
                          </physicalmemory>
                        </hardware>
                      </overwrite>
                    </constraints>
                    07070100000000000081a40000000000000000000000015b595e440000006a000000000000000000000000000000000000000c00000000_multibuild<multibuild>
                      <flavor>obs-bundled-gems</flavor>
                      <flavor>obs-api-testsuite-rspec</flavor>
                    </multibuild>
                    07070100000000000081a40000000000000000000000016229cffc000002ec000000000000000000000000000000000000000900000000_service<?xml version="1.0"?>
                    <services>
                      <service name="obs_scm">
                        <param name="versionformat">2.11~alpha.%ci.%h</param>
                        <param name="url">https://github.com/openSUSE/open-build-service.git</param>
                        <param name="scm">git</param>
                        <param name="revision">master</param>
                        <param name="extract">dist/obs-api-testsuite-rspec.spec</param>
                        <param name="extract">dist/obs-bundled-gems.spec</param>
                        <param name="extract">dist/obs-server.spec</param>
                        <param name="extract">dist/obs-rpmlintrc</param>
                      </service>
                      <service name="set_version"/>
                      <service name="tar" mode="buildtime"/>
                      <service name="recompress" mode="buildtime">
                        <param name="compression">xz</param>
                        <param name="file">*.tar</param>
                      </service>
                    </services>
                    07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000b00000000TRAILER!!!
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Not Boolean:
                  description: Passing a value different than `0` or `1` to `meta`,
                    for example.
                  value:
                    code: 400
                    summary: not boolean
                With deleted=1 and Package exists:
                  description: Passing a value of `1` to `deleted`, and the package
                    exists.
                  value:
                    code: package_exists
                    summary: the package is not deleted
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
      tags:
      - Sources - Files
    delete:
      summary: Deletes a specified package including all its source files.
      description: Deletes a specified package including all its source files. By
        default only if no other packages use this package as a devel package.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: query
        name: comment
        schema:
          type: string
        description: Comment to be included in the revision history of the package.
        example: This package was no longer needed.
      - in: query
        name: force
        schema:
          type: string
          enum:
          - 1
          - 0
        default: 0
        description: Set to `1` to delete this package, even if other packages use
          this one as devel package.
        example: 1
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: Bad Request.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Delete Error:
                  value:
                    code: delete_error
                    summary: 'Package is used by following packages as devel package:
                      project_devel/ctris'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}/_attribute":
    get:
      summary: List the attibutes of a package
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - name: rev
        in: query
        schema:
          type: string
        description: 'Passing the number of the revision, this endpoint displays the
          attributes'' XML as it was at that point.

          '
        example: 3
      - name: view
        in: query
        schema:
          type: string
          enum:
          - blame
        description: With `view=blame`, information about who changed each XML tag
          and when is displayed.
        example: blame
      - name: with_default
        in: query
        schema:
          type: string
        description: |
          If the attribute doesn't contain any value and `with_default` is present,
          the default values will be displayed, if any.
        example: 1
      - name: with_project
        in: query
        schema:
          type: string
        description: 'Passing `with_project`, the response displays the attributes
          of the package''s project in addition to the package ones.

          '
        example: 1
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                      xml:
                        attribute: true
                    namespace:
                      type: string
                      xml:
                        attribute: true
                    binary:
                      type: string
                      xml:
                        attribute: true
                  xml:
                    name: attribute
                xml:
                  name: attributes
                  wrapped: true
              examples:
                manyAttributes:
                  value:
                  - name: MaintenanceProject
                    namespace: OBS
                  - name: ScreenShots
                    namespace: OBS
                viewBlame:
                  description: Passing `view=blame`.
                  value: |
                    10 (Admin        2023-03-09 11:46:01     1) <attributes>
                    12 (Iggy         2023-03-13 14:46:01     5)   <attribute namespace="OBS" name="MakeOriginOlder"/>
                    14 (Admin        2023-03-13 15:14:21     6)   <attribute namespace="OBS" name="QualityCategory">
                    14 (Admin        2023-03-13 15:14:21     7)     <value>Development</value>
                    14 (Admin        2023-03-13 15:14:21     8)   </attribute>
                    10 (Admin        2023-03-09 11:46:01     9) </attributes>
        '400':
          description: Bad Request.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                remoteProject:
                  value:
                    code: remote_project
                    summary: Attribute access to remote project is not yet supported
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
      tags:
      - Sources - Packages
    post:
      summary: Create or update the package's attribute given in the request body
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      security:
      - basic_authentication: []
      requestBody:
        description: Attribute you want to create or update
        content:
          application/xml; charset=utf-8:
            schema:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                    xml:
                      attribute: true
                  namespace:
                    type: string
                    xml:
                      attribute: true
                  binary:
                    type: string
                    xml:
                      attribute: true
                xml:
                  name: attribute
              xml:
                name: attributes
                wrapped: true
            example:
            - name: MaintenanceProject
              namespace: OBS
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng).
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                invalid_attribute:
                  description: Wrong attribute name.
                  value:
                    code: invalid_attribute
                    summary: Attribute 'OwnerRootProjectTest' must be in the $NAMESPACE:$NAME
                      style
                invalid_xml:
                  description: When not passing an XML body to the requset.
                  value:
                    code: invalid_xml
                    summary: Invalid XML
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}/_attribute/{attribute_name}":
    get:
      summary: Get package's attribute
      description: Get the specified attribute of the package
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: path
        name: attribute_name
        schema:
          type: string
        required: true
        description: The name of the attribute
        example: OBS:OwnerRootProjectTest
      - name: rev
        in: query
        schema:
          type: string
        description: 'Passing the number of the revision, this endpoint displays the
          attributes'' XML as it was at that point.

          '
        example: 3
      - name: view
        in: query
        schema:
          type: string
          enum:
          - blame
        description: With `view=blame`, information about who changed each XML tag
          and when is displayed.
        example: blame
      - name: with_default
        in: query
        schema:
          type: string
        description: |
          If the attribute doesn't contain any value and `with_default` is present,
          the default values will be displayed, if any.
        example: 1
      - name: with_project
        in: query
        schema:
          type: string
        description: 'Passing `with_project`, the response displays the specified
          attribute of the package''s project, if any, in addition to the package
          one.

          '
        example: 1
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                      xml:
                        attribute: true
                    namespace:
                      type: string
                      xml:
                        attribute: true
                    binary:
                      type: string
                      xml:
                        attribute: true
                  xml:
                    name: attribute
                xml:
                  name: attributes
                  wrapped: true
              examples:
                oneAttribute:
                  value:
                  - name: MaintenanceProject
                    namespace: OBS
                viewBlame:
                  description: Passing `view=blame`.
                  value: |
                    10 (Admin        2023-03-09 11:46:01     1) <attributes>
                    12 (Iggy         2023-03-13 14:46:01     5)   <attribute namespace="OBS" name="MakeOriginOlder"/>
                    14 (Admin        2023-03-13 15:14:21     6)   <attribute namespace="OBS" name="QualityCategory">
                    14 (Admin        2023-03-13 15:14:21     7)     <value>Development</value>
                    14 (Admin        2023-03-13 15:14:21     8)   </attribute>
                    10 (Admin        2023-03-09 11:46:01     9) </attributes>
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng).
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                invalid_attribute:
                  description: Wrong attribute name.
                  value:
                    code: invalid_attribute
                    summary: Attribute 'OwnerRootProjectTest' must be in the $NAMESPACE:$NAME
                      style
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Sources - Packages
    post:
      summary: Create or update an attribute of a package
      description: Create or update the specified attribute of the package
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: path
        name: attribute_name
        schema:
          type: string
        required: true
        description: The name of the attribute
        example: OBS:OwnerRootProjectTest
      requestBody:
        description: Attribute you want to create or update
        content:
          application/xml; charset=utf-8:
            schema:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                    xml:
                      attribute: true
                  namespace:
                    type: string
                    xml:
                      attribute: true
                  binary:
                    type: string
                    xml:
                      attribute: true
                xml:
                  name: attribute
              xml:
                name: attributes
                wrapped: true
            example:
            - name: MaintenanceProject
              namespace: OBS
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng).
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                invalid_attribute:
                  description: Wrong attribute name.
                  value:
                    code: invalid_attribute
                    summary: Attribute 'OwnerRootProjectTest' must be in the $NAMESPACE:$NAME
                      style
                invalid_xml:
                  description: When not passing an XML body to the requset.
                  value:
                    code: invalid_xml
                    summary: Invalid XML
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
      tags:
      - Sources - Packages
    delete:
      summary: Delete the specified attribute of a package
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: path
        name: attribute_name
        schema:
          type: string
        required: true
        description: The name of the attribute
        example: OBS:OwnerRootProjectTest
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng).
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                invalid_attribute:
                  description: Wrong attribute name.
                  value:
                    code: invalid_attribute
                    summary: Attribute 'OwnerRootProjectTest' must be in the $NAMESPACE:$NAME
                      style
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: The user don't have permission to delete the specified attribute
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                change_attribute_no_permission:
                  value:
                    code: change_attribute_no_permission
                    summary: User Iggy has no permission to change attribute
        '404':
          description: Unknown attribute
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                unknown_attribute_type:
                  value:
                    code: unknown_attribute_type
                    summary: Attribute Type OBS:Fake does not exist
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}/_history":
    get:
      summary: Get package commit history.
      description: Get package commit history.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: query
        name: deleted
        schema:
          type: string
        description: Set to `1` to allow to retrieve the revision history of a deleted
          package.
        example: 1
      - in: query
        name: limit
        schema:
          type: integer
        description: Limit the number of retrieved revision history elements to the
          specified number.
        example: 20
      - in: query
        name: meta
        schema:
          type: string
        description: Set to `1` to retrieve the revision history of the meta file
          (`_meta`) of the package.
        example: 1
      - in: query
        name: startbefore
        schema:
          type: integer
        description: Start the list of revision history elements before the given
          revision number.
        example: 124
      - in: query
        name: rev
        schema:
          type: string
        description: Return the revision entry for a specific revision number.
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [revisionlist.rng](../schema/revisionlist.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    rev:
                      type: string
                      xml:
                        attribute: true
                    vrev:
                      type: string
                      xml:
                        attribute: true
                    srcmd5:
                      type: string
                    version:
                      type: string
                    time:
                      type: string
                    user:
                      type: string
                    comment:
                      type: string
                    requestid:
                      type: string
                  xml:
                    name: revision
                xml:
                  name: revisionlist
                  wrapped: true
              examples:
                Two Revisions:
                  value:
                  - rev: 1
                    vrev: ''
                    srcmd5: d41d8cd98f00b204e9800998ecf8427e
                    version: ''
                    time: 1678364228
                    user: Admin
                    comment: package was deleted
                  - rev: 2
                    vrev: ''
                    srcmd5: d41d8cd98f00b204e9800998ecf8427e
                    version: ''
                    time: 1678364246
                    user: Admin
                    comment: package was undeleted
                rev Parameter Specified (rev = 1):
                  value:
                  - rev: 1
                    vrev: ''
                    srcmd5: d41d8cd98f00b204e9800998ecf8427e
                    version: ''
                    time: 1678364228
                    user: Admin
                    comment: package was deleted
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}/_meta":
    get:
      summary: Get package meta file.
      description: Get package meta file.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: query
        name: meta
        schema:
          type: string
        description: Set to `1` to force to retrieve the package metadata from the
          backend.
        example: 1
      - in: query
        name: rev
        schema:
          type: string
        description: Return the package metadata for a specific revision number.
        example: 42
      - in: query
        name: view
        schema:
          type: string
          enum:
          - blame
        description: With `view=blame` show information about who and when each line
          of the package metadata was changed.
        example: blame
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  name:
                    type: string
                    xml:
                      attribute: true
                  project:
                    type: string
                    xml:
                      attribute: true
                  title:
                    type: string
                  description:
                    type: string
                  devel:
                    type: object
                    properties:
                      project:
                        type: string
                        xml:
                          attribute: true
                      package:
                        type: string
                        xml:
                          attribute: true
                xml:
                  name: package
              examples:
                Simple Request:
                  value:
                    name: package_1
                    title: ''
                    description: Test package
                    devel:
                      project: home:Admin
                      package: package_2
                Request with view=blame:
                  value: |
                    11 (Admin        2023-03-09 12:14:58     1) <package name="package_1" project="home:Admin">
                    12 (Admin        2023-03-09 12:23:11     2)   <title></title>
                    63 (Admin        2023-03-13 16:16:05     3)   <description>Description 2 added...</description>
                    44 (Admin        2023-03-09 17:39:39     4)   <devel project="home:Admin" package="package_2"/>
                    11 (Admin        2023-03-09 12:14:58     5) </package>
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng).
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Bad Revision:
                  description: Passing `rev=invalid_revision`.
                  value:
                    code: 400
                    summary: bad revision 'invalid_revision'
                Not Boolean:
                  description: Passing `meta=not_boolean`.
                  value:
                    code: 400
                    summary: not boolean
                Unknown View:
                  description: Passing `view=invalid_view`.
                  value:
                    code: 400
                    summary: unknown view 'invalid_view'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng).
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
                Unknown Revision:
                  value:
                    code: 404
                    summary: revision '66' does not exist
                    details: 404 revision '66' does not exist
      tags:
      - Sources - Packages
    put:
      summary: Write package meta file.
      description: Write package's meta file. Create the package if it doesn't exist.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: query
        name: comment
        schema:
          type: string
        description: Comment that explains the changes you made in the meta file.
        example: Fix the title of the package.
      requestBody:
        description: Package meta definition.
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                name:
                  type: string
                  xml:
                    attribute: true
                project:
                  type: string
                  xml:
                    attribute: true
                title:
                  type: string
                description:
                  type: string
                devel:
                  type: object
                  properties:
                    project:
                      type: string
                      xml:
                        attribute: true
                    package:
                      type: string
                      xml:
                        attribute: true
              xml:
                name: package
            example:
              name: package_1
              title: ''
              description: Test package
              devel:
                project: home:Admin
                package: package_2
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                XML Not Valid:
                  value:
                    code: validation_failed
                    summary: 'package validation error: 1:11: FATAL: Extra content
                      at the end of the document'
                Project Name Mismatch:
                  value:
                    code: project_name_mismatch
                    summary: project name in xml data does not match resource path
                      component
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: |
            Forbidden.

            XML Schema used for body validation: [status.rng](../schema/status.rng).
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Not Authorized to Update the Project:
                  value:
                    code: update_project_not_authorized
                    summary: You are not authorized to update this project
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}?cmd=addcontainers":
    post:
      summary: Add docker container packages and repositories
      description: Add docker container packages and repositories using the maintained
        version of this package
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: query
        name: cmd
        required: true
        schema:
          type: string
          enum:
          - addcontainers
      - in: query
        name: extend_package_names
        schema:
          type: string
          enum:
          - 1
          example: 1
        description: |
          Set to consider the container name as a parsed combination of container project and container name.
          With format `[container name].[container project name]` where `:` was replaced by `_`,
          i.e. "kiwi-templates-Minimal.SUSE_Templates_Images_SLE-15-SP4".
      security:
      - basic_authentication: []
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}?cmd=branch":
    post:
      summary: Branch a package.
      description: |
        Create a source link from a package of an existing project to a
        new subproject of the requester's home project.
        The default target is `home:<user>:branches:<project>/<package>`.
        A possible defined devel project in the package meta data gets ignored.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: query
        name: target_project
        schema:
          type: string
        description: Target project name.
        example: home:Admin:subproject
      - in: query
        name: target_package
        schema:
          type: string
        description: Target package name.
        example: test
      - in: query
        name: add_repositories
        schema:
          type: string
          enum:
          - 1
        description: Set to add repositories based on source project (default for
          new projects).
      - in: query
        name: add_repositories_rebuild
        schema:
          type: string
          enum:
          - transitive
          - direct
          - local
          - copy
        description: Set one of the defined rebuild policies for new repositories
          (`transitive`, `direct` or `local`) or copy it from the source project (`copy`)
      - in: query
        name: add_repositories_block
        schema:
          type: string
          enum:
          - all
          - local
          - never
        description: Set to use defined block policy for new repositories.
      - in: query
        name: autocleanup
        schema:
          type: string
          enum:
          - 1
        description: Set to enable autocleanup on the branched project.
      - in: query
        name: dryrun
        schema:
          type: string
          enum:
          - 1
        description: Set to run without making action, just report results.
      - in: query
        name: extend_package_names
        schema:
          type: string
          enum:
          - 1
        description: Set to extend package and repository names to allow multiple
          instances of the same package.
      - in: query
        name: ignoredevel
        schema:
          type: string
          enum:
          - 1
        description: Set to ignore validation and resolving of devel package or devel
          project definition.
      - in: query
        name: force
        schema:
          type: string
        description: 'Set to 1 to allow overwriting of a pre-existing package.

          '
        example: 1
      - in: query
        name: rev
        schema:
          type: string
        description: Set to branch against a specific revision.
      - in: query
        name: maintenance
        schema:
          type: string
          enum:
          - 1
        description: Set to explicitly ask for a maintenance branch.
      - in: query
        name: missingok
        schema:
          type: string
          enum:
          - 1
        description: Set to create the target package if it does not exist.
      - in: query
        name: newinstance
        schema:
          type: string
          enum:
          - 1
        description: Set to have the target package exist only via project links,
          but the link should point to the given project.
      - in: query
        name: noaccess
        schema:
          type: string
          enum:
          - 1
        description: Set to make the newly created project be read protected. This
          won't work if the project already exists.
      - in: query
        name: noservice
        schema:
          type: string
          enum:
          - 1
        description: Set to not run source services on branching.
      - in: query
        name: request
        schema:
          type: string
        description: Creates a branch project based on the provided request number.
      - in: query
        name: update_path_elements
        schema:
          type: string
          enum:
          - 1
        description: Set to update all the path elements if needed (used repositories
          depend on each other).
      - in: query
        name: update_project_attribute
        schema:
          type: string
        default: OBS:UpdateProject
        description: Set a different Update Project attribute.
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example: |
                <status code="ok">
                  <summary>Ok</summary>
                  <data name="targetproject">home:Admin:subproject</data>
                  <data name="targetpackage">test</data>
                  <data name="sourceproject">home:Admin</data>
                  <data name="sourcepackage">ctris</data>
                </status>
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Double Branch:
                  value:
                    code: double_branch_package
                    summary: 'branch target package already exists: home:Admin:subproject/test'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Forbidden.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: cmd_execution_no_permission
                summary: no permission to modify package test in project home:Admin
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}?cmd=collectbuildenv":
    post:
      summary: Collect build environment information.
      description: |
        Creates _buildenv files based on origin package builds. This can be used
        to re-use exact older build enviroment even when further new binary packages
        got added. For example to re-build an old maintenance update in the same way.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: query
        name: oproject
        required: true
        schema:
          type: string
        description: Origin project. The project that the Origin Package will have
          the build information copied from.
      - in: query
        name: opackage
        schema:
          type: string
        description: Origin package. Build environment information of the package
          that will be copied.
      - in: query
        name: orev
        schema:
          type: string
        description: Origin package revision. Revision of the Origin Package on which
          to base the build environment collection.
      - in: query
        name: comment
        schema:
          type: string
        description: Comment for the new revision.
      responses:
        '200':
          description: OK
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  rev:
                    type: string
                    xml:
                      attribute: true
                  vrev:
                    type: string
                    xml:
                      attribute: true
                  srcmd5:
                    type: string
                  version:
                    type: string
                  time:
                    type: string
                  user:
                    type: string
                  comment:
                    type: string
                  requestid:
                    type: string
                xml:
                  name: revision
              examples:
                Copy:
                  value:
                    rev: 3
                    vrev: 3
                    srcmd5: d41d8cd98f00b204e9800998ecf8427e
                    version: 20220902.37b45c2
                    time: 1678785078
                    user: Admin
                    comment: Copying the build environment from origin
                    requestid:
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Missing Parameter:
                  value:
                    code: missing_parameter
                    summary: Required Parameter opackage missing
                Bad Revision:
                  value:
                    code: 400
                    origin: backend
                    summary: bad revision '-3'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Forbidden.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: cmd_execution_no_permission
                summary: no permission to modify package test in project home:Admin
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}?cmd=commit":
    post:
      summary: Commit package changes.
      description: Create a new revision of the package, committing package changes.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: query
        name: comment
        schema:
          type: string
        description: Provide a comment to the revision in history.
        example: This was changed to improve foobar.
      - in: query
        name: linkrev
        schema:
          type: string
        description: |
          Link revision in base package. Set to `base` to use the commit revision.

          Used together with the `keeplink` parameter.
        example: base
      - in: query
        name: rev
        schema:
          type: string
        description: Revision of the package.
      - in: query
        name: keeplink
        schema:
          type: string
          enum:
          - 1
          - 0
        default: 0
        description: Set to `1` to preserve the link (`_link` file) on the source.
        example: 1
      - in: query
        name: repairlink
        schema:
          type: string
          enum:
          - 1
          - 0
        default: 0
        description: |
          Set to `1` to solve conflicts.

          Used together with `keeplink` parameter.
        example: 1
      responses:
        '200':
          description: OK. Revision created with this commit.
          content:
            text/xml:
              schema:
                type: object
                properties:
                  rev:
                    type: string
                    xml:
                      attribute: true
                  vrev:
                    type: string
                    xml:
                      attribute: true
                  srcmd5:
                    type: string
                  version:
                    type: string
                  time:
                    type: string
                  user:
                    type: string
                  comment:
                    type: string
                  requestid:
                    type: string
                xml:
                  name: revision
              example:
                rev: 86
                vrev: 86
                srcmd5: 55452f7326fe90cb67ca96bf9e9ffabc
                version: 2.10~pre
                time: 1665060711
                user: Admin
                comment:
                requestid:
        '400':
          description: Bad Request.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Not Boolean:
                  description: Passing a value different than `0` or `1` to `keeplink`,
                    for example.
                  value: |
                    <xml version="1.0" encoding="UTF-8"?>
                    <status code="400" origin="backend">
                      <summary>not boolean</summary>
                    </status>
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Forbidden.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: cmd_execution_no_permission
                summary: no permission to modify package test in project home:Admin
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}?cmd=commitfilelist":
    post:
      summary: Commit package changes from a filelist.
      description: |
        Create a new commit using defined files already uploaded to the repository.

        This requires a directory xml providing file name and md5 as body.
        It is recommended to use the `withvalidate` parameter and add the
        sha256 sum including "sha256:" prefix in "hash" attribute for security reasons.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: query
        name: comment
        schema:
          type: string
        description: Provide a comment to the revision
        example: This was changed to improve foobar.
      - in: query
        name: linkrev
        schema:
          type: string
        description: |
          Link revision in base package. Set to `base` to use the commit revision.

          Used together with the `keeplink` parameter.
        example: base
      - in: query
        name: rev
        schema:
          type: string
        description: Revision of the package.
      - in: query
        name: keeplink
        schema:
          type: string
          enum:
          - 1
          - 0
        default: 0
        description: Set to `1` to preserve the link (`_link` file) on the source.
        example: 1
      - in: query
        name: repairlink
        schema:
          type: string
          enum:
          - 1
          - 0
        default: 0
        description: |
          Set to `1` to solve conflicts.

          Used together with `keeplink` parameter.
        example: 1
      - in: query
        name: withvalidate
        schema:
          type: string
          enum:
          - 1
          - 0
        default: 0
        description: Set to `1` to activate sha validation code (optional, but recommended)
        example: 1
      responses:
        '200':
          description: OK. Revision created with this commit.
          content:
            text/xml:
              schema:
                type: object
                properties:
                  rev:
                    type: string
                    xml:
                      attribute: true
                  vrev:
                    type: string
                    xml:
                      attribute: true
                  srcmd5:
                    type: string
                  version:
                    type: string
                  time:
                    type: string
                  user:
                    type: string
                  comment:
                    type: string
                  requestid:
                    type: string
                xml:
                  name: revision
              example:
                rev: 86
                vrev: 86
                srcmd5: 55452f7326fe90cb67ca96bf9e9ffabc
                version: 2.10~pre
                time: 1665060711
                user: Admin
                comment:
                requestid:
        '400':
          description: Bad Request.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Not Boolean:
                  description: Passing a value different than `0` or `1` to `keeplink`,
                    for example.
                  value: |
                    <xml version="1.0" encoding="UTF-8"?>
                    <status code="400" origin="backend">
                      <summary>not boolean</summary>
                    </status>
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Forbidden.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: cmd_execution_no_permission
                summary: no permission to modify package test in project home:Admin
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}?cmd=copy":
    post:
      summary: Copy packages.
      description: "Copy packages. \nAdditionally you can copy the binaries and/or
        the commit history.\nThe copy can be done synchronously or asynchronously.\nYou
        can leave a comment in the package revision.\n"
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: query
        name: rev
        schema:
          type: string
          enum:
          - upload
          - repository
        example: repository
      - in: query
        name: opackage
        schema:
          type: string
        description: Origin package. The package that will be copied.
      - in: query
        name: oproject
        schema:
          type: string
        description: Origin project. The project that the Origin Package will be copied
          from.
      - in: query
        name: withbinaries
        schema:
          type: string
          enum:
          - 1
          - 0
        description: Set to '1' to copy binaries that have been build by the origin
          package too.
      - in: query
        name: makeolder
        schema:
          type: string
          enum:
          - 1
          - 0
        description: Set to '1' to make the target older, the source vrev is bumped
          by two numbers and target by one. Setting both makeolder and makeoriginolder
          will return an error back.
      - in: query
        name: makeoriginolder
        schema:
          type: string
          enum:
          - 1
          - 0
        description: Set to '1' to make the origin older, the source vrev is extended
          and target is guaranteed to be newer. Setting both makeoriginolder and makeolder
          will return an error back.
      - in: query
        name: nodelay
        schema:
          type: string
          enum:
          - 1
          - 0
        description: Set to '1' to do the copying synchronously. By default the copying
          is done asynchronously.
      - in: query
        name: withhistory
        schema:
          type: string
          enum:
          - 1
          - 0
        description: Set to '1' to copy the package commit history.
      - in: query
        name: noservice
        schema:
          type: string
          enum:
          - 1
          - 0
        description: Set to '1' to avoid running the services after the copy.
      - in: query
        name: comment
        schema:
          type: string
        description: Comment for the new revision.
      responses:
        '200':
          description: OK
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  rev:
                    type: string
                    xml:
                      attribute: true
                  srcmd5:
                    type: string
                xml:
                  name: revision
                  wrapped: true
              examples:
                Repository:
                  value:
                    srcmd5: d41d8cd98f00b204e9800998ecf8427e
                Upload:
                  value:
                    srcmd5: d41d8cd98f00b204e9800998ecf8427e
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}?cmd=createSpecFileTemplate":
    post:
      deprecated: true
      summary: Create a RPM Spec File Template for a specified package.
      description: |
        Create a RPM Spec File Template for a specified package. This endpoint
        is broken and will be removed.
        See [https://github.com/openSUSE/open-build-service/issues/9707](https://github.com/openSUSE/open-build-service/issues/9707)
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}?cmd=deleteuploadrev":
    post:
      summary: Delete all uploaded sources which are not committed yet.
      description: Removes all changes made to the upload revision and reverts to
        last committed revision
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Forbidden.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: cmd_execution_no_permission
                summary: no permission to modify package ctris in project home:Admin
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}?cmd=diff":
    post:
      summary: Returns the source diff of a package.
      description: |
        Without parameters, return the diff of the last change made to the package.
        Despite using the method `POST`, this endpoint doesn't alter any data.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: query
        name: cacheonly
        schema:
          type: string
          enum:
          - 1
          - 0
        description: |
          Set to `1` to retrieve a diff only if the diff is already cached.

          If the diff is not cached return a 412 "Precondition failed" error.
        example: 1
      - in: query
        name: expand
        schema:
          type: string
          enum:
          - 1
          - 0
        description: Set to `1` to expand any link before diffing.
        example: 1
      - in: query
        name: file
        schema:
          type: string
        description: Limit diff to the given file name.
        example: hello_world.spec
        deprecated: true
      - in: query
        name: file[]
        schema:
          type: array
          elements:
            type: string
        description: Limit diff to the given file names.
        example:
        - hello_world.spec
        - my_program.c
      - in: query
        name: filelimit
        schema:
          type: string
        description: |
          Limit the size of the diff to this amount of lines.

          By default it takes a built-in value of 200.

          Set to `0` to disable the limit.
        example: 20
      - in: query
        name: linkrev
        schema:
          type: string
        description: Link revision in base package. Set to `base` to use the commit
          revision.
        example: base
      - in: query
        name: meta
        schema:
          type: string
          enum:
          - 1
          - 0
        description: Set to `1` to diff meta data instead of sources.
        example: 1
      - in: query
        name: missingok
        schema:
          type: string
          enum:
          - 1
          - 0
        description: Set to `1` to diff against an inexistent origin.
        example: 1
      - in: query
        name: nodiff
        schema:
          type: string
          enum:
          - 1
          - 0
        description: Set to `1` to only show changed files, and not details inside
          files.
        example:
      - in: query
        name: olinkrev
        schema:
          type: string
        description: Link revision of the origin package.
      - in: query
        name: onlyissues
        schema:
          type: string
          enum:
          - 1
          - 0
        description: Set to `1` to show no source diff, only the tracker issues and
          their change state.
        example: 1
      - in: query
        name: orev
        schema:
          type: string
        description: Old revision.
      - in: query
        name: opackage
        schema:
          type: string
        description: Old package.
      - in: query
        name: oproject
        schema:
          type: string
        description: Old project.
      - in: query
        name: rev
        schema:
          type: string
        description: Revision of the package.
      - in: query
        name: tarlimit
        schema:
          type: string
        description: Limit the size of the diff of tar files to this amount of lines.
        example: 100
      - in: query
        name: unified
        schema:
          type: string
          enum:
          - 1
          - 0
        description: |
          Set to `1` to use unified diff format. Same as setting `view=unified`.

          Setting `unified` to `1` takes precedence on the setting of the `view` parameter.

          See `view` parameter for details on the unified format.
        example: 1
      - in: query
        name: view
        schema:
          type: string
          enum:
          - unified
          - xml
        description: |
          Set the format of the diff being returned.

          Don't pass the parameter for custom diff format.

          Set to `unified` for unified content.

          Set to `xml` for structured content in a `sourcediff` xml element.
        example: unified
      - in: query
        name: withissues
        schema:
          type: string
          enum:
          - 1
          - 0
        description: Set to `1` to include parsed issue tracker issues and their change
          state.
        example: 1
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: string
              examples:
                Without parameters. One character change:
                  description: Diff of adding an exclamation mark.
                  value: |2

                    spec files:
                    -----------
                    --- hello_world.spec
                    +++ hello_world.spec
                    @@ -13,7 +13,7 @@
                     %build
                     cat > hello_world.sh <<EOF
                     #!/usr/bin/bash
                    -echo Hello world
                    +echo Hello world!
                     EOF

                     %install
                With view=unified:
                  value: |
                    Index: hello_world.spec
                    ===================================================================
                    --- hello_world.spec (revision 2)
                    +++ hello_world.spec (revision 3)
                    @@ -13,7 +13,7 @@
                     %build
                     cat > hello_world.sh <<EOF
                     #!/usr/bin/bash
                    -echo Hello world
                    +echo Hello world!
                     EOF

                     %install
                With view=xml:
                  value: |
                    <?xml version="1.0" encoding="UTF-8"?>
                    <sourcediff key="e27d928c027cca122f604ad5240e4fbc">
                      <old project="home:Admin" package="hello_world" rev="2" srcmd5="3793527d5cd7aaac8e52a8b94e3c1ffc"/>
                      <new project="home:Admin" package="hello_world" rev="3" srcmd5="672795214454d08abd9143893d673e38"/>
                      <files>
                        <file state="changed">
                          <old name="hello_world.spec" md5="dcd026ba76f1723ea8292ad13579aa84" size="463"/>
                          <new name="hello_world.spec" md5="40f5f87134e806a20123821a3442f176" size="464"/>
                          <diff lines="9">@@ -13,7 +13,7 @@
                     %build
                     cat &gt; hello_world.sh &lt;&lt;EOF
                     #!/usr/bin/bash
                    -echo Hello world
                    +echo Hello world!
                     EOF

                     %install
                    </diff>
                        </file>
                      </files>
                    </sourcediff>
                With nodiff=1:
                  description: Passing `nodiff=1` only shows changed files.
                  value: |2

                    spec files:
                    -----------
                    --- hello_world.spec
                    +++ hello_world.spec
        '400':
          description: Bad Request.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Not Boolean:
                  description: Passing a value different than `0` or `1` to `nodiff`,
                    for example.
                  value:
                    code: 400
                    origin: backend
                    summary: not boolean
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
        '412':
          description: |
            Precondition Failed

            With `cacheonly=1`, and the diff is still not cached.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: 412
                origin: backend
                summary: diff not yet in cache
                details: 412 diff not yet in cache
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}?cmd=fork":
    post:
      summary: Create a fork of a package taking the source from the scmsync parameter
      description: |
        Create a fork of a package taking the source from the scmsync parameter.
        The target project is by default below home:<user>:branches namespace.
        The target project will be setup to include the source project repository setup.
        The source project must exists, the source package may not exist.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - name: scmsync
        description: Checkout url for the source
        in: query
        required: true
        schema:
          type: string
      - name: target_project
        description: target project name, optional (default home:<user>:branches:<project>)
        in: query
        schema:
          type: string
      - name: target_package
        description: target package name
        in: query
        schema:
          type: string
      - in: query
        name: force
        schema:
          type: string
        description: 'Set to 1 to allow overwriting of a pre-existing package.

          '
        example: 1
      - name: add_repositories_rebuild
        in: query
        schema:
          type: string
          enum:
          - transitive
          - direct
          - local
          - copy
        description: Set one of the defined rebuild policies for new repositories
          (`transitive`, `direct` or `local`) or copy it from the source project (`copy`)
      - in: query
        name: add_repositories_block
        schema:
          type: string
          enum:
          - all
          - local
          - never
        description: Set to use defined block policy for new repositories.
      responses:
        '200':
          description: ok
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
                data:
                - home:Admin
                - hello_world
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                xml:
                  name: status
              example:
                code: not_found
                summary: project not found
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}?cmd=getprojectservices":
    post:
      summary: List all services related to a package.
      description: |
        List all services defined in the project for this package.

        Despite using the method `POST`, this endpoint doesn't alter any data.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: query
        name: cmd
        required: true
        schema:
          type: string
          enum:
          - getprojectservices
      responses:
        '200':
          description:
          content:
            application/xml; charset=utf-8:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                      xml:
                        attribute: true
                    mode:
                      type: string
                      xml:
                        attribute: true
                  xml:
                    name: service
                xml:
                  wrapped: true
                  name: services
              example:
              - name: format_spec_file
                mode: localonly
              - name: download_files
                mode: disabled
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}?cmd=instantiate":
    post:
      summary: Instantiate a new package through a project link.
      description: |
        Instantiate a new package in the specified project based on the packages inherited
        through a linked project (local). The new package will be a branch of the package
        that lives in the linked project unless the `makeoriginolder` parameter is provided.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: query
        name: makeoriginolder
        schema:
          type: string
        description: |
          Instead of creating a branch of the package, it will instantiate a copy
          of the package and extend the `vrev` to ensure the copy represents a
          newer version of the package.
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Forbidden
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: 403
                summary: package is already intialized here
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Not Found:
                  value:
                    code: unknown_package
                    summary: 'Package not found: openSUSE:Leap:15.0:Update/foo'
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}?cmd=linkdiff":
    post:
      summary: Return the diff of the linked package.
      description: |
        For a package with a link to another package, return the diff of the linked package.

        Despite using the method `POST`, this endpoint doesn't alter any data.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: query
        name: file
        schema:
          type: string
        description: Limit diff to the given file name.
        example: hello_world.spec
        deprecated: true
      - in: query
        name: file[]
        schema:
          type: array
          elements:
            type: string
        description: Limit diff to the given file names.
        example:
        - hello_world.spec
        - my_program.c
      - in: query
        name: filelimit
        schema:
          type: string
        description: |
          Limit the size of the diff to this amount of lines.

          By default it takes a built-in value of 200.

          Set to `0` to disable the limit.
        example: 20
      - in: query
        name: linkrev
        schema:
          type: string
        description: Link revision in base package. Set to `base` to use the commit
          revision.
        example: base
      - in: query
        name: onlyissues
        schema:
          type: string
          enum:
          - 1
          - 0
        description: Set to `1` to show no source diff, only the tracker issues and
          their change state.
        example: 1
      - in: query
        name: rev
        schema:
          type: string
        description: Revision of the package.
      - in: query
        name: tarlimit
        schema:
          type: string
        description: Limit the size of the diff of tar files to this amount of lines.
        example: 100
      - in: query
        name: unified
        schema:
          type: string
          enum:
          - 1
          - 0
        description: |
          Set to `1` to use unified diff format. Same as setting `view=unified`.

          Setting `unified` to `1` takes precedence on the setting of the `view` parameter.

          See `view` parameter for details on the unified format.
        example: 1
      - in: query
        name: view
        schema:
          type: string
          enum:
          - unified
          - xml
        description: |
          Set the format of the diff being returned.

          Don't pass the parameter for custom diff format.

          Set to `unified` for unified content.

          Set to `xml` for structured content in a `sourcediff` xml element.
        example: unified
      - in: query
        name: withissues
        schema:
          type: string
          enum:
          - 1
          - 0
        description: Set to `1` to include parsed issue tracker issues and their change
          state.
        example: 1
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: string
              examples:
                Without parameters. One word change:
                  value: |2

                    spec files:
                    -----------
                    --- hello_world.spec
                    +++ hello_world.spec
                    @@ -1,7 +1,7 @@
                     Name:       hello_world
                     Version:    1
                     Release:    1
                    -Summary:    Most simple RPM package
                    +Summary:    Most simple RPM package branched
                     License:    CC0-1.0

                     %description
                With view=unified:
                  value: |
                    Index: hello_world.spec
                    ===================================================================
                    --- hello_world.spec (revision d1f45c7c7b5bf91353a4ec2042cbc53c)
                    +++ hello_world.spec (revision f03477e1b083c6499ee2c195e3340cdf)
                    @@ -1,7 +1,7 @@
                     Name:       hello_world
                     Version:    1
                     Release:    1
                    -Summary:    Most simple RPM package
                    +Summary:    Most simple RPM package branched
                     License:    CC0-1.0

                     %description
                With view=xml:
                  value: |
                    <?xml version="1.0" encoding="UTF-8"?>
                    <sourcediff key="6eac2a5a0ac0e75ba854a2569b3b24f8">
                      <old project="home:Admin" package="hello_world" rev="d1f45c7c7b5bf91353a4ec2042cbc53c" srcmd5="d1f45c7c7b5bf91353a4ec2042cbc53c"/>
                      <new project="home:Admin:branches:home:Admin" package="hello_world" rev="f03477e1b083c6499ee2c195e3340cdf" srcmd5="f03477e1b083c6499ee2c195e3340cdf"/>
                      <files>
                        <file state="changed">
                          <old name="hello_world.spec" md5="40f5f87134e806a20123821a3442f176" size="464"/>
                          <new name="hello_world.spec" md5="5729ac8ecab5452b777b4a596332a6f4" size="473"/>
                          <diff lines="9">@@ -1,7 +1,7 @@
                     Name:       hello_world
                     Version:    1
                     Release:    1
                    -Summary:    Most simple RPM package
                    +Summary:    Most simple RPM package branched
                     License:    CC0-1.0

                     %description
                    </diff>
                        </file>
                      </files>
                    </sourcediff>
        '400':
          description: Bad Request.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Not Boolean:
                  description: Passing a value different than `0` or `1` to `unified`,
                    for example.
                  value: |
                    <xml version="1.0" encoding="UTF-8"?>
                    <status code="400" origin="backend">
                      <summary>not boolean</summary>
                    </status>
                Not a Link:
                  description: The package doesn't cotain a `_link` file.
                  value: |
                    <xml version="1.0" encoding="UTF-8"?>
                    <status code="400" origin="backend">
                      <summary>not a link</summary>
                    </status>
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}?cmd=linktobranch":
    post:
      summary: Turn link into a branch.
      description: Convert a plain source link into a full branch.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: query
        name: linkrev
        schema:
          type: string
        description: 'Link revision in base package. Set to `base` to use the commit
          revision.

          '
        example: base
      - in: query
        name: rev
        schema:
          type: string
        description: Revision of the package.
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Not A Link:
                  value:
                    code: 400
                    origin: backend
                    summary: package is not a link
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Forbidden.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: cmd_execution_no_permission
                summary: no permission to modify package test in project home:Admin
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}?cmd=mergeservice":
    post:
      summary: Expand all server side generated files and adapt the _service file.
      description: |
        This command executes the following steps:
        - Expand all server side generated files. Those are the files created by the services, starting with `_service:`.
        - Modify The `_service` file:
          - Preserve all those services which have the `mode` attribute set to `buildtime`.
          - Remove the `_service` file only if there aren't any services with the `mode` attribute set to `buildtime`.

        An example of a `_service` file, before:
          ```
          <services>
            <service name="obs_scm">
              <param name="versionformat">2.11~alpha.%ci.%h</param>
              <param name="url">https://github.com/openSUSE/open-build-service.git</param>
              <param name="scm">git</param>
              <param name="revision">master</param>
              <param name="extract">dist/obs-server.spec</param>
            </service>
            <service name="tar" mode="buildtime"/>
            <service name="recompress" mode="buildtime">
              <param name="compression">xz</param>
              <param name="file">*.tar</param>
            </service>
          </services>
          ```

        An example of a `_service` file, after this command is run:
          ```
          <services>
            <service name="tar" mode="buildtime"/>
            <service name="recompress" mode="buildtime">
              <param name="compression">xz</param>
              <param name="file">*.tar</param>
            </service>
          </services>
          ```
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: query
        name: comment
        schema:
          type: string
        description: Set a comment.
        example: Merge services.
      responses:
        '200':
          description: Revision of the merge of the service file.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  rev:
                    type: string
                    xml:
                      attribute: true
                  vrev:
                    type: string
                    xml:
                      attribute: true
                  srcmd5:
                    type: string
                  version:
                    type: string
                  time:
                    type: string
                  user:
                    type: string
                  comment:
                    type: string
                  requestid:
                    type: string
                xml:
                  name: revision
              example:
                rev: 8
                vrev: 8
                srcmd5: beb268dc9f786efaa585ac07e17fea47
                version: 2.10~pre
                time: 1665060711
                user: Admin
                comment:
                requestid:
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Package Without _service file:
                  value:
                    code: 400
                    origin: backend
                    summary: package has no service
                Services Running:
                  value:
                    code: 400
                    origin: backend
                    summary: service in progress
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Forbidden.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: cmd_execution_no_permission
                summary: no permission to modify package test in project home:Admin
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}?cmd=rebuild":
    post:
      deprecated: true
      summary: Trigger a package rebuild.
      description: |
        Triggers a rebuild of the package. This endpoint
        is broken and will be removed.
        See [`POST /build/{project_name}?cmd=rebuild`](#/Build/post_build__project_name__cmd_rebuild).
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}?cmd=release":
    post:
      summary: Release sources and binaries of a specified package.
      description: |
        Release sources and binaries of the specified package. If no release target is specified through
        the optional parameters, it will trigger the release for all manual release targets
        set on the specified project repository definitions for the specified package.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: query
        name: target_project
        schema:
          type: string
        description: |
          The name of the release target project. Specify in which project the sources and
          binaries are going to be released. You need to provide the `target_repository`
          parameter as well.
        example: OBS:Server:2.10
      - in: query
        name: target_repository
        schema:
          type: string
        description: |
          The name of the release target repository. Specify in which repository the sources and
          binaries are going to be released. You need to provide the `target_project`
          parameter as well.
        example: openSUSE_Tumbleweed
      - in: query
        name: repository
        schema:
          type: string
        description: 'Limit the release to a certain repository, set on the project
          repository definitions.

          '
        example: openSUSE_Tumbleweed
      - in: query
        name: setrelease
        schema:
          type: string
        description: 'If this parameter is present, the release will be tagged with
          this parameter''s value.

          '
        example: Build8.18
      - in: query
        name: arch
        schema:
          type: string
        description: The name of the architecture. Limit the release to a certain
          architecture.
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Missing Parameter:
                  value:
                    code: missing_parameter
                    summary: release action with specified target project needs also
                      "repository" and "target_repository" parameter
        '403':
          description: Forbidden
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: cmd_execution_no_permission
                summary: no permission to execute command 'release' for package hello_world
                  in project home:foo
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}?cmd=remove_flag":
    post:
      summary: Remove a specific flag.
      description: Remove a specific flag for a package.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: query
        name: flag
        required: true
        schema:
          type: string
          enum:
          - access
          - binarydownload
          - build
          - debuginfo
          - lock
          - publish
          - sourceaccess
          - useforbuild
        description: Name of the flag to be removed.
        example: build
      - in: query
        name: repository
        schema:
          type: string
        description: Repository for which the flag is to be removed.
        example: openSUSE_Tumbleweed
      - in: query
        name: arch
        schema:
          type: string
        description: Architecture for which the flag is to be removed.
        example: x86_64
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Missing Parameter flag:
                  value:
                    code: missing_parameter
                    summary: Required Parameter flag missing
                Invalid flag:
                  value:
                    code: invalid_flag
                    summary: 'Error: unknown flag type ''RANDOM_STRING'' not found.'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Forbidden
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: cmd_execution_no_permission
                summary: no permission to modify package test in project home:Admin
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}?cmd=runservice":
    post:
      summary: Trigger run of defined services.
      description: Trigger run of defined services in the `_service` file.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: query
        name: comment
        schema:
          type: string
        description: Set a comment.
        default: trigger service run
        example: Trigger services once more.
      - in: query
        name: user
        schema:
          type: string
        description: Set the user who triggers the services.
        example: Iggy
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Package is _project:
                  value:
                    code: 400
                    origin: backend
                    summary: triggerservicerun does not work with _project
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Forbidden.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                No Permission to Run Services:
                  value:
                    code: cmd_execution_no_permission
                    summary: no permission to modify package test in project home:Admin
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
                No Source Service Defined:
                  value:
                    code: not_found
                    summary: |
                      <status code="404">
                        <summary>no source service defined!</summary>
                        <details>404 no source service defined!</details>
                      </status>
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}?cmd=servicediff":
    post:
      summary: Return the diff of changes made by a service run.
      description: |
        Return the diff of changes made by a service run.

        Despite using the method `POST`, this endpoint doesn't alter any data.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: query
        name: file
        schema:
          type: string
        description: Limit diff to the given file name.
        example: hello_world.spec
        deprecated: true
      - in: query
        name: file[]
        schema:
          type: array
          elements:
            type: string
        description: Limit diff to the given file names.
        example:
        - hello_world.spec
        - my_program.c
      - in: query
        name: filelimit
        schema:
          type: string
        description: |
          Limit the size of the diff to this amount of lines.

          By default it takes a built-in value of 200.

          Set to `0` to disable the limit.
        example: 20
      - in: query
        name: onlyissues
        schema:
          type: string
          enum:
          - 1
          - 0
        description: Set to `1` to show no source diff, only the tracker issues and
          their change state.
        example: 1
      - in: query
        name: rev
        schema:
          type: string
        description: Revision of the package.
      - in: query
        name: tarlimit
        schema:
          type: string
        description: Limit the size of the diff of tar files to this amount of lines.
        example: 100
      - in: query
        name: unified
        schema:
          type: string
          enum:
          - 1
          - 0
        description: |
          Set to `1` to use unified diff format. Same as setting `view=unified`.

          Setting `unified` to `1` takes precedence on the setting of the `view` parameter.

          See `view` parameter for details on the unified format.
        example: 1
      - in: query
        name: view
        schema:
          type: string
          enum:
          - unified
          - xml
        description: |
          Set the format of the diff being returned.

          Don't pass the parameter for custom diff format.

          Set to `unified` for unified content.

          Set to `xml` for structured content in a `sourcediff` xml element.
        example: unified
      - in: query
        name: withissues
        schema:
          type: string
          enum:
          - 1
          - 0
        description: Set to `1` to include parsed issue tracker issues and their change
          state.
        example: 1
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: string
              examples:
                No Changes:
                  description: If the last run of services didn't change the sources,
                    return empty.
                  value: ''
                Without any value for view parameter:
                  value: |
                    new:
                    ----
                      _service:obs_scm:obs-api-testsuite-rspec.spec

                    spec files:
                    -----------

                    ++++++ new spec file:
                    --- _service:obs_scm:obs-api-testsuite-rspec.spec
                    +++ _service:obs_scm:obs-api-testsuite-rspec.spec
                    @@ -0,0 +1,73 @@
                    +#
                    +# spec file for package obs-api-testsuite-rspec
                    +#
                    +
                    +
                    +Name:           obs-api-testsuite-rspec
                    +Version:        2.10~pre
                    +Release:        0
                    +Summary:        The Open Build Service -- RSpec test suite
                    +License:        GPL-2.0-only OR GPL-3.0-only
                    +Group:          Productivity/Networking/Web/Utilities
                    +Url:            http://www.openbuildservice.org
                    +Source0:        open-build-service-%version.tar.xz
                    +BuildRequires:  obs-api-testsuite-deps
                    +# rspec specific dependencies
                    +BuildRequires:  chromedriver
                    +BuildRequires:  xorg-x11-fonts
                    +BuildRoot:      %{_tmppath}/%{name}-%{version}-build
                    +%if 0%{?disable_obs_frontend_test_suite} || 0%{?disable_obs_test_suite}
                    +ExclusiveArch:  nothere
                    +%else
                    +ExclusiveArch:  x86_64
                    +%endif
                    +
                    +
                    +%description
                    +Running the RSpec test suite of the OBS frontend independently
                    +of packaging the application
                    +
                    +%prep
                    +%setup -q -n open-build-service-%{version}
                    +
                    +%build
                    +# run in build environment
                    +pushd src/backend/
                    +rm -rf build
                    +ln -sf /usr/lib/build build
                    +popd
                    +
                    +pushd src/api
                    +# configure to the bundled gems
                    +bundle --local --path %_libdir/obs-api/
                    +
                    +./script/prepare_spec_tests.sh
                    +
                    +export RAILS_ENV=test
                    +bin/rake db:setup
                    +bin/rails assets:precompile
                    +
                    +bin/rspec -f d --exclude-pattern 'spec/db/**/*_spec.rb'
                    +
                    +# now migration tests (if they fail they create tons of follow up errors, so run them last)
                    +bin/rspec -f d -P 'spec/db/**/*_spec.rb'
                    +
                    +%install
                    +
                    +# no result
                    +%files
                    +
                    +%changelog
                With view=unified:
                  value: |
                    Index: _service:obs_scm:obs-api-testsuite-rspec.spec
                    ===================================================================
                    --- _service:obs_scm:obs-api-testsuite-rspec.spec (added)
                    +++ _service:obs_scm:obs-api-testsuite-rspec.spec (revision c63d8550ea46703ce56000277de12d1c)
                    @@ -0,0 +1,73 @@
                    +#
                    +# spec file for package obs-api-testsuite-rspec
                    +#
                    [...]
                    +%changelog
                    Index: _service:obs_scm:obs-server.spec
                    ===================================================================
                    --- _service:obs_scm:obs-server.spec (added)
                    +++ _service:obs_scm:obs-server.spec (revision c63d8550ea46703ce56000277de12d1c)
                    @@ -0,0 +1,1120 @@
                    +#
                    +# spec file for package obs-server
                    [...]
                    +Recommends:     yum yum-metadata-parser repoview dpkg
                    +Recommends:     deb >= 1.5
                    (921 more lines skipped)
                    Index: _service:obs_scm:open-build-service-2.11~alpha.20221007T165328.9f99a31a.obscpio
                    ===================================================================
                    Binary file _service:obs_scm:open-build-service-2.11~alpha.20221007T165328.9f99a31a.obscpio (revision c63d8550ea46703ce56000277de12d1c) added
                    Index: _service:obs_scm:open-build-service.obsinfo
                    ===================================================================
                    --- _service:obs_scm:open-build-service.obsinfo (added)
                    +++ _service:obs_scm:open-build-service.obsinfo (revision c63d8550ea46703ce56000277de12d1c)
                    @@ -0,0 +1,4 @@
                    +name: open-build-service
                    +version: 2.11~alpha.20221007T165328.9f99a31a
                    +mtime: 1665154408
                    +commit: 9f99a31afe0ab435c1dd1d02be5f52fe4425b00f
            text/xml:
              schema:
                type: object
                properties:
                  name:
                    key: string
                    xml:
                      attribute: true
                xml:
                  name: sourcediff
              examples:
                With view=xml:
                  value: |
                    <?xml version="1.0" encoding="UTF-8"?>
                    <sourcediff key="1634c0e9b7625f79874458d437a4f225">
                      <old project="home:Admin" package="test" rev="62be45f382bfef30d5028b3f3161d4fc" srcmd5="62be45f382bfef30d5028b3f3161d4fc"/>
                      <new project="home:Admin" package="test" rev="c63d8550ea46703ce56000277de12d1c" srcmd5="c63d8550ea46703ce56000277de12d1c"/>
                      <files>
                        <file state="added">
                          <new name="_service:obs_scm:obs-api-testsuite-rspec.spec" md5="4fab7cf67a4293a22778d2062239864c" size="2069"/>
                          <diff lines="74">@@ -0,0 +1,73 @@
                    +#
                    +# spec file for package obs-api-testsuite-rspec
                    [...]
                    +
                    +%changelog
                    </diff>
                        </file>
                        <file state="added">
                          <new name="_service:obs_scm:obs-server.spec" md5="49bbbfd13505e676cd02296094095933" size="36575"/>
                          <diff lines="1121" shown="200">@@ -0,0 +1,1120 @@
                    +#
                    +# spec file for package obs-server
                    [...]
                    +Recommends:     yum yum-metadata-parser repoview dpkg
                    +Recommends:     deb &gt;= 1.5
                    </diff>
                        </file>
                        <file state="added">
                          <new name="_service:obs_scm:open-build-service-2.11~alpha.20221007T165328.9f99a31a.obscpio" md5="9f6cb81b792f4afc208d285086f3e9ec" size="96545294"/>
                          <diff binary="1" lines="0"></diff>
                        </file>
                        <file state="added">
                          <new name="_service:obs_scm:open-build-service.obsinfo" md5="7220e2c761f90c579e01ba0d3c2af25a" size="137"/>
                          <diff lines="5">@@ -0,0 +1,4 @@
                    +name: open-build-service
                    +version: 2.11~alpha.20221007T165328.9f99a31a
                    +mtime: 1665154408
                    +commit: 9f99a31afe0ab435c1dd1d02be5f52fe4425b00f
                    </diff>
                        </file>
                      </files>
                    </sourcediff>
        '400':
          description: Bad Request.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Not Boolean:
                  description: Passing a value different than `0` or `1` to `unified`,
                    for example.
                  value: |
                    <xml version="1.0" encoding="UTF-8"?>
                    <status code="400" origin="backend">
                      <summary>not boolean</summary>
                    </status>
                No Service Run:
                  value: |
                    <xml version="1.0" encoding="UTF-8"?>
                    <status code="400" origin="backend">
                      <summary>no service was run for this revision</summary>
                    </status>
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}?cmd=set_flag":
    post:
      summary: Enable or disable a specific flag.
      description: Enable or disable a specific flag for a package.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: query
        name: flag
        required: true
        schema:
          type: string
          enum:
          - access
          - binarydownload
          - build
          - debuginfo
          - lock
          - publish
          - sourceaccess
          - useforbuild
        description: Name of the flag to be set.
        example: build
      - in: query
        name: status
        required: true
        schema:
          type: string
          enum:
          - enable
          - disable
        description: Status of the flag to be set.
        example: enable
      - in: query
        name: repository
        schema:
          type: string
        description: Repository for which the flag is to be set.
        example: openSUSE_Tumbleweed
      - in: query
        name: arch
        schema:
          type: string
        description: Architecture for which the flag is to be set.
        example: x86_64
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Missing Parameter flag:
                  value:
                    code: missing_parameter
                    summary: Required Parameter flag missing
                Missing Parameter status:
                  value:
                    code: missing_parameter
                    summary: Required Parameter status missing
                Invalid flag:
                  value:
                    code: invalid_flag
                    summary: 'Error: unknown flag type ''RANDOM_STRING'' not found.'
                Invalid status:
                  value:
                    code: invalid_flag
                    summary: 'Error: unknown status flag ''RANDOM_STRING'''
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Forbidden
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: cmd_execution_no_permission
                summary: no permission to modify package test in project home:Admin
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}?cmd=showlinked":
    post:
      summary: List all packages linking to this one.
      description: List all packages linking to this one. Despite using the method
        `POST`, this endpoint doesn't alter any data.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      responses:
        '200':
          description: OK
          content:
            application/xml; charset=utf-8:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                      xml:
                        attribute: true
                    project:
                      type: string
                      xml:
                        attribute: true
                  xml:
                    name: package
                xml:
                  name: collection
                  wrapped: true
              examples:
                No results:
                  value: |
                    <?xml version="1.0" encoding="UTF-8"?>
                    <collection/>
                Two linked packages:
                  value:
                  - name: hello_world
                    project: home:Admin:branches:home:Admin
                  - name: hello_world2
                    project: home:Admin:branches:home:Admin
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}?cmd=undelete":
    post:
      summary: Undelete the package.
      description: Undelete the package.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: query
        name: comment
        schema:
          type: string
        description: Set a comment.
        default: package was undeleted
        example: The package was removed by mistake. Undeleting.
      - in: query
        name: time
        schema:
          type: integer
        description: |
          Set the time of the undelete operation, expressed in seconds since the epoch.

          Set to `1` to set the time of the undelete operation to the same time the package was deleted.
        examples:
          Seconds Since Epoch:
            value: 1664912989
          Same as Delete Time:
            value: 1
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: Bad Request.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Package Exists:
                  value:
                    code: package_exists
                    summary: the package exists already home:Admin hello_world
                Time is Not a Number:
                  value:
                    code: 400
                    origin: backend
                    summary: 'not a number: ''RANDOM_STRING'''
                Time is Less than Time in Last Commit:
                  value:
                    code: 400
                    origin: backend
                    summary: specified time is less than time in last commit
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Forbidden.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Package Was Not Deleted:
                  value:
                    code: 403
                    summary: package 'hello_world' was not deleted
                    details: 403 package 'hello_world' was not deleted
                No Permission to Create Package:
                  value:
                    code: cmd_execution_no_permission
                    summary: no permission to create package in project home:Admin
                No Permission to Set the Time:
                  value:
                    code: cmd_execution_no_permission
                    summary: Only administrators are allowed to set the time
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}?cmd=unlock":
    post:
      summary: Unlock a locked package.
      description: Unlock a locked package (`<lock><enable/></lock>` flag present
        in the package `_meta` file).
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: query
        name: comment
        required: true
        schema:
          type: string
        description: Comment to be included in the revision history of the `_meta`
          file
        example: Locking the package is no longer needed
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Missing Parameter:
                  value:
                    code: missing_parameter
                    summary: Required Parameter comment missing
                Not locked:
                  value:
                    code: not_locked
                    summary: package 'home:Foo/hello_world' is not locked
        '403':
          description: Forbidden
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: cmd_execution_no_permission
                summary: no permission to modify package ruby in project home:Foo
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Not Found:
                  value:
                    code: unknown_package
                    summary: 'Package not found: openSUSE:Leap:15.0:Update/foo'
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}?cmd=updatepatchinfo":
    post:
      summary: Update the issues listed in the `_patchinfo` file of a specified package.
      description: |
        Update the issues listed in the `_patchinfo` file of a specified package, based on
        infos available through the issue trackers.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Forbidden.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: cmd_execution_no_permission
                summary: no permission to modify package patchinfo in project openSUSE:Maintenance:123
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}?cmd=waitservice":
    post:
      summary: Return when the last run of defined services has finished.
      description: |
        Return an `Ok` code when the last run of defined services in the `_service` file has finished.

        If a run of services is in progress, wait until all services finish.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: Bad Request.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Service Not Installed:
                  value:
                    code: 400
                    origin: backend
                    summary: " 400 remote error: /usr/lib/obs/service//set_version.service
                      \ No such file or directory (http://backend:5152/sourceupdate/home:Admin/obs-server?timeout=3600)"
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: Forbidden.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                No Permission to Wait for Services:
                  value:
                    code: cmd_execution_no_permission
                    summary: no permission to modify package test in project home:Admin
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}?view=info":
    get:
      summary: Show source version, md5sums and build description files of a package.
      description: Show source version, md5sums and build description files of a package,
        among other information.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: query
        name: view
        schema:
          type: string
          enum:
          - cpio
          - getmultibuild
          - info
          - issues
          - products
          - productrepositories
        description: |
          Specify which information about a package should be returned.

          * `info`: Show source version, md5sums and build description files, among other information.
          * `cpio`, `getmultibuild`, `issues`, `products`, `productrepositories`:
            See this [other endpoint](<#/Sources - Files/get_source__project_name___package_name_>) for details.
        example: info
      - in: query
        name: arch
        schema:
          type: string
        description: Filter by architecture name.
        example: x86_64
      - in: query
        name: nofilename
        schema:
          type: string
          enum:
          - 1
          - 0
        default: 0
        description: Set to `1` to prevent from showing filename elements. Shows only
          the `sourceinfo` root element.
        example: 1
      - in: query
        name: repository
        schema:
          type: string
        description: Filter by repository name.
        example: openSUSE_Tumbleweed
      - in: query
        name: parse
        schema:
          type: string
          enum:
          - 1
          - 0
        default: 0
        description: Set to `1` to show more details, like `originproject`, `linked
          package`, `name`, `version`, `release`, `subpacks`, `deps`, and `prereqs`
          elements.
        example: 1
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  package:
                    type: string
                    xml:
                      attribute: true
                  rev:
                    type: string
                    xml:
                      attribute: true
                  vrev:
                    type: string
                    xml:
                      attribute: true
                  srcmd5:
                    type: string
                    xml:
                      attribute: true
                  verifymd5:
                    type: string
                    xml:
                      attribute: true
                  metamd5:
                    type: string
                    xml:
                      attribute: true
                  filename:
                    type: string
                  originproject:
                    type: string
                  linked:
                    type: array
                    items:
                      type: object
                      properties:
                        project:
                          type: string
                          xml:
                            attribute: true
                        package:
                          type: string
                          xml:
                            attribute: true
                  name:
                    type: string
                  version:
                    type: string
                  release:
                    type: string
                  revtime:
                    type: string
                  error:
                    type: string
                  subpacks:
                    type: array
                    items:
                      type: string
                  deps:
                    type: array
                    items:
                      type: string
                  prereqs:
                    type: array
                    items:
                      type: string
                xml:
                  name: sourceinfo
              examples:
                Without Any Other Parameters:
                  value:
                    package: texlive-specs-w
                    rev: 9f5336fcf6e4521b6a9587b02087eef9
                    vrev: 55
                    srcmd5: 9f5336fcf6e4521b6a9587b02087eef9
                    verifymd5: 9b49b7314f5d0dfd8002cd329e048f73
                    filename: texlive-specs-w.spec
                    originproject: openSUSE:Factory:Rings:1-MinimalX
                    linked:
                    - project: openSUSE:Factory:Rings:0-Bootstrap
                      package: textlive-specs-w
                    - project: openSUSE:Factory:Rings:1-MinimalX
                      package: textlive-specs-w
                With Parameter nofilename=1:
                  value:
                    package: texlive-specs-w
                    rev: 9f5336fcf6e4521b6a9587b02087eef9
                    vrev: 55
                    srcmd5: 9f5336fcf6e4521b6a9587b02087eef9
                    verifymd5: 9b49b7314f5d0dfd8002cd329e048f73
                    originproject: openSUSE:Factory:Rings:1-MinimalX
                    linked:
                    - project: openSUSE:Factory:Rings:0-Bootstrap
                      package: textlive-specs-w
                    - project: openSUSE:Factory:Rings:1-MinimalX
                      package: textlive-specs-w
                With Parameter parse=1:
                  value:
                    package: texlive-specs-w
                    rev: 9f5336fcf6e4521b6a9587b02087eef9
                    vrev: 55
                    srcmd5: 9f5336fcf6e4521b6a9587b02087eef9
                    verifymd5: 9b49b7314f5d0dfd8002cd329e048f73
                    filename: texlive-specs-w.spec
                    originproject: openSUSE:Factory:Rings:1-MinimalX
                    linked:
                    - project: openSUSE:Factory:Rings:0-Bootstrap
                      package: textlive-specs-w
                    - project: openSUSE:Factory:Rings:1-MinimalX
                      package: textlive-specs-w
                    name: textlive-specs-w
                    version: 2023
                    release: 0
                    subpacks:
                    - texlive-specs-w
                    - texlive-tablists
                    deps:
                    - texlive-kpathsea
                    - texlive-tie-bin
                    prereqs:
                    - texlive-filesystem
                    - coreutils
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Not Boolean:
                  description: Passing a value different than `0` or `1` to `parse`,
                    for example.
                  value:
                    code: 400
                    summary: not boolean
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
      tags:
      - Sources - Packages
  "/source/{project_name}/{package_name}/{file_name}":
    get:
      summary: Read a specified source file
      description: Read a specified source file and return the content
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: path
        name: file_name
        schema:
          type: string
        required: true
        description: The file name
        example: ctris-0.42.1-4.1.x86_64.rpm
      - in: query
        name: rev
        schema:
          type: integer
        description: Retrieve the file at a specific package revision.
        example: 3
      - in: query
        name: meta
        schema:
          type: integer
          enum:
          - 1
          - 0
        description: Set to `1` to show meta data instead of sources.
        example: 1
      - in: query
        name: deleted
        schema:
          type: integer
          enum:
          - 1
          - 0
        description: Set to 1 to retrieve a file from a deleted project or package.
        example: 0
      - in: query
        name: expand
        schema:
          type: integer
          enum:
          - 1
          - 0
        description: Set to `1` to include files from linked packages.
        example: 1
      - name: view
        in: query
        schema:
          type: string
          enum:
          - blame
        description: With `view=blame`, information about who changed the file.
        example: blame
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: Unknown parameter
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown parameter:
                  value:
                    code: unknown_parameter
                    summary: unknown parameter 'limit'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
                Unknown File:
                  value:
                    code: unknown_file
                    summary: 'File not found: home:some_project/some_package/some_file'
      tags:
      - Sources - Files
    delete:
      summary: Deletes a specified source file of a package.
      description: Deletes a specified source file of a package of a project.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: path
        name: file_name
        schema:
          type: string
        required: true
        description: The file name
        example: ctris-0.42.1-4.1.x86_64.rpm
      - in: query
        name: rev
        schema:
          type: string
        description: |
          If set to 'upload', multiple files can be deleted in just one commit.
          Delete first the files with `rev=upload`, then close the single commit by another request call with `cmd=commit`
        example: upload
      - in: query
        name: meta
        schema:
          type: integer
          enum:
          - 1
          - 0
        description: Set to `1` to delete meta data instead of sources.
        example: 1
      - in: query
        name: comment
        schema:
          type: string
        description: A comment that will appear in the package's comment section explaining
          the reason behind the deletion of the file.
        example: File deleted because it is useless.
      - in: query
        name: keeplink
        schema:
          type: string
          enum:
          - 1
          - 0
        default: 0
        description: Set to `1` to preserve the link (`_link` file) on the source.
        example: 1
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
                Unknown File:
                  value:
                    code: unknown_file
                    summary: 'File not found: home:some_project/some_package/some_file'
      tags:
      - Sources - Files
    put:
      summary: Write a specified source file into a package.
      description: Write a specified source file of a package of a project.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: path
        name: file_name
        schema:
          type: string
        required: true
        description: The file name
        example: ctris-0.42.1-4.1.x86_64.rpm
      - in: query
        name: rev
        schema:
          type: string
        description: |
          If set to 'upload', multiple files can be uploaded in just one commit.
          Upload first the files with `rev=upload`, then close the single commit by another request call with `cmd=commit`
        example: upload
      - in: query
        name: meta
        schema:
          type: integer
          enum:
          - 1
          - 0
        description: Set to `1` to write meta data instead of sources.
        example: 1
      - in: query
        name: comment
        schema:
          type: string
        description: A comment that will appear in the package's comment section explaining
          the reason behind the creation of the new file.
        example: Added new configuration file.
      - in: query
        name: keeplink
        schema:
          type: string
          enum:
          - 1
          - 0
        default: 0
        description: Set to `1` to preserve the link (`_link` file) on the source.
        example: 1
      requestBody:
        content:
          plain/text:
            schema:
              type: string
              properties:
                file:
                  type: string
                  format: binary
      responses:
        '200':
          description: Updates the artifact's file contents
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  rev:
                    type: string
                    xml:
                      attribute: true
                  vrev:
                    type: string
                    xml:
                      attribute: true
                  srcmd5:
                    type: string
                  version:
                    type: string
                  time:
                    type: string
                  user:
                    type: string
                  comment:
                    type: string
                  requestid:
                    type: string
                xml:
                  name: revision
              example:
                rev: 28
                vrev: 28
                srcmd5: 2e0bd85c089953743bd30eeacf70989b
                version: 1
                time: 1678787266
                user: Admin
                comment:
                requestid:
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
                Unknown File:
                  value:
                    code: unknown_file
                    summary: 'File not found: home:some_project/some_package/some_file'
      tags:
      - Sources - Files
  "/source/{project_name}/{package_name}/{binary_filename}/_attribute/{attribute_name}":
    get:
      summary: Get values of an attribute
      description: Get attribute and attribute values of a given attribute and binary
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: path
        name: binary_filename
        schema:
          type: string
        required: true
        description: Binary filename
        example: ctris-0.42.1-8.1.x86_64.rpm
      - in: path
        name: attribute_name
        schema:
          type: string
        required: true
        description: The name of the attribute
        example: OBS:OwnerRootProjectTest
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                      xml:
                        attribute: true
                    namespace:
                      type: string
                      xml:
                        attribute: true
                    binary:
                      type: string
                      xml:
                        attribute: true
                  xml:
                    name: attribute
                xml:
                  name: attributes
                  wrapped: true
              example:
                name: AllowSubmitToMaintenanceRelease
                namespace: OBS
                binary: Ceph
        '400':
          description: Bad request
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                invalid_attribute:
                  value:
                    code: invalid_attribute
                    summary: Attribute '{attribute_name}' must be in the $NAMESPACE:$NAME
                      style
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
                Unknown Attribute:
                  value:
                    code: unknown_attribute
                    summary: Attribute some_attribute does not exist
      tags:
      - Sources - Files
    delete:
      summary: Removes a specified attribute
      description: Removes a specified attribute from a package
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: path
        name: binary_filename
        schema:
          type: string
        required: true
        description: Binary filename
        example: ctris-0.42.1-8.1.x86_64.rpm
      - in: path
        name: attribute_name
        schema:
          type: string
        required: true
        description: The name of the attribute
        example: OBS:OwnerRootProjectTest
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: Wrong value for deleted parameter.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                invalid_attribute:
                  value:
                    code: invalid_attribute
                    summary: Attribute 'OwnerRootProjectTest' must be in the $NAMESPACE:$NAME
                      style
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
                Unknown Attribute:
                  value:
                    code: unknown_attribute
                    summary: Attribute some_attribute does not exist
      tags:
      - Sources - Files
  "/source/{project_name}/{package_name}/{binary_filename}/_attribute":
    get:
      summary: Get list of attributes and attribute values with binary parameter
      description: Get a list of all attributes and their values for a given binary
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: path
        name: binary_filename
        schema:
          type: string
        required: true
        description: Binary filename
        example: ctris-0.42.1-8.1.x86_64.rpm
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                      xml:
                        attribute: true
                    namespace:
                      type: string
                      xml:
                        attribute: true
                    binary:
                      type: string
                      xml:
                        attribute: true
                  xml:
                    name: attribute
                xml:
                  name: attributes
                  wrapped: true
              example:
              - name: AllowSubmitToMaintenanceRelease
                namespace: OBS
                binary: SLES-cd-DVD-x86_64
              - name: OwnerRootProjectTest
                namespace: OBS
                binary: Ceph
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
      tags:
      - Sources - Files
    post:
      summary: Add an attribute
      description: Add an attribute with binary to a package
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      - in: path
        name: binary_filename
        schema:
          type: string
        required: true
        description: Binary filename
        example: ctris-0.42.1-8.1.x86_64.rpm
      requestBody:
        description: Attributes you want to update
        content:
          application/xml; charset=utf-8:
            schema:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                    xml:
                      attribute: true
                  namespace:
                    type: string
                    xml:
                      attribute: true
                  binary:
                    type: string
                    xml:
                      attribute: true
                xml:
                  name: attribute
              xml:
                name: attributes
                wrapped: true
            example:
              name: MaintenanceProject
              namespace: OBS
              binary: Ceph
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Package:
                  value:
                    code: unknown_package
                    summary: 'Package not found: home:some_project/some_package'
      tags:
      - Sources - Files
  "/staging/{project_name}/backlog":
    get:
      summary: List the requests in the staging backlog.
      description: List the requests that can be assigned to the staging project (backlog).
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      responses:
        '200':
          description: List of request in the staging backlog.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  request:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 42
                          xml:
                            attribute: true
                        creator:
                          type: string
                          example: foo-user
                          xml:
                            attribute: true
                        type:
                          type: string
                          example: submit
                          xml:
                            attribute: true
                        state:
                          type: string
                          example: review
                          xml:
                            attribute: true
                        package:
                          type: string
                          example: hello_world
                          xml:
                            attribute: true
                        superseded_by:
                          type: integer
                          example: 43
                          xml:
                            attribute: true
                        updated:
                          type: string
                          example: '2023-04-24T08:34:39Z'
                          xml:
                            attribute: true
                xml:
                  name: backlog
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                project_without_staging_workflow:
                  value:
                    code: not_found
                    sumary: Project project_name doesn't have an associated Staging
                      Workflow
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Staging Workflow
  "/staging/{project_name}/excluded_requests":
    get:
      summary: List the requests excluded from a staging workflow.
      description: List the requests excluded from the staging workflow associated
        to the specified project.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      responses:
        '200':
          description: List of requests that are excluded from the staging workflow
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  request:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 42
                          xml:
                            attribute: true
                        description:
                          type: string
                          example: Missing dependencies
                          xml:
                            attribute: true
                xml:
                  name: excluded_requests
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                project_without_staging_workflow:
                  value:
                    code: not_found
                    sumary: Project project_name doesn't have an associated Staging
                      Workflow
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Staging Workflow
    post:
      summary: Exclude requests from the staging workflow.
      description: Add requests to the list of excluded requests of the staging workflow
        associated to the specified project.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      requestBody:
        description: List of requests to be excluded from the staging workflow
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                request:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 42
                        xml:
                          attribute: true
                      description:
                        type: string
                        example: Missing dependencies
                        xml:
                          attribute: true
              xml:
                name: excluded_requests
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng).
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Excluding Failed:
                  value:
                    code: invalid_request
                    summary: 'Excluding requests for project_name failed:'
                Invalid XML Format:
                  value:
                    code: invalid_xml_format
                    summary: XML format is not valid
                Empty Body:
                  value:
                    code: invalid_request
                    summary: Empty body
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                project_without_staging_workflow:
                  value:
                    code: not_found
                    sumary: Project project_name doesn't have an associated Staging
                      Workflow
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Staging Workflow
    delete:
      summary: Delete the specified requests from the list of excluded requests.
      description: Stop excluding the requests from the staging workflow.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      requestBody:
        description: List of requests to stop excluding from the staging workflow
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                request:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 42
                        xml:
                          attribute: true
                      description:
                        type: string
                        example: Missing dependencies
                        xml:
                          attribute: true
              xml:
                name: excluded_requests
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng).
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Invalid Request:
                  value:
                    code: invalid_request
                    summary: 'Error while unexcluding requests: Requests with number
                      ID are not excluded.'
                Invalid XML Format:
                  value:
                    code: invalid_xml_format
                    summary: XML format is not valid
                Empty Body:
                  value:
                    code: invalid_request
                    summary: Empty body
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                project_without_staging_workflow:
                  value:
                    code: not_found
                    sumary: Project project_name doesn't have an associated Staging
                      Workflow
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Staging Workflow
  "/staging/{project_name}/staged_requests":
    delete:
      summary: Delete requests from any of the staging projects.
      description: Delete the given requests from any of the staging projects they
        were staged in.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      requestBody:
        description: List of requests to be deleted.
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                request:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 42
                        xml:
                          attribute: true
              xml:
                name: requests
            examples:
              Multiple Requests:
                value:
                  request:
                  - id: 1
                  - id: 2
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng).
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Request Not Staged:
                  value:
                    code: invalid_request
                    summary: 'Error while unassigning requests: Request ''ID'' is
                      not staged'
                Request Not In Staging:
                  value:
                    code: invalid_request
                    summary: 'Error while unassigning requests: Requests with number:
                      ID don''t belong to Staging: project_name'
                Unknown Request:
                  value:
                    code: invalid_request
                    summary: 'Error while unassigning requests: Requests with number:
                      212 don''t exist'
                Wrong Request Number:
                  value:
                    code: invalid_request
                    summary: Error while parsing the numbers of the requests
                Invalid XML Format:
                  value:
                    code: invalid_xml_format
                    summary: XML format is not valid
                Empty Body:
                  value:
                    code: invalid_request
                    summary: Empty body
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Without Staging Workflow:
                  value:
                    code: not_found
                    sumary: Project project_name doesn't have an associated Staging
                      Workflow
                Unknown Project:
                  value:
                    code: not_found
                    summary: Project 'project_name' not found.
      tags:
      - Staging Workflow
  "/staging/{project_name}/staging_projects":
    get:
      summary: List all the staging projects of a staging workflow.
      description: |
        List the staging projects of the staging workflow associated to the specified project.
        Extra information can be requested by adding any combination of these parameters in the URL: `requests`, `status` and `history`.
        - If `requests` is present, the output includes the staged, untracked and obsolete requests as well as missing reviews.
        - If `status` is present, the output includes the overall state and the status xml (broken packages, missing reviews, checks, etc.)
        - If `history` is present, the output includes the history of the staging project.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - name: requests
        in: query
        schema:
          type: string
          example: 1
        description: '"Set to `1` if you want to include the staged, untracked and
          obsolete requests as well as missing reviews, otherwise don''t pass this
          query parameter."

          '
      - name: status
        in: query
        schema:
          type: string
          example: 1
        description: '"Set to `1` if you want to include the overall state and the
          status xml (broken packages, missing reviews, checks, etc.), otherwise don''t
          pass this query parameter"

          '
      - name: history
        in: query
        schema:
          type: string
          example: 1
        description: Set to `1` if you want to include the history of the staging
          project, otherwise don't pass this query parameter.
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  staging_project:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          example: openSUSE:Factory
                          xml:
                            attribute: true
                        state:
                          type: string
                          example: empty
                          xml:
                            attribute: true
                        staged_requests:
                          type: object
                          properties:
                            count:
                              type: integer
                              example: 0
                              xml:
                                attribute: true
                        untracked_requests:
                          type: object
                          properties:
                            count:
                              type: integer
                              example: 0
                              xml:
                                attribute: true
                        obsolete_requests:
                          type: object
                          properties:
                            count:
                              type: integer
                              example: 0
                              xml:
                                attribute: true
                        missing_reviews:
                          type: object
                          properties:
                            count:
                              type: integer
                              example: 0
                              xml:
                                attribute: true
                        building_repositories:
                          type: object
                          properties:
                            count:
                              type: integer
                              example: 0
                              xml:
                                attribute: true
                        broken_packages:
                          type: object
                          properties:
                            count:
                              type: integer
                              example: 0
                              xml:
                                attribute: true
                        checks:
                          type: object
                          properties:
                            count:
                              type: integer
                              example: 0
                              xml:
                                attribute: true
                        missing_checks:
                          type: object
                          properties:
                            count:
                              type: integer
                              example: 0
                              xml:
                                attribute: true
                        history:
                          type: object
                          properties:
                            count:
                              type: integer
                              example: 0
                              xml:
                                attribute: true
                      xml:
                        name: staging_project
                xml:
                  name: staging_projects
              examples:
                Simple Result:
                  value:
                    staging_project:
                    - name: openSUSE:Factory:Staging:A
                    - name: openSUSE:Factory:Staging:B
                Detailed Result:
                  value:
                    staging_project:
                      name: openSUSE:Factory:Staging:A
                      state: empty
                      staged_requests:
                        count: 0
                      untracked_requests:
                        count: 0
                      obsolete_requests:
                        count: 0
                      missing_reviews:
                        count: 0
                      building_repositories:
                        count: 0
                      broken_packages:
                        count: 0
                      checks:
                        count: 0
                      missing_checks:
                        count: 0
                      history:
                        count: 0
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Project Without Staging Workflow:
                  value:
                    code: project_has_no_staging_workflow
                    summary: No staging workflow for project 'project_name'
                Unknown Project:
                  value:
                    code: not_found
                    summary: Project 'project_name' not found.
      tags:
      - Staging Workflow
    post:
      summary: Create staging projects
      description: Create staging projects on the staging workflow associated to the
        specified project
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      requestBody:
        description: List of the names of the staging projects you want to add to
          the staging workflow
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                staging_project:
                  type: array
                  items:
                    type: string
                    example: openSUSE:Factory:Staging:C
              xml:
                name: workflow
            examples:
              Multiple Staging Projects:
                value:
                  staging_project:
                  - openSUSE:Factory:Staging:C
                  - openSUSE:Factory:Staging:D
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng).
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Invalid Project Name:
                  value:
                    code: invalid_request
                    summary: 'Staging Projects for package_name failed: Project "0":
                      Name is illegal.'
                Already Assigned:
                  value:
                    code: invalid_request
                    summary: 'Staging Projects for project_name failed: Project "project_name":
                      is already assigned to a staging workflow.'
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Project Without Staging Workflow:
                  value:
                    code: not_found
                    summary: Project project_name doesn't have an associated Staging
                      Workflow
                Unknown Project:
                  value:
                    code: not_found
                    summary: Project 'project_name' not found.
      tags:
      - Staging Workflow
  "/staging/{project_name}/staging_projects/{staging_project_name}":
    get:
      summary: Gets the overall state of a staging project.
      description: |
        Extra information can be requested by adding any combination of these parameters in the URL: requests, status and history.
        - If requests is present, the output includes the staged, untracked and obsolete requests as well as missing reviews.
        - If status is present, the output includes the overall state and the status xml (broken packages, missing reviews, checks, etc.)
        - If history is present, the output includes the history of the staging project.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: staging_project_name
        schema:
          type: string
        required: true
        description: Staging Project Name
        example: openSUSE:Factory:Staging:A
      - name: requests
        in: query
        schema:
          type: string
          enum:
          - 1
        description: 'Set to `1` if you want to include the staged, untracked and
          obsolete requests as well as missing reviews, otherwise don''t pass this
          query parameter.

          '
      - name: status
        in: query
        schema:
          type: string
          enum:
          - 1
        description: 'Set to `1` if you want to include the overall state and the
          status xml (broken packages, missing reviews, checks, etc.), otherwise don''t
          pass this query parameter.

          '
      - name: history
        in: query
        schema:
          type: string
          enum:
          - 1
        description: Set to `1` if you want to include the history of the staging
          project, otherwise don't pass this query parameter.
      responses:
        '200':
          description: Get the state of a staging project.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  name:
                    type: string
                    example: openSUSE:Factory
                    xml:
                      attribute: true
                  state:
                    type: string
                    example: empty
                    xml:
                      attribute: true
                  staged_requests:
                    type: object
                    properties:
                      count:
                        type: integer
                        example: 0
                        xml:
                          attribute: true
                  untracked_requests:
                    type: object
                    properties:
                      count:
                        type: integer
                        example: 0
                        xml:
                          attribute: true
                  obsolete_requests:
                    type: object
                    properties:
                      count:
                        type: integer
                        example: 0
                        xml:
                          attribute: true
                  missing_reviews:
                    type: object
                    properties:
                      count:
                        type: integer
                        example: 0
                        xml:
                          attribute: true
                  building_repositories:
                    type: object
                    properties:
                      count:
                        type: integer
                        example: 0
                        xml:
                          attribute: true
                  broken_packages:
                    type: object
                    properties:
                      count:
                        type: integer
                        example: 0
                        xml:
                          attribute: true
                  checks:
                    type: object
                    properties:
                      count:
                        type: integer
                        example: 0
                        xml:
                          attribute: true
                  missing_checks:
                    type: object
                    properties:
                      count:
                        type: integer
                        example: 0
                        xml:
                          attribute: true
                  history:
                    type: object
                    properties:
                      count:
                        type: integer
                        example: 0
                        xml:
                          attribute: true
                xml:
                  name: staging_project
              example:
                name: home:Iggy:Staging:A
                state: empty
                staged_requests:
                  count: 0
                untracked_requests:
                  count: 0
                obsolete_requests:
                  count: 0
                missing_reviews:
                  count: 0
                building_repositories:
                  count: 0
                broken_packages:
                  count: 0
                checks:
                  count: 0
                missing_checks:
                  count: 0
                history:
                  count: 0
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                not_found:
                  summary: Staging Workflow Project Not Found
                  value:
                    code: not_found
                    summary: Project home:Adminn not found.
                staging_project_not_found:
                  summary: Staging Project Name Not Found
                  value:
                    code: staging_project_not_found
                    details: Staging Project "home:Admin:Staging:AA" does not exist.
      tags:
      - Staging Workflow
  "/staging/{project_name}/staging_projects/{staging_project_name}/accept":
    post:
      summary: Accept a staging project
      description: |
        This accepts all staged requests and sets the project state back to 'empty'.
        Will return in an error if staging project is not acceptable, unless force is given. You can force
        accept staging projects with building or failing packages, but not with missing reviews
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: staging_project_name
        schema:
          type: string
        required: true
        description: Staging Project Name
        example: openSUSE:Factory:Staging:A
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: Bad Request.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                staging_project_not_in_acceptable_state:
                  summary: Staging Project is not in an acceptable state
                  value:
                    code: staging_project_not_in_acceptable_state
                    summary: 'Staging Project is not acceptable: empty is not an acceptable
                      state'
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                not_found:
                  summary: Staging Workflow Project Not Found
                  value:
                    code: not_found
                    summary: Project home:Adminn not found.
                staging_project_not_found:
                  summary: Staging Project Name Not Found
                  value:
                    code: staging_project_not_found
                    details: Staging Project "home:Admin:Staging:AA" does not exist.
      tags:
      - Staging Workflow
  "/staging/{project_name}/staging_projects/{staging_project_name}/copy/{staging_project_copy_name}":
    post:
      summary: Copy a staging project
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: staging_project_name
        schema:
          type: string
        required: true
        description: Staging Project Name
        example: openSUSE:Factory:Staging:A
      - in: path
        name: staging_project_copy_name
        schema:
          type: string
        required: true
        description: The name of the staging project's copy
        example: openSUSE:Factory:Staging:B
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                not_found:
                  summary: Staging Workflow Project Not Found
                  value:
                    code: not_found
                    summary: Project home:Adminn not found.
                staging_project_not_found:
                  summary: Staging Project Name Not Found
                  value:
                    code: staging_project_not_found
                    details: Staging Project "home:Admin:Staging:AA" does not exist.
      tags:
      - Staging Workflow
  "/staging/{project_name}/staging_projects/{staging_project_name}/staged_requests":
    get:
      summary: List all the staged requests of a staging project.
      description: List all the requests that are already associated to a staging
        project (staged requests).
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: staging_project_name
        schema:
          type: string
        required: true
        description: Staging Project Name
        example: openSUSE:Factory:Staging:A
      responses:
        '200':
          description: List of staged requests.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  request:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 42
                          xml:
                            attribute: true
                        creator:
                          type: string
                          example: foo-user
                          xml:
                            attribute: true
                        type:
                          type: string
                          example: submit
                          xml:
                            attribute: true
                        state:
                          type: string
                          example: review
                          xml:
                            attribute: true
                        package:
                          type: string
                          example: hello_world
                          xml:
                            attribute: true
                        superseded_by:
                          type: integer
                          example: 43
                          xml:
                            attribute: true
                        updated:
                          type: string
                          example: '2023-04-24T08:34:39Z'
                          xml:
                            attribute: true
                xml:
                  name: staged_requests
              examples:
                Multiple Requests:
                  value:
                    request:
                    - id: 1
                      creator: Iggy
                      type: submit
                      state: accepted
                      package: package_a
                      updated_at: '2023-04-24T08:34:39Z'
                    - id: 2
                      creator: Dan
                      type: submit
                      state: review
                      package: package_b
                      superseded_by: 3
                      updated_at: '2022-02-22T02:22:22Z'
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Project Without Staging Workflow:
                  value:
                    code: not_found
                    summary: Project project_name doesn't have an associated Staging
                      Workflow
                Unknown Staging Project:
                  value:
                    code: not_found
                    summary: 'Staging Project ''staging_project_name'' not found in
                      Staging: ''project_name'''
                Unknown Project:
                  value:
                    code: not_found
                    summary: Project 'project_name' not found.
      tags:
      - Staging Workflow
    post:
      summary: Add requests to the staging project.
      description: |
        Add requests to the specified staging project except those that are excluded from the staging workflow.
        Pass `remove_exclusion` to stop excluding the requests before adding them to the staging project.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: staging_project_name
        schema:
          type: string
        required: true
        description: Staging Project Name
        example: openSUSE:Factory:Staging:A
      - in: query
        name: remove_exclusion
        schema:
          type: string
        description: |
          Set to `1` if you want to stop excluding the specified requests before you add them to the staging project.
          Don't pass this parameter to only stage the requests that are not excluded.
        example: 1
      requestBody:
        description: List of requests to be added to the staging project.
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                request:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 42
                        xml:
                          attribute: true
              xml:
                name: requests
            examples:
              Multiple Requests:
                value:
                  request:
                  - id: 1
                  - id: 2
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng).
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                With Excluded Requests:
                  value:
                    code: invalid_request
                    summary: 'Request ID currently excluded from project project_name.
                      Use --remove-exclusion if you want to force this action.

                      '
                Unknown Request:
                  value:
                    code: invalid_request
                    summary: Request ID doesn't exist
                Invalid XML Format:
                  value:
                    code: invalid_xml_format
                    summary: XML format is not valid
                Empty Body:
                  value:
                    code: invalid_request
                    summary: Empty body
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Without Staging Workflow:
                  value:
                    code: not_found
                    sumary: Project project_name doesn't have an associated Staging
                      Workflow
                Unknown Staging Project:
                  value:
                    code: not_found
                    summary: 'Staging Project ''project_name:Staging:G'' not found
                      in Staging: ''project_name'''
                Unknown Project:
                  value:
                    code: not_found
                    summary: Project 'project_name' not found.
        '424':
          description: Unacceptable State
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unacceptable State:
                  value:
                    code: staging_project_not_in_acceptable_state
                    sumary: 'Can''t change staged requests: Project ''project_name''
                      is being accepted.'
      tags:
      - Staging Workflow
    delete:
      summary: Delete requests from the staging project.
      description: Delete the given requests from the staging project they were staged
        in.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: staging_project_name
        schema:
          type: string
        required: true
        description: Staging Project Name
        example: openSUSE:Factory:Staging:A
      requestBody:
        description: List of requests to be removed from the staging project.
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                request:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 42
                        xml:
                          attribute: true
              xml:
                name: requests
            examples:
              Multiple Requests:
                value:
                  request:
                  - id: 1
                  - id: 2
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng).
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Request Not Staged:
                  value:
                    code: invalid_request
                    summary: 'Error while unassigning requests: Request ''ID'' is
                      not staged'
                Request Not In Staging:
                  value:
                    code: invalid_request
                    summary: 'Error while unassigning requests: Requests with number:
                      ID don''t belong to Staging: project_name'
                Wrong Request Number:
                  value:
                    code: invalid_request
                    summary: Error while parsing the numbers of the requests
                Invalid XML Format:
                  value:
                    code: invalid_xml_format
                    summary: XML format is not valid
                Empty Body:
                  value:
                    code: invalid_request
                    summary: Empty body
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Without Staging Workflow:
                  value:
                    code: not_found
                    sumary: Project project_name doesn't have an associated Staging
                      Workflow
                Unknown Project:
                  value:
                    code: not_found
                    summary: Project 'project_name' not found.
      tags:
      - Staging Workflow
  "/staging/{project_name}/workflow":
    post:
      summary: Create a staging workflow for the specified project
      description: Create a staging workflow associated to the project and the manager
        group specified in the body of the request
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      requestBody:
        description: Title of the staging workflow's managers group
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                managers:
                  type: string
                  example: group-test
                  xml:
                    attribute: true
              xml:
                name: workflow
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng).
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Staging Workflow Exists:
                  description: The project is already associated to a staging workflow
                  value:
                    code: staging_workflow_exists
                    summary: 'Project project_name already has an associated Staging
                      Workflow with id: ID'
                Invalid XML Format:
                  value:
                    code: invalid_xml_format
                    summary: XML format is not valid
                Empty Body:
                  value:
                    code: invalid_request
                    summary: Empty body
                Invalid Request:
                  value:
                    code: invalid_request
                    summary: 'Staging for project_name couldn''t be created:'
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Staging Workflow
    put:
      summary: Change the managers group of a staging workflow
      description: Change the managers group of the staging workflow associated to
        the specified project.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      requestBody:
        description: Title of the staging workflow's managers group
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                managers:
                  type: string
                  example: group-test
                  xml:
                    attribute: true
              xml:
                name: workflow
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '400':
          description: |
            Bad Request.

            XML Schema used for body validation: [status.rng](../schema/status.rng).
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Invalid XML Format:
                  value:
                    code: invalid_xml_format
                    summary: XML format is not valid
                Empty Body:
                  value:
                    code: invalid_request
                    summary: Empty body
                Invalid Request:
                  value:
                    code: invalid_request
                    summary: 'Staging for project_name couldn''t be updated:'
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                project_without_staging_workflow:
                  value:
                    code: not_found
                    sumary: Project project_name doesn't have an associated Staging
                      Workflow
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Staging Workflow
    delete:
      summary: Delete the staging workflow of the specified project
      description: |
        Delete the staging workflow associated to the given project (a.k.a staging workflow project).
        The staging projects associated to that workflow are not removed unless the parameter `with_staging_projects` is given.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - name: with_staging_projects
        in: query
        schema:
          type: integer
        description: |
          Set to `1` if you want to delete all the staging projects associated to the staging workflow when it is deleted.
          Staging projects' names usually look like: project_name:Staging:A, project_name:Staging:B etc.
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                project_without_staging_workflow:
                  value:
                    code: not_found
                    sumary: Project project_name doesn't have an associated Staging
                      Workflow
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Staging Workflow
  "/statistics":
    get:
      deprecated: true
      summary: This endpoint is deprecated
      description: This endpoint is no longer supported or might not work as expected.
      tags:
      - Statistics
  "/statistics/active_request_creators/{project_name}":
    get:
      deprecated: true
      summary: This endpoint is deprecated
      description: This endpoint is no longer supported or might not work as expected.
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      tags:
      - Statistics
  "/statistics/activity/{project_name}/{package_name}":
    get:
      deprecated: true
      summary: This endpoint is deprecated
      description: This endpoint is no longer supported or might not work as expected.
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      tags:
      - Statistics
  "/statistics/added_timestamp/{project_name}/{package_name}":
    get:
      deprecated: true
      summary: This endpoint is deprecated
      description: This endpoint is no longer supported or might not work as expected.
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      tags:
      - Statistics
  "/statistics/global_counters":
    get:
      deprecated: true
      summary: This endpoint is deprecated
      description: This endpoint is no longer supported or might not work as expected.
      tags:
      - Statistics
  "/statistics/latest_added":
    get:
      summary: Get a list of last added project and packages
      description: Get a list of last added project and packages
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: limit
        schema:
          type: integer
        description: Override default maximum value of 10 entries to be returned.
        example: 20
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  project:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        packages:
                          type: integer
                          xml:
                            attribute: true
                        activity:
                          type: number
                          xml:
                            attribute: true
                        created:
                          type: string
                          xml:
                            attribute: true
                        updated:
                          type: string
                          xml:
                            attribute: true
                  package:
                    type: array
                    items:
                      type: object
                      properties:
                        project:
                          type: string
                          xml:
                            attribute: true
                        name:
                          type: string
                          xml:
                            attribute: true
                        activity:
                          type: number
                          xml:
                            attribute: true
                        created:
                          type: string
                          xml:
                            attribute: true
                        updated:
                          type: string
                          xml:
                            attribute: true
                      xml:
                        name: package
                xml:
                  name: latest_added
              example:
                package:
                - name: pgbackrest
                  project: openSUSE:Factory:Staging:adi:24
                  created: '2023-06-01T07:07:24Z'
                project:
                - name: openSUSE:Factory:Staging:adi:24
                  created: '2023-06-01T07:07:22Z'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Statistics
  "/statistics/latest_updated":
    get:
      summary: Get a list of last updated project and packages
      description: Get a list of last updated project and packages
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: limit
        schema:
          type: integer
        description: Override default maximum value of 10 entries to be returned.
        example: 20
      - in: query
        name: timelimit
        schema:
          type: integer
        description: Limit the maximum age to this number of days.
        example: 1
      - in: query
        name: prjfilter
        schema:
          type: string
        description: Filter by project name.
        example: openSUSE:Factory
      - in: query
        name: pkgfilter
        schema:
          type: string
        description: Filter by package name.
        example: 0ad
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  project:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        packages:
                          type: integer
                          xml:
                            attribute: true
                        activity:
                          type: number
                          xml:
                            attribute: true
                        created:
                          type: string
                          xml:
                            attribute: true
                        updated:
                          type: string
                          xml:
                            attribute: true
                  package:
                    type: array
                    items:
                      type: object
                      properties:
                        project:
                          type: string
                          xml:
                            attribute: true
                        name:
                          type: string
                          xml:
                            attribute: true
                        activity:
                          type: number
                          xml:
                            attribute: true
                        created:
                          type: string
                          xml:
                            attribute: true
                        updated:
                          type: string
                          xml:
                            attribute: true
                      xml:
                        name: package
                xml:
                  name: latest_updated
              example:
                package:
                - name: calc
                  project: openSUSE:Factory:Staging:adi:26
                  created: '2023-06-01T07:07:36Z'
                project:
                - name: openSUSE:Factory:Staging:adi:26
                  created: '2023-06-01T07:07:27Z'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Statistics
  "/statistics/maintenance_statistics/{project_name}":
    get:
      deprecated: true
      summary: This endpoint is deprecated
      description: This endpoint is no longer supported or might not work as expected.
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      tags:
      - Statistics
  "/statistics/most_active_packages":
    get:
      summary: Get a list of the most active packages
      description: Get a list of the most active packages
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: limit
        schema:
          type: integer
        description: Override default maximum value of 10 entries to be returned.
        example: 20
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  project:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        packages:
                          type: integer
                          xml:
                            attribute: true
                        activity:
                          type: number
                          xml:
                            attribute: true
                        created:
                          type: string
                          xml:
                            attribute: true
                        updated:
                          type: string
                          xml:
                            attribute: true
                  package:
                    type: array
                    items:
                      type: object
                      properties:
                        project:
                          type: string
                          xml:
                            attribute: true
                        name:
                          type: string
                          xml:
                            attribute: true
                        activity:
                          type: number
                          xml:
                            attribute: true
                        created:
                          type: string
                          xml:
                            attribute: true
                        updated:
                          type: string
                          xml:
                            attribute: true
                      xml:
                        name: package
                xml:
                  name: most_active
              example:
                package:
                - activity: 1371.487973151121
                  project: openSUSE:Factory:Staging
                  name: dashboard
                - activity: 1369.5483848725057
                  project: home:repo-checker
                  name: reports
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Statistics
  "/statistics/most_active_projects":
    get:
      summary: Get a list of the most active projects
      description: Get a list of the most active projects
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: limit
        schema:
          type: integer
        description: Override default maximum value of 10 entries to be returned.
        example: 20
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  project:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        packages:
                          type: integer
                          xml:
                            attribute: true
                        activity:
                          type: number
                          xml:
                            attribute: true
                        created:
                          type: string
                          xml:
                            attribute: true
                        updated:
                          type: string
                          xml:
                            attribute: true
                  package:
                    type: array
                    items:
                      type: object
                      properties:
                        project:
                          type: string
                          xml:
                            attribute: true
                        name:
                          type: string
                          xml:
                            attribute: true
                        activity:
                          type: number
                          xml:
                            attribute: true
                        created:
                          type: string
                          xml:
                            attribute: true
                        updated:
                          type: string
                          xml:
                            attribute: true
                      xml:
                        name: package
                xml:
                  name: most_active
              example:
                project:
                - activity: 1371.492028553694
                  packages: 1
                  name: openSUSE:Factory:Staging
                - activity: 1369.5524345398396
                  packages: 2
                  name: home:repo-checker
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Statistics
  "/statistics/updated_timestamp/{project_name}/{package_name}":
    get:
      deprecated: true
      summary: This endpoint is deprecated
      description: This endpoint is no longer supported or might not work as expected.
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: package_name
        schema:
          type: string
        required: true
        description: Package name
        example: ctris
      tags:
      - Statistics
  "/status/messages":
    get:
      summary: Get list of status messages
      description: Get a list of all status messages
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: limit
        schema:
          type: integer
        description: Override default maximum value of 1000 entries to be returned.
        example: 20
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  status_message:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          xml:
                            attribute: true
                        message:
                          type: string
                        user:
                          type: string
                        severity:
                          type: string
                        scope:
                          type: string
                        created_at:
                          type: string
                      xml:
                        name: status_message
                  count:
                    type: integer
                    xml:
                      attribute: true
                xml:
                  name: status_messages
              example:
                count: 2
                status_message:
                - id: 2
                  message: OBS 3.0 is released!
                  user: Iggy
                  severity: announcement
                  scope: all_users
                  created_at: 2021-10-15 13:28:22 UTC
                - id: 1
                  message: Feature number 42 was implemented!
                  user: Iggy
                  severity: announcement
                  scope: all_users
                  created_at: 2021-10-12 11:18:12 UTC
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Status Messages
    post:
      summary: Create a status message
      description: |
        Create a new status message (Only admins are allowed to add status messages).

        Possible values for severity: (information, green, yellow, red, announcement).

        Possible values for scope: (all_users, logged_in_users, admin_users, in_beta_users, in_rollout_users)
      security:
      - basic_authentication: []
      requestBody:
        description: Attributes for status message
        required: true
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  xml:
                    attribute: true
                message:
                  type: string
                user:
                  type: string
                severity:
                  type: string
                scope:
                  type: string
                created_at:
                  type: string
              xml:
                name: status_message
            example:
              message: Feature number 42 was implemented!
              severity: announcement
              scope: all_users
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: Bad request. Validation Error
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Validation Failed:
                  value:
                    code: validation_failed
                    summary: 'status_message validation error: 2:0: ERROR: Element
                      ''<some element>'': No matching global declaration available
                      for the validation root.'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: |
            Status message no permission.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                status message no permission:
                  value:
                    code: put_request_no_permission
                    summary: Requires admin privileges
      tags:
      - Status Messages
  "/status_message":
    get:
      summary: Get list of status messages
      description: Get a list of all status messages
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: limit
        schema:
          type: integer
        description: Override default maximum value of 1000 entries to be returned.
        example: 20
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  status_message:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          xml:
                            attribute: true
                        message:
                          type: string
                        user:
                          type: string
                        severity:
                          type: string
                        scope:
                          type: string
                        created_at:
                          type: string
                      xml:
                        name: status_message
                  count:
                    type: integer
                    xml:
                      attribute: true
                xml:
                  name: status_messages
              example:
                count: 2
                status_message:
                - id: 2
                  message: OBS 3.0 is released!
                  user: Iggy
                  severity: announcement
                  scope: all_users
                  created_at: 2021-10-15 13:28:22 UTC
                - id: 1
                  message: Feature number 42 was implemented!
                  user: Iggy
                  severity: announcement
                  scope: all_users
                  created_at: 2021-10-12 11:18:12 UTC
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Status Messages
  "/status/messages/{id}":
    get:
      summary: Get a status message
      description: Find a status message with id
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  id:
                    type: integer
                    xml:
                      attribute: true
                  message:
                    type: string
                  user:
                    type: string
                  severity:
                    type: string
                  scope:
                    type: string
                  created_at:
                    type: string
                xml:
                  name: status_message
              example:
                id: 2
                message: OBS 3.0 is released!
                user: Iggy
                severity: announcement
                scope: all_users
                created_at: 2021-10-15 13:28:22 UTC
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Not Found:
                  value:
                    code: not_found
                    summary: Couldn't find StatusMessage with 'id'=300
      tags:
      - Status Messages
    delete:
      summary: Delete a status message
      description: Delete a status message with id
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: |
            Status message no permission.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                status message no permission:
                  value:
                    code: put_request_no_permission
                    summary: Requires admin privileges
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Not Found:
                  value:
                    code: not_found
                    summary: Couldn't find StatusMessage with 'id'=300
      tags:
      - Status Messages
  "/status/project/{project_name}":
    get:
      summary: Get list of packages inside a project
      description: Get a full list of packages and their status
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  package:
                    type: array
                    items:
                      type: object
                      properties:
                        project:
                          type: string
                          xml:
                            attribute: true
                        name:
                          type: string
                          xml:
                            attribute: true
                        version:
                          type: string
                          xml:
                            attribute: true
                        srcmd5:
                          type: string
                          xml:
                            attribute: true
                        changesmd5:
                          type: string
                          xml:
                            attribute: true
                        maxmtime:
                          type: string
                          xml:
                            attribute: true
                        release:
                          type: string
                          xml:
                            attribute: true
                        verifymd5:
                          type: string
                          xml:
                            attribute: true
                        link:
                          type: object
                          properties:
                            project:
                              type: string
                              xml:
                                attribute: true
                            package:
                              type: string
                              xml:
                                attribute: true
                        error:
                          type: string
                      xml:
                        name: package
                xml:
                  name: packages
              example:
                package:
                - project: home:Admin
                  name: ruby
                  version: 1
                  srcmd5: 7fbfafc07ebb87ef62119216619d0fa5
                  changesmd5: d0fa5
                - project: home:Admin
                  name: linked_package
                  version: 1.1
                  verifymd5: 7fbfafc07ebb87ef62rrrvvv555
                  srcmd5: 7fbfafc07ebb87ef62119216619d0fa5
                  link:
                    project: home:Admin
                    package: ut
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Status Project
  "/status/workerstatus":
    get:
      deprecated: true
      summary: Lists status of workers, jobs, backend services and general statistics.
      description: |
        Lists status of workers, running jobs, waiting jobs, status of the backend services and general statistics.

        This endpoint is exactly the same as `GET /worker/_status`, please use that one.
      security:
      - basic_authentication: []
      responses:
        '200':
          description: OK
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  clients:
                    type: integer
                    xml:
                      attribute: true
                  idle:
                    type: array
                    items:
                      type: object
                      properties:
                        workerid:
                          type: string
                          xml:
                            attribute: true
                        hostarch:
                          type: string
                          xml:
                            attribute: true
                  building:
                    type: array
                    items:
                      type: object
                      properties:
                        repository:
                          type: string
                          xml:
                            attribute: true
                        arch:
                          type: string
                          xml:
                            attribute: true
                        project:
                          type: string
                          xml:
                            attribute: true
                        package:
                          type: string
                          xml:
                            attribute: true
                        starttime:
                          type: string
                          xml:
                            attribute: true
                        workerid:
                          type: string
                          xml:
                            attribute: true
                        hostarch:
                          type: string
                          xml:
                            attribute: true
                  down:
                    type: array
                    items:
                      type: object
                      properties:
                        workerid:
                          type: string
                          xml:
                            attribute: true
                        hostarch:
                          type: string
                          xml:
                            attribute: true
                  waiting:
                    type: array
                    items:
                      type: object
                      properties:
                        arch:
                          type: string
                          xml:
                            attribute: true
                        jobs:
                          type: string
                          xml:
                            attribute: true
                  blocked:
                    type: array
                    items:
                      type: object
                      properties:
                        arch:
                          type: string
                          xml:
                            attribute: true
                        jobs:
                          type: string
                          xml:
                            attribute: true
                  buildavg:
                    type: array
                    items:
                      type: object
                      properties:
                        arch:
                          type: string
                          xml:
                            attribute: true
                        buildavg:
                          type: string
                          xml:
                            attribute: true
                  partition:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        daemon:
                          type: array
                          items:
                            type: object
                            properties:
                              type:
                                type: string
                                xml:
                                  attribute: true
                              state:
                                type: string
                                xml:
                                  attribute: true
                              starttime:
                                type: string
                                xml:
                                  attribute: true
                              arch:
                                type: string
                                xml:
                                  attribute: true
                              queue:
                                type: object
                                properties:
                                  high:
                                    type: string
                                    xml:
                                      attribute: true
                                  med:
                                    type: string
                                    xml:
                                      attribute: true
                                  low:
                                    type: string
                                    xml:
                                      attribute: true
                                  next:
                                    type: string
                                    xml:
                                      attribute: true
                xml:
                  name: workerstatus
              example:
                clients: '2'
                idle:
                - workerid: 1a1f67b948b6:1
                  hostarch: x86_64
                building:
                - repository: openSUSE_11.3_Update
                  arch: x86_64
                  project: home:enzokiel
                  package: android-sdk
                  starttime: '1289838671'
                  workerid: 1a1f67b948b6:2
                  hostarch: x86_64
                down:
                - workerid: armbuild03:1
                  hostarch: aarch64
                waiting:
                - arch: i586
                  jobs: '0'
                - arch: x86_64
                  jobs: '0'
                blocked:
                - arch: i586
                  jobs: '0'
                - arch: x86_64
                  jobs: '0'
                buildavg:
                - arch: i586
                  buildavg: '1200'
                - arch: x86_64
                  buildavg: '1200'
                partition:
                - daemon:
                  - type: srcserver
                    state: running
                    starttime: '1617711138'
                  - type: servicedispatch
                    state: running
                    starttime: '1617711144'
                  - type: service
                    state: running
                    starttime: '1617711144'
                  - type: clouduploadserver
                    state: running
                    starttime: '1617711145'
                  - type: clouduploadworker
                    state: running
                    starttime: '1617711144'
                  - type: scheduler
                    arch: i586
                    state: running
                    starttime: '1617711145'
                    queue:
                      high: '0'
                      med: '0'
                      low: '11'
                      next: '0'
                  - type: scheduler
                    arch: x86_64
                    state: running
                    starttime: '1617711145'
                    queue:
                      high: '0'
                      med: '0'
                      low: '11'
                      next: '0'
                  - type: repserver
                    state: running
                    starttime: '1617711143'
                  - type: dispatcher
                    state: running
                    starttime: '1617711144'
                  - type: publisher
                    state: running
                    starttime: '1617711145'
                  - type: signer
                    state: running
                    starttime: '1617711146'
                - name: back-main
                  daemon:
                  - type: scheduler
                    arch: aarch64
                    state: running
                    starttime: '1617148925'
                    queue:
                      high: '0'
                      med: '1'
                      low: '4'
                      next: '22'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Status Project
  "/status_reports/built/{project_name}/{repository_name}/{architecture_name}/reports/{build_id}":
    get:
      summary: Get list of checks in the built project repository
      description: Get a full list of checks in the built project repository's status
        reports
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      - in: path
        name: build_id
        schema:
          type: integer
        required: true
        description: The id of the build.
        example: 16
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  check:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          example: first_ci
                          xml:
                            attribute: true
                        required:
                          type: string
                          enum:
                          - true
                          - false
                          xml:
                            attribute: true
                        state:
                          type: string
                          enum:
                          - pending
                          - error
                          - failure
                          - success
                        short_description:
                          type: string
                          example: A short description of the check
                        url:
                          type: string
                          example: https://ci.opensuse.org/
                      xml:
                        name: check
                  uuid:
                    type: integer
                    xml:
                      attribute: true
                xml:
                  name: status_report
              example:
                check:
                - name: First
                  required: false
                  state: pending
                  short_description: This is the first of the checks
                  url: https://ci.opensuse.org/
                - name: Second
                  required: true
                  state: success
                  short_description: This is the second of the checks
                  url: https://check.opensuse.org/
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Not Found:
                  value:
                    code: not_found
                    summary: Couldn't find StatusMessage with 'id'=300
      tags:
      - Status Reports
    post:
      summary: Submit a check to a built project repository's status report
      description: Create or update a check to the status report for the built project
        repository
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      - in: path
        name: build_id
        schema:
          type: integer
        required: true
        description: The id of the build.
        example: 16
      requestBody:
        description: Check definition.
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                name:
                  type: string
                  example: first_ci
                  xml:
                    attribute: true
                required:
                  type: string
                  enum:
                  - true
                  - false
                  xml:
                    attribute: true
                state:
                  type: string
                  enum:
                  - pending
                  - error
                  - failure
                  - success
                short_description:
                  type: string
                  example: A short description of the check
                url:
                  type: string
                  example: https://ci.opensuse.org/
              xml:
                name: check
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  name:
                    type: string
                    example: first_ci
                    xml:
                      attribute: true
                  required:
                    type: string
                    enum:
                    - true
                    - false
                    xml:
                      attribute: true
                  state:
                    type: string
                    enum:
                    - pending
                    - error
                    - failure
                    - success
                  short_description:
                    type: string
                    example: A short description of the check
                  url:
                    type: string
                    example: https://ci.opensuse.org/
                xml:
                  name: check
              example:
                name: First
                required: false
                state: pending
                short_description: This is the first of the checks
                url: https://ci.opensuse.org/
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: |
            Forbidden.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: update_status/report_not_authorized
                summary: Sorry, you are not authorized to update this status/report.
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Not Found:
                  value:
                    code: not_found
                    summary: Couldn't find StatusMessage with 'id'=300
        '422':
          description: |
            Unprocessable Content.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Invalid State:
                  value:
                    code: invalid_check
                    summary: "Could not save check: State State '\U0001F680' is not
                      a valid. Valid states are: pending, error, failure, success"
      tags:
      - Status Reports
  "/status_reports/published/{project_name}/{repository_name}/reports/{build_id}":
    get:
      summary: Get list of checks in the published project repository
      description: Get a full list of checks in the published project repository's
        status reports
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: build_id
        schema:
          type: integer
        required: true
        description: The id of the build.
        example: 16
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  check:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          example: first_ci
                          xml:
                            attribute: true
                        required:
                          type: string
                          enum:
                          - true
                          - false
                          xml:
                            attribute: true
                        state:
                          type: string
                          enum:
                          - pending
                          - error
                          - failure
                          - success
                        short_description:
                          type: string
                          example: A short description of the check
                        url:
                          type: string
                          example: https://ci.opensuse.org/
                      xml:
                        name: check
                  uuid:
                    type: integer
                    xml:
                      attribute: true
                xml:
                  name: status_report
              example:
                check:
                - name: First
                  required: false
                  state: pending
                  short_description: This is the first of the checks
                  url: https://ci.opensuse.org/
                - name: Second
                  required: true
                  state: success
                  short_description: This is the second of the checks
                  url: https://check.opensuse.org/
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Not Found:
                  value:
                    code: not_found
                    summary: Couldn't find StatusMessage with 'id'=300
      tags:
      - Status Reports
    post:
      summary: Submit a check to a published project repository's status report
      description: Create or update a check to the status report for the published
        project repository
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: build_id
        schema:
          type: integer
        required: true
        description: The id of the build.
        example: 16
      requestBody:
        description: Check definition.
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                name:
                  type: string
                  example: first_ci
                  xml:
                    attribute: true
                required:
                  type: string
                  enum:
                  - true
                  - false
                  xml:
                    attribute: true
                state:
                  type: string
                  enum:
                  - pending
                  - error
                  - failure
                  - success
                short_description:
                  type: string
                  example: A short description of the check
                url:
                  type: string
                  example: https://ci.opensuse.org/
              xml:
                name: check
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  name:
                    type: string
                    example: first_ci
                    xml:
                      attribute: true
                  required:
                    type: string
                    enum:
                    - true
                    - false
                    xml:
                      attribute: true
                  state:
                    type: string
                    enum:
                    - pending
                    - error
                    - failure
                    - success
                  short_description:
                    type: string
                    example: A short description of the check
                  url:
                    type: string
                    example: https://ci.opensuse.org/
                xml:
                  name: check
              example:
                name: First
                required: false
                state: pending
                short_description: This is the first of the checks
                url: https://ci.opensuse.org/
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: |
            Forbidden.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: update_status/report_not_authorized
                summary: Sorry, you are not authorized to update this status/report.
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Not Found:
                  value:
                    code: not_found
                    summary: Couldn't find StatusMessage with 'id'=300
        '422':
          description: |
            Unprocessable Content.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Invalid State:
                  value:
                    code: invalid_check
                    summary: "Could not save check: State State '\U0001F680' is not
                      a valid. Valid states are: pending, error, failure, success"
      tags:
      - Status Reports
  "/status_reports/requests/{id}/reports":
    get:
      summary: Get list of checks in the request
      description: Get a full list of checks in the request's status reports
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
        description: Id of the choosen request.
        example: 743
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  check:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          example: first_ci
                          xml:
                            attribute: true
                        required:
                          type: string
                          enum:
                          - true
                          - false
                          xml:
                            attribute: true
                        state:
                          type: string
                          enum:
                          - pending
                          - error
                          - failure
                          - success
                        short_description:
                          type: string
                          example: A short description of the check
                        url:
                          type: string
                          example: https://ci.opensuse.org/
                      xml:
                        name: check
                  uuid:
                    type: integer
                    xml:
                      attribute: true
                xml:
                  name: status_report
              example:
                check:
                - name: First
                  required: false
                  state: pending
                  short_description: This is the first of the checks
                  url: https://ci.opensuse.org/
                - name: Second
                  required: true
                  state: success
                  short_description: This is the second of the checks
                  url: https://check.opensuse.org/
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Not Found:
                  value:
                    code: not_found
                    summary: Couldn't find StatusMessage with 'id'=300
      tags:
      - Status Reports
    post:
      summary: Submit a check to the request's status report
      description: Create or update a check to the status report for the request
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        required: true
        description: Id of the choosen request.
        example: 743
      requestBody:
        description: Check definition.
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                name:
                  type: string
                  example: first_ci
                  xml:
                    attribute: true
                required:
                  type: string
                  enum:
                  - true
                  - false
                  xml:
                    attribute: true
                state:
                  type: string
                  enum:
                  - pending
                  - error
                  - failure
                  - success
                short_description:
                  type: string
                  example: A short description of the check
                url:
                  type: string
                  example: https://ci.opensuse.org/
              xml:
                name: check
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  name:
                    type: string
                    example: first_ci
                    xml:
                      attribute: true
                  required:
                    type: string
                    enum:
                    - true
                    - false
                    xml:
                      attribute: true
                  state:
                    type: string
                    enum:
                    - pending
                    - error
                    - failure
                    - success
                  short_description:
                    type: string
                    example: A short description of the check
                  url:
                    type: string
                    example: https://ci.opensuse.org/
                xml:
                  name: check
              example:
                name: First
                required: false
                state: pending
                short_description: This is the first of the checks
                url: https://ci.opensuse.org/
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: |
            Forbidden.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: update_status/report_not_authorized
                summary: Sorry, you are not authorized to update this status/report.
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Not Found:
                  value:
                    code: not_found
                    summary: Couldn't find StatusMessage with 'id'=300
        '422':
          description: |
            Unprocessable Content.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Invalid State:
                  value:
                    code: invalid_check
                    summary: "Could not save check: State State '\U0001F680' is not
                      a valid. Valid states are: pending, error, failure, success"
      tags:
      - Status Reports
  "/status_reports/built_repositories/{project_name}/{repository_name}/{architecture_name}/required_checks":
    get:
      summary: Get list of required checks in the built repository
      description: Get a full list of required checks in the built repository
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  name:
                    type: array
                    items:
                      type: string
                    example:
                    - first
                    - second
                  project:
                    type: string
                    xml:
                      attribute: true
                    example: home:Admin
                  repository:
                    type: string
                    xml:
                      attribute: true
                    example: openSUSE_Tumbleweed
                  architecture:
                    type: string
                    xml:
                      attribute: true
                    example: x86_64
                xml:
                  name: required_checks
              example:
                project: home:Admin
                repository: openSUSE_Tumbleweed
                architecture: x86_64
                name:
                - first
                - second
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Repository:
                  value:
                    code: not_found
                    summary: Couldn't find Repository
                Unknown Architecture:
                  value:
                    code: not_found
                    summary: Couldn't find Architecture
      tags:
      - Status Reports - Required Checks
    post:
      summary: Submit a required checks list to the built repository
      description: Submit a new or modified required checks list to the built repository
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      requestBody:
        description: Required checks list.
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                name:
                  type: array
                  items:
                    type: string
                  example:
                  - first
                  - second
                project:
                  type: string
                  xml:
                    attribute: true
                  example: home:Admin
                repository:
                  type: string
                  xml:
                    attribute: true
                  example: openSUSE_Tumbleweed
                architecture:
                  type: string
                  xml:
                    attribute: true
                  example: x86_64
              xml:
                name: required_checks
            example:
              project: home:Admin
              repository: openSUSE_Tumbleweed
              architecture: x86_64
              name:
              - first
              - second
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  name:
                    type: array
                    items:
                      type: string
                    example:
                    - first
                    - second
                  project:
                    type: string
                    xml:
                      attribute: true
                    example: home:Admin
                  repository:
                    type: string
                    xml:
                      attribute: true
                    example: openSUSE_Tumbleweed
                  architecture:
                    type: string
                    xml:
                      attribute: true
                    example: x86_64
                xml:
                  name: required_checks
              example:
                project: home:Admin
                repository: openSUSE_Tumbleweed
                architecture: x86_64
                name:
                - first
                - second
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: |
            Forbidden.
            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: create_repository_architecture_not_authorized
                summary: Sorry, you are not authorized to create this repository architecture.
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Repository:
                  value:
                    code: not_found
                    summary: Couldn't find Repository
                Unknown Architecture:
                  value:
                    code: not_found
                    summary: Couldn't find Architecture
        '422':
          description: |
            Unprocessable Content.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Could not save:
                  value:
                    code: invalid_required_check
                    summary: 'Could not save required check:'
                Could not delete:
                  value:
                    code: invalid_required_check
                    summary: 'Could not delete required check:'
      tags:
      - Status Reports - Required Checks
  "/status_reports/built_repositories/{project_name}/{repository_name}/{architecture_name}/required_checks/{check_name}":
    delete:
      summary: Delete a required check from the built repository
      description: Delete a required check from the built repository
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      - in: path
        name: check_name
        schema:
          type: string
        required: true
        description: Check name.
        example: first
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: |
            Forbidden.
            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: delete_repository_architecture_not_authorized
                summary: Sorry, you are not authorized to delete this repository architecture.
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Repository:
                  value:
                    code: not_found
                    summary: Couldn't find Repository
                Unknown Architecture:
                  value:
                    code: not_found
                    summary: Couldn't find Architecture
        '422':
          description: |
            Unprocessable Content.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Could not save:
                  value:
                    code: invalid_required_check
                    summary: 'Could not save required check:'
                Could not delete:
                  value:
                    code: invalid_required_check
                    summary: 'Could not delete required check:'
      tags:
      - Status Reports - Required Checks
  "/status_reports/projects/{project_name}/required_checks":
    get:
      summary: Get list of required checks in the project
      description: Get a full list of required checks in the project
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  name:
                    type: array
                    items:
                      type: string
                    example:
                    - first
                    - second
                  project:
                    type: string
                    xml:
                      attribute: true
                    example: home:Admin
                  repository:
                    type: string
                    xml:
                      attribute: true
                    example: openSUSE_Tumbleweed
                  architecture:
                    type: string
                    xml:
                      attribute: true
                    example: x86_64
                xml:
                  name: required_checks
              example:
                project: home:Admin
                name:
                - first
                - second
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
      tags:
      - Status Reports - Required Checks
    post:
      summary: Submit a required checks list to the project
      description: Submit a new or modified required checks list to the project
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      requestBody:
        description: Required checks list.
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                name:
                  type: array
                  items:
                    type: string
                  example:
                  - first
                  - second
                project:
                  type: string
                  xml:
                    attribute: true
                  example: home:Admin
                repository:
                  type: string
                  xml:
                    attribute: true
                  example: openSUSE_Tumbleweed
                architecture:
                  type: string
                  xml:
                    attribute: true
                  example: x86_64
              xml:
                name: required_checks
            example:
              project: home:Admin
              name:
              - first
              - second
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  name:
                    type: array
                    items:
                      type: string
                    example:
                    - first
                    - second
                  project:
                    type: string
                    xml:
                      attribute: true
                    example: home:Admin
                  repository:
                    type: string
                    xml:
                      attribute: true
                    example: openSUSE_Tumbleweed
                  architecture:
                    type: string
                    xml:
                      attribute: true
                    example: x86_64
                xml:
                  name: required_checks
              example:
                project: home:Admin
                name:
                - first
                - second
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: |
            Forbidden.
            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: create_project_not_authorized
                summary: Sorry, you are not authorized to create this project.
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
        '422':
          description: |
            Unprocessable Content.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Could not save:
                  value:
                    code: invalid_required_check
                    summary: 'Could not save required check:'
                Could not delete:
                  value:
                    code: invalid_required_check
                    summary: 'Could not delete required check:'
      tags:
      - Status Reports - Required Checks
  "/status_reports/projects/{project_name}/required_checks/{check_name}":
    delete:
      summary: Delete a required checks from the project
      description: Delete a required check from the project
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: check_name
        schema:
          type: string
        required: true
        description: Check name.
        example: first
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: |
            Forbidden.
            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: delete_project_not_authorized
                summary: Sorry, you are not authorized to delete this project.
        '404':
          description: |
            Unknown project.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: <some project>.'
        '422':
          description: |
            Unprocessable Content.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Could not save:
                  value:
                    code: invalid_required_check
                    summary: 'Could not save required check:'
                Could not delete:
                  value:
                    code: invalid_required_check
                    summary: 'Could not delete required check:'
      tags:
      - Status Reports - Required Checks
  "/status_reports/repositories/{project_name}/{repository_name}/required_checks":
    get:
      summary: Get list of required checks in the project repository
      description: Get a full list of required checks in the project repository
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  name:
                    type: array
                    items:
                      type: string
                    example:
                    - first
                    - second
                  project:
                    type: string
                    xml:
                      attribute: true
                    example: home:Admin
                  repository:
                    type: string
                    xml:
                      attribute: true
                    example: openSUSE_Tumbleweed
                  architecture:
                    type: string
                    xml:
                      attribute: true
                    example: x86_64
                xml:
                  name: required_checks
              example:
                project: home:Admin
                repository: openSUSE_Tumbleweed
                name:
                - first
                - second
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Repository:
                  value:
                    code: not_found
                    summary: Couldn't find Repository
      tags:
      - Status Reports - Required Checks
    post:
      summary: Submit a required checks list to the project repository
      description: Submit a new or modified required checks list to the project repository
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      requestBody:
        description: Required checks list.
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                name:
                  type: array
                  items:
                    type: string
                  example:
                  - first
                  - second
                project:
                  type: string
                  xml:
                    attribute: true
                  example: home:Admin
                repository:
                  type: string
                  xml:
                    attribute: true
                  example: openSUSE_Tumbleweed
                architecture:
                  type: string
                  xml:
                    attribute: true
                  example: x86_64
              xml:
                name: required_checks
            example:
              project: home:Admin
              repository: openSUSE_Tumbleweed
              name:
              - first
              - second
      responses:
        '200':
          description: OK. The request has succeeded.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  name:
                    type: array
                    items:
                      type: string
                    example:
                    - first
                    - second
                  project:
                    type: string
                    xml:
                      attribute: true
                    example: home:Admin
                  repository:
                    type: string
                    xml:
                      attribute: true
                    example: openSUSE_Tumbleweed
                  architecture:
                    type: string
                    xml:
                      attribute: true
                    example: x86_64
                xml:
                  name: required_checks
              example:
                project: home:Admin
                repository: openSUSE_Tumbleweed
                name:
                - first
                - second
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: |
            Forbidden.
            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: create_repository_not_authorized
                summary: Sorry, you are not authorized to create this repository.
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Repository:
                  value:
                    code: not_found
                    summary: Couldn't find Repository
        '422':
          description: |
            Unprocessable Content.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Could not save:
                  value:
                    code: invalid_required_check
                    summary: 'Could not save required check:'
                Could not delete:
                  value:
                    code: invalid_required_check
                    summary: 'Could not delete required check:'
      tags:
      - Status Reports - Required Checks
  "/status_reports/repositories/{project_name}/{repository_name}/required_checks/{check_name}":
    delete:
      summary: Delete a required check from the project repository
      description: Delete a required checks from the project repository
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: project_name
        schema:
          type: string
        required: true
        description: Project name
        example: home:Admin
      - in: path
        name: repository_name
        schema:
          type: string
        required: true
        description: Repository name
        example: openSUSE_Tumbleweed
      - in: path
        name: check_name
        schema:
          type: string
        required: true
        description: Check name.
        example: first
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '403':
          description: |
            Forbidden.
            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: delete_repository_not_authorized
                summary: Sorry, you are not authorized to delete this repository.
        '404':
          description: |
            Not Found.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Unknown Project:
                  value:
                    code: unknown_project
                    summary: 'Project not found: home:some_project'
                Unknown Repository:
                  value:
                    code: not_found
                    summary: Couldn't find Repository
        '422':
          description: |
            Unprocessable Content.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                Could not save:
                  value:
                    code: invalid_required_check
                    summary: 'Could not save required check:'
                Could not delete:
                  value:
                    code: invalid_required_check
                    summary: 'Could not delete required check:'
      tags:
      - Status Reports - Required Checks
  "/trigger":
    post:
      summary: Trigger a rebuild, release or service run via an API token
      description: |
        This route allows to trigger

        - a Project/Package rebuild
        - a Project/Package release
        - a Package service run

        via an API token.

        You are required to authenticate with the API token secret. The API token secret needs
        to be provided either by HTTP headers or by a Hash-based Message Authentication Code (HMAC).

        See the [/person/{login}/token](#/Person/post_person__login__token) endpoint for
        information how to create an API token.
      security:
      - GitLab_key_authentication: []
      parameters:
      - in: header
        name: X-OBS-SIGNATURE
        description: |
          A HMAC of the request body, signed with the API token secret.
          Only useful in combination with the id parameter.
        schema:
          type: string
        example: 123458568938927827827
      - in: header
        name: X-HUB-SIGNATURE-256
        description: |
          A HMAC of the request body, signed with the API token secret.
          Only useful in combination with the id parameter.
        schema:
          type: string
        example: 123458568938927827827
      - in: header
        name: X-Pagure-Signature-256
        description: |
          A HMAC of the request body, signed with the API token secret.
          Only useful in combination with the id parameter.
        schema:
          type: string
        example: 123458568938927827827
      - in: header
        name: X-GitLab-Token
        description: The API token secret.
        schema:
          type: string
        example: THE_TOKEN_SECRET
      - in: header
        name: Authorization
        description: The API token secret in the Token realm.
        schema:
          type: string
        example: Token THE_TOKEN_SECRET
      - in: query
        name: id
        description: |
          Numerical ID of the token to trigger.
          This is required if you authenticate via a HMAC.
        schema:
          type: integer
        example: 1
      - in: query
        name: project
        description: |
          If the API token does not have a package assigned you can set a project via this parameter.
          The operation of the API token is then executed on this project.
        schema:
          type: string
        example: home:user
      - in: query
        name: package
        description: |
          If the API token does not have a package assigned you can set a package via this parameter.
          The operation of the API token is then executed on this package.

          Setting this requires the project parameter to be set too.
        schema:
          type: string
        example: vim
      - in: query
        name: repository
        description: |
          Restrict the API token operation to this repository.

          Only has an effect if the API token operation is 'rebuild' or 'release'.
        schema:
          type: string
        example: openSUSE_Factory
      - in: query
        name: arch
        description: |
          Restrict the API token operation to this architecture with this name.

          Only has an effect when the API token operation is 'rebuild' or 'release'.
        schema:
          type: string
        example: x86_64
      - in: query
        name: targetproject
        description: |
          Release binaries only to the provided project with this name.
          Setting this requires the 'targetrepository' parameter to be set also.

          Only has an effect if the API token operation is 'release'.
        schema:
          type: string
        example: devel:languages:ruby
      - in: query
        name: targetrepository
        description: |
          Release binaries only to the target repository with this name.
          Setting this requires the 'targetproject' parameter to be set also.

          Only has an effect if the API token operation is 'release'.
        schema:
          type: string
        example: openSUSE_Factory
      - in: query
        name: filter_source_repository
        description: |
          Release binaries only from the repository with this name.

          Only has an effect if the API token operation is 'release'.
        schema:
          type: string
        example: openSUSE_Factory
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: Bad Request.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: invalid_token
                summary: No valid token found
        '403':
          description: Forbidden.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: permission_denied
                summary: No valid token found
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                unknown_project:
                  summary: Project not found
                  value:
                    code: unknown_project
                    details: 'Project not found: home:Admin'
                unknown_package:
                  summary: Package not found
                  value:
                    code: unknown_package
                    details: 'Package not found: home:Admin/foo'
      tags:
      - Trigger
  "/trigger/rebuild":
    post:
      summary: Trigger a Project/Package rebuild
      description: |
        This endpoint behaves exactly as the [/trigger](#/Trigger/post_trigger) endpoint but
        only allows API tokens with the operation 'rebuild' to be triggered.
      security:
      - GitLab_key_authentication: []
      tags:
      - Trigger
  "/trigger/release":
    post:
      summary: Trigger a Project/Package release
      description: |
        This endpoint behaves exactly as the [/trigger](#/Trigger/post_trigger) endpoint but
        only allows API tokens the the operation 'release' to be triggered.
      security:
      - GitLab_key_authentication: []
      tags:
      - Trigger
  "/trigger/runservice":
    post:
      summary: Trigger a Package service run
      description: |
        This endpoint behaves exactly as the [/trigger](#/Trigger/post_trigger) endpoint but
        only allows API tokens with the operation 'runservice' to be triggered.
      security:
      - GitLab_key_authentication: []
      tags:
      - Trigger
  "/trigger/workflow":
    post:
      summary: Trigger a SCM/CI Workflow via an API token
      description: |
        This route allows to trigger an [OBS SCM/CI workflow](https://openbuildservice.org/help/manuals/obs-user-guide/cha.obs.scm_ci_workflow_integration)
        via an API token.

        You are required to authenticate with the API token secret. The API token secret needs
        to be provided either by HTTP headers or by a Hash-based Message Authentication Code (HMAC).

        See the [/person/{login}/token](#/Person/post_person__login__token) endpoint for
        information how to create an API token.
      security:
      - GitLab_key_authentication: []
      parameters:
      - in: header
        name: X-OBS-SIGNATURE
        description: |
          A HMAC of the request body, signed with the API token secret.
          Only useful in combination with the id parameter.
        schema:
          type: string
        example: 123458568938927827827
      - in: header
        name: X-HUB-SIGNATURE-256
        description: |
          A HMAC of the request body, signed with the API token secret.
          Only useful in combination with the id parameter.
        schema:
          type: string
        example: 123458568938927827827
      - in: header
        name: X-Pagure-Signature-256
        description: |
          A HMAC of the request body, signed with the API token secret.
          Only useful in combination with the id parameter.
        schema:
          type: string
        example: 123458568938927827827
      - in: header
        name: X-GitLab-Token
        description: The API token secret.
        schema:
          type: string
        example: THE_TOKEN_SECRET
      - in: header
        name: Authorization
        description: The API token secret in the Token realm.
        schema:
          type: string
        example: Token THE_TOKEN_SECRET
      - in: query
        name: id
        description: |
          Numerical ID of the token to trigger.
          This is required if you authenticate via a HMAC.
        schema:
          type: integer
        example: 1
      responses:
        '200':
          description: |
            OK. The request has succeeded.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: ok
                summary: Ok
        '400':
          description: Bad Request.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: invalid_token
                summary: No valid token found
        '403':
          description: Forbidden.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: permission_denied
                summary: No valid token found
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                unknown_project:
                  summary: Project not found
                  value:
                    code: unknown_project
                    details: 'Project not found: home:Admin'
                unknown_package:
                  summary: Package not found
                  value:
                    code: unknown_package
                    details: 'Package not found: home:Admin/foo'
      tags:
      - Trigger
  "/trigger/webhook":
    post:
      deprecated: true
      summary: Trigger an operation
      description: This endpoint behaves exactly as the [/trigger](#/Trigger) endpoint.
      security:
      - GitLab_key_authentication: []
      tags:
      - Trigger
  "/worker/_status":
    get:
      summary: Lists status of workers, jobs, backend services and general statistics.
      description: Lists status of workers, running jobs, waiting jobs, status of
        the backend services and general statistics.
      security:
      - basic_authentication: []
      responses:
        '200':
          description: OK
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  clients:
                    type: integer
                    xml:
                      attribute: true
                  idle:
                    type: array
                    items:
                      type: object
                      properties:
                        workerid:
                          type: string
                          xml:
                            attribute: true
                        hostarch:
                          type: string
                          xml:
                            attribute: true
                  building:
                    type: array
                    items:
                      type: object
                      properties:
                        repository:
                          type: string
                          xml:
                            attribute: true
                        arch:
                          type: string
                          xml:
                            attribute: true
                        project:
                          type: string
                          xml:
                            attribute: true
                        package:
                          type: string
                          xml:
                            attribute: true
                        starttime:
                          type: string
                          xml:
                            attribute: true
                        workerid:
                          type: string
                          xml:
                            attribute: true
                        hostarch:
                          type: string
                          xml:
                            attribute: true
                  down:
                    type: array
                    items:
                      type: object
                      properties:
                        workerid:
                          type: string
                          xml:
                            attribute: true
                        hostarch:
                          type: string
                          xml:
                            attribute: true
                  waiting:
                    type: array
                    items:
                      type: object
                      properties:
                        arch:
                          type: string
                          xml:
                            attribute: true
                        jobs:
                          type: string
                          xml:
                            attribute: true
                  blocked:
                    type: array
                    items:
                      type: object
                      properties:
                        arch:
                          type: string
                          xml:
                            attribute: true
                        jobs:
                          type: string
                          xml:
                            attribute: true
                  buildavg:
                    type: array
                    items:
                      type: object
                      properties:
                        arch:
                          type: string
                          xml:
                            attribute: true
                        buildavg:
                          type: string
                          xml:
                            attribute: true
                  partition:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        daemon:
                          type: array
                          items:
                            type: object
                            properties:
                              type:
                                type: string
                                xml:
                                  attribute: true
                              state:
                                type: string
                                xml:
                                  attribute: true
                              starttime:
                                type: string
                                xml:
                                  attribute: true
                              arch:
                                type: string
                                xml:
                                  attribute: true
                              queue:
                                type: object
                                properties:
                                  high:
                                    type: string
                                    xml:
                                      attribute: true
                                  med:
                                    type: string
                                    xml:
                                      attribute: true
                                  low:
                                    type: string
                                    xml:
                                      attribute: true
                                  next:
                                    type: string
                                    xml:
                                      attribute: true
                xml:
                  name: workerstatus
              example:
                clients: '2'
                idle:
                - workerid: 1a1f67b948b6:1
                  hostarch: x86_64
                building:
                - repository: openSUSE_11.3_Update
                  arch: x86_64
                  project: home:enzokiel
                  package: android-sdk
                  starttime: '1289838671'
                  workerid: 1a1f67b948b6:2
                  hostarch: x86_64
                down:
                - workerid: armbuild03:1
                  hostarch: aarch64
                waiting:
                - arch: i586
                  jobs: '0'
                - arch: x86_64
                  jobs: '0'
                blocked:
                - arch: i586
                  jobs: '0'
                - arch: x86_64
                  jobs: '0'
                buildavg:
                - arch: i586
                  buildavg: '1200'
                - arch: x86_64
                  buildavg: '1200'
                partition:
                - daemon:
                  - type: srcserver
                    state: running
                    starttime: '1617711138'
                  - type: servicedispatch
                    state: running
                    starttime: '1617711144'
                  - type: service
                    state: running
                    starttime: '1617711144'
                  - type: clouduploadserver
                    state: running
                    starttime: '1617711145'
                  - type: clouduploadworker
                    state: running
                    starttime: '1617711144'
                  - type: scheduler
                    arch: i586
                    state: running
                    starttime: '1617711145'
                    queue:
                      high: '0'
                      med: '0'
                      low: '11'
                      next: '0'
                  - type: scheduler
                    arch: x86_64
                    state: running
                    starttime: '1617711145'
                    queue:
                      high: '0'
                      med: '0'
                      low: '11'
                      next: '0'
                  - type: repserver
                    state: running
                    starttime: '1617711143'
                  - type: dispatcher
                    state: running
                    starttime: '1617711144'
                  - type: publisher
                    state: running
                    starttime: '1617711145'
                  - type: signer
                    state: running
                    starttime: '1617711146'
                - name: back-main
                  daemon:
                  - type: scheduler
                    arch: aarch64
                    state: running
                    starttime: '1617148925'
                    queue:
                      high: '0'
                      med: '1'
                      low: '4'
                      next: '22'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Workers
  "/worker/status":
    get:
      deprecated: true
      summary: Lists status of workers, jobs, backend services and general statistics.
      description: |
        Lists status of workers, running jobs, waiting jobs, status of the backend services and general statistics.

        This endpoint is exactly the same as `GET /worker/_status`, please use that one.
      security:
      - basic_authentication: []
      responses:
        '200':
          description: OK
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  clients:
                    type: integer
                    xml:
                      attribute: true
                  idle:
                    type: array
                    items:
                      type: object
                      properties:
                        workerid:
                          type: string
                          xml:
                            attribute: true
                        hostarch:
                          type: string
                          xml:
                            attribute: true
                  building:
                    type: array
                    items:
                      type: object
                      properties:
                        repository:
                          type: string
                          xml:
                            attribute: true
                        arch:
                          type: string
                          xml:
                            attribute: true
                        project:
                          type: string
                          xml:
                            attribute: true
                        package:
                          type: string
                          xml:
                            attribute: true
                        starttime:
                          type: string
                          xml:
                            attribute: true
                        workerid:
                          type: string
                          xml:
                            attribute: true
                        hostarch:
                          type: string
                          xml:
                            attribute: true
                  down:
                    type: array
                    items:
                      type: object
                      properties:
                        workerid:
                          type: string
                          xml:
                            attribute: true
                        hostarch:
                          type: string
                          xml:
                            attribute: true
                  waiting:
                    type: array
                    items:
                      type: object
                      properties:
                        arch:
                          type: string
                          xml:
                            attribute: true
                        jobs:
                          type: string
                          xml:
                            attribute: true
                  blocked:
                    type: array
                    items:
                      type: object
                      properties:
                        arch:
                          type: string
                          xml:
                            attribute: true
                        jobs:
                          type: string
                          xml:
                            attribute: true
                  buildavg:
                    type: array
                    items:
                      type: object
                      properties:
                        arch:
                          type: string
                          xml:
                            attribute: true
                        buildavg:
                          type: string
                          xml:
                            attribute: true
                  partition:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        daemon:
                          type: array
                          items:
                            type: object
                            properties:
                              type:
                                type: string
                                xml:
                                  attribute: true
                              state:
                                type: string
                                xml:
                                  attribute: true
                              starttime:
                                type: string
                                xml:
                                  attribute: true
                              arch:
                                type: string
                                xml:
                                  attribute: true
                              queue:
                                type: object
                                properties:
                                  high:
                                    type: string
                                    xml:
                                      attribute: true
                                  med:
                                    type: string
                                    xml:
                                      attribute: true
                                  low:
                                    type: string
                                    xml:
                                      attribute: true
                                  next:
                                    type: string
                                    xml:
                                      attribute: true
                xml:
                  name: workerstatus
              example:
                clients: '2'
                idle:
                - workerid: 1a1f67b948b6:1
                  hostarch: x86_64
                building:
                - repository: openSUSE_11.3_Update
                  arch: x86_64
                  project: home:enzokiel
                  package: android-sdk
                  starttime: '1289838671'
                  workerid: 1a1f67b948b6:2
                  hostarch: x86_64
                down:
                - workerid: armbuild03:1
                  hostarch: aarch64
                waiting:
                - arch: i586
                  jobs: '0'
                - arch: x86_64
                  jobs: '0'
                blocked:
                - arch: i586
                  jobs: '0'
                - arch: x86_64
                  jobs: '0'
                buildavg:
                - arch: i586
                  buildavg: '1200'
                - arch: x86_64
                  buildavg: '1200'
                partition:
                - daemon:
                  - type: srcserver
                    state: running
                    starttime: '1617711138'
                  - type: servicedispatch
                    state: running
                    starttime: '1617711144'
                  - type: service
                    state: running
                    starttime: '1617711144'
                  - type: clouduploadserver
                    state: running
                    starttime: '1617711145'
                  - type: clouduploadworker
                    state: running
                    starttime: '1617711144'
                  - type: scheduler
                    arch: i586
                    state: running
                    starttime: '1617711145'
                    queue:
                      high: '0'
                      med: '0'
                      low: '11'
                      next: '0'
                  - type: scheduler
                    arch: x86_64
                    state: running
                    starttime: '1617711145'
                    queue:
                      high: '0'
                      med: '0'
                      low: '11'
                      next: '0'
                  - type: repserver
                    state: running
                    starttime: '1617711143'
                  - type: dispatcher
                    state: running
                    starttime: '1617711144'
                  - type: publisher
                    state: running
                    starttime: '1617711145'
                  - type: signer
                    state: running
                    starttime: '1617711146'
                - name: back-main
                  daemon:
                  - type: scheduler
                    arch: aarch64
                    state: running
                    starttime: '1617148925'
                    queue:
                      high: '0'
                      med: '1'
                      low: '4'
                      next: '22'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
      tags:
      - Workers
  "/worker/{architecture_name}:{worker_id}":
    get:
      summary: Lists capabilites of a worker.
      description: |
        Lists capabilites of a worker.

        This can be useful when checking for constraints.

        This operation is the same as `GET /worker/capability/{architecture_name}:{worker_id}`.
      security:
      - basic_authentication: []
      parameters:
      - in: path
        name: architecture_name
        schema:
          type: string
        required: true
        description: Architecture name
        example: x86_64
      - in: path
        name: worker_id
        schema:
          type: string
        required: true
        description: Worker id.
        example: 1a1f67b948b6:1
      responses:
        '200':
          description: OK
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  hostarch:
                    type: string
                    xml:
                      attribute: true
                  registerserver:
                    type: string
                    xml:
                      attribute: true
                  workerid:
                    type: string
                    xml:
                      attribute: true
                  hostlabel:
                    type: string
                  sandbox:
                    type: string
                  linux:
                    type: object
                    properties:
                      version:
                        type: string
                      flavor:
                        type: string
                  hardware:
                    type: object
                    properties:
                      cpu:
                        type: object
                        properties:
                          flag:
                            type: array
                            items:
                              type: string
                      processors:
                        type: string
                      jobs:
                        type: string
                xml:
                  name: worker
              example:
                hostarch: x86_64
                registerserver: http://backend:5252
                workerid: 1a1f67b948b6:1
                hostlabel: OBS_WORKER_SECURITY_LEVEL_
                sandbox: chroot
                linux:
                  version: 5.11.6-1
                  flavor: default
                hardware:
                  cpu:
                    flag:
                    - fpu
                    - vme
                    - de
                    - pse
                    - tsc
                    - msr
                  processors: '8'
                  jobs: '1'
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: '404'
                summary: 'remote error: unknown worker (http://backend:5252/worker/x86_64:1a1f67b948bf:1)'
                details: '404 remote error: unknown worker (http://backend:5252/worker/x86_64:1a1f67b948bf:1)'
      tags:
      - Workers
  "/worker?cmd=checkconstraints":
    post:
      summary: Lists workers which match a constraints filter.
      description: |
        Given a project, package, repository and architecture, list workers which can build with that restrictions, and also match a constraints filter.

        This endpoint doesn't create or modify any data.

        More information about constraints can be found in the
        [user guide](https://openbuildservice.org/help/manuals/obs-user-guide/cha.obs.build_job_constraints.html).

        This operation is the same as `POST /worker/command/run?cmd=checkconstraints`.
      security:
      - basic_authentication: []
      parameters:
      - in: query
        name: project
        schema:
          type: string
        required: true
        example: home:user1
        description: Project name.
      - in: query
        name: repository
        schema:
          type: string
        required: true
        description: Repository name.
        example: openSUSE_Tumbleweed
      - in: query
        name: arch
        schema:
          type: string
        required: true
        description: Architecture name.
        example: x86_64
      - in: query
        name: package
        schema:
          type: string
        required: true
        description: Package name.
        example: test_package
      requestBody:
        description: Constraints XML filter
        required: true
        content:
          application/xml; charset=utf-8:
            schema:
              type: object
              properties:
                hostlabel:
                  type: string
                sandbox:
                  type: string
                  example: chroot
                linux:
                  type: object
                  properties:
                    version:
                      type: object
                      properties:
                        min:
                          type: string
                        max:
                          type: string
                    flavor:
                      type: string
                hardware:
                  type: object
                  properties:
                    cpu:
                      type: object
                      properties:
                        flag:
                          type: array
                          items:
                            type: string
                    processors:
                      type: string
                    disk:
                      type: object
                      properties:
                        size:
                          type: string
                    memory:
                      type: object
                      properties:
                        size:
                          type: string
                    physicalmemory:
                      type: object
                      properties:
                        size:
                          type: string
              xml:
                name: constraints
            examples:
              cpu_flags:
                summary: Cpu flags
                value:
                  hardware:
                    cpu:
                      flag:
                      - mmx
                      - sse2
              processors:
                summary: Number of processors
                value:
                  hardware:
                    processors: 2
              mix:
                summary: Linux version and linux flavor
                value:
                  linux:
                    version:
                      min: 3.0
                      max: 4.0
                    flavor: default
      responses:
        '200':
          description: OK
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    xml:
                      attribute: true
                  name:
                    type: string
                    xml:
                      attribute: true
                  rev:
                    type: string
                    xml:
                      attribute: true
                  vrev:
                    type: string
                    xml:
                      attribute: true
                  srcmd5:
                    type: string
                    xml:
                      attribute: true
                  entry:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          xml:
                            attribute: true
                        md5:
                          type: string
                          xml:
                            attribute: true
                        size:
                          type: string
                          xml:
                            attribute: true
                        mtime:
                          type: string
                          xml:
                            attribute: true
                xml:
                  name: directory
              examples:
                two_workers:
                  summary: Two Workers Satisfy the Constraints
                  value:
                    entry:
                    - name: x86_64:1a1f67b948b6:1
                    - name: x86_64:1a1f67b948b6:2
                no_workers:
                  summary: No Workers Satisfy the Constraints
                  value:
        '400':
          description: Bad Request.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: missing_parameter
                summary: Required Parameter arch missing
        '401':
          description: |
            Unauthorized.

            XML Schema used for body validation: [status.rng](../schema/status.rng)
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              examples:
                anonymous_user:
                  value:
                    code: anonymous_user
                    summary: Anonymous user is not allowed here - please login
                  summary: Anonymous User
                authentication_required:
                  value:
                    code: authentication_required
                    summary: Unknown user 'Admin' or invalid password
                  summary: Authentication Required
        '404':
          description: Not Found.
          content:
            application/xml; charset=utf-8:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    xml:
                      attribute: true
                  origin:
                    type: string
                    xml:
                      attribute: true
                  summary:
                    type: string
                  details:
                    type: string
                  data:
                    type: array
                    items:
                      type: string
                xml:
                  name: status
              example:
                code: 404
                summary: repository 'home:Admin/openSUSE_Tumbleweed' has no architecture
                  'x86_64d'
      tags:
      - Workers
components:
  securitySchemes:
    basic_authentication:
      type: http
      scheme: basic
    GitLab_key_authentication:
      type: apiKey
      in: header
      name: X-GitLab-Token
externalDocs:
  url: https://openbuildservice.org/help/
  description: Open Build Service - Documentation
