TypeError: Cannot read properties of undefined (reading 'type')
    at getParameterValues (/home/runner/work/documentation/documentation/tools/openapi_examples/node_modules/openapi-snippet/openapi-to-har.js:441:43)
    at parseParametersToQuery (/home/runner/work/documentation/documentation/tools/openapi_examples/node_modules/openapi-snippet/openapi-to-har.js:515:34)
    at getParameterCollectionIn (/home/runner/work/documentation/documentation/tools/openapi_examples/node_modules/openapi-snippet/openapi-to-har.js:570:27)
    at getFullPath (/home/runner/work/documentation/documentation/tools/openapi_examples/node_modules/openapi-snippet/openapi-to-har.js:617:26)
    at Object.createHar [as getEndpoint] (/home/runner/work/documentation/documentation/tools/openapi_examples/node_modules/openapi-snippet/openapi-to-har.js:43:20)
    at Object.getEndpointSnippets (/home/runner/work/documentation/documentation/tools/openapi_examples/node_modules/openapi-snippet/index.js:31:29)
    at /home/runner/work/documentation/documentation/tools/openapi_examples/generate_api_examples.js:19:43
    at Array.forEach (<anonymous>)
    at addRequestSamples (/home/runner/work/documentation/documentation/tools/openapi_examples/generate_api_examples.js:17:8)
    at Object.<anonymous> (/home/runner/work/documentation/documentation/tools/openapi_examples/generate_api_examples.js:48:23)
info:
  description: >
    Each resource can be accessed or modified using specially

    formed URLs and the standard HTTP methods:


    - GET to read


    - POST to create


    - PUT to update


    - DELETE to remove


    We require that all requests are done over SSL. The API supports JSON

    formats. Rucio uses [OAuth](http://oauth.net/) to authenticate all API

    requests. The method is to get an authentication token, and use it for the
    rest

    of the requests. Descriptions of the actions you may perform on each
    resource

    can be found below.


    ### Date format


    All dates returned are in UTC and are strings in the following format

    (RFC 1123, ex RFC 822):


    ```

    Mon, 13 May 2013 10:23:03 UTC

    ```


    In code format, which can be used in all programming languages that support

    strftime or strptime:


    ```

    %a, %d %b %Y %H:%M:%S UTC

    ```


    ### SSL only


    We require that all requests(except for the ping) are done over SSL.


    ### Response formats


    The currently-available response format for all REST endpoints is the

    string-based format JavaScript Object

    Notation([JSON](http://www.json.org/)). The server answer can be one of the

    following content-type in the http Header:


    ```text

    Content-type: application/json

    Content-Type: application/x-json-stream

    ```


    In the last case, it corresponds to JSON objects delimited by newlines

    (streaming JSON for large answer), e.g.:


    ```

    { "id": 1, "foo": "bar" } { "id": 2, "foo": "baz" } ...

    ```


    ### Error handling


    Errors are returned using standard HTTP error code syntax.  Any additional
    info

    is included in the header of the return call, JSON-formatted with the

    parameters:


    ```

    ExceptionClass ExceptionMessage

    ```


    Where ExceptionClass refers to [`Rucio

    Exceptions`](https://github.com/rucio/rucio/blob/58efd21b5e21182df80bef3dbe8befa636e440b8/lib/rucio/common/exception.py).
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  x-logo:
    url: >-
      http://rucio.cern.ch/documentation/img/rucio_horizontaled_black_cropped.svg
    backgroundColor: '#FFFFFF'
    altText: Rucio logo
  title: Rucio
  version: 39.0.0
components:
  securitySchemes:
    AuthToken:
      type: apiKey
      in: header
      name: X-Rucio-Auth-Token
      description: The Rucio Token obtained by one of the /auth endpoints.
security:
  - AuthToken: []
paths:
  /static/{filename}: {}
  /identities/{account}/userpass:
    put:
      summary: Create UserPass identity
      description: Creates a new UserPass identity and maps it to an account.
      tags:
        - Identity
      parameters:
        - name: account
          in: path
          description: The account for the identity.
          schema:
            type: string
          style: simple
          required: true
        - name: X-Rucio-Username
          in: query
          description: Username for the identity.
          schema:
            type: string
          style: simple
          required: true
        - name: X-Rucio-Password
          in: query
          description: The password for the identity.
          schema:
            type: string
          style: simple
          required: true
        - name: X-Rucio-Email
          in: query
          description: The email for the identity.
          schema:
            type: string
          style: simple
          required: false
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '400':
          description: Missing username or password.
        '401':
          description: Invalid Auth Token
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request PUT \
              --url 'http://undefinedundefined/identities/{account}/userpass?X-Rucio-Username=SOME_STRING_VALUE&X-Rucio-Password=SOME_STRING_VALUE&X-Rucio-Email=SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/identities/{account}/userpass"


            querystring =
            {"X-Rucio-Username":"SOME_STRING_VALUE","X-Rucio-Password":"SOME_STRING_VALUE","X-Rucio-Email":"SOME_STRING_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("PUT", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/identities/{account}/userpass?X-Rucio-Username=SOME_STRING_VALUE&X-Rucio-Password=SOME_STRING_VALUE&X-Rucio-Email=SOME_STRING_VALUE';


            let options = {method: 'PUT', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /identities/{account}/x509:
    put:
      summary: Create X509 identity
      description: Creates a new X509 identity and maps it to an account.
      tags:
        - Identity
      parameters:
        - name: account
          in: path
          description: The account for the identity.
          schema:
            type: string
          style: simple
          required: true
        - name: X-Rucio-Email
          in: query
          description: The email for the identity.
          schema:
            type: string
          style: simple
          required: false
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '401':
          description: Invalid Auth Token
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request PUT \
              --url 'http://undefinedundefined/identities/{account}/x509?X-Rucio-Email=SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/identities/{account}/x509"


            querystring = {"X-Rucio-Email":"SOME_STRING_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("PUT", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/identities/{account}/x509?X-Rucio-Email=SOME_STRING_VALUE';


            let options = {method: 'PUT', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /identities/{account}/gss:
    put:
      summary: Create GSS identity
      description: Creates a new GSS identity and maps it to an account.
      tags:
        - Identity
      parameters:
        - name: account
          in: path
          description: The account for the identity.
          schema:
            type: string
          style: simple
          required: true
        - name: X-Rucio-Email
          in: query
          description: The email for the identity.
          schema:
            type: string
          style: simple
          required: false
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '401':
          description: Invalid Auth Token
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request PUT \
              --url 'http://undefinedundefined/identities/{account}/gss?X-Rucio-Email=SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/identities/{account}/gss"


            querystring = {"X-Rucio-Email":"SOME_STRING_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("PUT", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/identities/{account}/gss?X-Rucio-Email=SOME_STRING_VALUE';


            let options = {method: 'PUT', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /identities/{identity_key}/{type}/accounts:
    get:
      summary: List
      description: List all identities mapped to an account.
      tags:
        - Identity
      parameters:
        - name: identity_key
          in: path
          description: Identity string.
          schema:
            type: string
          style: simple
          required: true
        - name: type
          in: path
          description: Identity type.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  description: Account for the identity.
        '401':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/identities/{identity_key}/{type}/accounts \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url =
            "http://undefinedundefined/identities/{identity_key}/{type}/accounts"


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/identities/{identity_key}/{type}/accounts';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /redirect/{scope_name}/metalink:
    get:
      summary: Metalink redirect
      description: Get Metalink redirect.
      tags:
        - Redirect
      parameters:
        - name: scope_name
          in: path
          description: The data identifier (scope)/(name).
          schema:
            type: string
          style: simple
          required: true
        - name: ip
          in: query
          description: The client ip.
          schema:
            type: string
          style: simple
          required: false
        - name: fqdn
          in: query
          schema:
            type: string
          style: simple
          required: false
        - name: site
          in: query
          schema:
            type: string
          style: simple
          required: false
        - name: schemes
          in: query
          schema:
            type: array
          style: simple
          required: false
        - name: select
          in: query
          schema:
            type: string
          style: simple
          required: false
        - name: sort
          in: query
          schema:
            type: string
          style: simple
          required: false
      responses:
        '200':
          description: OK
          content:
            application/metalink4+xml:
              schema:
                description: The metalink file.
                type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: Rse or DID not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'http://undefinedundefined/redirect/{scope_name}/metalink?ip=SOME_STRING_VALUE&fqdn=SOME_STRING_VALUE&site=SOME_STRING_VALUE&schemes=SOME_ARRAY_VALUE&select=SOME_STRING_VALUE&sort=SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/redirect/{scope_name}/metalink"


            querystring =
            {"ip":"SOME_STRING_VALUE","fqdn":"SOME_STRING_VALUE","site":"SOME_STRING_VALUE","schemes":"SOME_ARRAY_VALUE","select":"SOME_STRING_VALUE","sort":"SOME_STRING_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/redirect/{scope_name}/metalink?ip=SOME_STRING_VALUE&fqdn=SOME_STRING_VALUE&site=SOME_STRING_VALUE&schemes=SOME_ARRAY_VALUE&select=SOME_STRING_VALUE&sort=SOME_STRING_VALUE';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /redirect/{scope_name}:
    get:
      summary: Header redirect
      description: Get the header redirect.
      tags:
        - Redirect
      parameters:
        - name: scope_name
          in: path
          description: The data identifier (scope)/(name).
          schema:
            type: string
          style: simple
          required: true
        - name: ip
          in: query
          description: The client ip.
          schema:
            type: string
          style: simple
          required: false
        - name: fqdn
          in: query
          schema:
            type: string
          style: simple
          required: false
        - name: site
          in: query
          schema:
            type: string
          style: simple
          required: false
        - name: schemes
          in: query
          schema:
            type: array
          style: simple
          required: false
        - name: select
          in: query
          schema:
            type: string
          style: simple
          required: false
        - name: sort
          in: query
          schema:
            type: string
          style: simple
          required: false
        - name: rse
          in: query
          schema:
            type: string
          style: simple
          required: false
      responses:
        '200':
          description: OK
        '303':
          description: OK
          content:
            application/json:
              schema:
                description: The redirect url.
                type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: Rse or DID not found
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'http://undefinedundefined/redirect/{scope_name}?ip=SOME_STRING_VALUE&fqdn=SOME_STRING_VALUE&site=SOME_STRING_VALUE&schemes=SOME_ARRAY_VALUE&select=SOME_STRING_VALUE&sort=SOME_STRING_VALUE&rse=SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/redirect/{scope_name}"


            querystring =
            {"ip":"SOME_STRING_VALUE","fqdn":"SOME_STRING_VALUE","site":"SOME_STRING_VALUE","schemes":"SOME_ARRAY_VALUE","select":"SOME_STRING_VALUE","sort":"SOME_STRING_VALUE","rse":"SOME_STRING_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/redirect/{scope_name}?ip=SOME_STRING_VALUE&fqdn=SOME_STRING_VALUE&site=SOME_STRING_VALUE&schemes=SOME_ARRAY_VALUE&select=SOME_STRING_VALUE&sort=SOME_STRING_VALUE&rse=SOME_STRING_VALUE';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /replicas/list:
    post:
      summary: List Replicas
      description: List all replicas for a DID.
      tags:
        - Replicas
      parameters:
        - name: X-Forwarded-For
          in: header
          description: The client ip address.
          schema:
            type: string
        - name: limit
          in: query
          description: The maximum number pfns per replica to return.
          schema:
            type: integer
        - name: select
          in: query
          description: Requested sorting of the result, e.g., 'geoip', 'random'.
          schema:
            type: string
        - name: sort
          in: query
          description: Requested sorting of the result, e.g., 'geoip', 'random'.
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                client_location:
                  description: The client's location.
                  type: string
                dids:
                  description: List of DIDs.
                  type: array
                  items:
                    type: object
                    properties:
                      scope:
                        description: The scope of the DID.
                        type: string
                      name:
                        description: The name of the DID.
                        type: string
                schemes:
                  description: A list of schemes to filter the replicas.
                  type: array
                  items:
                    type: string
                sort:
                  description: Requested sorting of the result, e.g., 'geoip', 'random'.
                  type: string
                unavailable:
                  description: If unavailable rse should be considered.
                  type: boolean
                  deprecated: true
                ignore_availability:
                  description: If the availability should be ignored.
                  type: boolean
                rse_expression:
                  description: The RSE expression to restrict on a list of RSEs.
                  type: string
                all_states:
                  description: >-
                    Return all replicas whatever state they are in. Adds an
                    extra 'states' entry in the result dictionary.
                  type: boolean
                domain:
                  description: >-
                    The network domain for the call, either None, 'wan' or
                    'lan'. None is fallback to 'wan', 'all' is both
                    ['lan','wan']
                  type: string
                signature_lifetime:
                  description: >-
                    If supported, in seconds, restrict the lifetime of the
                    signed PFN.
                  type: integer
                resolve_archives:
                  description: When set to True, find archives which contain the replicas.
                  type: boolean
                resolve_parents:
                  description: >-
                    When set to True, find all parent datasets which contain the
                    replicas.
                  type: boolean
                updated_after:
                  description: >-
                    datetime object (UTC time), only return replicas updated
                    after this time
                  type: string
                nrandom:
                  description: The maximum number of replicas to return.
                  type: integer
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    scope:
                      description: The scope of the replica.
                      type: string
                    name:
                      description: The name of the replica.
                      type: string
                    bytes:
                      description: The size of the replica in bytes.
                      type: integer
                    md5:
                      description: The md5 checksum.
                      type: string
                    adler32:
                      description: The adler32 checksum.
                      type: string
                    pfns:
                      description: The pfns.
                      type: array
                    rses:
                      description: The RSESs.
                      type: array
            application/metalink4+xml:
              schema:
                type: object
                properties:
                  scope:
                    description: The scope of the replica.
                    type: string
                  name:
                    description: The name of the replica.
                    type: string
                  bytes:
                    description: The size of the replica in bytes.
                    type: integer
                  md5:
                    description: The md5 checksum.
                    type: string
                  adler32:
                    description: The adler32 checksum.
                    type: string
                  pfns:
                    description: The pfns.
                    type: array
                  rses:
                    description: The RSESs.
                    type: array
        '400':
          description: Cannot decode json parameter list.
        '401':
          description: Invalid Auth Token
        '404':
          description: DID not found.
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url 'http://undefinedundefined/replicas/list?limit=SOME_INTEGER_VALUE&select=SOME_STRING_VALUE&sort=SOME_STRING_VALUE' \
              --header 'X-Forwarded-For: SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"client_location":"string","dids":[{"scope":"string","name":"string"}],"schemes":["string"],"sort":"string","unavailable":true,"ignore_availability":true,"rse_expression":"string","all_states":true,"domain":"string","signature_lifetime":0,"resolve_archives":true,"resolve_parents":true,"updated_after":"string","nrandom":0}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/replicas/list"


            querystring =
            {"limit":"SOME_INTEGER_VALUE","select":"SOME_STRING_VALUE","sort":"SOME_STRING_VALUE"}


            payload = {
                "client_location": "string",
                "dids": [
                    {
                        "scope": "string",
                        "name": "string"
                    }
                ],
                "schemes": ["string"],
                "sort": "string",
                "unavailable": True,
                "ignore_availability": True,
                "rse_expression": "string",
                "all_states": True,
                "domain": "string",
                "signature_lifetime": 0,
                "resolve_archives": True,
                "resolve_parents": True,
                "updated_after": "string",
                "nrandom": 0
            }

            headers = {
                "X-Forwarded-For": "SOME_STRING_VALUE",
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers, params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/replicas/list?limit=SOME_INTEGER_VALUE&select=SOME_STRING_VALUE&sort=SOME_STRING_VALUE';


            let options = {
              method: 'POST',
              headers: {
                'X-Forwarded-For': 'SOME_STRING_VALUE',
                'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE',
                'content-type': 'application/json'
              },
              body: '{"client_location":"string","dids":[{"scope":"string","name":"string"}],"schemes":["string"],"sort":"string","unavailable":true,"ignore_availability":true,"rse_expression":"string","all_states":true,"domain":"string","signature_lifetime":0,"resolve_archives":true,"resolve_parents":true,"updated_after":"string","nrandom":0}'
            };


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /replicas/{scope_name}:
    get:
      summary: Get Replicas
      description: List all replicas for data identifiers.
      tags:
        - Replicas
      parameters:
        - name: scope_name
          in: path
          description: The DID associated with the replicas.
          schema:
            type: string
          style: simple
          required: true
        - name: X-Forwarded-For
          in: header
          description: The client ip
          schema:
            type: string
        - name: schemes
          in: query
          description: The schemes of the replicas.
          schema:
            type: string
        - name: select
          in: query
          description: The sorting algorithm.
          schema:
            type: string
            enum:
              - geoip
              - random
        - name: limit
          in: query
          description: The maximum number of replicas returned.
          schema:
            type: integer
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: A list with all replicas.
                type: array
                items:
                  description: A replica. Possibly contains more information.
                  type: object
                  properties:
                    scope:
                      description: The scope of the replica.
                      type: string
                    name:
                      description: The name of the replica.
                      type: string
                    bytes:
                      description: The size of the replica in bytes.
                      type: integer
                    md5:
                      description: The md5 checksum of the replica.
                      type: string
                    adler32:
                      description: The adler32 checksum of the replica.
                      type: string
                    pfns:
                      description: The pfns associated with the replica.
                      type: array
                    rses:
                      description: The rse associated with the replica.
                      type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: DID not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'http://undefinedundefined/replicas/{scope_name}?schemes=SOME_STRING_VALUE&select=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE' \
              --header 'X-Forwarded-For: SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/replicas/{scope_name}"


            querystring =
            {"schemes":"SOME_STRING_VALUE","select":"SOME_STRING_VALUE","limit":"SOME_INTEGER_VALUE"}


            headers = {
                "X-Forwarded-For": "SOME_STRING_VALUE",
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"
            }


            response = requests.request("GET", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/replicas/{scope_name}?schemes=SOME_STRING_VALUE&select=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE';


            let options = {
              method: 'GET',
              headers: {
                'X-Forwarded-For': 'SOME_STRING_VALUE',
                'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE'
              }
            };


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /replicas/suspicious:
    get:
      summary: List Suspicious Replicas
      description: List the suspicious replicas on a list of RSEs.
      tags:
        - Replicas
      parameters:
        - name: rse_expression
          in: query
          description: The RSE expression to filter for.
          schema:
            type: string
        - name: younger_than
          in: query
          description: Date to filter for.
          schema:
            type: string
        - name: nattempts
          in: query
          description: The maximum number of attempts to make.
          schema:
            type: integer
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    scope:
                      description: The scope of the Replica.
                      type: string
                    name:
                      description: The name of the Replica.
                      type: string
                    rse:
                      description: The rse name.
                      type: string
                    rse_id:
                      description: The id of the rse.
                      type: string
                    cnt:
                      description: The number of replicas.
                      type: integer
                    created_at:
                      description: The time when the replica was created.
                      type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: Not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'http://undefinedundefined/replicas/suspicious?rse_expression=SOME_STRING_VALUE&younger_than=SOME_STRING_VALUE&nattempts=SOME_INTEGER_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/replicas/suspicious"


            querystring =
            {"rse_expression":"SOME_STRING_VALUE","younger_than":"SOME_STRING_VALUE","nattempts":"SOME_INTEGER_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/replicas/suspicious?rse_expression=SOME_STRING_VALUE&younger_than=SOME_STRING_VALUE&nattempts=SOME_INTEGER_VALUE';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    post:
      summary: Declare Suspicious Replicas
      description: Declare a list of suspicious replicas.
      tags:
        - Replicas
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                pfns:
                  description: The list of pfns.
                  type: array
                  items:
                    type: string
                reason:
                  description: The reason for the declaration.
                  type: string
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                description: Returns the not declared files.
                type: array
        '400':
          description: Can not decode json parameter list.
        '404':
          description: Not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/replicas/suspicious \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"pfns":["string"],"reason":"string"}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/replicas/suspicious"


            payload = {
                "pfns": ["string"],
                "reason": "string"
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/replicas/suspicious';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"pfns":["string"],"reason":"string"}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /replicas/bad/states:
    get:
      summary: List Bad Replicas By States
      description: List the bad or suspicious replicas by states.
      tags:
        - Replicas
      parameters:
        - name: state
          in: query
          description: The state of the file.
          schema:
            type: string
            enum:
              - SUSPICIOUS
              - BAD
        - name: rse
          in: query
          description: The rse name.
          schema:
            type: string
        - name: younger_than
          in: query
          description: Date to select bad replicas younger than this date.
          schema:
            type: string
            format: date-time
        - name: older_than
          in: query
          description: Date to select bad replicas older than this date.
          schema:
            type: string
            format: date-time
        - name: limit
          in: query
          description: The maximum number of replicas returned.
          schema:
            type: integer
        - name: list_pfns
          in: query
          description: Flag to include pfns.
          schema:
            type: boolean
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: A list of all result replicas.
                type: array
                items:
                  oneOf:
                    - type: object
                      properties:
                        scope:
                          description: The scope of the replica.
                          type: string
                        name:
                          description: The name of the replica.
                          type: string
                        type:
                          description: The type of the replica.
                          type: string
                    - type: object
                      properties:
                        scope:
                          description: The scope of the replica.
                          type: string
                        name:
                          description: The name of the replica.
                          type: string
                        rse:
                          description: The name of the associated rse.
                          type: string
                        rse_id:
                          description: The id of the associated rse.
                          type: string
                        state:
                          description: The state of the replica.
                          type: string
                        created_at:
                          description: The date-time the replica was created.
                          type: string
                          format: date-time
                        updated_at:
                          description: The date-time the replica was updated.
                          type: string
                          format: date-time
        '401':
          description: Invalid Auth Token
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'http://undefinedundefined/replicas/bad/states?state=SOME_STRING_VALUE&rse=SOME_STRING_VALUE&younger_than=SOME_STRING_VALUE&older_than=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&list_pfns=SOME_BOOLEAN_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/replicas/bad/states"


            querystring =
            {"state":"SOME_STRING_VALUE","rse":"SOME_STRING_VALUE","younger_than":"SOME_STRING_VALUE","older_than":"SOME_STRING_VALUE","limit":"SOME_INTEGER_VALUE","list_pfns":"SOME_BOOLEAN_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/replicas/bad/states?state=SOME_STRING_VALUE&rse=SOME_STRING_VALUE&younger_than=SOME_STRING_VALUE&older_than=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&list_pfns=SOME_BOOLEAN_VALUE';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /replicas/bad/summary:
    get:
      summary: Bad Replicas Summary
      description: Return a summary of the bad replicas by incident.
      tags:
        - Replicas
      parameters:
        - name: rse_expression
          in: query
          description: The RSE expression.
          schema:
            type: string
        - name: from_date
          in: query
          description: The start date.
          schema:
            type: string
            format: date-time
        - name: to_date
          in: query
          description: The end date.
          schema:
            type: string
            format: date-time
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: A list of summaries.
                type: array
                items:
                  type: object
                  properties:
                    rse:
                      description: The name of the associated RSE.
                      type: string
                    rse_id:
                      description: The id of the associated RSE.
                      type: string
                    created_at:
                      description: The creation date-time.
                      type: string
                      format: date-time
                    reason:
                      description: The reason for the incident.
                      type: string
        '401':
          description: Invalid Auth Token
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'http://undefinedundefined/replicas/bad/summary?rse_expression=SOME_STRING_VALUE&from_date=SOME_STRING_VALUE&to_date=SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/replicas/bad/summary"


            querystring =
            {"rse_expression":"SOME_STRING_VALUE","from_date":"SOME_STRING_VALUE","to_date":"SOME_STRING_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/replicas/bad/summary?rse_expression=SOME_STRING_VALUE&from_date=SOME_STRING_VALUE&to_date=SOME_STRING_VALUE';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /replicas/bad/pfns:
    post:
      summary: Declare Bad PFNs
      description: Declare a list of bad PFNs.
      tags:
        - Replicas
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                expires_at:
                  description: The expires at value. Only apply to TEMPORARY_UNAVAILABLE.
                  type: string
                  format: date-time
                pfns:
                  description: The list of pfns associated with the bad PFNs.
                  type: array
                  items:
                    type: string
                state:
                  description: The state to set the PFNs to.
                  type: string
                  enum:
                    - BAD
                    - SUSPICIOUS
                    - TEMPORARY_UNAVAILABLE
                reason:
                  description: The reason for the change.
                  type: string
      responses:
        '201':
          description: Created
        '400':
          description: Cannot decode json parameter list.
        '401':
          description: Invalid Auth Token
        '404':
          description: Replica not found
        '409':
          description: Duplicate
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/replicas/bad/pfns \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"expires_at":"2019-08-24T14:15:22Z","pfns":["string"],"state":"BAD","reason":"string"}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/replicas/bad/pfns"


            payload = {
                "expires_at": "2019-08-24T14:15:22Z",
                "pfns": ["string"],
                "state": "BAD",
                "reason": "string"
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/replicas/bad/pfns';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"expires_at":"2019-08-24T14:15:22Z","pfns":["string"],"state":"BAD","reason":"string"}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /replicas/bad/dids:
    post:
      summary: Mark Bad by DID
      description: Declare a list of bad replicas by DID.
      tags:
        - Replicas
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                expires_at:
                  description: The expires at value.
                  type: string
                  format: date-time
                dids:
                  description: The list of DIDs associated with the bad replicas.
                  type: array
                  items:
                    type: object
                    properties:
                      scope:
                        description: The scope of the DID.
                        type: string
                      name:
                        description: The name of the DID.
                        type: string
                rse:
                  description: The name of the rse.
                  type: string
                reason:
                  description: The reason for the change.
                  type: string
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                description: All files not declared as bad.
                type: array
                items:
                  type: string
        '400':
          description: Cannot decode json parameter list.
        '401':
          description: Invalid Auth Token
        '404':
          description: Not found
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/replicas/bad/dids \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"expires_at":"2019-08-24T14:15:22Z","dids":[{"scope":"string","name":"string"}],"rse":"string","reason":"string"}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/replicas/bad/dids"


            payload = {
                "expires_at": "2019-08-24T14:15:22Z",
                "dids": [
                    {
                        "scope": "string",
                        "name": "string"
                    }
                ],
                "rse": "string",
                "reason": "string"
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/replicas/bad/dids';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"expires_at":"2019-08-24T14:15:22Z","dids":[{"scope":"string","name":"string"}],"rse":"string","reason":"string"}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /replicas/rse/{rse}:
    get:
      summary: List Dataset Replicas per RSE
      description: List dataset replicas per RSE.
      tags:
        - Replicas
      parameters:
        - name: rse
          in: path
          description: The rse to filter for.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: A list of dataset replicas.
                type: array
                items:
                  type: object
                  properties:
                    scope:
                      description: The scope of the replica.
                      type: string
                    name:
                      description: The name of the replica.
                      type: string
                    rse:
                      description: The name of the associated RSE.
                      type: string
                    rse_id:
                      description: The id of the associated RSE.
                      type: string
                    bytes:
                      description: The size of the replica.
                      type: integer
                    length:
                      description: The length of the replica.
                      type: integer
                    available_bytes:
                      description: The number of available bytes of the replica.
                      type: integer
                    available_length:
                      description: The available length of the replica.
                      type: integer
                    state:
                      description: The state of the replica.
                      type: string
                    created_at:
                      description: The date-time the replica was created.
                      type: string
                      format: date-time
                    updated_at:
                      description: The date-time the replica was updated.
                      type: string
                      format: date-time
                    accessed_at:
                      description: The date-time the replica was accessed.
                      type: string
                      format: date-time
        '401':
          description: Invalid Auth Token
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/replicas/rse/{rse} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/replicas/rse/{rse}"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/replicas/rse/{rse}';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /replicas/bad:
    post:
      summary: Declare Bad Replicas
      description: Declares a list of bad replicas.
      tags:
        - Replicas
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                replicas:
                  description: >-
                    The list of pfns or list of dicts with 'scope', 'name',
                    'rse_id'/'rse'
                  type: array
                  items:
                    type: string
                pfns:
                  deprecated: true
                  description: >-
                    The list of pfns, for backward compatibility with older
                    versions of the ReplicaClient
                  type: array
                  items:
                    type: string
                reason:
                  description: The reason for the declaration.
                  type: string
                force:
                  description: >-
                    If true, ignore existing replica status in the bad_replicas
                    table.
                  type: boolean
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                description: Returns the not declared files.
                type: array
        '400':
          description: Can not decode json parameter list.
        '404':
          description: Not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/replicas/bad \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"replicas":["string"],"pfns":["string"],"reason":"string","force":true}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/replicas/bad"


            payload = {
                "replicas": ["string"],
                "pfns": ["string"],
                "reason": "string",
                "force": True
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/replicas/bad';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"replicas":["string"],"pfns":["string"],"reason":"string","force":true}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /replicas/quarantine:
    post:
      summary: Quarantine replicas
      description: Quarantine replicas.
      tags:
        - Replicas
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - replicas
              properties:
                replicas:
                  description: replicas
                  type: array
                  items:
                    type: object
                    required:
                      - path
                    properties:
                      path:
                        description: path
                        type: string
                      scope:
                        description: scope
                        type: string
                      name:
                        description: name
                        type: string
                rse:
                  description: RSE name
                  type: string
                rse_id:
                  description: RSE id
                  type: string
      responses:
        '200':
          description: OK
        '403':
          description: Forbidden.
        '404':
          description: Not found
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/replicas/quarantine \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"replicas":[{"path":"string","scope":"string","name":"string"}],"rse":"string","rse_id":"string"}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/replicas/quarantine"


            payload = {
                "replicas": [
                    {
                        "path": "string",
                        "scope": "string",
                        "name": "string"
                    }
                ],
                "rse": "string",
                "rse_id": "string"
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/replicas/quarantine';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"replicas":[{"path":"string","scope":"string","name":"string"}],"rse":"string","rse_id":"string"}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /replicas/dids:
    post:
      summary: List Replicas DIDs
      description: List the DIDs associated to a list of replicas.
      tags:
        - Replicas
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - rse
              properties:
                pfns:
                  description: The list of pfns.
                  type: array
                  items:
                    type: string
                rse:
                  description: The RSE name.
                  type: string
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties:
                    x-additionalPropertiesName: mapped PFNs to DIDs
                    description: A mapping from a pfn to a DID.
                    type: object
                    properties:
                      scope:
                        description: The scope of the DID.
                        type: string
                      name:
                        description: The name of the DID.
                        type: string
        '400':
          description: Cannot decode json parameter list.
        '401':
          description: Invalid Auth Token
        '404':
          description: Not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/replicas/dids \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"pfns":["string"],"rse":"string"}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/replicas/dids"


            payload = {
                "pfns": ["string"],
                "rse": "string"
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/replicas/dids';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"pfns":["string"],"rse":"string"}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /replicas/{scope_name}/datasets:
    get:
      summary: List Dataset Replicas
      description: List dataset replicas.
      tags:
        - Replicas
      parameters:
        - name: scope_name
          in: path
          description: data identifier (scope)/(name).
          schema:
            type: string
          style: simple
          required: true
        - name: deep
          in: query
          description: Flag to enable lookup at the file level.
          schema:
            type: boolean
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: A list of dataset replicas.
                type: array
                items:
                  type: object
                  properties:
                    scope:
                      description: The scope of the replica.
                      type: string
                    name:
                      description: The name of the replica.
                      type: string
                    rse:
                      description: The name of the associated RSE.
                      type: string
                    rse_id:
                      description: The id of the associated RSE.
                      type: string
                    bytes:
                      description: The size of the replica.
                      type: integer
                    length:
                      description: The length of the replica.
                      type: integer
                    available_bytes:
                      description: The number of available bytes of the replica.
                      type: integer
                    available_length:
                      description: The available length of the replica.
                      type: integer
                    state:
                      description: The state of the replica.
                      type: string
                    created_at:
                      description: The date-time the replica was created.
                      type: string
                      format: date-time
                    updated_at:
                      description: The date-time the replica was updated.
                      type: string
                      format: date-time
                    accessed_at:
                      description: The date-time the replica was accessed.
                      type: string
                      format: date-time
        '401':
          description: Invalid Auth Token
        '404':
          description: Not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'http://undefinedundefined/replicas/{scope_name}/datasets?deep=SOME_BOOLEAN_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/replicas/{scope_name}/datasets"


            querystring = {"deep":"SOME_BOOLEAN_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/replicas/{scope_name}/datasets?deep=SOME_BOOLEAN_VALUE';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /replicas/datasets_bulk:
    post:
      summary: List Dataset Replicas for Multiple DIDs
      description: List dataset replicas for multiple DIDs.
      tags:
        - Replicas
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - dids
              properties:
                dids:
                  description: A list of DIDs.
                  type: array
                  items:
                    description: A DID.
                    type: object
                    properties:
                      scope:
                        description: The scope of the DID.
                        type: string
                      name:
                        description: The name of the DID.
                        type: string
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: A list of dataset replicas.
                type: array
                items:
                  type: object
                  properties:
                    scope:
                      description: The scope of the replica.
                      type: string
                    name:
                      description: The name of the replica.
                      type: string
                    rse:
                      description: The name of the associated RSE.
                      type: string
                    rse_id:
                      description: The id of the associated RSE.
                      type: string
                    bytes:
                      description: The size of the replica.
                      type: integer
                    length:
                      description: The length of the replica.
                      type: integer
                    available_bytes:
                      description: The number of available bytes of the replica.
                      type: integer
                    available_length:
                      description: The available length of the replica.
                      type: integer
                    state:
                      description: The state of the replica.
                      type: string
                    created_at:
                      description: The date-time the replica was created.
                      type: string
                      format: date-time
                    updated_at:
                      description: The date-time the replica was updated.
                      type: string
                      format: date-time
                    accessed_at:
                      description: The date-time the replica was accessed.
                      type: string
                      format: date-time
        '400':
          description: Bad Request.
        '401':
          description: Invalid Auth Token
        '404':
          description: Not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/replicas/datasets_bulk \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"dids":[{"scope":"string","name":"string"}]}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/replicas/datasets_bulk"


            payload = {"dids": [
                    {
                        "scope": "string",
                        "name": "string"
                    }
                ]}
            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/replicas/datasets_bulk';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"dids":[{"scope":"string","name":"string"}]}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /replicas/tombstone:
    post:
      summary: Set Tombstone
      description: Set a tombstone on a list of replicas.
      tags:
        - Replicas
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                replicas:
                  description: The replicas to set the tombstone to.
                  type: array
                  items:
                    type: object
                    required:
                      - rse
                      - scope
                      - name
                    properties:
                      rse:
                        description: The rse associated with the tombstone.
                        type: string
                      scope:
                        description: The scope of the replica
                        type: string
                      name:
                        description: The name of the replica.
                        type: string
      responses:
        '201':
          description: Created
        '401':
          description: Invalid Auth Token
        '404':
          description: Not found
        '423':
          description: Replica is locked.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/replicas/tombstone \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"replicas":[{"rse":"string","scope":"string","name":"string"}]}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/replicas/tombstone"


            payload = {"replicas": [
                    {
                        "rse": "string",
                        "scope": "string",
                        "name": "string"
                    }
                ]}
            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/replicas/tombstone';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"replicas":[{"rse":"string","scope":"string","name":"string"}]}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /replicas/{scope_name}/datasets_vp:
    get:
      summary: List Dataset Replicas VP
      description: |
        List dataset replicas using the Virtual Placement service.
        This is an RnD function and might change or go away at any time.
      tags:
        - Replicas
      parameters:
        - name: scope_name
          in: path
          description: data identifier (scope)/(name).
          schema:
            type: string
          style: simple
          required: true
        - name: deep
          in: query
          description: Flag to ennable lookup at the file level.
          schema:
            type: boolean
      responses:
        '200':
          description: OK. This needs documentation!
        '401':
          description: Invalid Auth Token
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'http://undefinedundefined/replicas/{scope_name}/datasets_vp?deep=SOME_BOOLEAN_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/replicas/{scope_name}/datasets_vp"


            querystring = {"deep":"SOME_BOOLEAN_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/replicas/{scope_name}/datasets_vp?deep=SOME_BOOLEAN_VALUE';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /meta_conventions/{key}:
    post:
      summary: Create key
      description: Creates a new allowed key (value is NULL).
      tags:
        - Meta
      parameters:
        - name: key
          in: path
          description: The name of the key.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                key_type:
                  description: The key type.
                  type: string
                value_type:
                  description: The value type.
                  type: string
                value_regexp:
                  description: The value regexpression.
                  type: string
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '400':
          description: Cannot decode json parameter list / Unsupported value type.
        '401':
          description: Invalid Auth Token.
        '409':
          description: Key already exists.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/meta_conventions/{key} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"key_type":"string","value_type":"string","value_regexp":"string"}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/meta_conventions/{key}"


            payload = {
                "key_type": "string",
                "value_type": "string",
                "value_regexp": "string"
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/meta_conventions/{key}';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"key_type":"string","value_type":"string","value_regexp":"string"}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /meta_conventions/{key}/:
    get:
      summary: Get value for key
      description: List all values for a key.
      tags:
        - Meta
      parameters:
        - name: key
          in: path
          description: The reference key.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: List of all key values.
                type: array
                items:
                  type: string
                  description: A value associated with a key.
        '401':
          description: Invalid Auth Token
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/meta_conventions/{key}/ \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/meta_conventions/{key}/"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/meta_conventions/{key}/';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    post:
      summary: Create value for key
      description: Creates a new value for a key.
      tags:
        - Meta
      parameters:
        - name: key
          in: path
          description: The reference key.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - value
              properties:
                value:
                  description: The new value associated with a key.
                  type: string
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '400':
          description: Cannot decode json parameter list / Invalid value for key.
        '401':
          description: Invalid Auth Token
        '404':
          description: Key not found
        '409':
          description: Value already exists.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/meta_conventions/{key}/ \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"value":"string"}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/meta_conventions/{key}/"


            payload = {"value": "string"}

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/meta_conventions/{key}/';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"value":"string"}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /export:
    get:
      summary: Export data
      description: Export data from rucio.
      tags:
        - Export
      parameters:
        - name: distance
          in: query
          description: Should the distance be enabled?
          schema:
            type: boolean
          required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                description: Dictionary with rucio data.
        '401':
          description: Invalid Auth Token
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'http://undefinedundefined/export?distance=SOME_BOOLEAN_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/export"


            querystring = {"distance":"SOME_BOOLEAN_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/export?distance=SOME_BOOLEAN_VALUE';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /ping:
    get:
      summary: Ping
      description: Ping the server and get data about it.
      tags:
        - Ping
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  version:
                    description: The server version.
                    type: string
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/ping \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/ping"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/ping';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /subscriptions/id/{subscription_id}:
    get:
      summary: Get Subscription from ID
      description: Retrieve a subscription matching the given subscription id.
      tags:
        - Subscription
      parameters:
        - name: subscription_id
          in: path
          description: The subscription id.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: The subscription.
                type: object
                properties:
                  id:
                    description: The id of the subscription.
                    type: string
                  name:
                    description: The name of the subscription.
                    type: string
                  filter:
                    description: The filter for the subscription.
                    type: string
                  replication_rules:
                    description: The replication rules for the subscription.
                    type: string
                  policyid:
                    description: The policyid for the subscription.
                    type: integer
                  state:
                    description: The state of the subscription.
                    type: string
                    enum:
                      - A
                      - I
                      - 'N'
                      - U
                      - B
                  last_processed:
                    description: The time the subscription was processed last.
                    type: string
                    format: date-time
                  account:
                    description: The account for the subscription.
                    type: string
                  lifetime:
                    description: The lifetime for the subscription.
                    type: string
                    format: date-time
                  comments:
                    description: The comments for the subscription.
                    type: string
                  retroactive:
                    description: If the subscription is retroactive.
                    type: boolean
                  expired_at:
                    description: The date-time of the expiration for the subscription.
                    type: string
                    format: date-time
        '401':
          description: Invalid Auth Token
        '404':
          description: Subscription not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/subscriptions/id/{subscription_id} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/subscriptions/id/{subscription_id}"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/subscriptions/id/{subscription_id}';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /subscriptions/{account}/{name}/rules/states:
    get:
      summary: Get states
      description: Return a summary of the states of all rules of a given subscription id.
      tags:
        - Subscription
      parameters:
        - name: account
          in: path
          description: The account name.
          schema:
            type: string
          style: simple
          required: true
        - name: name
          in: path
          description: The subscription name.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: A list of rule states with counts for each subscription.
                type: array
                items:
                  type: object
                  properties:
                    account:
                      description: The account for the subscription.
                      type: string
                    name:
                      description: The name of the subscription.
                      type: string
                    state:
                      description: The state of the rules.
                      type: string
                      enum:
                        - R
                        - O
                        - S
                        - U
                        - W
                        - I
                    count:
                      description: The number of rules with that state.
                      type: integer
        '401':
          description: Invalid Auth Token
        '404':
          description: Not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/subscriptions/{account}/{name}/rules/states \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url =
            "http://undefinedundefined/subscriptions/{account}/{name}/rules/states"


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/subscriptions/{account}/{name}/rules/states';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /subscriptions/{account}/{name}/rules:
    get:
      summary: Get Replication Rules
      description: Return all rules of a given subscription id.
      tags:
        - Subscription
      parameters:
        - name: account
          in: path
          description: The account name.
          schema:
            type: string
          style: simple
          required: true
        - name: name
          in: path
          description: The subscription name.
          schema:
            type: string
          style: simple
          required: true
        - name: state
          in: query
          description: The subscription state to filter for.
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: A list with the associated replication rules.
                type: array
                items:
                  description: A subscription rule.
        '401':
          description: Invalid Auth Token
        '404':
          description: Rule or Subscription not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'http://undefinedundefined/subscriptions/{account}/{name}/rules?state=SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url =
            "http://undefinedundefined/subscriptions/{account}/{name}/rules"


            querystring = {"state":"SOME_STRING_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/subscriptions/{account}/{name}/rules?state=SOME_STRING_VALUE';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /subscriptions/{account}/{name}:
    post:
      summary: Create subscription
      description: Create a new subscription
      tags:
        - Subscription
      parameters:
        - name: account
          in: path
          description: The account name.
          schema:
            type: string
          style: simple
          required: true
        - name: name
          in: path
          description: The subscription name.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - options
              properties:
                options:
                  description: The values for the new subscription.
                  type: object
                  required:
                    - filter
                    - replication_rules
                    - comments
                    - lifetime
                    - retroactive
                  properties:
                    filter:
                      description: The filter for the subscription.
                      type: string
                    replication_rules:
                      description: The replication rules for the subscription.
                      type: string
                    comments:
                      description: The comments for the subscription.
                      type: string
                    lifetime:
                      description: The lifetime for the subscription.
                      type: string
                      format: date-time
                    retroactive:
                      description: If the retroactive is activated for a subscription.
                      type: boolean
                    priority:
                      description: >-
                        The priority/policyid for the subscription. Stored as
                        policyid.
                      type: integer
                    dry_run:
                      description: >-
                        The priority/policyid for the subscription. Stored as
                        policyid.
                      type: boolean
                      default: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: The subscription Id for the new subscription.
                type: string
        '400':
          description: Cannot decode json parameter list.
        '401':
          description: Invalid Auth Token
        '404':
          description: Not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/subscriptions/{account}/{name} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"options":{"filter":"string","replication_rules":"string","comments":"string","lifetime":"2019-08-24T14:15:22Z","retroactive":true,"priority":0,"dry_run":false}}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/subscriptions/{account}/{name}"


            payload = {"options": {
                    "filter": "string",
                    "replication_rules": "string",
                    "comments": "string",
                    "lifetime": "2019-08-24T14:15:22Z",
                    "retroactive": True,
                    "priority": 0,
                    "dry_run": False
                }}
            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/subscriptions/{account}/{name}';


            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"options":{"filter":"string","replication_rules":"string","comments":"string","lifetime":"2019-08-24T14:15:22Z","retroactive":true,"priority":0,"dry_run":false}}'
            };


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    get:
      summary: Get Subscription
      description: Retrieve a subscription.
      tags:
        - Subscription
      parameters:
        - name: account
          in: path
          description: The account name.
          schema:
            type: string
          style: simple
          required: true
        - name: name
          in: path
          description: The subscription name.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: A list of subscriptions.
                type: array
                items:
                  description: A subscription.
                  type: object
                  properties:
                    id:
                      description: The id of the subscription.
                      type: string
                    name:
                      description: The name of the subscription.
                      type: string
                    filter:
                      description: The filter for the subscription.
                      type: string
                    replication_rules:
                      description: The replication rules for the subscription.
                      type: string
                    policyid:
                      description: The policyid for the subscription.
                      type: integer
                    state:
                      description: The state of the subscription.
                      type: string
                      enum:
                        - A
                        - I
                        - 'N'
                        - U
                        - B
                    last_processed:
                      description: The time the subscription was processed last.
                      type: string
                      format: date-time
                    account:
                      description: The account for the subscription.
                      type: string
                    lifetime:
                      description: The lifetime for the subscription.
                      type: string
                      format: date-time
                    comments:
                      description: The comments for the subscription.
                      type: string
                    retroactive:
                      description: If the subscription is retroactive.
                      type: boolean
                    expired_at:
                      description: The date-time of the expiration for the subscription.
                      type: string
                      format: date-time
        '401':
          description: Invalid Auth Token
        '404':
          description: Subscription Not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/subscriptions/{account}/{name} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/subscriptions/{account}/{name}"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/subscriptions/{account}/{name}';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    put:
      summary: Update subscription
      description: Update an existing subscription.
      tags:
        - Subscription
      parameters:
        - name: account
          in: path
          description: The account name.
          schema:
            type: string
          style: simple
          required: true
        - name: name
          in: path
          description: The subscription name.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - options
              properties:
                options:
                  description: The values for the new subscription.
                  type: object
                  properties:
                    filter:
                      description: The filter for the subscription.
                      type: string
                    replication_rules:
                      description: The replication rules for the subscription.
                      type: string
                    comments:
                      description: The comments for the subscription.
                      type: string
                    lifetime:
                      description: The lifetime for the subscription.
                      type: string
                      format: date-time
                    retroactive:
                      description: If the retroactive is activated for a subscription.
                      type: boolean
                    priority:
                      description: >-
                        The priority/policyid for the subscription. Stored as
                        policyid.
                      type: integer
                    state:
                      description: >-
                        The state of the subscription. If not supplied, the
                        state will be set to 'U' (updated).
                      type: string
                      enum:
                        - A
                        - I
                        - 'N'
                        - U
                        - B
      responses:
        '201':
          description: OK
        '400':
          description: Cannot decode json parameter list.
        '401':
          description: Invalid Auth Token
        '404':
          description: Not found
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request PUT \
              --url http://undefinedundefined/subscriptions/{account}/{name} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"options":{"filter":"string","replication_rules":"string","comments":"string","lifetime":"2019-08-24T14:15:22Z","retroactive":true,"priority":0,"state":"A"}}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/subscriptions/{account}/{name}"


            payload = {"options": {
                    "filter": "string",
                    "replication_rules": "string",
                    "comments": "string",
                    "lifetime": "2019-08-24T14:15:22Z",
                    "retroactive": True,
                    "priority": 0,
                    "state": "A"
                }}
            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("PUT", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/subscriptions/{account}/{name}';


            let options = {
              method: 'PUT',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"options":{"filter":"string","replication_rules":"string","comments":"string","lifetime":"2019-08-24T14:15:22Z","retroactive":true,"priority":0,"state":"A"}}'
            };


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /subscriptions/name/{name}:
    get:
      summary: Get Subscription by Name
      description: Retrieve a subscription by name.
      tags:
        - Subscription
      parameters:
        - name: name
          in: path
          description: The subscription name.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: A list of subscriptions.
                type: array
                items:
                  description: A subscription.
                  type: object
                  properties:
                    id:
                      description: The id of the subscription.
                      type: string
                    name:
                      description: The name of the subscription.
                      type: string
                    filter:
                      description: The filter for the subscription.
                      type: string
                    replication_rules:
                      description: The replication rules for the subscription.
                      type: string
                    policyid:
                      description: The policyid for the subscription.
                      type: integer
                    state:
                      description: The state of the subscription.
                      type: string
                      enum:
                        - A
                        - I
                        - 'N'
                        - U
                        - B
                    last_processed:
                      description: The time the subscription was processed last.
                      type: string
                      format: date-time
                    account:
                      description: The account for the subscription.
                      type: string
                    lifetime:
                      description: The lifetime for the subscription.
                      type: string
                      format: date-time
                    comments:
                      description: The comments for the subscription.
                      type: string
                    retroactive:
                      description: If the subscription is retroactive.
                      type: boolean
                    expired_at:
                      description: The date-time of the expiration for the subscription.
                      type: string
                      format: date-time
        '401':
          description: Invalid Auth Token
        '404':
          description: Not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/subscriptions/name/{name} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/subscriptions/name/{name}"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/subscriptions/name/{name}';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /credentials/signurl:
    get:
      summary: Sign URL
      description: Sign a url for a limited lifetime for a particular srevice.
      tags:
        - Credentials
      parameters:
        - name: rse
          in: query
          description: The RSE to authenticate against.
          schema:
            type: string
          required: true
        - name: lifetime
          in: query
          description: The lifetime, default 600s.
          schema:
            type: string
          required: false
        - name: svc
          in: query
          description: The service, default gcs.
          schema:
            type: string
          required: false
        - name: op
          in: query
          description: The operation.
          schema:
            type: string
          required: false
        - name: url
          in: query
          description: The Url of the authentication.
          schema:
            type: string
          required: true
      requestBody:
        content:
          application/octet-stream:
            schema:
              type: object
              properties:
                X-Rucio-Account:
                  description: Account identifier.
                  type: string
                X-Rucio-VO:
                  description: VO name (Multi-VO only).
                  type: string
                X-Rucio-AppID:
                  description: Application identifier.
                  type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  description: An account attribute.
                  properties:
                    key:
                      description: The key of the account attribute.
                      type: string
                    value:
                      description: The value of the account attribute.
                      type: string
        '400':
          description: Bad request, no rse or url found.
        '401':
          description: Invalid Auth Token
        '406':
          description: Not acceptable.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'http://undefinedundefined/credentials/signurl?rse=SOME_STRING_VALUE&lifetime=SOME_STRING_VALUE&svc=SOME_STRING_VALUE&op=SOME_STRING_VALUE&url=SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/credentials/signurl"


            querystring =
            {"rse":"SOME_STRING_VALUE","lifetime":"SOME_STRING_VALUE","svc":"SOME_STRING_VALUE","op":"SOME_STRING_VALUE","url":"SOME_STRING_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/credentials/signurl?rse=SOME_STRING_VALUE&lifetime=SOME_STRING_VALUE&svc=SOME_STRING_VALUE&op=SOME_STRING_VALUE&url=SOME_STRING_VALUE';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    options:
      summary: Cross-Site Scripting
      description: Allow cross-site scripting. Explicit for Authentication.
      tags:
        - Credentials
      responses:
        '200':
          description: OK
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
              description: The http origin.
            Access-Control-Allow-Headers:
              schema:
                type: string
              description: The http access control request headers.
            Access-Control-Allow-Methods:
              schema:
                type: string
                enum:
                  - '*'
              description: The allowed methods.
            Access-Control-Allow-Credentials:
              schema:
                type: string
                enum:
                  - 'true'
              description: If credentials are allowed.
            Access-Control-Expose-Headers:
              schema:
                type: string
                enum:
                  - X-Rucio-Auth-Token
              description: The exposed access control header.
        '404':
          description: Not found
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request OPTIONS \
              --url http://undefinedundefined/credentials/signurl \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/credentials/signurl"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("OPTIONS", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/credentials/signurl';


            let options = {method: 'OPTIONS', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /lifetime_exceptions/:
    get:
      summary: List Exceptions
      description: Retrieves all exceptions.
      tags:
        - Lifetime Exceptions
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: One exception per line.
                type: array
                items:
                  description: A lifetime exception
                  type: object
                  properties:
                    id:
                      description: The id of the lifetime exception.
                      type: string
                    scope:
                      description: The scope associated with the lifetime exception.
                      type: string
                    name:
                      description: The name of the lifetime exception.
                      type: string
                    did_type:
                      description: The type of the DID.
                      type: string
                      enum:
                        - F
                        - D
                        - C
                        - A
                        - X
                        - 'Y'
                        - Z
                    account:
                      description: The account associated with the lifetime exception.
                      type: string
                    pattern:
                      description: The pattern of the lifetime exception.
                      type: string
                    comments:
                      description: The comments of the lifetime exception.
                      type: string
                    state:
                      description: The state of the lifetime exception.
                      type: string
                      enum:
                        - A
                        - R
                        - W
                    created_at:
                      description: The datetime the lifetime exception was created.
                      type: string
                    expires_at:
                      description: The datetime the lifetime exception expires.
                      type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: Lifetime exception not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/lifetime_exceptions/ \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/lifetime_exceptions/"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/lifetime_exceptions/';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    post:
      summary: Create Exception
      description: Creates a Lifetime Exception.
      tags:
        - Lifetime Exceptions
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                dids:
                  description: List of DIDs associated with the lifetime exception.
                  type: array
                  items:
                    description: A DID
                    type: object
                    properties:
                      name:
                        description: The name of the DID.
                        type: string
                pattern:
                  description: The pattern of the lifetime exception.
                  type: string
                comments:
                  description: The comment for the lifetime exception.
                  type: string
                expires_at:
                  description: The expiration date for the lifetime exception.
                  type: string
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                description: The exception id.
                type: string
        '400':
          description: Cannot decode json parameter list.
        '401':
          description: Invalid Auth Token
        '409':
          description: Lifetime exception already exists.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/lifetime_exceptions/ \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"dids":[{"name":"string"}],"pattern":"string","comments":"string","expires_at":"string"}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/lifetime_exceptions/"


            payload = {
                "dids": [{"name": "string"}],
                "pattern": "string",
                "comments": "string",
                "expires_at": "string"
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/lifetime_exceptions/';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"dids":[{"name":"string"}],"pattern":"string","comments":"string","expires_at":"string"}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /lifetime_exceptions/{exception_id}:
    get:
      summary: Get Exception
      description: Get a single Lifetime Exception.
      tags:
        - Lifetime Exceptions
      parameters:
        - name: exception_id
          in: path
          description: The id of the lifetime exception.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: List of lifetime exceptions associated with the id.
                type: array
                items:
                  description: A lifetime exception
                  type: object
                  properties:
                    id:
                      description: The id of the lifetime exception.
                      type: string
                    scope:
                      description: The scope associated with the lifetime exception.
                      type: string
                    name:
                      description: The name of the lifetime exception.
                      type: string
                    did_type:
                      description: The type of the DID.
                      type: string
                      enum:
                        - F
                        - D
                        - C
                        - A
                        - X
                        - 'Y'
                        - Z
                    account:
                      description: The account associated with the lifetime exception.
                      type: string
                    pattern:
                      description: The pattern of the lifetime exception.
                      type: string
                    comments:
                      description: The comments of the lifetime exception.
                      type: string
                    state:
                      description: The state of the lifetime exception.
                      type: string
                      enum:
                        - A
                        - R
                        - W
                    created_at:
                      description: The datetime the lifetime exception was created.
                      type: string
                    expires_at:
                      description: The datetime the lifetime exception expires.
                      type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: Lifetime exception not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/lifetime_exceptions/{exception_id} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/lifetime_exceptions/{exception_id}"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/lifetime_exceptions/{exception_id}';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    put:
      summary: Approve/Reject exception
      description: Approve/Reject a Lifetime Exception.
      tags:
        - Lifetime Exceptions
      parameters:
        - name: exception_id
          in: path
          description: The id of the Lifetime Exception.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                state:
                  description: The new state for the Lifetime Exception.
                  type: string
                  enum:
                    - A
                    - R
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '400':
          description: Cannot decode json parameter list.
        '401':
          description: Invalid Auth Token
        '404':
          description: Lifetime Exception not found
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request PUT \
              --url http://undefinedundefined/lifetime_exceptions/{exception_id} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"state":"A"}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/lifetime_exceptions/{exception_id}"


            payload = {"state": "A"}

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("PUT", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/lifetime_exceptions/{exception_id}';


            let options = {
              method: 'PUT',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"state":"A"}'
            };


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /auth/userpass:
    get:
      summary: UserPass
      description: Authenticate a Rucio account temporarily via username and password.
      tags:
        - Auth
      parameters:
        - name: X-Rucio-Account
          in: header
          description: Account identifier as a string.
          schema:
            type: string
          required: true
        - name: X-Rucio-Username
          in: header
          description: Username as a string.
          schema:
            type: string
          required: true
        - name: X-Rucio-Password
          in: header
          description: password as a text-plain string.
          schema:
            type: string
          required: true
        - name: X-Rucio-AppID
          in: header
          description: Application identifier as a string.
          schema:
            type: string
        - name: X-Forwarded-For
          in: header
          description: The forward ip address.
          schema:
            type: string
      responses:
        '200':
          description: OK
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
            Access-Control-Allow-Credentials:
              schema:
                type: string
            Access-Control-Expose-Headers:
              schema:
                type: string
            X-Rucio-Auth-Token:
              schema:
                type: string
            X-Rucio-Auth-Token-Expires:
              schema:
                type: string
            X-Rucio-Auth-Account:
              schema:
                type: string
              description: The rucio account used for authentication
        '206':
          description: Partial content containing X-Rucio-Auth-Accounts header
          headers:
            X-Rucio-Auth-Accounts:
              schema:
                type: string
              description: >-
                The rucio accounts corresponding to the provided identity as a
                csv string
        '401':
          description: Cannot authenticate
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/auth/userpass \
              --header 'X-Forwarded-For: SOME_STRING_VALUE' \
              --header 'X-Rucio-Account: SOME_STRING_VALUE' \
              --header 'X-Rucio-AppID: SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'X-Rucio-Password: SOME_STRING_VALUE' \
              --header 'X-Rucio-Username: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/auth/userpass"

            headers = {
                "X-Rucio-Account": "SOME_STRING_VALUE",
                "X-Rucio-Username": "SOME_STRING_VALUE",
                "X-Rucio-Password": "SOME_STRING_VALUE",
                "X-Rucio-AppID": "SOME_STRING_VALUE",
                "X-Forwarded-For": "SOME_STRING_VALUE",
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/auth/userpass';

            let options = {
              method: 'GET',
              headers: {
                'X-Rucio-Account': 'SOME_STRING_VALUE',
                'X-Rucio-Username': 'SOME_STRING_VALUE',
                'X-Rucio-Password': 'SOME_STRING_VALUE',
                'X-Rucio-AppID': 'SOME_STRING_VALUE',
                'X-Forwarded-For': 'SOME_STRING_VALUE',
                'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE'
              }
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    options:
      summary: UserPass Allow cross-site scripting
      description: UserPass Allow cross-site scripting. Explicit for Authentication.
      tags:
        - Auth
      responses:
        '200':
          description: OK
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
                enum:
                  - '*'
            Access-Control-Allow-Credentials:
              schema:
                type: string
                enum:
                  - 'true'
            Access-Control-Expose-Headers:
              schema:
                type: string
                enum:
                  - X-Rucio-Auth-Token
        '404':
          description: Not found
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request OPTIONS \
              --url http://undefinedundefined/auth/userpass \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/auth/userpass"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("OPTIONS", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/auth/userpass';


            let options = {method: 'OPTIONS', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /auth/gss:
    get:
      summary: GSS
      description: Authenticate a Rucio account via GSS.
      tags:
        - Auth
      parameters:
        - name: X-Rucio-Account
          in: header
          schema:
            type: string
          required: true
        - name: REMOTE_USER
          in: header
          schema:
            type: string
          required: true
        - name: X-Rucio-AppID
          in: header
          schema:
            type: string
        - name: X-Forwarded-For
          in: header
          schema:
            type: string
      responses:
        '200':
          description: OK
          headers:
            X-Rucio-Auth-Token:
              description: The authentication token
              schema:
                type: string
            X-Rucio-Auth-Token-Expires:
              description: The time when the token expires
              schema:
                type: string
        '401':
          description: Cannot authenticate
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/auth/gss \
              --header 'REMOTE_USER: SOME_STRING_VALUE' \
              --header 'X-Forwarded-For: SOME_STRING_VALUE' \
              --header 'X-Rucio-Account: SOME_STRING_VALUE' \
              --header 'X-Rucio-AppID: SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/auth/gss"

            headers = {
                "X-Rucio-Account": "SOME_STRING_VALUE",
                "REMOTE_USER": "SOME_STRING_VALUE",
                "X-Rucio-AppID": "SOME_STRING_VALUE",
                "X-Forwarded-For": "SOME_STRING_VALUE",
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/auth/gss';

            let options = {
              method: 'GET',
              headers: {
                'X-Rucio-Account': 'SOME_STRING_VALUE',
                REMOTE_USER: 'SOME_STRING_VALUE',
                'X-Rucio-AppID': 'SOME_STRING_VALUE',
                'X-Forwarded-For': 'SOME_STRING_VALUE',
                'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE'
              }
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    options:
      summary: GSS Allow cross-site scripting
      description: GSS Allow cross-site scripting. Explicit for Authentication.
      tags:
        - Auth
      responses:
        '200':
          description: OK
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
                enum:
                  - '*'
            Access-Control-Allow-Credentials:
              schema:
                type: string
                enum:
                  - 'true'
            Access-Control-Expose-Headers:
              schema:
                type: string
                enum:
                  - X-Rucio-Auth-Token
        '404':
          description: Not found
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request OPTIONS \
              --url http://undefinedundefined/auth/gss \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/auth/gss"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("OPTIONS", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/auth/gss';


            let options = {method: 'OPTIONS', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /auth/x509:
    get:
      summary: x509
      description: Authenticate a Rucio account via x509.
      tags:
        - Auth
      parameters:
        - name: X-Rucio-Account
          in: header
          schema:
            type: string
          required: true
        - name: X-Rucio-AppID
          in: header
          schema:
            type: string
        - name: X-Forwarded-For
          in: header
          schema:
            type: string
        - name: X-Rucio-Allow-Return-Multiple-Accounts
          in: header
          schema:
            type: boolean
          description: >-
            If set to true, a HTTP 206 response will be returned if the identity
            is associated with multiple accounts.
      responses:
        '200':
          description: OK
          headers:
            X-Rucio-Auth-Token:
              description: The authentication token
              schema:
                type: string
            X-Rucio-Auth-Token-Expires:
              description: The time when the token expires
              schema:
                type: string
            X-Rucio-Auth-Account:
              description: The rucio account corresponding to the provided identity
              schema:
                type: string
        '206':
          description: Partial content containing X-Rucio-Auth-Accounts header
          headers:
            X-Rucio-Auth-Accounts:
              schema:
                type: string
              description: >-
                The rucio accounts corresponding to the provided identity as a
                csv string
        '401':
          description: Cannot authenticate
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/auth/x509 \
              --header 'X-Forwarded-For: SOME_STRING_VALUE' \
              --header 'X-Rucio-Account: SOME_STRING_VALUE' \
              --header 'X-Rucio-Allow-Return-Multiple-Accounts: SOME_BOOLEAN_VALUE' \
              --header 'X-Rucio-AppID: SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/auth/x509"

            headers = {
                "X-Rucio-Account": "SOME_STRING_VALUE",
                "X-Rucio-AppID": "SOME_STRING_VALUE",
                "X-Forwarded-For": "SOME_STRING_VALUE",
                "X-Rucio-Allow-Return-Multiple-Accounts": "SOME_BOOLEAN_VALUE",
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/auth/x509';

            let options = {
              method: 'GET',
              headers: {
                'X-Rucio-Account': 'SOME_STRING_VALUE',
                'X-Rucio-AppID': 'SOME_STRING_VALUE',
                'X-Forwarded-For': 'SOME_STRING_VALUE',
                'X-Rucio-Allow-Return-Multiple-Accounts': 'SOME_BOOLEAN_VALUE',
                'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE'
              }
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    options:
      summary: x509 Allow cross-site scripting
      description: x509 Allow cross-site scripting. Explicit for Authentication.
      tags:
        - Auth
      responses:
        '200':
          description: OK
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
                enum:
                  - '*'
            Access-Control-Allow-Credentials:
              schema:
                type: string
                enum:
                  - 'true'
            Access-Control-Expose-Headers:
              schema:
                type: string
                enum:
                  - X-Rucio-Auth-Token
        '404':
          description: Not found
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request OPTIONS \
              --url http://undefinedundefined/auth/x509 \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/auth/x509"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("OPTIONS", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/auth/x509';


            let options = {method: 'OPTIONS', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /auth/ssh:
    get:
      summary: SSH
      description: Authenticate a Rucio account via SSH.
      tags:
        - Auth
      parameters:
        - name: X-Rucio-Account
          in: header
          schema:
            type: string
          required: true
        - name: X-Rucio-SSH-Signature
          in: header
          schema:
            type: string
          required: true
        - name: X-Rucio-AppID
          in: header
          schema:
            type: string
        - name: X-Forwarded-For
          in: header
          schema:
            type: string
      responses:
        '200':
          description: OK
          headers:
            X-Rucio-Auth-Token:
              description: The authentication token
              schema:
                type: string
            X-Rucio-Auth-Token-Expires:
              description: The time when the token expires
              schema:
                type: string
        '401':
          description: Cannot authenticate
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/auth/ssh \
              --header 'X-Forwarded-For: SOME_STRING_VALUE' \
              --header 'X-Rucio-Account: SOME_STRING_VALUE' \
              --header 'X-Rucio-AppID: SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'X-Rucio-SSH-Signature: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/auth/ssh"

            headers = {
                "X-Rucio-Account": "SOME_STRING_VALUE",
                "X-Rucio-SSH-Signature": "SOME_STRING_VALUE",
                "X-Rucio-AppID": "SOME_STRING_VALUE",
                "X-Forwarded-For": "SOME_STRING_VALUE",
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/auth/ssh';

            let options = {
              method: 'GET',
              headers: {
                'X-Rucio-Account': 'SOME_STRING_VALUE',
                'X-Rucio-SSH-Signature': 'SOME_STRING_VALUE',
                'X-Rucio-AppID': 'SOME_STRING_VALUE',
                'X-Forwarded-For': 'SOME_STRING_VALUE',
                'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE'
              }
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    options:
      summary: SSH Allow cross-site scripting
      description: SSH Allow cross-site scripting. Explicit for Authentication.
      tags:
        - Auth
      responses:
        '200':
          description: OK
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
                enum:
                  - '*'
            Access-Control-Allow-Credentials:
              schema:
                type: string
                enum:
                  - 'true'
            Access-Control-Expose-Headers:
              schema:
                type: string
                enum:
                  - X-Rucio-Auth-Token
        '404':
          description: Not found
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request OPTIONS \
              --url http://undefinedundefined/auth/ssh \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/auth/ssh"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("OPTIONS", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/auth/ssh';


            let options = {method: 'OPTIONS', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /auth/ssh_challenge_token:
    get:
      summary: SSHChallengeToken
      description: Authenticate a Rucio account via SSHChallengeToken.
      tags:
        - Auth
      parameters:
        - name: X-Rucio-Account
          in: header
          schema:
            type: string
          required: true
        - name: X-Rucio-AppID
          in: header
          schema:
            type: string
        - name: X-Forwarded-For
          in: header
          schema:
            type: string
      responses:
        '200':
          description: OK
          headers:
            X-Rucio-SSH-Challenge-Token:
              description: The authentication token
              schema:
                type: string
            X-Rucio-SSH-Challenge-Token-Expires:
              description: The time when the token expires
              schema:
                type: string
        '401':
          description: Cannot authenticate
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/auth/ssh_challenge_token \
              --header 'X-Forwarded-For: SOME_STRING_VALUE' \
              --header 'X-Rucio-Account: SOME_STRING_VALUE' \
              --header 'X-Rucio-AppID: SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/auth/ssh_challenge_token"

            headers = {
                "X-Rucio-Account": "SOME_STRING_VALUE",
                "X-Rucio-AppID": "SOME_STRING_VALUE",
                "X-Forwarded-For": "SOME_STRING_VALUE",
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/auth/ssh_challenge_token';

            let options = {
              method: 'GET',
              headers: {
                'X-Rucio-Account': 'SOME_STRING_VALUE',
                'X-Rucio-AppID': 'SOME_STRING_VALUE',
                'X-Forwarded-For': 'SOME_STRING_VALUE',
                'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE'
              }
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    options:
      summary: SSHChallengeToken Allow cross-site scripting
      description: >-
        SSHChallengeToken Allow cross-site scripting. Explicit for
        Authentication.
      tags:
        - Auth
      responses:
        '200':
          description: OK
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
                enum:
                  - '*'
            Access-Control-Allow-Credentials:
              schema:
                type: string
                enum:
                  - 'true'
            Access-Control-Expose-Headers:
              schema:
                type: string
                enum:
                  - X-Rucio-Auth-Token
        '404':
          description: Not found
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request OPTIONS \
              --url http://undefinedundefined/auth/ssh_challenge_token \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/auth/ssh_challenge_token"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("OPTIONS", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/auth/ssh_challenge_token';


            let options = {method: 'OPTIONS', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /auth/saml:
    get:
      summary: SAML
      description: Authenticate a Rucio account via SAML.
      tags:
        - Auth
      parameters:
        - name: X-Rucio-Account
          in: header
          schema:
            type: string
          required: true
        - name: X-Rucio-AppID
          in: header
          schema:
            type: string
        - name: X-Forwarded-For
          in: header
          schema:
            type: string
      responses:
        '200':
          description: OK
          headers:
            X-Rucio-Auth-Token:
              description: The authentication token
              schema:
                type: string
            X-Rucio-Auth-Token-Expires:
              description: The time when the token expires
              schema:
                type: string
            X-Rucio-SAML-Auth-URL:
              description: The time when the token expires
              schema:
                type: string
        '401':
          description: Cannot authenticate
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/auth/saml \
              --header 'X-Forwarded-For: SOME_STRING_VALUE' \
              --header 'X-Rucio-Account: SOME_STRING_VALUE' \
              --header 'X-Rucio-AppID: SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/auth/saml"

            headers = {
                "X-Rucio-Account": "SOME_STRING_VALUE",
                "X-Rucio-AppID": "SOME_STRING_VALUE",
                "X-Forwarded-For": "SOME_STRING_VALUE",
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/auth/saml';

            let options = {
              method: 'GET',
              headers: {
                'X-Rucio-Account': 'SOME_STRING_VALUE',
                'X-Rucio-AppID': 'SOME_STRING_VALUE',
                'X-Forwarded-For': 'SOME_STRING_VALUE',
                'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE'
              }
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    post:
      summary: Post a SAML request
      description: Post a SAML request
      tags:
        - Auth
      responses:
        '200':
          description: OK
        '401':
          description: Invalid Auth Token
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/auth/saml \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/auth/saml"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("POST", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/auth/saml';


            let options = {method: 'POST', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    options:
      summary: SAML Allow cross-site scripting
      description: SAML Allow cross-site scripting. Explicit for Authentication.
      tags:
        - Auth
      responses:
        '200':
          description: OK
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
                enum:
                  - '*'
            Access-Control-Allow-Credentials:
              schema:
                type: string
                enum:
                  - 'true'
            Access-Control-Expose-Headers:
              schema:
                type: string
                enum:
                  - X-Rucio-Auth-Token
        '404':
          description: Not found
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request OPTIONS \
              --url http://undefinedundefined/auth/saml \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/auth/saml"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("OPTIONS", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/auth/saml';


            let options = {method: 'OPTIONS', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /auth/validate:
    get:
      summary: Validate
      description: Validate a Rucio auth token.
      tags:
        - Auth
      parameters:
        - name: X-Rucio-Account
          in: header
          schema:
            type: string
          required: true
      responses:
        '200':
          description: OK
        '401':
          description: Cannot authenticate
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/auth/validate \
              --header 'X-Rucio-Account: SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/auth/validate"

            headers = {
                "X-Rucio-Account": "SOME_STRING_VALUE",
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/auth/validate';

            let options = {
              method: 'GET',
              headers: {
                'X-Rucio-Account': 'SOME_STRING_VALUE',
                'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE'
              }
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    options:
      summary: Validate Allow cross-site scripting
      description: Validate Allow cross-site scripting. Explicit for Authentication.
      tags:
        - Auth
      responses:
        '200':
          description: OK
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
                enum:
                  - '*'
            Access-Control-Allow-Credentials:
              schema:
                type: string
                enum:
                  - 'true'
            Access-Control-Expose-Headers:
              schema:
                type: string
                enum:
                  - X-Rucio-Auth-Token
        '404':
          description: Not found
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request OPTIONS \
              --url http://undefinedundefined/auth/validate \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/auth/validate"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("OPTIONS", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/auth/validate';


            let options = {method: 'OPTIONS', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /auth/oidc:
    get:
      summary: OIDC
      description: Authenticate a Rucio account via OIDC.
      tags:
        - Auth
      parameters:
        - name: HTTP_X_RUCIO_ACCOUNT
          in: header
          description: Account identifier as a string.
          schema:
            type: string
        - name: HTTP_X_RUCIO_CLIENT_AUTHORIZE_SCOPE
          in: header
          schema:
            type: string
        - name: HTTP_X_RUCIO_CLIENT_AUTHORIZE_AUDIENCE
          in: header
          schema:
            type: string
        - name: HTTP_X_RUCIO_CLIENT_AUTHORIZE_AUTO
          in: header
          schema:
            type: string
        - name: HTTP_X_RUCIO_CLIENT_AUTHORIZE_ISSUER
          in: header
          schema:
            type: string
        - name: HTTP_X_RUCIO_CLIENT_AUTHORIZE_POLLING
          in: header
          schema:
            type: string
        - name: HTTP_X_RUCIO_CLIENT_AUTHORIZE_REFRESH_LIFETIME
          in: header
          schema:
            type: string
        - name: X-Forwarded-For
          in: header
          schema:
            type: string
      responses:
        '200':
          description: OK
          headers:
            X-Rucio-OIDC-Auth-URL:
              description: User & Rucio OIDC Client specific Authorization URL
              schema:
                type: string
        '401':
          description: Cannot authenticate
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/auth/oidc \
              --header 'HTTP_X_RUCIO_ACCOUNT: SOME_STRING_VALUE' \
              --header 'HTTP_X_RUCIO_CLIENT_AUTHORIZE_AUDIENCE: SOME_STRING_VALUE' \
              --header 'HTTP_X_RUCIO_CLIENT_AUTHORIZE_AUTO: SOME_STRING_VALUE' \
              --header 'HTTP_X_RUCIO_CLIENT_AUTHORIZE_ISSUER: SOME_STRING_VALUE' \
              --header 'HTTP_X_RUCIO_CLIENT_AUTHORIZE_POLLING: SOME_STRING_VALUE' \
              --header 'HTTP_X_RUCIO_CLIENT_AUTHORIZE_REFRESH_LIFETIME: SOME_STRING_VALUE' \
              --header 'HTTP_X_RUCIO_CLIENT_AUTHORIZE_SCOPE: SOME_STRING_VALUE' \
              --header 'X-Forwarded-For: SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/auth/oidc"

            headers = {
                "HTTP_X_RUCIO_ACCOUNT": "SOME_STRING_VALUE",
                "HTTP_X_RUCIO_CLIENT_AUTHORIZE_SCOPE": "SOME_STRING_VALUE",
                "HTTP_X_RUCIO_CLIENT_AUTHORIZE_AUDIENCE": "SOME_STRING_VALUE",
                "HTTP_X_RUCIO_CLIENT_AUTHORIZE_AUTO": "SOME_STRING_VALUE",
                "HTTP_X_RUCIO_CLIENT_AUTHORIZE_ISSUER": "SOME_STRING_VALUE",
                "HTTP_X_RUCIO_CLIENT_AUTHORIZE_POLLING": "SOME_STRING_VALUE",
                "HTTP_X_RUCIO_CLIENT_AUTHORIZE_REFRESH_LIFETIME": "SOME_STRING_VALUE",
                "X-Forwarded-For": "SOME_STRING_VALUE",
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/auth/oidc';

            let options = {
              method: 'GET',
              headers: {
                HTTP_X_RUCIO_ACCOUNT: 'SOME_STRING_VALUE',
                HTTP_X_RUCIO_CLIENT_AUTHORIZE_SCOPE: 'SOME_STRING_VALUE',
                HTTP_X_RUCIO_CLIENT_AUTHORIZE_AUDIENCE: 'SOME_STRING_VALUE',
                HTTP_X_RUCIO_CLIENT_AUTHORIZE_AUTO: 'SOME_STRING_VALUE',
                HTTP_X_RUCIO_CLIENT_AUTHORIZE_ISSUER: 'SOME_STRING_VALUE',
                HTTP_X_RUCIO_CLIENT_AUTHORIZE_POLLING: 'SOME_STRING_VALUE',
                HTTP_X_RUCIO_CLIENT_AUTHORIZE_REFRESH_LIFETIME: 'SOME_STRING_VALUE',
                'X-Forwarded-For': 'SOME_STRING_VALUE',
                'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE'
              }
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    options:
      summary: OIDC Allow cross-site scripting
      description: OIDC Allow cross-site scripting. Explicit for Authentication.
      tags:
        - Auth
      responses:
        '200':
          description: OK
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
                enum:
                  - '*'
            Access-Control-Allow-Credentials:
              schema:
                type: string
                enum:
                  - 'true'
        '404':
          description: Not found
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request OPTIONS \
              --url http://undefinedundefined/auth/oidc \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/auth/oidc"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("OPTIONS", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/auth/oidc';


            let options = {method: 'OPTIONS', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /auth/oidc_token:
    get:
      summary: TokenOIDC
      description: Authenticate a Rucio account via TokenOIDC.
      tags:
        - Auth
      parameters:
        - name: X-Forwarded-For
          in: header
          schema:
            type: string
      responses:
        '200':
          description: OK
          headers:
            X-Rucio-Auth-Token:
              description: The authentication token
              schema:
                type: string
            X-Rucio-Auth-Token-Expires:
              description: The time when the token expires
              schema:
                type: string
        '401':
          description: Cannot authenticate
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/auth/oidc_token \
              --header 'X-Forwarded-For: SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/auth/oidc_token"

            headers = {
                "X-Forwarded-For": "SOME_STRING_VALUE",
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/auth/oidc_token';

            let options = {
              method: 'GET',
              headers: {
                'X-Forwarded-For': 'SOME_STRING_VALUE',
                'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE'
              }
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    options:
      summary: TokenOIDC Allow cross-site scripting
      description: TokenOIDC Allow cross-site scripting. Explicit for Authentication.
      tags:
        - Auth
      responses:
        '200':
          description: OK
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
                enum:
                  - '*'
            Access-Control-Allow-Credentials:
              schema:
                type: string
                enum:
                  - 'true'
        '404':
          description: Not found
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request OPTIONS \
              --url http://undefinedundefined/auth/oidc_token \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/auth/oidc_token"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("OPTIONS", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/auth/oidc_token';


            let options = {method: 'OPTIONS', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /auth/oidc_code:
    get:
      summary: CodeOIDC
      description: Authenticate a Rucio account via CodeOIDC.
      tags:
        - Auth
      parameters:
        - name: X-Forwarded-For
          in: header
          schema:
            type: string
      responses:
        '200':
          description: OK
        '400':
          description: Invalid request
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/auth/oidc_code \
              --header 'X-Forwarded-For: SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/auth/oidc_code"

            headers = {
                "X-Forwarded-For": "SOME_STRING_VALUE",
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/auth/oidc_code';

            let options = {
              method: 'GET',
              headers: {
                'X-Forwarded-For': 'SOME_STRING_VALUE',
                'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE'
              }
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    options:
      summary: CodeOIDC Allow cross-site scripting
      description: CodeOIDC Allow cross-site scripting. Explicit for Authentication.
      tags:
        - Auth
      responses:
        '200':
          description: OK
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
                enum:
                  - '*'
            Access-Control-Allow-Credentials:
              schema:
                type: string
                enum:
                  - 'true'
        '404':
          description: Not found
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request OPTIONS \
              --url http://undefinedundefined/auth/oidc_code \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/auth/oidc_code"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("OPTIONS", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/auth/oidc_code';


            let options = {method: 'OPTIONS', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /auth/oidc_redirect:
    get:
      summary: RedirectOIDC
      description: Authenticate a Rucio account via RedirectOIDC.
      tags:
        - Auth
      parameters:
        - name: X-Rucio-Client-Fetch-Token
          in: header
          schema:
            type: string
      responses:
        '200':
          description: OK
          headers:
            X-Rucio-Auth-Token:
              description: The authentication token
              schema:
                type: string
            Content-Type:
              schema:
                type: string
                enum:
                  - application/octet-stream
        '303':
          description: Redirect
        '401':
          description: Cannot authenticate
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/auth/oidc_redirect \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'X-Rucio-Client-Fetch-Token: SOME_STRING_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/auth/oidc_redirect"

            headers = {
                "X-Rucio-Client-Fetch-Token": "SOME_STRING_VALUE",
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/auth/oidc_redirect';

            let options = {
              method: 'GET',
              headers: {
                'X-Rucio-Client-Fetch-Token': 'SOME_STRING_VALUE',
                'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE'
              }
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    options:
      summary: RedirectOIDC Allow cross-site scripting
      description: RedirectOIDC Allow cross-site scripting. Explicit for Authentication.
      tags:
        - Auth
      responses:
        '200':
          description: OK
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
                enum:
                  - '*'
            Access-Control-Allow-Credentials:
              schema:
                type: string
                enum:
                  - 'true'
        '404':
          description: Not found
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request OPTIONS \
              --url http://undefinedundefined/auth/oidc_redirect \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/auth/oidc_redirect"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("OPTIONS", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/auth/oidc_redirect';


            let options = {method: 'OPTIONS', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /auth/oidc_refresh:
    get:
      summary: RefreshOIDC
      description: Authenticate a Rucio account via RefreshOIDC.
      tags:
        - Auth
      parameters:
        - name: X-Rucio-Account
          in: header
          schema:
            type: string
          required: true
        - name: X-Rucio-Auth-Token
          in: header
          schema:
            type: string
          required: true
      responses:
        '200':
          description: OK
          headers:
            X-Rucio-Auth-Token:
              description: The authentication token
              schema:
                type: string
            X-Rucio-Auth-Token-Expires:
              description: The time when the token expires
              schema:
                type: string
        '401':
          description: Cannot authenticate
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/auth/oidc_refresh \
              --header 'X-Rucio-Account: SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/auth/oidc_refresh"

            headers = {
                "X-Rucio-Account": "SOME_STRING_VALUE",
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"
            }

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/auth/oidc_refresh';

            let options = {
              method: 'GET',
              headers: {
                'X-Rucio-Account': 'SOME_STRING_VALUE',
                'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE'
              }
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    options:
      summary: RefreshOIDC Allow cross-site scripting
      description: RefreshOIDC Allow cross-site scripting. Explicit for Authentication.
      tags:
        - Auth
      responses:
        '200':
          description: OK
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
            Access-Control-Allow-Headers:
              schema:
                type: string
            Access-Control-Allow-Methods:
              schema:
                type: string
                enum:
                  - '*'
            Access-Control-Allow-Credentials:
              schema:
                type: string
                enum:
                  - 'true'
            Access-Control-Expose-Headers:
              schema:
                type: string
                enum:
                  - X-Rucio-Auth-Token
        '404':
          description: Not found
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request OPTIONS \
              --url http://undefinedundefined/auth/oidc_refresh \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/auth/oidc_refresh"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("OPTIONS", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/auth/oidc_refresh';


            let options = {method: 'OPTIONS', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /dids/{scope_name}/status:
    get:
      summary: Get DID
      description: Get a single data identifier.
      tags:
        - Data Identifiers
      parameters:
        - name: scope_name
          in: path
          description: The scope and the name of the DID.
          schema:
            type: string
          style: simple
          required: true
        - name: dynamic_depth
          in: query
          description: The DID type at which to stop the dynamic length/size estimation
          schema:
            type: string
            enum:
              - FILE
              - DATASET
        - name: dynamic
          in: query
          description: Same as dynamic_depth = 'FILE'
          deprecated: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                oneOf:
                  - description: A single file DID.
                    type: object
                    properties:
                      scope:
                        description: The scope of the DID.
                        type: string
                      name:
                        description: The name of the DID.
                        type: string
                      type:
                        description: The type of the string.
                        type: string
                      account:
                        description: The associated account.
                        type: string
                      bytes:
                        description: The size in bytes.
                        type: integer
                      length:
                        description: The number of files. Corresponses to 1.
                        type: integer
                        enum:
                          - 1
                      md5:
                        description: md5 checksum.
                        type: string
                      adler32:
                        description: adler32 checksum.
                        type: string
                  - description: A single file DID.
                    type: object
                    properties:
                      scope:
                        description: The scope of the DID.
                        type: string
                      name:
                        description: The name of the DID.
                        type: string
                      type:
                        description: The type of the string.
                        type: string
                      account:
                        description: The associated account.
                        type: string
                      open:
                        description: If the DID is write open.
                        type: boolean
                      monotonic:
                        description: If the DID is monotonic.
                        type: boolean
                      expired_at:
                        description: When the DID expired.
                        type: string
                      length:
                        description: The number of associated DIDs.
                        type: number
                      bytes:
                        description: The size in bytes.
                        type: number
        '401':
          description: Invalid Auth Token
        '404':
          description: Scope not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'http://undefinedundefined/dids/{scope_name}/status?dynamic_depth=SOME_STRING_VALUE&dynamic=SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/dids/{scope_name}/status"


            querystring =
            {"dynamic_depth":"SOME_STRING_VALUE","dynamic":"SOME_STRING_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/dids/{scope_name}/status?dynamic_depth=SOME_STRING_VALUE&dynamic=SOME_STRING_VALUE';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    put:
      summary: Update DID
      description: Update a DID.
      tags:
        - Data Identifiers
      parameters:
        - name: scope_name
          in: path
          description: The scope and the name of the DID.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                open:
                  description: The open status
                  type: boolean
      responses:
        '200':
          description: OK
        '401':
          description: Invalid Auth Token
        '404':
          description: DID not found
        '409':
          description: Wrong status
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request PUT \
              --url http://undefinedundefined/dids/{scope_name}/status \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"open":true}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/dids/{scope_name}/status"


            payload = {"open": True}

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("PUT", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/dids/{scope_name}/status';

            let options = {
              method: 'PUT',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"open":true}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /dids/{scope_name}/meta:
    delete:
      summary: Delete metadata
      description: |
        Delete a specific metadata key from a data identifier (DID).
        This `key` must be provided via the query parameter `?key=...`.
      tags:
        - Data Identifiers
      parameters:
        - name: scope_name
          in: path
          description: The scope and the name of the DID (e.g., `scope:name`).
          required: true
          style: simple
          schema:
            type: string
        - name: key
          in: query
          description: The metadata key to delete.
          required: true
          style: form
          schema:
            type: string
      responses:
        '200':
          description: OK – the metadata key was successfully removed.
          content:
            text/plain:
              schema:
                type: string
                enum:
                  - ''
        '400':
          description: Bad Request – invalid scope_name.
        '401':
          description: Unauthorized – invalid Auth Token.
        '404':
          description: >
            Not found – the specified DID or `key` does not exist, or no `key`
            query parameter provided.
        '405':
          description: >-
            Method Not Allowed – the 'key' parameter is not supported with
            DELETE.
        '409':
          description: Conflict – action not supported by the utilized metadata plugin.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request DELETE \
              --url 'http://undefinedundefined/dids/{scope_name}/meta?key=SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/dids/{scope_name}/meta"


            querystring = {"key":"SOME_STRING_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("DELETE", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/dids/{scope_name}/meta?key=SOME_STRING_VALUE';


            let options = {method: 'DELETE', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    get:
      summary: Get metadata
      description: Retrieve the metadata of a data identifier (DID).
      tags:
        - Data Identifiers
      parameters:
        - name: scope_name
          in: path
          description: The scope and the name of the DID (e.g., `scope:name`).
          required: true
          style: simple
          schema:
            type: string
        - name: plugin
          in: query
          description: The metadata plugin to use.
          required: false
          style: form
          schema:
            type: string
            default: DID_COLUMN
      responses:
        '200':
          description: OK – returns the metadata of the DID.
          content:
            application/json:
              schema:
                type: object
                description: A JSON object containing all attributes of the DID.
              examples:
                defaultPlugin:
                  summary: Response produced by the default 'DID_COLUMN' plug-in
                  value:
                    scope: user
                    name: dataset_123
                    did_type: DATASET
                    bytes: 123456789
                    length: 42
                    account: root
                    is_open: true
                    suppressed: false
                    created_at: '2025-05-20T12:16:58'
                    updated_at: '2025-05-20T12:17:27'
                jsonPlugin:
                  summary: Response produced by the 'JSON' plugin
                  value:
                    custom_key1: value1
                    custom_key2: value2
        '400':
          description: >-
            Bad Request – invalid scope_name, or invalid metadata plugin
            specified.
        '401':
          description: Unauthorized – invalid Auth Token.
        '404':
          description: Not found – the specified DID does not exist.
        '405':
          description: Method Not Allowed – the 'key' parameter is not supported with GET.
        '406':
          description: Not Acceptable – the requested format is not supported.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'http://undefinedundefined/dids/{scope_name}/meta?plugin=SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/dids/{scope_name}/meta"


            querystring = {"plugin":"SOME_STRING_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/dids/{scope_name}/meta?plugin=SOME_STRING_VALUE';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    post:
      summary: Set or update metadata
      description: >
        Set metadata for a data identifier (DID). If a piece of metadata for a
        given key

        already exists, it will be handled according to the underlying metadata
        plugin

        in use. Certain plugins may disallow updating specific metadata keys.


        - **Single-key mode** (key provided in the path):
          The request body must contain a `value` field (e.g., `{"value": "some_value"}`).
        - **Multi-key mode** (no key in the path):
          The request body must contain a `meta` field with the dictionary containing
          multiple key-value pairs (e.g. `{"meta": {"k1": "v1", "k2": "v2"}}`).

        The optional `recursive` flag indicates whether the metadata should be
        applied

        recursively to child DIDs. Note that whether recursion is supported
        depends on

        the plugin configured for your system.
      tags:
        - Data Identifiers
      parameters:
        - name: scope_name
          in: path
          description: The scope and the name of the DID (e.g., `scope:name`).
          required: true
          style: simple
          schema:
            type: string
        - name: key
          in: path
          description: >
            The key parameter applies only to the `/meta/<key>` endpoint
            (**Single-key mode**)

            and defines which metadata key to set/update. If omitted (by calling
            just `/meta`

            without the extra path segment), it defaults to `None` and
            **Multi-key mode** is used.
          required: true
          style: simple
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  description: Schema for **Single-key mode** (`key` included in path).
                  required:
                    - value
                  properties:
                    value:
                      description: The metadata value to set for this key.
                      type: string
                    recursive:
                      description: Whether to apply the update recursively to child DIDs.
                      type: boolean
                      default: false
                - type: object
                  description: >-
                    Schema for **Multi-key mode** (`key` not included in the
                    path).
                  required:
                    - meta
                  properties:
                    meta:
                      description: A dictionary of multiple metadata keys and their values.
                      type: object
                    recursive:
                      description: Whether to apply the update recursively to child DIDs.
                      type: boolean
                      default: false
            examples:
              singleKeyMode:
                summary: Setting a single metadata key
                value:
                  value: my_metadata_value
                  recursive: false
              multiKeyMode:
                summary: Setting multiple metadata keys at once
                value:
                  meta:
                    experiment: ATLAS
                    physics_group: Higgs
                    data_type: RAW
                  recursive: true
      responses:
        '201':
          description: Created – metadata was successfully set (or updated).
          content:
            text/plain:
              schema:
                type: string
                enum:
                  - Created
        '400':
          description: Bad Request – invalid scope_name, or invalid key/value parameters.
        '401':
          description: Unauthorized – invalid Auth Token.
        '404':
          description: Not found – the specified DID does not exist.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/dids/{scope_name}/meta \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"value":"string","recursive":false}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/dids/{scope_name}/meta"


            payload = {
                "value": "string",
                "recursive": False
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/dids/{scope_name}/meta';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"value":"string","recursive":false}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /dids/bulkdidsmeta:
    post:
      summary: Bulk set metadata
      description: >
        Add or update metadata for **multiple** data identifiers (DIDs) in a
        single request.


        * Every array element **must** contain the DID (`scope` + `name`) and a
        `meta`
          dictionary holding the key–value pairs to insert / update for that DID.
        * If a key already exists the exact action (overwrite, merge, reject)
          depends on the metadata plug‑in configured on the server.
        * The operation is atomic across the whole list: the request succeeds
        only if
          all DIDs are updated successfully; otherwise no metadata is written.
      tags:
        - Data Identifiers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - dids
              properties:
                dids:
                  description: List of DIDs with the metadata to apply.
                  type: array
                  items:
                    type: object
                    required:
                      - scope
                      - name
                      - meta
                    properties:
                      scope:
                        description: Scope of the DID.
                        type: string
                      name:
                        description: Name of the DID.
                        type: string
                      meta:
                        description: >
                          Dictionary of metadata key–value pairs to set for this
                          DID. Values may be strings, numbers, booleans, etc. –
                          consult the plug‑in documentation for supported types.
                        type: object
            examples:
              minimal:
                summary: Two DIDs, simple values
                value:
                  dids:
                    - scope: user
                      name: dataset_001
                      meta:
                        experiment: CMS
                        year: 2024
                    - scope: user
                      name: dataset_002
                      meta:
                        experiment: ATLAS
                        is_open: true
      responses:
        '201':
          description: Created – all metadata updates were accepted.
          content:
            text/plain:
              schema:
                type: string
                enum:
                  - Created
        '400':
          description: |
            Bad Request – malformed JSON or missing/invalid `dids` structure.
            (Raised by the generic JSON‑parameter parser before reaching the
            business logic.)
        '401':
          description: |
            Unauthorized – invalid Auth Token or insufficient privileges to
            modify at least one DID.
        '404':
          description: Not found – at least one DID in the request does not exist.
        '409':
          description: Conflict – the operation is not supported for at least one DID.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/dids/bulkdidsmeta \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"dids":[{"scope":"string","name":"string","meta":{}}]}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/dids/bulkdidsmeta"


            payload = {"dids": [
                    {
                        "scope": "string",
                        "name": "string",
                        "meta": {}
                    }
                ]}
            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/dids/bulkdidsmeta';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"dids":[{"scope":"string","name":"string","meta":{}}]}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /dids/bulkmeta:
    post:
      summary: Bulk get metadata
      description: >
        Retrieve the metadata of **multiple** data identifiers (DIDs) with one
        request.


        * The request body is ordinary JSON (`Content‑Type: application/json`).

        * The **response** is a *newline‑delimited JSON* stream
          (`Content‑Type: application/x-json-stream`).
          Each line is a complete JSON object containing the metadata of a single
          DID.  The client **must** send `Accept: application/x-json-stream`; any
          other `Accept` value is rejected with **406 Not Acceptable**.
        * If `inherit=true`, metadata from parent containers is concatenated
          (plug‑in permitting).
        * `plugin` chooses the metadata plug‑in; `"ALL"` returns the union of
        every
          available plug‑in.
      tags:
        - Data Identifiers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - dids
              properties:
                dids:
                  description: List of DIDs to query.
                  type: array
                  items:
                    type: object
                    required:
                      - scope
                      - name
                    properties:
                      scope:
                        description: Scope of the DID.
                        type: string
                      name:
                        description: Name of the DID.
                        type: string
                inherit:
                  description: >
                    If **true**, the server will also return metadata inherited
                    from parent DIDs (default: `false`).
                  type: boolean
                  default: false
                plugin:
                  description: >
                    Which metadata plug‑in to query (`"JSON"`, `"DID_COLUMN"`,
                    `"ALL"`, etc.; default: `"JSON"`).
                  type: string
                  default: JSON
            examples:
              defaultQuery:
                summary: Query two DIDs with inheritance
                value:
                  dids:
                    - scope: user
                      name: dataset_001
                    - scope: user
                      name: dataset_002
                  inherit: true
                  plugin: JSON
      responses:
        '200':
          description: OK – stream of newline‑delimited JSON objects, one per DID.
          content:
            application/x-json-stream:
              schema:
                type: string
                example: >
                  {"scope":"user","name":"dataset_001","experiment":"CMS", ...}


                  {"scope":"user","name":"dataset_002","experiment":"ATLAS",
                  ...}
        '400':
          description: >
            Bad Request – cannot decode JSON parameter list (malformed body or
            missing `dids` array).
        '401':
          description: Unauthorized – invalid Auth Token.
        '404':
          description: Not found – none of the requested DIDs exist.
        '406':
          description: |-
            Not Acceptable – an `Accept` header was sent, but it does not
            include `application/x-json-stream`.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/dids/bulkmeta \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"dids":[{"scope":"string","name":"string"}],"inherit":false,"plugin":"JSON"}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/dids/bulkmeta"


            payload = {
                "dids": [
                    {
                        "scope": "string",
                        "name": "string"
                    }
                ],
                "inherit": False,
                "plugin": "JSON"
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/dids/bulkmeta';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"dids":[{"scope":"string","name":"string"}],"inherit":false,"plugin":"JSON"}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /dids/{scope_name}/dids:
    delete:
      summary: Detach DIDs from DID
      description: Detach data identifiers from data identifiers.
      tags:
        - Data Identifiers
      parameters:
        - name: scope_name
          in: path
          description: The scope and the name of the DID.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - dids
              properties:
                dids:
                  description: The DIDs to detach.
                  type: array
                  items:
                    type: object
                    properties:
                      scope:
                        description: The scope of the DID.
                        type: string
                      name:
                        description: The name of the DID.
                        type: string
      responses:
        '200':
          description: OK
        '401':
          description: Invalid Auth Token
        '404':
          description: DID not found
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request DELETE \
              --url http://undefinedundefined/dids/{scope_name}/dids \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"dids":[{"scope":"string","name":"string"}]}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/dids/{scope_name}/dids"


            payload = {"dids": [
                    {
                        "scope": "string",
                        "name": "string"
                    }
                ]}
            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("DELETE", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/dids/{scope_name}/dids';

            let options = {
              method: 'DELETE',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"dids":[{"scope":"string","name":"string"}]}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    get:
      summary: Get DID
      description: Returns the contents of a data identifier.
      tags:
        - Data Identifiers
      parameters:
        - name: scope_name
          in: path
          description: The scope and the name of the DID.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: DID found
          content:
            application/x-json-stream:
              schema:
                description: The contents of a DID. Items are line separated.
                type: array
                items:
                  type: object
                  required:
                    - scope
                    - name
                    - type
                    - bytes
                    - adler32
                    - md5
                  properties:
                    scope:
                      description: The scope of the DID.
                      type: string
                    name:
                      description: The name of the DID.
                      type: string
                    type:
                      description: The type of the DID.
                      type: string
                    bytes:
                      description: The size of the DID.
                      type: number
                    adler32:
                      description: The adler32 checksum of the DID.
                      type: string
                    md5:
                      description: The md5 checksum of the DID.
                      type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: Scope not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/dids/{scope_name}/dids \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/dids/{scope_name}/dids"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/dids/{scope_name}/dids';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    post:
      summary: Add DIDs to DID
      description: Append data identifiers to data identifiers.
      tags:
        - Data Identifiers
      parameters:
        - name: scope_name
          in: path
          description: The scope and the name of the DID.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - dids
              properties:
                rse:
                  description: The name of the rse.
                  type: string
                account:
                  description: The account which attaches the DIDs.
                  type: string
                dids:
                  description: The DIDs to attach.
                  type: object
                  properties:
                    account:
                      description: The account attaching the DID.
                      type: string
                    scope:
                      description: The scope of the DID.
                      type: string
                    name:
                      description: The name of the DID.
                      type: string
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '401':
          description: Invalid Auth Token
        '404':
          description: DID not found
        '406':
          description: Not acceptable
        '409':
          description: Already attached
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/dids/{scope_name}/dids \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"rse":"string","account":"string","dids":{"account":"string","scope":"string","name":"string"}}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/dids/{scope_name}/dids"


            payload = {
                "rse": "string",
                "account": "string",
                "dids": {
                    "account": "string",
                    "scope": "string",
                    "name": "string"
                }
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/dids/{scope_name}/dids';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"rse":"string","account":"string","dids":{"account":"string","scope":"string","name":"string"}}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /dids/new:
    get:
      summary: Get recent identifiers
      description: Returns a list of recent identifiers.
      tags:
        - Data Identifiers
      parameters:
        - name: type
          in: query
          description: The type of the DID.
          schema:
            type: string
          required: false
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: >-
                  A list of the recent DIDs. Items are separated by new line
                  characters.
                type: array
                items:
                  description: A DID.
                  type: object
                  properties:
                    scope:
                      description: The scope of the DID.
                      type: string
                    name:
                      description: The name of the DID.
                      type: string
                    did_type:
                      description: The type of the DID.
                      type: string
        '401':
          description: Invalid Auth Token
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'http://undefinedundefined/dids/new?type=SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/dids/new"


            querystring = {"type":"SOME_STRING_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/dids/new?type=SOME_STRING_VALUE';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /dids:
    post:
      summary: Add DIDs bulk
      description: Add new DIDs in bulk.
      tags:
        - Data Identifiers
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                description: One DID to add.
                type: object
                required:
                  - scope
                  - name
                  - type
                properties:
                  scope:
                    description: The DID scope.
                    type: string
                  name:
                    description: The DID name.
                    type: string
                  type:
                    description: The type of the DID.
                    type: string
                    enum:
                      - F
                      - D
                      - C
                      - A
                      - X
                      - 'Y'
                      - Z
                  account:
                    description: The account associated with the DID.
                    type: string
                  statuses:
                    description: The monotonic status
                    type: string
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '401':
          description: Invalid Auth Token
        '406':
          description: Not acceptable
        '409':
          description: DID already exists
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/dids \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '[{"scope":"string","name":"string","type":"F","account":"string","statuses":"string"}]'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/dids"


            payload = [
                {
                    "scope": "string",
                    "name": "string",
                    "type": "F",
                    "account": "string",
                    "statuses": "string"
                }
            ]

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/dids';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '[{"scope":"string","name":"string","type":"F","account":"string","statuses":"string"}]'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /dids/{scope_name}/dids/history:
    get:
      summary: Get history
      description: Returns the content history of a data identifier.
      tags:
        - Data Identifiers
      parameters:
        - name: scope_name
          in: path
          description: The scope and the name of the DID.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: DID found
          content:
            application/x-json-stream:
              schema:
                description: |
                  The DIDs with their information and history.
                  Elements are separated by new line characters.
                type: array
                items:
                  type: object
                  description: A single DID with history data.
                  properties:
                    scope:
                      description: The scope of the DID.
                      type: string
                    name:
                      description: The name of the DID.
                      type: string
                    type:
                      description: The type of the DID.
                      type: string
                    bytes:
                      description: The size of the DID in bytes.
                      type: integer
                    adler32:
                      description: The abler32 sha checksum.
                      type: string
                    md5:
                      description: The md5 checksum.
                      type: string
                    deleted_at:
                      description: The deleted_at date time.
                      type: string
                    created_at:
                      description: The created_at date time.
                      type: string
                    updated_at:
                      description: The last time the DID was updated.
                      type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: DID not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/dids/{scope_name}/dids/history \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/dids/{scope_name}/dids/history"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/dids/{scope_name}/dids/history';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /dids/attachments:
    post:
      summary: Attach DID to DID
      description: Attaches a DID to another DID
      tags:
        - Data Identifiers
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - description: An array containing all DIDs. Duplicates are not ignored.
                  type: array
                  required:
                    - scope
                    - name
                    - dids
                  properties:
                    scope:
                      description: The scope of the DID.
                      type: string
                    name:
                      description: The name of the DID.
                      type: string
                    dids:
                      description: The DIDs associated with the DID.
                      type: array
                      items:
                        type: object
                        description: A DID.
                        required:
                          - scope
                          - name
                        properties:
                          scope:
                            description: The scope of the DID.
                            type: string
                          name:
                            description: The name of the DID.
                            type: string
                    rse_id:
                      description: The rse id of the DID.
                      type: string
                - type: object
                  required:
                    - attachments
                  properties:
                    ignore_duplicates:
                      description: If duplicates should be ignored.
                      type: boolean
                      default: false
                    attachments:
                      description: >-
                        An array containing all DIDs. Duplicates are not
                        ignored.
                      type: array
                      required:
                        - scope
                        - name
                        - dids
                      properties:
                        scope:
                          description: The scope of the DID.
                          type: string
                        name:
                          description: The name of the DID.
                          type: string
                        dids:
                          description: The DIDs associated with the DID.
                          type: array
                          items:
                            type: object
                            description: A DID.
                            required:
                              - scope
                              - name
                            properties:
                              scope:
                                description: The scope of the DID.
                                type: string
                              name:
                                description: The name of the DID.
                                type: string
                        rse_id:
                          description: The rse id of the DID.
                          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '401':
          description: Invalid Auth Token
        '404':
          description: Not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/dids/attachments \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '[]'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/dids/attachments"


            payload = []

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/dids/attachments';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '[]'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /dids/{scope}/dids/search:
    get:
      summary: List Data identifier
      description: List all data identifiers in a scope which match a given metadata.
      tags:
        - Data Identifiers
      parameters:
        - name: scope
          in: path
          description: The scope of the data identifiers.
          schema:
            type: string
          style: simple
          required: true
        - name: type
          in: query
          description: The DID type to search for.
          schema:
            type: string
            enum:
              - all
              - collection
              - container
              - dataset
              - file
            default: collection
        - name: limit
          in: query
          description: The maximum number of DIDs returned.
          schema:
            type: integer
        - name: long
          in: query
          description: Provides a longer output, otherwise just prints names.
          schema:
            type: boolean
            default: false
        - name: recursive
          in: query
          description: Recursively list children.
          schema:
            type: boolean
        - name: created_before
          in: query
          description: Date string in RFC-1123 format where the creation date was earlier.
          schema:
            type: string
        - name: created_after
          in: query
          description: Date string in RFC-1123 format where the creation date was later.
          schema:
            type: string
        - name: length
          in: query
          description: Exact number of attached DIDs.
          schema:
            type: integer
        - name: length.gt
          in: query
          description: Number of attached DIDs greater than.
          schema:
            type: integer
        - name: length.lt
          in: query
          description: Number of attached DIDs less than.
          schema:
            type: integer
        - name: length.gte
          in: query
          description: Number of attached DIDs greater than or equal to
          schema:
            type: integer
        - name: length.lte
          in: query
          description: Number of attached DIDs less than or equal to.
          schema:
            type: integer
        - name: name
          in: query
          description: Name or pattern of a DID.
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: >-
                  Line separated name of DIDs or dictionaries of DIDs for long
                  option.
                type: array
                items:
                  type: object
                  description: The name of a DID or a dictionary of a DID for long option.
        '401':
          description: Invalid Auth Token
        '404':
          description: Invalid key in filter.
        '406':
          description: Not acceptable
        '409':
          description: Wrong DID type
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'http://undefinedundefined/dids/{scope}/dids/search?type=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&long=SOME_BOOLEAN_VALUE&recursive=SOME_BOOLEAN_VALUE&created_before=SOME_STRING_VALUE&created_after=SOME_STRING_VALUE&length=SOME_INTEGER_VALUE&length.gt=SOME_INTEGER_VALUE&length.lt=SOME_INTEGER_VALUE&length.gte=SOME_INTEGER_VALUE&length.lte=SOME_INTEGER_VALUE&name=SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/dids/{scope}/dids/search"


            querystring =
            {"type":"SOME_STRING_VALUE","limit":"SOME_INTEGER_VALUE","long":"SOME_BOOLEAN_VALUE","recursive":"SOME_BOOLEAN_VALUE","created_before":"SOME_STRING_VALUE","created_after":"SOME_STRING_VALUE","length":"SOME_INTEGER_VALUE","length.gt":"SOME_INTEGER_VALUE","length.lt":"SOME_INTEGER_VALUE","length.gte":"SOME_INTEGER_VALUE","length.lte":"SOME_INTEGER_VALUE","name":"SOME_STRING_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/dids/{scope}/dids/search?type=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE&long=SOME_BOOLEAN_VALUE&recursive=SOME_BOOLEAN_VALUE&created_before=SOME_STRING_VALUE&created_after=SOME_STRING_VALUE&length=SOME_INTEGER_VALUE&length.gt=SOME_INTEGER_VALUE&length.lt=SOME_INTEGER_VALUE&length.gte=SOME_INTEGER_VALUE&length.lte=SOME_INTEGER_VALUE&name=SOME_STRING_VALUE';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /dids/{scope}/:
    get:
      summary: Get Data Identifier
      description: Return all data identifiers in the given scope.
      tags:
        - Data Identifiers
      parameters:
        - name: scope
          in: path
          description: The scope.
          required: true
          schema:
            type: string
          style: simple
        - name: name
          in: query
          description: The name of the data identifier (DID).
          required: false
          schema:
            type: string
        - name: recursive
          in: query
          description: If true, retrieves child identifiers recursively for non-file types.
          required: false
          schema:
            type: boolean
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: Line-separated dictionary of DIDs.
                type: array
                items:
                  type: object
                  description: Data identifier
                  properties:
                    scope:
                      type: string
                      description: The scope of the DID.
                    name:
                      type: string
                      description: The name of the DID.
                    type:
                      type: string
                      description: The type of the DID.
                      enum:
                        - F
                        - D
                        - C
                        - A
                        - X
                        - 'Y'
                        - Z
                    parent:
                      type: string
                      description: The parent of the DID.
                    level:
                      type: integer
                      description: The level of the DID.
        '401':
          description: Invalid Auth Token
        '404':
          description: No DIDs found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'http://undefinedundefined/dids/{scope}/?name=SOME_STRING_VALUE&recursive=SOME_BOOLEAN_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/dids/{scope}/"


            querystring =
            {"name":"SOME_STRING_VALUE","recursive":"SOME_BOOLEAN_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/dids/{scope}/?name=SOME_STRING_VALUE&recursive=SOME_BOOLEAN_VALUE';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /dids/{guid}/guid:
    get:
      summary: Get dataset
      description: Returns the dataset associated with a GUID.
      tags:
        - Data Identifiers
      parameters:
        - name: guid
          in: path
          description: The GUID to query buy.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: |
                  A list of all datasets associated with the guid.
                  Items are separated by new line character.
                type: array
                items:
                  description: A dataset associated with a guid.
                  type: object
                  properties:
                    scope:
                      description: The scope of the dataset.
                      type: string
                    name:
                      description: The name of the dataset.
                      type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: DID not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/dids/{guid}/guid \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/dids/{guid}/guid"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/dids/{guid}/guid';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /dids/{scope_name}/files:
    get:
      summary: Get replicas
      description: List all replicas for a DID.
      tags:
        - Data Identifiers
      parameters:
        - name: scope_name
          in: path
          description: The scope and the name of the DID.
          schema:
            type: string
          style: simple
          required: true
        - name: long
          in: query
          description: Flag to trigger long output.
          schema:
            type: object
          required: false
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                oneOf:
                  - description: All replica information if `long` is defined.
                    type: array
                    items:
                      type: object
                      properties:
                        scope:
                          description: The scope of the DID.
                          type: string
                        name:
                          description: The name of the DID.
                          type: string
                        bytes:
                          description: The size of the DID in bytes.
                          type: integer
                        guid:
                          description: The guid of the DID.
                          type: string
                        events:
                          description: The number of events of the DID.
                          type: integer
                        adler32:
                          description: The adler32 checksum.
                          type: string
                        lumiblocknr:
                          description: >-
                            The lumi block nr. Only available if `long` is
                            defined in the query.
                          type: integer
                  - description: All replica information.
                    type: array
                    items:
                      type: object
                      properties:
                        scope:
                          description: The scope of the DID.
                          type: string
                        name:
                          description: The name of the DID.
                          type: string
                        bytes:
                          description: The size of the DID in bytes.
                          type: integer
                        guid:
                          description: The guid of the DID.
                          type: string
                        events:
                          description: The number of events of the DID.
                          type: integer
                        adler32:
                          description: The adler32 checksum.
                          type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: DID not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'http://undefinedundefined/dids/{scope_name}/files?long=SOME_OBJECT_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/dids/{scope_name}/files"


            querystring = {"long":"SOME_OBJECT_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/dids/{scope_name}/files?long=SOME_OBJECT_VALUE';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /dids/bulkfiles:
    post:
      summary: List files bulk
      description: List files in multiple DIDs
      tags:
        - Data Identifiers
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                description: One DID to list files.
                type: object
                required:
                  - scope
                  - name
                properties:
                  scope:
                    description: The DID scope.
                    type: string
                  name:
                    description: The DID name.
                    type: string
      responses:
        '201':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: All collections file content.
                type: array
                items:
                  description: Collections file content.
                  type: object
                  properties:
                    parent_scope:
                      description: The scope of the parent DID.
                      type: string
                    parent_name:
                      description: The name of the parent DID.
                      type: string
                    scope:
                      description: The scope of the DID.
                      type: string
                    name:
                      description: The name of the DID.
                      type: string
                    bytes:
                      description: The size of the DID in bytes.
                      type: integer
                    guid:
                      description: The guid of the DID.
                      type: string
                    events:
                      description: The number of events of the DID.
                      type: integer
                    adler32:
                      description: The adler32 checksum.
                      type: string
        '401':
          description: Invalid Auth Token
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/dids/bulkfiles \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '[{"scope":"string","name":"string"}]'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/dids/bulkfiles"


            payload = [
                {
                    "scope": "string",
                    "name": "string"
                }
            ]

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/dids/bulkfiles';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '[{"scope":"string","name":"string"}]'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /dids/{scope_name}/rules:
    get:
      summary: Get rules
      description: Lists all rules of a given DID.
      tags:
        - Data Identifiers
      parameters:
        - name: scope_name
          in: path
          description: The scope and the name of the DID.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: The rules associated with a DID.
          content:
            application/x-json-stream:
              schema:
                description: The rules associated with a DID.
                type: array
                items:
                  description: A rule.
                  type: object
        '401':
          description: Invalid Auth Token
        '404':
          description: DID or rule not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/dids/{scope_name}/rules \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/dids/{scope_name}/rules"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/dids/{scope_name}/rules';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /dids/{scope_name}/parents:
    get:
      summary: Get Parents
      description: Lists all parents of the DID.
      tags:
        - Data Identifiers
      parameters:
        - name: scope_name
          in: path
          description: The scope and the name of the DID.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: The parents of the DID.
                type: array
                items:
                  type: object
                  description: A parent of the DID.
                  properties:
                    scope:
                      description: The scope of the DID.
                      type: string
                    name:
                      description: The name of the DID.
                      type: string
                    type:
                      description: The type of the DID.
                      type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: DID not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/dids/{scope_name}/parents \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/dids/{scope_name}/parents"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/dids/{scope_name}/parents';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /dids/{scope_name}/associated_rules:
    get:
      summary: Get associated rules
      description: Gets all associated rules for a file.
      tags:
        - Data Identifiers
      parameters:
        - name: scope_name
          in: path
          description: The scope and the name of the DID.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: >-
                  All associated rules for a file. Items are separated by new
                  line character.
                type: array
                items:
                  description: >-
                    A replication rule associated with the file. Has more fields
                    than listed here.
                  type: object
                  properties:
                    id:
                      description: The id of the rule.
                      type: string
                    subscription_id:
                      description: The subscription id of the rule.
                      type: string
                    account:
                      description: The account associated with the rule.
                      type: string
                    scope:
                      description: The scope associated with the rule.
                      type: string
                    name:
                      description: The name of the rule.
                      type: string
                    state:
                      description: The state of the rule.
                      type: string
                    rse_expression:
                      description: The rse expression of the rule.
                      type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: DID not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/dids/{scope_name}/associated_rules \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/dids/{scope_name}/associated_rules"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/dids/{scope_name}/associated_rules';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /dids/{scope_name}/follow:
    delete:
      summary: Delete follow
      description: Mark the input DID as not followed
      tags:
        - Data Identifiers
      parameters:
        - name: scope_name
          in: path
          description: The scope and the name of the DID.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - account
              properties:
                account:
                  description: The account to unfollow the DID.
                  type: string
      responses:
        '200':
          description: OK
        '401':
          description: Invalid Auth Token
        '404':
          description: Not found
        '500':
          description: Internal error
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request DELETE \
              --url http://undefinedundefined/dids/{scope_name}/follow \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"account":"string"}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/dids/{scope_name}/follow"


            payload = {"account": "string"}

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("DELETE", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/dids/{scope_name}/follow';

            let options = {
              method: 'DELETE',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"account":"string"}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    get:
      summary: Get followers
      description: Get all followers for a specific DID.
      tags:
        - Data Identifiers
      parameters:
        - name: scope_name
          in: path
          description: The scope and the name of the DID.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: A list of all followers of a DID.
                type: array
                items:
                  description: A follower of a DID.
                  type: object
                  properties:
                    user:
                      description: The user which follows the DID.
                      type: string
        '400':
          description: Value error
        '401':
          description: Invalid Auth Token
        '404':
          description: DID not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/dids/{scope_name}/follow \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/dids/{scope_name}/follow"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/dids/{scope_name}/follow';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    post:
      summary: Post follow
      description: Mark the input DID as being followed by the given account.
      tags:
        - Data Identifiers
      parameters:
        - name: scope_name
          in: path
          description: The scope and the name of the DID.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - account
              properties:
                account:
                  description: The account to follow the DID.
                  type: string
      responses:
        '201':
          description: OK
        '400':
          description: Scope or name could not be interpreted
        '401':
          description: Invalid Auth Token
        '404':
          description: Not found
        '500':
          description: Internal error
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/dids/{scope_name}/follow \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"account":"string"}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/dids/{scope_name}/follow"


            payload = {"account": "string"}

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/dids/{scope_name}/follow';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"account":"string"}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /dids/{input_scope}/{input_name}/{output_scope}/{output_name}/{nbfiles}/sample:
    post:
      summary: Create sample
      description: Creates a sample from an input collection.
      tags:
        - Data Identifiers
      parameters:
        - name: input_scope
          in: path
          description: The input scope.
          schema:
            type: string
          style: simple
          required: true
        - name: input_name
          in: path
          description: The input name.
          schema:
            type: string
          style: simple
          required: true
        - name: output_scope
          in: path
          description: The output scope.
          schema:
            type: string
          style: simple
          required: true
        - name: output_name
          in: path
          description: The output name.
          schema:
            type: string
          style: simple
          required: true
        - name: nbfiles
          in: path
          description: The number of files to register in the output dataset.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '401':
          description: Invalid Auth Token
        '404':
          description: Not found
        '406':
          description: Not acceptable
        '409':
          description: Duplication
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/dids/{input_scope}/{input_name}/{output_scope}/{output_name}/{nbfiles}/sample \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url =
            "http://undefinedundefined/dids/{input_scope}/{input_name}/{output_scope}/{output_name}/{nbfiles}/sample"


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("POST", url, headers=headers)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/dids/{input_scope}/{input_name}/{output_scope}/{output_name}/{nbfiles}/sample';


            let options = {method: 'POST', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /dids/sample:
    post:
      summary: Create sample
      description: Creates a sample from an input collection.
      tags:
        - Data Identifiers
      requestBody:
        description: >-
          Parameters (source and destination) for the files in the sample to be
          created
        content:
          application/json:
            schema:
              type: object
              required:
                - input_scope
                - input_name
                - output_scope
                - output_name
                - nbfiles
              properties:
                input_scope:
                  description: The input scope.
                  type: string
                input_name:
                  description: The input name.
                  type: string
                output_scope:
                  description: The output scope.
                  type: string
                output_name:
                  description: The output name.
                  type: string
                nbfiles:
                  description: The number of files to register in the output dataset.
                  type: string
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '401':
          description: Invalid Auth Token
        '404':
          description: Not found
        '406':
          description: Not acceptable
        '409':
          description: Duplication
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/dids/sample \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"input_scope":"string","input_name":"string","output_scope":"string","output_name":"string","nbfiles":"string"}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/dids/sample"


            payload = {
                "input_scope": "string",
                "input_name": "string",
                "output_scope": "string",
                "output_name": "string",
                "nbfiles": "string"
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/dids/sample';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"input_scope":"string","input_name":"string","output_scope":"string","output_name":"string","nbfiles":"string"}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /dids/resurrect:
    post:
      summary: Resurrect DIDs
      description: Resurrect all given DIDs.
      tags:
        - Data Identifiers
      requestBody:
        content:
          application/json:
            schema:
              description: List of DIDs to resurrect.
              type: array
              items:
                description: A DID to resurrect.
                type: object
                properties:
                  scope:
                    description: The scope of the DID.
                    type: string
                  name:
                    description: The name of the DID
                    type: string
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '401':
          description: Invalid Auth Token
        '404':
          description: Not found
        '409':
          description: Conflict
        '500':
          description: Internal error
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/dids/resurrect \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '[{"scope":"string","name":"string"}]'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/dids/resurrect"


            payload = [
                {
                    "scope": "string",
                    "name": "string"
                }
            ]

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/dids/resurrect';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '[{"scope":"string","name":"string"}]'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /accounts/{account}/attr/{key}:
    delete:
      summary: Delete attribute
      description: Delete an attribute of an account.
      tags:
        - Account
      parameters:
        - name: account
          in: path
          description: The account identifier.
          schema:
            type: string
          style: simple
          required: true
        - name: key
          in: path
          description: The key of the account attribute to remove.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
        '401':
          description: Invalid Auth Token
        '404':
          description: No account found for the given id.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request DELETE \
              --url http://undefinedundefined/accounts/{account}/attr/{key} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/accounts/{account}/attr/{key}"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("DELETE", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/accounts/{account}/attr/{key}';


            let options = {method: 'DELETE', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    post:
      summary: Create attribute
      description: Create an attribute to an account.
      tags:
        - Account
      parameters:
        - name: account
          in: path
          description: The account identifier.
          schema:
            type: string
          style: simple
          required: true
        - name: key
          in: path
          description: The key of the account attribute.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - value
              properties:
                key:
                  description: >-
                    The key of the attribute. This would override the key
                    defined in path.
                  type: string
                value:
                  description: The value of the attribute.
                  type: string
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '401':
          description: Invalid Auth Token
        '404':
          description: No account found for the given id.
        '409':
          description: Attribute already exists
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/accounts/{account}/attr/{key} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"key":"string","value":"string"}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/accounts/{account}/attr/{key}"


            payload = {
                "key": "string",
                "value": "string"
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/accounts/{account}/attr/{key}';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"key":"string","value":"string"}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /accounts/{account}/scopes/{scope}:
    post:
      summary: Create scope
      description: Creates a scopse with the given name for an account.
      tags:
        - Account
      parameters:
        - name: account
          in: path
          description: The account identifier.
          schema:
            type: string
          style: simple
          required: true
        - name: scope
          in: path
          description: The scope name.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '400':
          description: Not acceptable
        '401':
          description: Invalid Auth Token
        '404':
          description: No account found.
        '409':
          description: Scope already exists.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/accounts/{account}/scopes/{scope} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/accounts/{account}/scopes/{scope}"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("POST", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/accounts/{account}/scopes/{scope}';


            let options = {method: 'POST', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /accounts/{account}/limits/local/{rse}:
    get:
      summary: Get local limit
      description: Get the current local limits for an account on a specific RSE.
      tags:
        - Account
      parameters:
        - name: account
          in: path
          description: The account identifier.
          schema:
            type: string
          style: simple
          required: true
        - name: rse
          in: path
          description: The rse identifier.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: >-
                  Json object with rse identifiers as keys and account limits in
                  bytes as values.
                type: object
        '401':
          description: Invalid Auth Token
        '404':
          description: RSE not found
        '406':
          description: Not Acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/accounts/{account}/limits/local/{rse} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url =
            "http://undefinedundefined/accounts/{account}/limits/local/{rse}"


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/accounts/{account}/limits/local/{rse}';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /accounts/{account}/limits/global/{rse_expression}:
    get:
      summary: Get global limit
      description: >-
        Get the current global limits for an account on a specific RSE
        expression.
      tags:
        - Account
      parameters:
        - name: account
          in: path
          description: The account identifier.
          schema:
            type: string
          style: simple
          required: true
        - name: rse_expression
          in: path
          description: The rse identifier.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: >-
                  Json object with rse expression as keys and limits in bytes as
                  values.
                type: object
        '401':
          description: Invalid Auth Token
        '404':
          description: RSE not found
        '406':
          description: Not Acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/accounts/{account}/limits/global/{rse_expression} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url =
            "http://undefinedundefined/accounts/{account}/limits/global/{rse_expression}"


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/accounts/{account}/limits/global/{rse_expression}';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /accounts/{account}/identities:
    delete:
      summary: Delete identity
      description: Delete an account identity.
      tags:
        - Account
      parameters:
        - name: account
          in: path
          description: The account identifier.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - identity
                - authtype
              properties:
                identity:
                  description: The identity.
                  type: string
                authtype:
                  description: The authtype.
                  type: string
      responses:
        '200':
          description: OK
        '401':
          description: Invalid Auth Token
        '404':
          description: Account or identity not found
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request DELETE \
              --url http://undefinedundefined/accounts/{account}/identities \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"identity":"string","authtype":"string"}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/accounts/{account}/identities"


            payload = {
                "identity": "string",
                "authtype": "string"
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("DELETE", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/accounts/{account}/identities';

            let options = {
              method: 'DELETE',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"identity":"string","authtype":"string"}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    get:
      summary: List identities
      description: Lists all identities for an account.
      tags:
        - Account
      parameters:
        - name: account
          in: path
          description: The account identifier.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                type: array
                items:
                  type: array
                  minItems: 2
                  maxItems: 2
                  items:
                    type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: Account not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/accounts/{account}/identities \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/accounts/{account}/identities"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/accounts/{account}/identities';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    post:
      summary: Create identity
      description: Grant an account identity access to an account.
      tags:
        - Account
      parameters:
        - name: account
          in: path
          description: The account identifier.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - identity
                - authtype
                - email
              properties:
                identity:
                  description: The identity.
                  type: string
                authtype:
                  description: The authtype.
                  type: string
                email:
                  description: The email.
                  type: string
                password:
                  description: The password.
                  type: string
                  default: none
                default:
                  description: Should this be the default account?
                  type: boolean
                  default: false
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '400':
          description: Parameter missing
        '401':
          description: Invalid Auth Token
        '404':
          description: Account not found
        '409':
          description: Already exists
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/accounts/{account}/identities \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"identity":"string","authtype":"string","email":"string","password":"none","default":false}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/accounts/{account}/identities"


            payload = {
                "identity": "string",
                "authtype": "string",
                "email": "string",
                "password": "none",
                "default": False
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/accounts/{account}/identities';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"identity":"string","authtype":"string","email":"string","password":"none","default":false}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /accounts/{account}/rules:
    get:
      summary: List rules
      description: Lists all rules for an account.
      tags:
        - Account
      parameters:
        - name: account
          in: path
          description: The account identifier.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: Account or rule not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/accounts/{account}/rules \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/accounts/{account}/rules"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/accounts/{account}/rules';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /accounts/{account}/usage/history/{rse}:
    get:
      summary: Get account usage history
      description: Returns the account usage history.
      tags:
        - Account
      parameters:
        - name: account
          in: path
          description: The account identifier.
          schema:
            type: string
          style: simple
          required: true
        - name: rse
          in: path
          description: The rse identifier.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    bytes:
                      description: The number of bytes used.
                      type: integer
                    files:
                      description: The files.
                      type: string
                    updated_at:
                      description: When the data was provided.
                      type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: Account not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/accounts/{account}/usage/history/{rse} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url =
            "http://undefinedundefined/accounts/{account}/usage/history/{rse}"


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/accounts/{account}/usage/history/{rse}';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /accounts/{account}/usage/local/{rse}:
    get:
      summary: Get local account usage
      description: Returns the local account usage.
      tags:
        - Account
      parameters:
        - name: account
          in: path
          description: The account identifier.
          schema:
            type: string
          style: simple
          required: true
        - name: rse
          in: path
          description: The rse identifier.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    rse_id:
                      description: The rse id.
                      type: string
                    bytes:
                      description: The number of bytes used.
                      type: integer
                    bytes_limit:
                      description: The maximum number of bytes.
                      type: integer
                    bytes_remaining:
                      description: The remaining number of bytes.
                      type: integer
        '401':
          description: Invalid Auth Token
        '404':
          description: Account or rse not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/accounts/{account}/usage/local/{rse} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url =
            "http://undefinedundefined/accounts/{account}/usage/local/{rse}"


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/accounts/{account}/usage/local/{rse}';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /accounts/{account}/usage/global/{rse_expression}:
    get:
      summary: Get local account usage
      description: Returns the local account usage.
      tags:
        - Account
      parameters:
        - name: account
          in: path
          description: The account identifier.
          schema:
            type: string
          style: simple
          required: true
        - name: rse_expression
          in: path
          description: The rse expression.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    rse_expression:
                      description: The rse expression.
                      type: string
                    bytes:
                      description: The number of bytes used.
                      type: integer
                    bytes_limit:
                      description: The maximum number of bytes.
                      type: integer
                    bytes_remaining:
                      description: The remaining number of bytes.
                      type: integer
        '401':
          description: Invalid Auth Token
        '404':
          description: Account or rse not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/accounts/{account}/usage/global/{rse_expression} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url =
            "http://undefinedundefined/accounts/{account}/usage/global/{rse_expression}"


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/accounts/{account}/usage/global/{rse_expression}';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /accounts/{account}:
    delete:
      summary: Delete
      description: Delete an account.
      tags:
        - Account
      parameters:
        - name: account
          in: path
          description: The account identifier.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '201':
          description: OK
        '401':
          description: Invalid Auth Token
        '404':
          description: Account not found
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request DELETE \
              --url http://undefinedundefined/accounts/{account} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/accounts/{account}"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("DELETE", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/accounts/{account}';


            let options = {method: 'DELETE', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    post:
      summary: Create
      description: Create an account.
      tags:
        - Account
      parameters:
        - name: account
          in: path
          description: The account identifier.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - type
                - email
              properties:
                type:
                  description: The account type.
                  type: string
                  enum:
                    - USER
                    - GROUP
                    - SERVICE
                email:
                  description: The email for the account.
                  type: string
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '400':
          description: Unknown status
        '401':
          description: Invalid Auth Token
        '409':
          description: Account already exists
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/accounts/{account} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"type":"USER","email":"string"}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/accounts/{account}"


            payload = {
                "type": "USER",
                "email": "string"
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/accounts/{account}';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"type":"USER","email":"string"}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    get:
      summary: List account parameters
      description: Lists all parameters for an account.
      tags:
        - Account
      parameters:
        - name: account
          in: path
          description: The account identifier.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  account:
                    description: The account identifier.
                    type: string
                  account_type:
                    description: The account type.
                    type: string
                  status:
                    description: The account status.
                    type: string
                  email:
                    description: The email for the account.
                    type: string
                  suspended_at:
                    description: Datetime if the account was suspended.
                    type: string
                  deleted_at:
                    description: Datetime if the account was deleted.
                    type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: No account found.
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/accounts/{account} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/accounts/{account}"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/accounts/{account}';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    put:
      summary: Update
      description: Update a parameter for an account.
      tags:
        - Account
      parameters:
        - name: account
          in: path
          description: The account identifier.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              description: >-
                Json object with key-value pairs corresponding to the new values
                of the parameters.
              type: object
      responses:
        '200':
          description: OK
        '400':
          description: Unknown status
        '401':
          description: Invalid Auth Token
        '404':
          description: No account found.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request PUT \
              --url http://undefinedundefined/accounts/{account} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/accounts/{account}"


            payload = {}

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("PUT", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/accounts/{account}';

            let options = {
              method: 'PUT',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /accounts:
    get:
      summary: List
      description: List all accounts.
      tags:
        - Account
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    account:
                      description: The account identifier.
                      type: string
                    type:
                      description: The type.
                      type: string
                    email:
                      description: The email.
                      type: string
        '401':
          description: Invalid Auth Token
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/accounts \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/accounts"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/accounts';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /rules/{rule_id}:
    delete:
      summary: Delete a replication rule
      tags:
        - Rule
      parameters:
        - name: rule_id
          in: path
          description: The id of the replication rule.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
        '401':
          description: Invalid Auth Token
        '404':
          description: No rule found for the given id
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request DELETE \
              --url http://undefinedundefined/rules/{rule_id} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/rules/{rule_id}"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("DELETE", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/rules/{rule_id}';


            let options = {method: 'DELETE', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    get:
      summary: Return a Rule
      tags:
        - Rule
      parameters:
        - name: rule_id
          in: path
          description: The id of the replication rule.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: No rule found for the given id
        '406':
          description: Not Acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/rules/{rule_id} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/rules/{rule_id}"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/rules/{rule_id}';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    put:
      summary: Update the replication rules parameters
      tags:
        - Rule
      parameters:
        - name: rule_id
          in: path
          description: The id of the replication rule.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        description: Parameters for the new rule.
        content:
          application/json:
            schema:
              type: object
              required:
                - options
              properties:
                options:
                  description: The parameters to change.
                  type: object
                  properties:
                    lifetime:
                      description: The time in which the rule will expire in seconds.
                      type: integer
                    account:
                      description: The account of the replication rule.
                      type: string
                    state:
                      description: The state of the replication rule.
                      type: string
                    cancel_requests:
                      description: Cancels all requests if used together with state.
                      type: boolean
                    priority:
                      description: The priority of a rule.
                      type: integer
                    child_rule_id:
                      description: >-
                        The child rule. Parent and child rule must be on the
                        same dataset.
                      type: string
                    meta:
                      description: The meta of a rule.
                      type: object
                    boost_rule:
                      description: Boosts the processing of a rule.
                      type: object
                    locked:
                      description: The locked state of the replication rule.
                      type: boolean
                    comment:
                      description: The comment of the replication rule.
                      type: string
                    activity:
                      description: The activity of a replication rule.
                      type: string
                    source_replica_expression:
                      description: The source replica expression of a replication rule.
                      type: string
                    eol_at:
                      description: The end of life of a replication rule.
                      type: string
                    purge_replicas:
                      description: Purge replicas
                      type: boolean
      responses:
        '200':
          description: OK
        '401':
          description: Invalid Auth Token
        '404':
          description: No rule found for the given id
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request PUT \
              --url http://undefinedundefined/rules/{rule_id} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"options":{"lifetime":0,"account":"string","state":"string","cancel_requests":true,"priority":0,"child_rule_id":"string","meta":{},"boost_rule":{},"locked":true,"comment":"string","activity":"string","source_replica_expression":"string","eol_at":"string","purge_replicas":true}}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/rules/{rule_id}"


            payload = {"options": {
                    "lifetime": 0,
                    "account": "string",
                    "state": "string",
                    "cancel_requests": True,
                    "priority": 0,
                    "child_rule_id": "string",
                    "meta": {},
                    "boost_rule": {},
                    "locked": True,
                    "comment": "string",
                    "activity": "string",
                    "source_replica_expression": "string",
                    "eol_at": "string",
                    "purge_replicas": True
                }}
            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("PUT", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/rules/{rule_id}';

            let options = {
              method: 'PUT',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"options":{"lifetime":0,"account":"string","state":"string","cancel_requests":true,"priority":0,"child_rule_id":"string","meta":{},"boost_rule":{},"locked":true,"comment":"string","activity":"string","source_replica_expression":"string","eol_at":"string","purge_replicas":true}}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /rules/:
    get:
      summary: Return all rules for a given account
      tags:
        - Rule
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: No rule found for the given id
        '406':
          description: Not Acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/rules/ \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/rules/"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/rules/';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    post:
      summary: Create a new replication rule
      tags:
        - Rule
      requestBody:
        description: Parameters for the new rule.
        content:
          application/json:
            schema:
              type: object
              required:
                - dids
                - account
                - copies
                - rse_expression
              properties:
                dids:
                  description: The list of data identifiers.
                  type: array
                  items:
                    type: object
                    properties:
                      scope:
                        description: The scope of the data identifier
                        type: string
                      name:
                        description: The name of the data identifier
                        type: string
                account:
                  description: The account of the issuer.
                  type: string
                copies:
                  description: The number of replicas.
                  type: integer
                rse_expression:
                  description: The rse expression which gets resolved into a list of RSEs.
                  type: string
                grouping:
                  description: >-
                    The grouping of the files to take into account. (ALL,
                    DATASET, NONE)
                  type: string
                weight:
                  description: Weighting scheme to be used.
                  type: number
                lifetime:
                  description: The lifetime of the replication rule in seconds.
                  type: integer
                locked:
                  description: If the rule is locked.
                  type: boolean
                subscription_id:
                  description: >-
                    The subscription_id, if the rule is created by a
                    subscription.
                  type: string
                sourse_replica_expression:
                  description: Only use replicas as source from these RSEs.
                  type: string
                activity:
                  description: Activity to be passed to the conveyor.
                  type: string
                notify:
                  description: >-
                    Notification setting of the rule ('Y', 'N', 'C'; None =
                    'N').
                  type: string
                purge_replicas:
                  description: >-
                    Purge setting if a replica should be directly deleted after
                    the rule is deleted.
                  type: boolean
                ignore_availability:
                  description: Option to ignore the availability of RSEs.
                  type: boolean
                comments:
                  description: Comment about the rule.
                  type: string
                ask_approval:
                  description: Ask for approval for this rule.
                  type: boolean
                asynchronous:
                  description: >-
                    Create replication rule asynchronously by the
                    judge-injector.
                  type: boolean
                priority:
                  description: >-
                    Priority of the rule and the transfers which should be
                    submitted.
                  type: integer
                split_container:
                  description: >-
                    Should a container rule be split into individual dataset
                    rules.
                  type: boolean
                meta:
                  description: Dictionary with metadata from the WFMS.
                  type: string
      responses:
        '201':
          description: Rule created.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                  description: Id of each created rule.
        '401':
          description: Invalid Auth Token
        '404':
          description: No rule found for the given id
        '409':
          description: |-
            - Invalid Replication Rule
            - Duplicate Replication Rule
            - Insufficient Target RSEs
            - Insufficient Account Limit
            - Invalid RSE Expression
            - Replication Rule Creation Temporary Failed,
            - Invalid Rule Weight
            - Staging Area Rule Requires Lifetime
            - Scratch Disk Lifetime Conflict
            - Manual Rule Approval Blocked
            - Invalid Object
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/rules/ \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"dids":[{"scope":"string","name":"string"}],"account":"string","copies":0,"rse_expression":"string","grouping":"string","weight":0,"lifetime":0,"locked":true,"subscription_id":"string","sourse_replica_expression":"string","activity":"string","notify":"string","purge_replicas":true,"ignore_availability":true,"comments":"string","ask_approval":true,"asynchronous":true,"priority":0,"split_container":true,"meta":"string"}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/rules/"


            payload = {
                "dids": [
                    {
                        "scope": "string",
                        "name": "string"
                    }
                ],
                "account": "string",
                "copies": 0,
                "rse_expression": "string",
                "grouping": "string",
                "weight": 0,
                "lifetime": 0,
                "locked": True,
                "subscription_id": "string",
                "sourse_replica_expression": "string",
                "activity": "string",
                "notify": "string",
                "purge_replicas": True,
                "ignore_availability": True,
                "comments": "string",
                "ask_approval": True,
                "asynchronous": True,
                "priority": 0,
                "split_container": True,
                "meta": "string"
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/rules/';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"dids":[{"scope":"string","name":"string"}],"account":"string","copies":0,"rse_expression":"string","grouping":"string","weight":0,"lifetime":0,"locked":true,"subscription_id":"string","sourse_replica_expression":"string","activity":"string","notify":"string","purge_replicas":true,"ignore_availability":true,"comments":"string","ask_approval":true,"asynchronous":true,"priority":0,"split_container":true,"meta":"string"}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /rules/{rule_id}/locks:
    get:
      summary: Return all locks for a Rule
      tags:
        - Rule
      parameters:
        - name: rule_id
          in: path
          description: The id of the replication rule.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    scope:
                      description: The scope of the lock.
                      type: string
                    name:
                      description: The name of the lock.
                      type: string
                    rse_id:
                      description: The rse_id of the lock.
                      type: string
                    rse:
                      description: Information about the rse of the lock.
                      type: object
                    state:
                      description: The state of the lock.
                      type: string
                    rule_id:
                      description: The rule_id of the lock.
                      type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: No rule found for the given id
        '406':
          description: Not Acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/rules/{rule_id}/locks \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/rules/{rule_id}/locks"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/rules/{rule_id}/locks';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /rules/{rule_id}/reduce:
    post:
      summary: Reduce a replication rule
      tags:
        - Rule
      parameters:
        - name: rule_id
          in: path
          description: The id of the replication rule.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - copies
              properties:
                copies:
                  description: Number of copies to keep.
                  type: integer
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                  description: Rule id.
        '401':
          description: Invalid Auth Token
        '404':
          description: No rule found for the given id
        '409':
          description: Rule replace failed.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/rules/{rule_id}/reduce \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"copies":0}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/rules/{rule_id}/reduce"


            payload = {"copies": 0}

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/rules/{rule_id}/reduce';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"copies":0}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /rules/{rule_id}/move:
    post:
      summary: Move a replication Rule
      tags:
        - Rule
      parameters:
        - name: rule_id
          in: path
          description: The id of the replication rule.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - rse_expression
              properties:
                rse_expression:
                  description: The new rse expression.
                  type: string
                rule_id:
                  description: >-
                    The rule_id of the rule to moves. If specified, overrides
                    the `rule_id` parameter.
                  type: string
                activity:
                  description: The `activity` of the moved rule.
                  type: string
                source_replica_expression:
                  description: The `source_replica_expression` of the moved rule.
                  type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                  description: Rule id.
        '401':
          description: Invalid Auth Token
        '404':
          description: No rule found for the given id
        '409':
          description: Rule replace failed.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/rules/{rule_id}/move \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"rse_expression":"string","rule_id":"string","activity":"string","source_replica_expression":"string"}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/rules/{rule_id}/move"


            payload = {
                "rse_expression": "string",
                "rule_id": "string",
                "activity": "string",
                "source_replica_expression": "string"
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/rules/{rule_id}/move';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"rse_expression":"string","rule_id":"string","activity":"string","source_replica_expression":"string"}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /rules/{rule_id}/history:
    get:
      summary: Get the history of a rule
      tags:
        - Rule
      parameters:
        - name: rule_id
          in: path
          description: The id of the replication rule.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  description: Rule history object.
                  properties:
                    updated_at:
                      type: string
                      description: The date of the update.
                    state:
                      type: string
                      description: The state of the update.
                    locks_ok_cnt:
                      type: integer
                      description: The number of locks which are ok.
                    locks_stuck_cnt:
                      type: integer
                      description: The number of locks which are stuck.
                    locks_replicating_cnt:
                      type: integer
                      description: The number of locks which are replicating.
        '401':
          description: Invalid Auth Token
        '404':
          description: No rule found for the given id
        '406':
          description: Not acceptable.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/rules/{rule_id}/history \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/rules/{rule_id}/history"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/rules/{rule_id}/history';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /rules/{scope_name}/history:
    get:
      summary: Get the history of a DID
      tags:
        - Rule
      parameters:
        - name: scope_name
          in: path
          description: >-
            The data identifier of scope-name to retrieve the history from.
            ((scope)/(name))
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                type: array
                items:
                  type: object
                  description: Rule history object.
                  properties:
                    rule_id:
                      type: string
                      description: The id of the rule.
                    updated_at:
                      type: string
                      description: The date of the update.
                    created_at:
                      type: string
                      description: The date of the creation.
                    rse_expression:
                      type: string
                      description: The rse expression.
                    state:
                      type: string
                      description: The state of the update.
                    account:
                      type: string
                      description: The account who initiated the change.
                    locks_ok_cnt:
                      type: integer
                      description: The number of locks which are ok.
                    locks_stuck_cnt:
                      type: integer
                      description: The number of locks which are stuck.
                    locks_replicating_cnt:
                      type: integer
                      description: The number of locks which are replicating.
        '401':
          description: Invalid Auth Token
        '406':
          description: Not acceptable.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/rules/{scope_name}/history \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/rules/{scope_name}/history"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/rules/{scope_name}/history';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /rules/{rule_id}/analysis:
    get:
      summary: Get the analysis of a rule
      tags:
        - Rule
      parameters:
        - name: rule_id
          in: path
          description: The id of the replication rule.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  rule_error:
                    type: string
                    description: The state of the rule.
                  transfers:
                    type: array
                    description: List of all transfer errors.
                    items:
                      type: object
                      properties:
                        scope:
                          type: string
                          description: The scope of the transfer.
                        name:
                          type: string
                          description: The name of the lock.
                        rse_id:
                          type: string
                          description: The rse_id of the transferred lock.
                        rse:
                          type: object
                          description: Information about the rse of the transferred lock.
                        attempts:
                          type: integer
                          description: The number of attempts.
                        last_error:
                          type: string
                          description: The last error that occurred.
                        last_source:
                          type: string
                          description: The last source.
                        sources:
                          type: array
                          description: All available rse sources.
                        last_time:
                          type: string
                          description: The time of the last transfer.
        '401':
          description: Invalid Auth Token
        '404':
          description: No rule found for the given id
        '406':
          description: Not acceptable.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/rules/{rule_id}/analysis \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/rules/{rule_id}/analysis"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/rules/{rule_id}/analysis';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /requests/{scope_name}/{rse}:
    get:
      summary: Get Request
      description: Get a request for a given DID to a destination RSE.
      tags:
        - Requests
      parameters:
        - name: scope_name
          in: path
          description: Data identifier (scope)/(name).
          schema:
            type: string
          style: simple
          required: true
        - name: rse
          in: path
          description: Destination rse.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: The request associated with the DID and destination RSE.
                type: object
                properties:
                  id:
                    description: The id of the request.
                    type: string
                  request_type:
                    description: The request type.
                    type: string
                    enum:
                      - T
                      - U
                      - D
                      - I
                      - O
                  scope:
                    description: The scope of the transfer.
                    type: string
                  name:
                    description: The name of the transfer.
                    type: string
                  did_type:
                    description: The DID type.
                    type: string
                  dest_rse_id:
                    description: The destination RSE id.
                    type: string
                  source_rse_id:
                    description: The source RSE id.
                    type: string
                  attributes:
                    description: All attributes associated with the request.
                    type: string
                  state:
                    description: The state of the request.
                    type: string
                    enum:
                      - Q
                      - G
                      - S
                      - F
                      - D
                      - L
                      - 'N'
                      - O
                      - A
                      - M
                      - U
                      - W
                      - P
                  external_id:
                    description: External id of the request.
                    type: string
                  external_host:
                    description: External host of the request.
                    type: string
                  retry_count:
                    description: The numbers of attempted retries.
                    type: integer
                  err_msg:
                    description: An error message if one occurred.
                    type: string
                  previous_attempt_id:
                    description: The id of the previous attempt.
                    type: string
                  rule_id:
                    description: The id of the associated replication rule.
                    type: string
                  activity:
                    description: The activity of the request.
                    type: string
                  bytes:
                    description: The size of the DID in bytes.
                    type: integer
                  md5:
                    description: The md5 checksum of the DID to transfer.
                    type: string
                  adler32:
                    description: The adler32 checksum of the DID to transfer.
                    type: string
                  dest_url:
                    description: The destination url.
                    type: string
                  submitted_at:
                    description: The time the request got submitted.
                    type: string
                  started_at:
                    description: The time the request got started.
                    type: string
                  transferred_at:
                    description: The time the request got transferred.
                    type: string
                  estimated_at:
                    description: The time the request got estimated.
                    type: string
                  submitter_id:
                    description: The id of the submitter.
                    type: string
                  estimated_stated_at:
                    description: The estimation of the started at value.
                    type: string
                  estimated_transferred_at:
                    description: The estimation of the transferred at value.
                    type: string
                  staging_started_at:
                    description: The time the staging got started.
                    type: string
                  staging_finished_at:
                    description: The time the staging got finished.
                    type: string
                  account:
                    description: The account which issued the request.
                    type: string
                  requested_at:
                    description: The time the request got requested.
                    type: string
                  priority:
                    description: The priority of the request.
                    type: integer
                  transfertool:
                    description: The transfertool used.
                    type: string
                  source_rse:
                    description: The name of the source RSE.
                    type: string
                  dest_rse:
                    description: The name of the destination RSE.
                    type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: Not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/requests/{scope_name}/{rse} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/requests/{scope_name}/{rse}"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/requests/{scope_name}/{rse}';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /requests/history/{scope_name}/{rse}:
    get:
      summary: Get Historical Request
      description: List a historical request for a given DID to a destination RSE.
      tags:
        - Requests
      parameters:
        - name: scope_name
          in: path
          description: Data identifier (scope)/(name).
          schema:
            type: string
          style: simple
          required: true
        - name: rse
          in: path
          description: Destination rse.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: The request associated with the DID and destination RSE.
                type: object
                properties:
                  id:
                    description: The id of the request.
                    type: string
                  request_type:
                    description: The request type.
                    type: string
                    enum:
                      - T
                      - U
                      - D
                      - I
                      - O
                  scope:
                    description: The scope of the transfer.
                    type: string
                  name:
                    description: The name of the transfer.
                    type: string
                  did_type:
                    description: The DID type.
                    type: string
                  dest_rse_id:
                    description: The destination RSE id.
                    type: string
                  source_rse_id:
                    description: The source RSE id.
                    type: string
                  attributes:
                    description: All attributes associated with the request.
                    type: string
                  state:
                    description: The state of the request.
                    type: string
                    enum:
                      - Q
                      - G
                      - S
                      - F
                      - D
                      - L
                      - 'N'
                      - O
                      - A
                      - M
                      - U
                      - W
                      - P
                  external_id:
                    description: External id of the request.
                    type: string
                  external_host:
                    description: External host of the request.
                    type: string
                  retry_count:
                    description: The numbers of attempted retries.
                    type: integer
                  err_msg:
                    description: An error message if one occurred.
                    type: string
                  previous_attempt_id:
                    description: The id of the previous attempt.
                    type: string
                  rule_id:
                    description: The id of the associated replication rule.
                    type: string
                  activity:
                    description: The activity of the request.
                    type: string
                  bytes:
                    description: The size of the DID in bytes.
                    type: integer
                  md5:
                    description: The md5 checksum of the DID to transfer.
                    type: string
                  adler32:
                    description: The adler32 checksum of the DID to transfer.
                    type: string
                  dest_url:
                    description: The destination url.
                    type: string
                  submitted_at:
                    description: The time the request got submitted.
                    type: string
                  started_at:
                    description: The time the request got started.
                    type: string
                  transferred_at:
                    description: The time the request got transferred.
                    type: string
                  estimated_at:
                    description: The time the request got estimated.
                    type: string
                  submitter_id:
                    description: The id of the submitter.
                    type: string
                  estimated_stated_at:
                    description: The estimation of the started at value.
                    type: string
                  estimated_transferred_at:
                    description: The estimation of the transferred at value.
                    type: string
                  staging_started_at:
                    description: The time the staging got started.
                    type: string
                  staging_finished_at:
                    description: The time the staging got finished.
                    type: string
                  account:
                    description: The account which issued the request.
                    type: string
                  requested_at:
                    description: The time the request got requested.
                    type: string
                  priority:
                    description: The priority of the request.
                    type: integer
                  transfertool:
                    description: The transfertool used.
                    type: string
                  source_rse:
                    description: The name of the source RSE.
                    type: string
                  dest_rse:
                    description: The name of the destination RSE.
                    type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: Not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/requests/history/{scope_name}/{rse} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url =
            "http://undefinedundefined/requests/history/{scope_name}/{rse}"


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/requests/history/{scope_name}/{rse}';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /requests/list:
    get:
      summary: List Requests
      description: List requests for a given source and destination RSE or site.
      tags:
        - Requests
      parameters:
        - name: src_rse
          in: query
          description: The source rse.
          schema:
            type: array
            items:
              type: object
              required:
                - rse_id
              properties:
                rse_id:
                  description: The id of the rse.
                  type: string
        - name: dest_rse
          in: query
          description: The destination rse.
          schema:
            type: array
            items:
              type: object
              required:
                - rse_id
              properties:
                rse_id:
                  description: The id of the rse.
                  type: string
        - name: src_site
          in: query
          description: The source site.
          schema:
            type: string
        - name: dest_site
          in: query
          description: The destination site.
          schema:
            type: string
        - name: request_states
          in: query
          description: The accepted request states. Delimited by comma.
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: >-
                  All requests matching the arguments. Separated by the new line
                  character.
                type: array
                items:
                  description: A request.
                  type: object
                  properties:
                    id:
                      description: The id of the request.
                      type: string
                    request_type:
                      description: The request type.
                      type: string
                      enum:
                        - T
                        - U
                        - D
                        - I
                        - O
                    scope:
                      description: The scope of the transfer.
                      type: string
                    name:
                      description: The name of the transfer.
                      type: string
                    did_type:
                      description: The DID type.
                      type: string
                    dest_rse_id:
                      description: The destination RSE id.
                      type: string
                    source_rse_id:
                      description: The source RSE id.
                      type: string
                    attributes:
                      description: All attributes associated with the request.
                      type: string
                    state:
                      description: The state of the request.
                      type: string
                      enum:
                        - Q
                        - G
                        - S
                        - F
                        - D
                        - L
                        - 'N'
                        - O
                        - A
                        - M
                        - U
                        - W
                        - P
                    external_id:
                      description: External id of the request.
                      type: string
                    external_host:
                      description: External host of the request.
                      type: string
                    retry_count:
                      description: The numbers of attempted retries.
                      type: integer
                    err_msg:
                      description: An error message if one occurred.
                      type: string
                    previous_attempt_id:
                      description: The id of the previous attempt.
                      type: string
                    rule_id:
                      description: The id of the associated replication rule.
                      type: string
                    activity:
                      description: The activity of the request.
                      type: string
                    bytes:
                      description: The size of the DID in bytes.
                      type: integer
                    md5:
                      description: The md5 checksum of the DID to transfer.
                      type: string
                    adler32:
                      description: The adler32 checksum of the DID to transfer.
                      type: string
                    dest_url:
                      description: The destination url.
                      type: string
                    submitted_at:
                      description: The time the request got submitted.
                      type: string
                    started_at:
                      description: The time the request got started.
                      type: string
                    transferred_at:
                      description: The time the request got transferred.
                      type: string
                    estimated_at:
                      description: The time the request got estimated.
                      type: string
                    submitter_id:
                      description: The id of the submitter.
                      type: string
                    estimated_stated_at:
                      description: The estimation of the started at value.
                      type: string
                    estimated_transferred_at:
                      description: The estimation of the transferred at value.
                      type: string
                    staging_started_at:
                      description: The time the staging got started.
                      type: string
                    staging_finished_at:
                      description: The time the staging got finished.
                      type: string
                    account:
                      description: The account which issued the request.
                      type: string
                    requested_at:
                      description: The time the request got requested.
                      type: string
                    priority:
                      description: The priority of the request.
                      type: integer
                    transfertool:
                      description: The transfertool used.
                      type: string
                    source_rse:
                      description: The name of the source RSE.
                      type: string
                    dest_rse:
                      description: The name of the destination RSE.
                      type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: Not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'http://undefinedundefined/requests/list?src_rse=SOME_ARRAY_VALUE&dest_rse=SOME_ARRAY_VALUE&src_site=SOME_STRING_VALUE&dest_site=SOME_STRING_VALUE&request_states=SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/requests/list"


            querystring =
            {"src_rse":"SOME_ARRAY_VALUE","dest_rse":"SOME_ARRAY_VALUE","src_site":"SOME_STRING_VALUE","dest_site":"SOME_STRING_VALUE","request_states":"SOME_STRING_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/requests/list?src_rse=SOME_ARRAY_VALUE&dest_rse=SOME_ARRAY_VALUE&src_site=SOME_STRING_VALUE&dest_site=SOME_STRING_VALUE&request_states=SOME_STRING_VALUE';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /requests/history/list:
    get:
      summary: List Historic Requests
      description: List historical requests for a given source and destination RSE or site.
      tags:
        - Requests
      parameters:
        - name: src_rse
          in: query
          description: The source rse.
          schema:
            type: array
            items:
              type: object
              required:
                - rse_id
              properties:
                rse_id:
                  description: The id of the rse.
                  type: string
        - name: dest_rse
          in: query
          description: The destination rse.
          schema:
            type: array
            items:
              type: object
              required:
                - rse_id
              properties:
                rse_id:
                  description: The id of the rse.
                  type: string
        - name: src_site
          in: query
          description: The source site.
          schema:
            type: string
        - name: dest_site
          in: query
          description: The destination site.
          schema:
            type: string
        - name: request_states
          in: query
          description: The accepted request states. Delimited by comma.
          schema:
            type: string
        - name: offset
          in: query
          description: The offset of the list.
          schema:
            type: integer
            default: 0
        - name: limit
          in: query
          description: The maximum number of items to return.
          schema:
            type: integer
            default: 100
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: >-
                  All requests matching the arguments. Separated by a new line
                  character.
                type: array
                items:
                  description: A request.
                  type: object
                  properties:
                    id:
                      description: The id of the request.
                      type: string
                    request_type:
                      description: The request type.
                      type: string
                      enum:
                        - T
                        - U
                        - D
                        - I
                        - O
                    scope:
                      description: The scope of the transfer.
                      type: string
                    name:
                      description: The name of the transfer.
                      type: string
                    did_type:
                      description: The DID type.
                      type: string
                    dest_rse_id:
                      description: The destination RSE id.
                      type: string
                    source_rse_id:
                      description: The source RSE id.
                      type: string
                    attributes:
                      description: All attributes associated with the request.
                      type: string
                    state:
                      description: The state of the request.
                      type: string
                      enum:
                        - Q
                        - G
                        - S
                        - F
                        - D
                        - L
                        - 'N'
                        - O
                        - A
                        - M
                        - U
                        - W
                        - P
                    external_id:
                      description: External id of the request.
                      type: string
                    external_host:
                      description: External host of the request.
                      type: string
                    retry_count:
                      description: The numbers of attempted retries.
                      type: integer
                    err_msg:
                      description: An error message if one occurred.
                      type: string
                    previous_attempt_id:
                      description: The id of the previous attempt.
                      type: string
                    rule_id:
                      description: The id of the associated replication rule.
                      type: string
                    activity:
                      description: The activity of the request.
                      type: string
                    bytes:
                      description: The size of the DID in bytes.
                      type: integer
                    md5:
                      description: The md5 checksum of the DID to transfer.
                      type: string
                    adler32:
                      description: The adler32 checksum of the DID to transfer.
                      type: string
                    dest_url:
                      description: The destination url.
                      type: string
                    submitted_at:
                      description: The time the request got submitted.
                      type: string
                    started_at:
                      description: The time the request got started.
                      type: string
                    transferred_at:
                      description: The time the request got transferred.
                      type: string
                    estimated_at:
                      description: The time the request got estimated.
                      type: string
                    submitter_id:
                      description: The id of the submitter.
                      type: string
                    estimated_stated_at:
                      description: The estimation of the started at value.
                      type: string
                    estimated_transferred_at:
                      description: The estimation of the transferred at value.
                      type: string
                    staging_started_at:
                      description: The time the staging got started.
                      type: string
                    staging_finished_at:
                      description: The time the staging got finished.
                      type: string
                    account:
                      description: The account which issued the request.
                      type: string
                    requested_at:
                      description: The time the request got requested.
                      type: string
                    priority:
                      description: The priority of the request.
                      type: integer
                    transfertool:
                      description: The transfertool used.
                      type: string
                    source_rse:
                      description: The name of the source RSE.
                      type: string
                    dest_rse:
                      description: The name of the destination RSE.
                      type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: Not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'http://undefinedundefined/requests/history/list?src_rse=SOME_ARRAY_VALUE&dest_rse=SOME_ARRAY_VALUE&src_site=SOME_STRING_VALUE&dest_site=SOME_STRING_VALUE&request_states=SOME_STRING_VALUE&offset=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/requests/history/list"


            querystring =
            {"src_rse":"SOME_ARRAY_VALUE","dest_rse":"SOME_ARRAY_VALUE","src_site":"SOME_STRING_VALUE","dest_site":"SOME_STRING_VALUE","request_states":"SOME_STRING_VALUE","offset":"SOME_INTEGER_VALUE","limit":"SOME_INTEGER_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/requests/history/list?src_rse=SOME_ARRAY_VALUE&dest_rse=SOME_ARRAY_VALUE&src_site=SOME_STRING_VALUE&dest_site=SOME_STRING_VALUE&request_states=SOME_STRING_VALUE&offset=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /requests/metrics:
    get:
      summary: Get Request Statistics
      description: Get statistics of requests grouped by source, destination, and activity.
      tags:
        - Requests
      parameters:
        - name: dest_rse
          in: query
          description: The destination RSE name
          schema:
            type: string
        - name: source_rse
          in: query
          description: The source RSE name
          schema:
            type: string
        - name: activity
          in: query
          description: The activity
          schema:
            type: string
        - name: group_by_rse_attribute
          in: query
          description: The parameter to group the RSEs by.
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: Statistics of requests by source, destination, and activity.
                type: array
                items:
                  description: >-
                    Statistics of the request group for a given (source,
                    destination, activity) tuple.
                  type: object
                  properties:
                    src_rse:
                      type: string
                      description: The name of this links source RSE
                    dst_rse:
                      type: string
                      description: The name of this links destination RSE
                    distance:
                      type: integer
                      description: The distance between the source and destination RSE
                    files:
                      type: object
                      properties:
                        done-total-1h:
                          type: integer
                          description: >-
                            The total number of files successfully transferred
                            in the last 1 hour
                        done-total-6h:
                          type: integer
                          description: >-
                            The total number of files successfully transferred
                            in the last 6 hours
                        failed-total-1h:
                          type: integer
                          description: >-
                            The total number of transfer failures in the last 1
                            hour
                        failed-total-6h:
                          type: integer
                          description: >-
                            The total number of transfer failures in the last 6
                            hours
                        queued-total:
                          type: integer
                          description: The total number of files queued in rucio
                        queued:
                          type: object
                          description: Per-activity number of queued files
                          additionalProperties:
                            type: integer
                        done:
                          type: object
                          additionalProperties:
                            type: object
                            properties:
                              1h:
                                type: integer
                              6h:
                                type: integer
                        failed:
                          type: object
                          description: >-
                            Per-activity number of transfer failures in the last
                            1 and 6 hours
                          additionalProperties:
                            type: object
                            properties:
                              1h:
                                type: integer
                              6h:
                                type: integer
                    bytes:
                      type: object
                      properties:
                        done-total-1h:
                          type: integer
                          description: >-
                            The total number of bytes successfully transferred
                            in the last 1 hour
                        done-total-6h:
                          type: integer
                          description: >-
                            The total number of bytes successfully transferred
                            in the last 6 hours
                        queued-total:
                          type: integer
                          description: >-
                            The total number of bytes queued to be transferred
                            by rucio
                        queued:
                          type: object
                          description: Per-activity amount of queued bytes
                          additionalProperties:
                            type: integer
                        done:
                          type: object
                          description: >-
                            Per-activity number of transferred bytes in the last
                            1 and 6 hours
                          additionalProperties:
                            type: object
                            properties:
                              1h:
                                type: integer
                              6h:
                                type: integer
                  required:
                    - distance
                    - src_rse
                    - dst_rse
        '401':
          description: Invalid Auth Token
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'http://undefinedundefined/requests/metrics?dest_rse=SOME_STRING_VALUE&source_rse=SOME_STRING_VALUE&activity=SOME_STRING_VALUE&group_by_rse_attribute=SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/requests/metrics"


            querystring =
            {"dest_rse":"SOME_STRING_VALUE","source_rse":"SOME_STRING_VALUE","activity":"SOME_STRING_VALUE","group_by_rse_attribute":"SOME_STRING_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/requests/metrics?dest_rse=SOME_STRING_VALUE&source_rse=SOME_STRING_VALUE&activity=SOME_STRING_VALUE&group_by_rse_attribute=SOME_STRING_VALUE';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /requests/transfer_limits:
    delete:
      summary: Delete Transfer Limit
      description: Delete a transfer limit for an RSE expression.
      tags:
        - Requests
      parameters:
        - name: rse_expression
          in: query
          description: The RSE expression to delete the limit for.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Transfer limit deleted successfully.
        '400':
          description: Invalid input data.
        '401':
          description: Invalid Auth Token.
        '500':
          description: Internal server error.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request DELETE \
              --url 'http://undefinedundefined/requests/transfer_limits?rse_expression=SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/requests/transfer_limits"


            querystring = {"rse_expression":"SOME_STRING_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("DELETE", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/requests/transfer_limits?rse_expression=SOME_STRING_VALUE';


            let options = {method: 'DELETE', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    get:
      summary: Get Transfer Limits
      description: Get all the transfer limits.
      tags:
        - Requests
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: All the transfer limits
                type: array
                items:
                  type: object
                  properties:
                    id:
                      description: The transfer limit id.
                      type: string
                    rse_expression:
                      description: The RSE expression for which the limit applies.
                      type: string
                    direction:
                      description: >-
                        The direction in which this limit applies
                        (source/destination)
                      type: string
                    max_transfers:
                      description: Maximum number of transfers allowed.
                      type: integer
                    volume:
                      description: Maximum transfer volume in bytes.
                      type: integer
                    deadline:
                      description: >-
                        Maximum waiting time in hours until a dataset gets
                        released.
                      type: integer
                    strategy:
                      description: >-
                        Defines how to handle datasets: `fifo` (each file
                        released separately) or `grouped_fifo` (wait for the
                        entire dataset to fit)
                      type: string
                    transfers:
                      description: Current number of active transfers
                      type: integer
                    waitings:
                      description: Current number of waiting transfers
                      type: integer
                    updated_at:
                      description: Datetime of the last update.
                      type: string
                    created_at:
                      description: Datetime of the creation of the transfer limit.
                      type: string
        '401':
          description: Invalid Auth Token
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/requests/transfer_limits \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/requests/transfer_limits"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/requests/transfer_limits';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    put:
      summary: Set Transfer Limit
      description: >-
        Create or update a transfer limit for a specific RSE expression and
        activity.
      tags:
        - Requests
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - rse_expression
                - max_transfers
              properties:
                rse_expression:
                  type: string
                  description: >-
                    The RSE expression for which the transfer limit is being
                    set.
                activity:
                  type: string
                  description: The activity to which the transfer limit applies.
                max_transfers:
                  type: integer
                  description: The maximum number of transfers allowed.
                direction:
                  type: string
                  description: The direction of the transfer limit (source or destination).
                  enum:
                    - SOURCE
                    - DESTINATION
                  default: DESTINATION
                volume:
                  type: integer
                  description: The maximum transfer volume in bytes.
                deadline:
                  type: integer
                  description: >-
                    The maximum waiting time in hours until a dataset is
                    released.
                strategy:
                  type: string
                  description: >-
                    The strategy for handling datasets (e.g., `fifo` or
                    `grouped_fifo`).
                transfers:
                  type: integer
                  description: The current number of active transfers.
                waitings:
                  type: integer
                  description: The current number of waiting transfers.
      responses:
        '201':
          description: Transfer limit set successfully.
        '400':
          description: Invalid input data.
        '401':
          description: Invalid Auth Token.
        '500':
          description: Internal server error.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request PUT \
              --url http://undefinedundefined/requests/transfer_limits \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"rse_expression":"string","activity":"string","max_transfers":0,"direction":"SOURCE","volume":0,"deadline":0,"strategy":"string","transfers":0,"waitings":0}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/requests/transfer_limits"


            payload = {
                "rse_expression": "string",
                "activity": "string",
                "max_transfers": 0,
                "direction": "SOURCE",
                "volume": 0,
                "deadline": 0,
                "strategy": "string",
                "transfers": 0,
                "waitings": 0
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("PUT", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/requests/transfer_limits';

            let options = {
              method: 'PUT',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"rse_expression":"string","activity":"string","max_transfers":0,"direction":"SOURCE","volume":0,"deadline":0,"strategy":"string","transfers":0,"waitings":0}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /locks/{rse}:
    get:
      summary: Get locks by rse
      description: Get all dataset locks for an associated rse.
      tags:
        - Lock
      parameters:
        - name: rse
          in: path
          description: The rse name.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                did_type:
                  description: The DID type to filter for.
                  type: string
                  enum:
                    - dataset
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: Locks associated with the rse.
                type: array
                items:
                  description: A lock
                  type: object
                  properties:
                    rse_id:
                      description: The id of the associated rse.
                      type: string
                    rse:
                      description: The name of the associated rse.
                      type: string
                    scope:
                      description: The scope of the associated rse.
                      type: string
                    name:
                      description: The name of the rule.
                      type: string
                    rule_id:
                      description: The id of the rule.
                      type: string
                    account:
                      description: The associated account.
                      type: string
                    state:
                      description: The state of the rule.
                      type: string
                      enum:
                        - R
                        - O
                        - S
                    length:
                      description: The length of the rule.
                      type: integer
                    bytes:
                      description: The bytes limit for the lock.
                      type: integer
                    accessed_at:
                      description: The last time is was accessed.
                      type: string
        '401':
          description: Invalid Auth Token
        '406':
          description: Not acceptable
        '500':
          description: Wrong DID type
          content:
            application/json:
              schema:
                type: string
                enum:
                  - wrong did_type specified
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/locks/{rse} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"did_type":"dataset"}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/locks/{rse}"


            payload = {"did_type": "dataset"}

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("GET", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/locks/{rse}';

            let options = {
              method: 'GET',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"did_type":"dataset"}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /locks/{scope_name}:
    get:
      summary: Get locks by scope
      description: Get all dataset locks for an associated rse.
      tags:
        - Lock
      parameters:
        - name: scope_name
          in: path
          description: The scope name.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                did_type:
                  description: The DID type to filter for.
                  type: string
                  enum:
                    - dataset
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: Locks associated with the rse.
                type: array
                items:
                  description: A lock
                  type: object
                  properties:
                    rse_id:
                      description: The id of the associated rse.
                      type: string
                    rse:
                      description: The name of the associated rse.
                      type: string
                    scope:
                      description: The scope of the associated rse.
                      type: string
                    name:
                      description: The name of the rule.
                      type: string
                    rule_id:
                      description: The id of the rule.
                      type: string
                    account:
                      description: The associated account.
                      type: string
                    state:
                      description: The state of the rule.
                      type: string
                      enum:
                        - R
                        - O
                        - S
                    length:
                      description: The length of the rule.
                      type: integer
                    bytes:
                      description: The bytes limit for the lock.
                      type: integer
                    accessed_at:
                      description: The last time is was accessed.
                      type: string
        '401':
          description: Invalid Auth Token
        '406':
          description: Not acceptable
        '500':
          description: Wrong DID type
          content:
            application/json:
              schema:
                type: string
                enum:
                  - wrong did_type specified
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/locks/{scope_name} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"did_type":"dataset"}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/locks/{scope_name}"


            payload = {"did_type": "dataset"}

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("GET", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/locks/{scope_name}';

            let options = {
              method: 'GET',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"did_type":"dataset"}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /locks/bulk_locks_for_dids:
    post:
      summary: Get locks by DIDs
      description: Get all dataset locks for the associated DIDs.
      tags:
        - Lock
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                dids:
                  description: The DIDs associated with the locks.
                  type: array
                  items:
                    type: object
                    description: A DID
                    required:
                      - scope
                      - name
                    properties:
                      scope:
                        description: The scope of the DID.
                        type: string
                      name:
                        description: The name of the DID.
                        type: string
                      type:
                        description: The type of the DID.
                        type: string
                        enum:
                          - dataset
                          - container
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: Locks associated with the rse.
                type: array
                items:
                  description: A lock
                  type: object
                  properties:
                    rse_id:
                      description: The id of the associated rse.
                      type: string
                    rse:
                      description: The name of the associated rse.
                      type: string
                    scope:
                      description: The scope of the associated rse.
                      type: string
                    name:
                      description: The name of the rule.
                      type: string
                    rule_id:
                      description: The id of the rule.
                      type: string
                    account:
                      description: The associated account.
                      type: string
                    state:
                      description: The state of the rule.
                      type: string
                      enum:
                        - R
                        - O
                        - S
                    length:
                      description: The length of the rule.
                      type: integer
                    bytes:
                      description: The bytes limit for the lock.
                      type: integer
                    accessed_at:
                      description: The last time is was accessed.
                      type: string
        '400':
          description: Wrong DID type
          content:
            application/json:
              schema:
                type: string
                enum:
                  - >-
                    Cannot find the list of DIDs in the data. Use "dids"
                    keyword.
        '401':
          description: Invalid Auth Token
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/locks/bulk_locks_for_dids \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"dids":[{"scope":"string","name":"string","type":"dataset"}]}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/locks/bulk_locks_for_dids"


            payload = {"dids": [
                    {
                        "scope": "string",
                        "name": "string",
                        "type": "dataset"
                    }
                ]}
            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/locks/bulk_locks_for_dids';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"dids":[{"scope":"string","name":"string","type":"dataset"}]}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /accountlimits/local/{account}/{rse}:
    delete:
      summary: Delete a local account limit
      tags:
        - Account Limit
      parameters:
        - name: account
          in: path
          description: The account for the accountlimit.
          schema:
            type: string
          style: simple
          required: true
        - name: rse
          in: path
          description: The rse for the accountlimit.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
        '401':
          description: Invalid Auth Token
        '404':
          description: No RSE or account found for the given id.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request DELETE \
              --url http://undefinedundefined/accountlimits/local/{account}/{rse} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url =
            "http://undefinedundefined/accountlimits/local/{account}/{rse}"


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("DELETE", url, headers=headers)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/accountlimits/local/{account}/{rse}';


            let options = {method: 'DELETE', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    post:
      summary: Create or update a local account limit
      tags:
        - Account Limit
      parameters:
        - name: account
          in: path
          description: The account for the accountlimit.
          schema:
            type: string
          style: simple
          required: true
        - name: rse
          in: path
          description: The rse for the accountlimit.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - bytes
              properties:
                bytes:
                  description: The new limit in bytes.
                  type: integer
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '401':
          description: Invalid Auth Token
        '404':
          description: No RSE or account found for the given id.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/accountlimits/local/{account}/{rse} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"bytes":0}'
        - lang: Python
          source: >-
            import requests


            url =
            "http://undefinedundefined/accountlimits/local/{account}/{rse}"


            payload = {"bytes": 0}

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/accountlimits/local/{account}/{rse}';


            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"bytes":0}'
            };


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /accountlimits/global/{account}/{rse_expression}:
    delete:
      summary: Delete a global account limit
      tags:
        - Account Limit
      parameters:
        - name: account
          in: path
          description: The account for the accountlimit.
          schema:
            type: string
          style: simple
          required: true
        - name: rse_expression
          in: path
          description: The rse expression for the accountlimit.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
        '401':
          description: Invalid Auth Token
        '404':
          description: No RSE or account found for the given id.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request DELETE \
              --url http://undefinedundefined/accountlimits/global/{account}/{rse_expression} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url =
            "http://undefinedundefined/accountlimits/global/{account}/{rse_expression}"


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("DELETE", url, headers=headers)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/accountlimits/global/{account}/{rse_expression}';


            let options = {method: 'DELETE', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    post:
      summary: Create or update a global account limit
      tags:
        - Account Limit
      parameters:
        - name: account
          in: path
          description: The account for the accountlimit.
          schema:
            type: string
          style: simple
          required: true
        - name: rse_expression
          in: path
          description: The rse expression for the accountlimit.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - bytes
              properties:
                bytes:
                  description: The new limit in bytes.
                  type: integer
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '401':
          description: Invalid Auth Token
        '404':
          description: No RSE or account found for the given id.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/accountlimits/global/{account}/{rse_expression} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"bytes":0}'
        - lang: Python
          source: >-
            import requests


            url =
            "http://undefinedundefined/accountlimits/global/{account}/{rse_expression}"


            payload = {"bytes": 0}

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/accountlimits/global/{account}/{rse_expression}';


            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"bytes":0}'
            };


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /opendata/dids:
    get:
      summary: List Open Data DIDs
      description: >-
        Retrieves a list of Open Data DIDs. Supports optional query parameters
        for pagination and filtering by state.
      tags:
        - Open Data
      parameters:
        - name: limit
          in: query
          description: Maximum number of results to return.
          schema:
            type: integer
          required: false
          style: form
        - name: offset
          in: query
          description: Number of items to skip before starting to collect the result set.
          schema:
            type: integer
          required: false
          style: form
        - name: state
          in: query
          description: Filter DIDs by their state (e.g., 'PUBLIC').
          schema:
            type: string
          required: false
          style: form
      responses:
        '200':
          description: Successful retrieval of the list of Open Data DIDs.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid request or query parameters.
        '401':
          description: 'Access denied: Invalid authentication.'
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'http://undefinedundefined/opendata/dids?limit=SOME_INTEGER_VALUE&offset=SOME_INTEGER_VALUE&state=SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/opendata/dids"


            querystring =
            {"limit":"SOME_INTEGER_VALUE","offset":"SOME_INTEGER_VALUE","state":"SOME_STRING_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/opendata/dids?limit=SOME_INTEGER_VALUE&offset=SOME_INTEGER_VALUE&state=SOME_STRING_VALUE';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /opendata/dids/{scope}/{name}:
    delete:
      summary: Delete Open Data DID
      description: Deletes an entry in the Open Data catalog.
      tags:
        - Open Data
      parameters:
        - name: scope
          in: path
          description: The scope of the data identifier to be deleted.
          schema:
            type: string
          required: true
          style: simple
        - name: name
          in: path
          description: The name of the data identifier to be deleted.
          schema:
            type: string
          required: true
          style: simple
      responses:
        '204':
          description: Open Data DID successfully deleted. No content is returned.
        '400':
          description: 'Invalid input: The provided scope/name is not valid.'
        '401':
          description: 'Access denied: Invalid authentication.'
        '404':
          description: Data Identifier not found.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request DELETE \
              --url http://undefinedundefined/opendata/dids/{scope}/{name} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/opendata/dids/{scope}/{name}"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("DELETE", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/opendata/dids/{scope}/{name}';


            let options = {method: 'DELETE', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    post:
      summary: Register Open Data DID
      description: Registers an existing DID as Open Data.
      tags:
        - Open Data
      parameters:
        - name: scope
          in: path
          description: The scope of the data identifier to be registered.
          schema:
            type: string
          required: true
          style: simple
        - name: name
          in: path
          description: The name of the data identifier to be registered.
          schema:
            type: string
          required: true
          style: simple
      responses:
        '201':
          description: Open Data DID successfully registered.
          content:
            application/json:
              schema:
                type: string
                enum: []
        '400':
          description: 'Invalid input: The provided scope/name is not valid.'
        '401':
          description: 'Access denied: Invalid authentication.'
        '404':
          description: Data Identifier not found.
        '409':
          description: Data Identifier already exists in the Open Data catalog.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/opendata/dids/{scope}/{name} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/opendata/dids/{scope}/{name}"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("POST", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/opendata/dids/{scope}/{name}';


            let options = {method: 'POST', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    get:
      summary: Get Open Data DID Information
      description: >-
        Retrieves detailed Open Data information for the given scope and name.
        Supports optional query parameters to control the inclusion of files,
        metadata, and DOI information.
      tags:
        - Open Data
      parameters:
        - name: scope
          in: path
          description: The scope of the data identifier.
          schema:
            type: string
          required: true
          style: simple
        - name: name
          in: path
          description: The name of the data identifier.
          schema:
            type: string
          required: true
          style: simple
        - name: files
          in: query
          description: >-
            Whether to include the list of files. '1' to include, '0' to
            exclude. Default is '0'.
          schema:
            type: string
            enum:
              - '0'
              - '1'
          required: false
          style: form
        - name: meta
          in: query
          description: >-
            Whether to include metadata. '1' to include, '0' to exclude. Default
            is '0'.
          schema:
            type: string
            enum:
              - '0'
              - '1'
          required: false
          style: form
        - name: doi
          in: query
          description: >-
            Whether to include the Digital Object Identifier (DOI). '1' to
            include, '0' to exclude. Default is '1'.
          schema:
            type: string
            enum:
              - '0'
              - '1'
          required: false
          style: form
        - name: record_id
          in: query
          description: >-
            Whether to include the record ID. '1' to include, '0' to exclude.
            Default is '1'.
          schema:
            type: string
            enum:
              - '0'
              - '1'
          required: false
          style: form
        - name: state
          in: query
          description: Optional state filter for the data identifier.
          schema:
            type: string
          required: false
          style: form
      responses:
        '200':
          description: Successful retrieval of Open Data DID information.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid request or input parameters.
        '401':
          description: 'Access denied: Invalid authentication.'
        '404':
          description: Data Identifier not found.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'http://undefinedundefined/opendata/dids/{scope}/{name}?files=SOME_STRING_VALUE&meta=SOME_STRING_VALUE&doi=SOME_STRING_VALUE&record_id=SOME_STRING_VALUE&state=SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/opendata/dids/{scope}/{name}"


            querystring =
            {"files":"SOME_STRING_VALUE","meta":"SOME_STRING_VALUE","doi":"SOME_STRING_VALUE","record_id":"SOME_STRING_VALUE","state":"SOME_STRING_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/opendata/dids/{scope}/{name}?files=SOME_STRING_VALUE&meta=SOME_STRING_VALUE&doi=SOME_STRING_VALUE&record_id=SOME_STRING_VALUE&state=SOME_STRING_VALUE';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    put:
      summary: Update Open Data DID
      description: Updates the properties of an existing Open Data DID.
      tags:
        - Open Data
      parameters:
        - name: scope
          in: path
          description: The scope of the data identifier to be updated.
          schema:
            type: string
          required: true
          style: simple
        - name: name
          in: path
          description: The name of the data identifier to be updated.
          schema:
            type: string
          required: true
          style: simple
        - name: body
          in: body
          description: >-
            JSON object containing the fields to update: 'state', 'meta', and/or
            'doi'.
          required: false
          content:
            application/json:
              schema:
                type: object
                properties:
                  state:
                    type: string
                    description: New state for the DID.
                    enum:
                      - draft
                      - public
                      - suspended
                  meta:
                    type: object
                    description: >-
                      New metadata dictionary for the DID. Supports arbitrary
                      JSON objects.
                    example:
                      key: value
                      another_key: another_value
                  doi:
                    type: string
                    description: >-
                      Digital Object Identifier (DOI) for the DID. example:
                      '10.1234/abcd.efgh'.
                  record_id:
                    type: integer
                    description: Record ID for the DID.
                    example: 123456
      responses:
        '200':
          description: Open Data DID successfully updated.
          content:
            application/json:
              schema:
                type: string
                enum: []
        '400':
          description: Invalid input or update parameters.
        '401':
          description: 'Access denied: Invalid authentication.'
        '404':
          description: Data Identifier not found.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request PUT \
              --url http://undefinedundefined/opendata/dids/{scope}/{name} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/opendata/dids/{scope}/{name}"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("PUT", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/opendata/dids/{scope}/{name}';


            let options = {method: 'PUT', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /rses/{rse}/attr/{key}:
    delete:
      summary: Delete RSE Attribute
      description: Delete an RSE attribute for given RSE name.
      tags:
        - Rucio Storage Elements
      parameters:
        - name: rse
          in: path
          description: The name of the Rucio Storage Element name.
          schema:
            type: string
          style: simple
          required: true
        - name: key
          in: path
          description: The name of the attribute of the RSE.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
        '401':
          description: Invalid Auth Token
        '404':
          description: RSE or RSE attribute not found
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request DELETE \
              --url http://undefinedundefined/rses/{rse}/attr/{key} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/rses/{rse}/attr/{key}"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("DELETE", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/rses/{rse}/attr/{key}';


            let options = {method: 'DELETE', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    post:
      summary: Create RSE Attribute
      description: Create a RSE attribute with given RSE name.
      tags:
        - Rucio Storage Elements
      parameters:
        - name: rse
          in: path
          description: The name of the Rucio Storage Element name.
          schema:
            type: string
          style: simple
          required: true
        - name: key
          in: path
          description: The name of the attribute of the RSE.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - value
              properties:
                value:
                  description: The value of the RSE attribute.
                  type: string
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '400':
          description: Cannot decode json parameter dictionary
        '401':
          description: Invalid Auth Token
        '404':
          description: RSE not found
        '409':
          description: Attribute already exists
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/rses/{rse}/attr/{key} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"value":"string"}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/rses/{rse}/attr/{key}"


            payload = {"value": "string"}

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/rses/{rse}/attr/{key}';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"value":"string"}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /rses/{source}/distances/{destination}:
    delete:
      summary: Delete Rse Distance
      description: Delete distance information between source RSE and destination RSE.
      tags:
        - Rucio Storage Elements
      parameters:
        - name: source
          in: path
          description: The name of the source Rucio Storage Element.
          schema:
            type: string
          style: simple
          required: true
        - name: destination
          in: path
          description: The name of the destination Rucio Storage Element.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Deleted
        '401':
          description: Invalid Auth Token
        '404':
          description: Rse not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request DELETE \
              --url http://undefinedundefined/rses/{source}/distances/{destination} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url =
            "http://undefinedundefined/rses/{source}/distances/{destination}"


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("DELETE", url, headers=headers)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/rses/{source}/distances/{destination}';


            let options = {method: 'DELETE', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    post:
      summary: Create Rse Distance
      description: Post a rse distance.
      tags:
        - Rucio Storage Elements
      parameters:
        - name: source
          in: path
          description: The name of the source Rucio Storage Element.
          schema:
            type: string
          style: simple
          required: true
        - name: destination
          in: path
          description: The name of the destination Rucio Storage Element.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                distance:
                  description: The distance between RSEs.
                  type: integer
                ranking:
                  deprecated: true
                  description: Same as distance.
                  type: integer
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '401':
          description: Invalid Auth Token
        '404':
          description: Rse not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/rses/{source}/distances/{destination} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"distance":0,"ranking":0}'
        - lang: Python
          source: >-
            import requests


            url =
            "http://undefinedundefined/rses/{source}/distances/{destination}"


            payload = {
                "distance": 0,
                "ranking": 0
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/rses/{source}/distances/{destination}';


            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"distance":0,"ranking":0}'
            };


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    get:
      summary: Get Rse Distances
      description: Returns the distances between a source and destination rse.
      tags:
        - Rucio Storage Elements
      parameters:
        - name: source
          in: path
          description: The name of the source Rucio Storage Element.
          schema:
            type: string
          style: simple
          required: true
        - name: destination
          in: path
          description: The name of the destination Rucio Storage Element.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: The distances between the Rses.
                type: array
                items:
                  type: object
                  description: One distance between source and destination.
                  properties:
                    src_rse_id:
                      description: The source rse id.
                      type: string
                    dest_rse_id:
                      description: The destination rse id.
                      type: string
                    distance:
                      description: The distance between RSEs.
                      type: integer
                    ranking:
                      deprecated: true
                      description: Same as distance.
                      type: integer
        '401':
          description: Invalid Auth Token
        '404':
          description: Rse not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/rses/{source}/distances/{destination} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url =
            "http://undefinedundefined/rses/{source}/distances/{destination}"


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/rses/{source}/distances/{destination}';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    put:
      summary: Update Rse Distance
      description: Update rse distance information.
      tags:
        - Rucio Storage Elements
      parameters:
        - name: source
          in: path
          description: The name of the source Rucio Storage Element.
          schema:
            type: string
          style: simple
          required: true
        - name: destination
          in: path
          description: The name of the destination Rucio Storage Element.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                distance:
                  description: The distance between the RSEs.
                  type: integer
                ranking:
                  deprecated: true
                  description: Same as distance.
                  type: integer
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '401':
          description: Invalid Auth Token
        '404':
          description: Rse not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request PUT \
              --url http://undefinedundefined/rses/{source}/distances/{destination} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"distance":0,"ranking":0}'
        - lang: Python
          source: >-
            import requests


            url =
            "http://undefinedundefined/rses/{source}/distances/{destination}"


            payload = {
                "distance": 0,
                "ranking": 0
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("PUT", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/rses/{source}/distances/{destination}';


            let options = {
              method: 'PUT',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"distance":0,"ranking":0}'
            };


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /rses/{rse}/protocols/{scheme}/{hostname}/{port}:
    delete:
      summary: Delete Protocol Attributes
      description: Delete all protocol attributes.
      tags:
        - Rucio Storage Elements
      parameters:
        - name: rse
          in: path
          description: The name of the Rucio Storage Element name.
          schema:
            type: string
          style: simple
          required: true
        - name: scheme
          in: path
          description: The protocol identifier.
          schema:
            type: string
          style: simple
          required: true
        - name: hostname
          in: path
          description: The hostname of the protocol.
          schema:
            type: string
          style: simple
          required: true
        - name: port
          in: path
          description: The port of the protocol.
          schema:
            type: integer
          style: simple
          required: true
      responses:
        '200':
          description: OK
        '401':
          description: Invalid Auth Token
        '404':
          description: Rse not found or protocol not supported
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request DELETE \
              --url http://undefinedundefined/rses/{rse}/protocols/{scheme}/{hostname}/{port} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url =
            "http://undefinedundefined/rses/{rse}/protocols/{scheme}/{hostname}/{port}"


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("DELETE", url, headers=headers)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/rses/{rse}/protocols/{scheme}/{hostname}/{port}';


            let options = {method: 'DELETE', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    put:
      summary: Update Protocol Attributes
      description: >-
        Updates attributes of an existing protocol entry. Because protocol
        identifier, hostname, and port are used as unique identifiers, they are
        immutable.
      tags:
        - Rucio Storage Elements
      parameters:
        - name: rse
          in: path
          description: The name of the Rucio Storage Element name.
          schema:
            type: string
          style: simple
          required: true
        - name: scheme
          in: path
          description: The protocol identifier.
          schema:
            type: string
          style: simple
          required: true
        - name: hostname
          in: path
          description: The hostname of the protocol.
          schema:
            type: string
          style: simple
          required: true
        - name: port
          in: path
          description: The port of the protocol.
          schema:
            type: integer
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: A dict with RSE information and supported protocols.
                type: object
                properties:
                  deterministic:
                    description: If the pfn is generated deterministically.
                    type: boolean
                  volatile:
                    description: RSE cache.
                    type: boolean
                  staging_area:
                    description: Staging area.
                    type: string
                  rse_type:
                    description: The rse type.
                    type: string
                    enum:
                      - DISK
                      - TAPE
                  availability_read:
                    description: The read availability of the RSE.
                    type: boolean
                  availability_write:
                    description: The write availability of the RSE.
                    type: boolean
                  availability_delete:
                    description: The delete availability of the RSE.
                    type: boolean
                  credentials:
                    description: The credentials, currently None.
                    type: string
                  domain:
                    description: The domains of the RSE protocols.
                    type: array
                  id:
                    description: The RSE id.
                    type: string
                  lfn2pfn_algorithm:
                    description: >-
                      The algorithm used to translate the logical file names to
                      the physical ones.
                    type: string
                  qos_class:
                    description: The qos class of the RSE.
                    type: string
                  rse:
                    description: The name of the RSE.
                    type: string
                  sign_url:
                    description: The sign url of the RSE.
                    type: string
                  verify_checksum:
                    description: If the checksum of the files should be verified.
                    type: boolean
                  protocols:
                    description: All supported protocols of the RSE.
                    type: array
                    items:
                      type: object
                      description: A supported RSE protocol.
                      properties:
                        hostname:
                          description: The hostname of the protocol.
                          type: string
                        scheme:
                          description: The scheme of the protocol.
                          type: string
                        port:
                          description: The port of the protocol.
                          type: integer
                        prefix:
                          description: The prefix of the protocol.
                          type: string
                        impl:
                          description: The implementation of the protocol.
                          type: string
                        domains:
                          description: The domains of the protocol.
                          type: object
                          properties:
                            lan:
                              description: The lan domain
                              type: object
                              properties:
                                read:
                                  description: The read value of the lan protocol.
                                  type: integer
                                write:
                                  description: The write value of the lan protocol.
                                  type: integer
                                delete:
                                  description: The delete value of the lan protocol.
                                  type: integer
                            wan:
                              description: The wan domain
                              type: object
                              properties:
                                read:
                                  description: The read value of the wan protocol.
                                  type: integer
                                write:
                                  description: The read value of the wan protocol.
                                  type: integer
                                delete:
                                  description: The read value of the wan protocol.
                                  type: integer
                                third_party_copy_read:
                                  description: >-
                                    The third party copy read value of the wan
                                    protocol.
                                  type: integer
                                third_party_copy_write:
                                  description: >-
                                    The third party copy write value of the wan
                                    protocol.
                                  type: integer
                        extended_attributes:
                          description: The extended attributes of the protocol.
                          type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: RSE not found or Protocol or Protocol domain not Supported.
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request PUT \
              --url http://undefinedundefined/rses/{rse}/protocols/{scheme}/{hostname}/{port} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url =
            "http://undefinedundefined/rses/{rse}/protocols/{scheme}/{hostname}/{port}"


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("PUT", url, headers=headers)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/rses/{rse}/protocols/{scheme}/{hostname}/{port}';


            let options = {method: 'PUT', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /rses/{rse}/protocols:
    get:
      summary: List RSE Protocols
      description: List all supported protocols of the given RSE.
      tags:
        - Rucio Storage Elements
      parameters:
        - name: rse
          in: path
          description: The name of the Rucio Storage Element name.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: Supported RSE Protocols and other information.
                type: object
                properties:
                  deterministic:
                    description: If the pfn is generated deterministically.
                    type: boolean
                  volatile:
                    description: RSE cache.
                    type: boolean
                  staging_area:
                    description: Staging area.
                    type: string
                  rse_type:
                    description: The rse type.
                    type: string
                    enum:
                      - DISK
                      - TAPE
                  availability_read:
                    description: The read availability of the RSE.
                    type: boolean
                  availability_write:
                    description: The write availability of the RSE.
                    type: boolean
                  availability_delete:
                    description: The delete availability of the RSE.
                    type: boolean
                  credentials:
                    description: The credentials, currently None.
                    type: string
                  domain:
                    description: The domains of the RSE protocols.
                    type: array
                  id:
                    description: The RSE id.
                    type: string
                  lfn2pfn_algorithm:
                    description: >-
                      The algorithm used to translate the logical file names to
                      the physical ones.
                    type: string
                  qos_class:
                    description: The qos class of the RSE.
                    type: string
                  rse:
                    description: The name of the RSE.
                    type: string
                  sign_url:
                    description: The sign url of the RSE.
                    type: string
                  verify_checksum:
                    description: If the checksum of the files should be verified.
                    type: boolean
                  protocols:
                    description: All supported protocols of the RSE.
                    type: array
                    items:
                      type: object
                      description: A supported RSE protocol.
                      properties:
                        hostname:
                          description: The hostname of the protocol.
                          type: string
                        scheme:
                          description: The scheme of the protocol.
                          type: string
                        port:
                          description: The port of the protocol.
                          type: integer
                        prefix:
                          description: The prefix of the protocol.
                          type: string
                        impl:
                          description: The implementation of the protocol.
                          type: string
                        domains:
                          description: The domains of the protocol.
                          type: object
                          properties:
                            lan:
                              description: The lan domain
                              type: object
                              properties:
                                read:
                                  description: The read value of the lan protocol.
                                  type: integer
                                write:
                                  description: The write value of the lan protocol.
                                  type: integer
                                delete:
                                  description: The delete value of the lan protocol.
                                  type: integer
                            wan:
                              description: The wan domain
                              type: object
                              properties:
                                read:
                                  description: The read value of the wan protocol.
                                  type: integer
                                write:
                                  description: The read value of the wan protocol.
                                  type: integer
                                delete:
                                  description: The read value of the wan protocol.
                                  type: integer
                                third_party_copy_read:
                                  description: >-
                                    The third party copy read value of the wan
                                    protocol.
                                  type: integer
                                third_party_copy_write:
                                  description: >-
                                    The third party copy write value of the wan
                                    protocol.
                                  type: integer
                        extended_attributes:
                          description: The extended attributes of the protocol.
                          type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: >-
            RSE not found or RSE Operation, RSE Protocol Domain, RSE Protocol
            not supported
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/rses/{rse}/protocols \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/rses/{rse}/protocols"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/rses/{rse}/protocols';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /rses/{rse}/lfns2pfns:
    get:
      summary: Translate LFNs to PFNs
      description: >-
        Return PFNs for a set of LFNs.  Formatted as a JSON object where the key
        is a LFN and the value is the corresponding PFN.
      tags:
        - Rucio Storage Elements
      parameters:
        - name: rse
          in: path
          description: The name of the Rucio Storage Element name.
          schema:
            type: string
          style: simple
          required: true
        - name: lfn
          in: query
          description: The lfns of the request.
          schema:
            type: string
          required: true
        - name: scheme
          in: query
          description: >-
            Optional argument to help with the protocol selection (e.g., http /
            gsiftp / srm)
          schema:
            type: string
        - name: domain
          in: query
          description: >-
            Optional argument used to select the protocol for wan or lan use
            cases.
          schema:
            type: string
        - name: operation
          in: query
          description: Optional query argument to select the protocol for read-vs-writes.
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: >-
                  The PFNs to the LFNs. Dictionary with lfns as keys and pfns as
                  values.
                type: object
                additionalProperties:
                  type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: RSE not found or RSE Protocol or RSE Protocol Domain not supported
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'http://undefinedundefined/rses/{rse}/lfns2pfns?lfn=SOME_STRING_VALUE&scheme=SOME_STRING_VALUE&domain=SOME_STRING_VALUE&operation=SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/rses/{rse}/lfns2pfns"


            querystring =
            {"lfn":"SOME_STRING_VALUE","scheme":"SOME_STRING_VALUE","domain":"SOME_STRING_VALUE","operation":"SOME_STRING_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/rses/{rse}/lfns2pfns?lfn=SOME_STRING_VALUE&scheme=SOME_STRING_VALUE&domain=SOME_STRING_VALUE&operation=SOME_STRING_VALUE';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /rses/{rse}/accounts/usage:
    get:
      summary: Get Rse Account Usage and Limit
      description: Returns the usage and limit of an account for a rse.
      tags:
        - Rucio Storage Elements
      parameters:
        - name: rse
          in: path
          description: The name of the Rucio Storage Element name.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: A list with the rse account limits and usages.
                type: array
                items:
                  type: object
                  properties:
                    rse_id:
                      description: The id of the rse.
                      type: string
                    rse:
                      description: The name of the rse.
                      type: string
                    account:
                      description: The account.
                      type: string
                    used_files:
                      description: The number of used files.
                      type: integer
                    used_bytes:
                      description: The number of used bytes.
                      type: integer
                    quota_bytes:
                      description: The number of quota bytes.
                      type: integer
        '401':
          description: Invalid Auth Token
        '404':
          description: Rse not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/rses/{rse}/accounts/usage \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/rses/{rse}/accounts/usage"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/rses/{rse}/accounts/usage';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /rses/{rse}/usage:
    get:
      summary: Get Rse Usage Information
      description: Get rse usage information.
      tags:
        - Rucio Storage Elements
      parameters:
        - name: rse
          in: path
          description: The name of the Rucio Storage Element name.
          schema:
            type: string
          style: simple
          required: true
        - name: per_account
          in: query
          description: >-
            Boolean whether the usage should be also calculated per account or
            not.
          schema:
            type: boolean
        - name: source
          in: query
          description: The information source, e.g., srm.
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: A list with the rse usage.
                type: array
                items:
                  type: object
                  properties:
                    rse_id:
                      description: The id of the rse.
                      type: string
                    rse:
                      description: The name of the rse.
                      type: string
                    source:
                      description: The source of the rse.
                      type: string
                    used:
                      description: The number of used bytes.
                      type: integer
                    free:
                      description: The number of free bytes.
                      type: integer
                    total:
                      description: The number of total bytes.
                      type: integer
                    files:
                      description: The number of files.
                      type: integer
                    updated_at:
                      description: The last time it got updated.
                      type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: Rse not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'http://undefinedundefined/rses/{rse}/usage?per_account=SOME_BOOLEAN_VALUE&source=SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/rses/{rse}/usage"


            querystring =
            {"per_account":"SOME_BOOLEAN_VALUE","source":"SOME_STRING_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/rses/{rse}/usage?per_account=SOME_BOOLEAN_VALUE&source=SOME_STRING_VALUE';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    put:
      summary: Update Rse Usage
      description: Update the RSE Update information.
      tags:
        - Rucio Storage Elements
      parameters:
        - name: rse
          in: path
          description: The name of the Rucio Storage Element name.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                source:
                  description: The information source, e.g. srm.
                  type: string
                used:
                  description: The number of used bytes.
                  type: integer
                free:
                  description: The number of free bytes.
                  type: integer
                files:
                  description: The number of files.
                  type: integer
      responses:
        '200':
          description: OK
        '400':
          description: Can not decode json parameter list.
        '401':
          description: Invalid Auth Token
        '404':
          description: Rse not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request PUT \
              --url http://undefinedundefined/rses/{rse}/usage \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"source":"string","used":0,"free":0,"files":0}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/rses/{rse}/usage"


            payload = {
                "source": "string",
                "used": 0,
                "free": 0,
                "files": 0
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("PUT", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/rses/{rse}/usage';

            let options = {
              method: 'PUT',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"source":"string","used":0,"free":0,"files":0}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /rses/{rse}/usage/history:
    get:
      summary: Get Rse Usage History
      description: Get the rse usage history
      tags:
        - Rucio Storage Elements
      parameters:
        - name: rse
          in: path
          description: The name of the Rucio Storage Element name.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/x-json-stream:
              schema:
                description: A list with the rse usage history items.
                type: array
                items:
                  type: object
                  properties:
                    rse_id:
                      description: The id of the rse.
                      type: string
                    rse:
                      description: The name of the rse.
                      type: string
                    source:
                      description: The source of the rse.
                      type: string
                    used:
                      description: The number of used bytes.
                      type: integer
                    free:
                      description: The number of free bytes.
                      type: integer
                    total:
                      description: The number of total bytes.
                      type: integer
                    updated_at:
                      description: The last time it got updated.
                      type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: Rse not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/rses/{rse}/usage/history \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/rses/{rse}/usage/history"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/rses/{rse}/usage/history';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /rses/{rse}/limits:
    delete:
      summary: Delete Rse Limit
      description: Delete an rse limit
      tags:
        - Rucio Storage Elements
      parameters:
        - name: rse
          in: path
          description: The name of the Rucio Storage Element name.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - name
              properties:
                name:
                  description: The name of the limit.
                  type: string
      responses:
        '200':
          description: OK
        '401':
          description: Invalid Auth Token
        '404':
          description: Rse not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request DELETE \
              --url http://undefinedundefined/rses/{rse}/limits \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"name":"string"}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/rses/{rse}/limits"


            payload = {"name": "string"}

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("DELETE", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/rses/{rse}/limits';

            let options = {
              method: 'DELETE',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"name":"string"}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    get:
      summary: Get Rse Limits
      description: Get the rse limits.
      tags:
        - Rucio Storage Elements
      parameters:
        - name: rse
          in: path
          description: The name of the Rucio Storage Element name.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: The limits.
                type: object
                additionalProperties:
                  x-additionalPropertiesName: limit name
                  description: An item with the name as key and the value as value.
                  type: integer
        '401':
          description: Invalid Auth Token
        '404':
          description: Rse not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/rses/{rse}/limits \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/rses/{rse}/limits"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/rses/{rse}/limits';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    put:
      summary: Update Rse Limit
      description: Update an rse limit.
      tags:
        - Rucio Storage Elements
      parameters:
        - name: rse
          in: path
          description: The name of the Rucio Storage Element name.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  description: The name of the limit.
                  type: string
                value:
                  description: The value of the limit.
                  type: integer
      responses:
        '200':
          description: OK
        '401':
          description: Invalid Auth Token
        '404':
          description: Rse not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request PUT \
              --url http://undefinedundefined/rses/{rse}/limits \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"name":"string","value":0}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/rses/{rse}/limits"


            payload = {
                "name": "string",
                "value": 0
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("PUT", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/rses/{rse}/limits';

            let options = {
              method: 'PUT',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"name":"string","value":0}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /rses/{rse}/qos_policy/{policy}:
    delete:
      summary: Delete QoS Policy
      description: Delete QoS policy from RSE.
      tags:
        - Rucio Storage Elements
      parameters:
        - name: rse
          in: path
          description: The name of the Rucio Storage Element name.
          schema:
            type: string
          style: simple
          required: true
        - name: policy
          in: path
          description: The QoS policy to add to and rse.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
        '401':
          description: Invalid Auth Token
        '404':
          description: Rse not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request DELETE \
              --url http://undefinedundefined/rses/{rse}/qos_policy/{policy} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/rses/{rse}/qos_policy/{policy}"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("DELETE", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/rses/{rse}/qos_policy/{policy}';


            let options = {method: 'DELETE', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    post:
      summary: Add QoS policy
      description: Add a QoS Policy to a RSE.
      tags:
        - Rucio Storage Elements
      parameters:
        - name: rse
          in: path
          description: The name of the Rucio Storage Element name.
          schema:
            type: string
          style: simple
          required: true
        - name: policy
          in: path
          description: The QoS policy to add to and rse.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '401':
          description: Invalid Auth Token
        '404':
          description: Rse not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/rses/{rse}/qos_policy/{policy} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/rses/{rse}/qos_policy/{policy}"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("POST", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/rses/{rse}/qos_policy/{policy}';


            let options = {method: 'POST', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /rses/{rse}:
    delete:
      summary: Disable RSE
      description: Disable a specific RSE.
      tags:
        - Rucio Storage Elements
      parameters:
        - name: rse
          in: path
          description: The name of the Rucio Storage Element name.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
        '401':
          description: Invalid Auth Token
        '404':
          description: RSE not found
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request DELETE \
              --url http://undefinedundefined/rses/{rse} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/rses/{rse}"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("DELETE", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/rses/{rse}';


            let options = {method: 'DELETE', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    post:
      summary: Create RSE
      description: Creates a RSE with all the metadata.
      tags:
        - Rucio Storage Elements
      parameters:
        - name: rse
          in: path
          description: The name of the Rucio Storage Element name.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                deterministic:
                  description: If the pfn is generated deterministically.
                  type: boolean
                volatile:
                  description: RSE cache.
                  type: boolean
                city:
                  description: The city of the RSE.
                  type: string
                staging_area:
                  description: Staging area.
                  type: string
                region_code:
                  description: The region code of the RSE.
                  type: string
                country_name:
                  description: The country name of the RSE.
                  type: string
                continent:
                  description: The continent of the RSE.
                  type: string
                time_zone:
                  description: The time zone of the RSE.
                  type: string
                ISP:
                  description: The internet service provider of the RSE.
                  type: string
                rse_type:
                  description: The rse type.
                  type: string
                  enum:
                    - DISK
                    - TAPE
                latitude:
                  description: The latitude of the RSE.
                  type: number
                longitude:
                  description: The longitude of the RSE.
                  type: number
                ASN:
                  description: The access service network of the RSE.
                  type: string
                availability:
                  description: The availability of the RSE.
                  type: integer
                  deprecated: true
                availability_read:
                  description: If the RSE is readable.
                  type: boolean
                availability_write:
                  description: If the RSE is writable.
                  type: boolean
                availability_delete:
                  description: If the RSE is deletable.
                  type: boolean
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '400':
          description: Cannot decode json parameter dictionary
        '401':
          description: Invalid Auth Token
        '404':
          description: RSE not found
        '409':
          description: RSE already exists.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/rses/{rse} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"deterministic":true,"volatile":true,"city":"string","staging_area":"string","region_code":"string","country_name":"string","continent":"string","time_zone":"string","ISP":"string","rse_type":"DISK","latitude":0,"longitude":0,"ASN":"string","availability":0,"availability_read":true,"availability_write":true,"availability_delete":true}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/rses/{rse}"


            payload = {
                "deterministic": True,
                "volatile": True,
                "city": "string",
                "staging_area": "string",
                "region_code": "string",
                "country_name": "string",
                "continent": "string",
                "time_zone": "string",
                "ISP": "string",
                "rse_type": "DISK",
                "latitude": 0,
                "longitude": 0,
                "ASN": "string",
                "availability": 0,
                "availability_read": True,
                "availability_write": True,
                "availability_delete": True
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/rses/{rse}';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"deterministic":true,"volatile":true,"city":"string","staging_area":"string","region_code":"string","country_name":"string","continent":"string","time_zone":"string","ISP":"string","rse_type":"DISK","latitude":0,"longitude":0,"ASN":"string","availability":0,"availability_read":true,"availability_write":true,"availability_delete":true}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    get:
      summary: Get RSE
      description: Get details about a specific RSE.
      tags:
        - Rucio Storage Elements
      parameters:
        - name: rse
          in: path
          description: The name of the Rucio Storage Element name.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: The RSE properties.
                type: object
                properties:
                  deterministic:
                    description: If the pfn is generated deterministically.
                    type: boolean
                  volatile:
                    description: RSE cache.
                    type: boolean
                  city:
                    description: The city of the RSE.
                    type: string
                  staging_area:
                    description: Staging area.
                    type: string
                  region_code:
                    description: The region code of the RSE.
                    type: string
                  country_name:
                    description: The country name of the RSE.
                    type: string
                  continent:
                    description: The continent of the RSE.
                    type: string
                  time_zone:
                    description: The time zone of the RSE.
                    type: string
                  ISP:
                    description: The internet service provider of the RSE.
                    type: string
                  rse_type:
                    description: The rse type.
                    type: string
                    enum:
                      - DISK
                      - TAPE
                  latitude:
                    description: The latitude of the RSE.
                    type: number
                  longitude:
                    description: The longitude of the RSE.
                    type: number
                  ASN:
                    description: The access service network of the RSE.
                    type: string
                  availability:
                    description: The availability of the RSE.
                    type: integer
                    deprecated: true
                  availability_read:
                    description: If the RSE is readable.
                    type: integer
                  availability_write:
                    description: If the RSE is writable.
                    type: integer
                  availability_delete:
                    description: If the RSE is deletable.
        '401':
          description: Invalid Auth Token
        '404':
          description: RSE not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/rses/{rse} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/rses/{rse}"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/rses/{rse}';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    put:
      summary: Update RSE
      description: Update RSE properties.
      tags:
        - Rucio Storage Elements
      parameters:
        - name: rse
          in: path
          description: The name of the Rucio Storage Element name.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                availability_read:
                  description: The availability of the RSE.
                  type: boolean
                availability_write:
                  description: The availability of the RSE.
                  type: boolean
                availability_delete:
                  description: The availability of the RSE.
                  type: boolean
                deterministic:
                  description: If the pfn is generated deterministically.
                  type: boolean
                volatile:
                  description: RSE cache.
                  type: boolean
                city:
                  description: The city of the RSE.
                  type: string
                staging_area:
                  description: Staging area.
                  type: string
                region_code:
                  description: The region code of the RSE.
                  type: string
                country_name:
                  description: The country name of the RSE.
                  type: string
                time_zone:
                  description: The time zone of the RSE.
                  type: string
                rse_type:
                  description: The rse type.
                  type: string
                  enum:
                    - DISK
                    - TAPE
                latitude:
                  description: The latitude of the RSE.
                  type: number
                longitude:
                  description: The longitude of the RSE.
                  type: number
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '400':
          description: Cannot decode json parameter dictionary or invalid option provided
        '401':
          description: Invalid Auth Token
        '404':
          description: RSE not found
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request PUT \
              --url http://undefinedundefined/rses/{rse} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"availability_read":true,"availability_write":true,"availability_delete":true,"deterministic":true,"volatile":true,"city":"string","staging_area":"string","region_code":"string","country_name":"string","time_zone":"string","rse_type":"DISK","latitude":0,"longitude":0}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/rses/{rse}"


            payload = {
                "availability_read": True,
                "availability_write": True,
                "availability_delete": True,
                "deterministic": True,
                "volatile": True,
                "city": "string",
                "staging_area": "string",
                "region_code": "string",
                "country_name": "string",
                "time_zone": "string",
                "rse_type": "DISK",
                "latitude": 0,
                "longitude": 0
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("PUT", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/rses/{rse}';

            let options = {
              method: 'PUT',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"availability_read":true,"availability_write":true,"availability_delete":true,"deterministic":true,"volatile":true,"city":"string","staging_area":"string","region_code":"string","country_name":"string","time_zone":"string","rse_type":"DISK","latitude":0,"longitude":0}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /rses/:
    get:
      summary: List RSEs
      description: Lists all RSEs.
      tags:
        - Rucio Storage Elements
      parameters:
        - name: expression
          in: query
          description: RSE expression to select RSEs.
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: A list with the corresponding rses.
                type: array
                items:
                  type: object
                  properties:
                    id:
                      description: The rse id.
                      type: string
                    rse:
                      description: The name of the rse.
                      type: string
                    rse_type:
                      description: The type of the rse.
                      type: string
                    deterministic:
                      description: If the rse is deterministic.
                      type: boolean
                    volatile:
                      description: If the rse is volatile.
                      type: boolean
                    staging_area:
                      description: Is this rse a staging area?
                      type: boolean
                    city:
                      description: The city of the rse.
                      type: string
                    region_code:
                      description: The region_code of the rse.
                      type: string
                    country_name:
                      description: The country name of the rse.
                      type: string
                    continent:
                      description: The continent of the rse.
                      type: string
                    time_zone:
                      description: The time zone of the rse.
                      type: string
                    ISP:
                      description: The isp of the rse.
                      type: string
                    ASN:
                      description: The asn of the rse.
                      type: string
                    longitude:
                      description: The longitude of the rse.
                      type: number
                    latitude:
                      description: The latitude of the rse.
                      type: number
                    availability:
                      description: The availability of the rse.
                      type: integer
                      deprecated: true
                    availability_read:
                      description: If the RSE is readable.
                      type: integer
                    availability_write:
                      description: If the RSE is writable.
                      type: integer
                    availability_delete:
                      description: If the RSE is deletable.
                      type: integer
                    usage:
                      description: The usage of the rse.
                      type: integer
                    qos_class:
                      description: The quality of service class.
                      type: string
        '400':
          description: Invalid RSE expression
        '401':
          description: Invalid Auth Token
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'http://undefinedundefined/rses/?expression=SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/rses/"


            querystring = {"expression":"SOME_STRING_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/rses/?expression=SOME_STRING_VALUE';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /import:
    post:
      summary: Import data
      description: Import data into rucio
      tags:
        - Import
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                rses:
                  description: Rse data with rse name as key.
                  type: object
                  additionalProperties:
                    x-additionalPropertiesName: rse name
                    type: object
                    properties:
                      rse_type:
                        description: The type of an rse.
                        type: string
                        enum:
                          - DISK
                          - TAPE
                distances:
                  description: Distances data with src rse name as key.
                  type: object
                  additionalProperties:
                    x-additionalPropertiesName: src rse
                    description: Distances with dest rse as key.
                    type: object
                    additionalProperties:
                      x-additionalPropertiesName: dest rse
                      description: Distance for two rses.
                      type: object
                      properties:
                        distance:
                          description: The distance between the rses.
                          type: integer
                        ranking:
                          deprecated: true
                          description: Same as distance
                          type: integer
                accounts:
                  description: Account data.
                  type: array
                  items:
                    description: An account.
                    type: object
                    properties:
                      account:
                        description: The account identifier.
                        type: string
                      email:
                        description: The email of an account.
                        type: string
                      identities:
                        description: >-
                          The identities associated with an account. Deletes old
                          identities and adds the newly defined ones.
                        type: array
                        items:
                          description: One identity associated with an account.
                          type: object
                          properties:
                            type:
                              description: The type of the identity.
                              type: string
                              enum:
                                - X509
                                - GSS
                                - USERPASS
                                - SSH
                                - SAML
                                - OIDC
                            identity:
                              description: Identifier of the identity.
                              type: string
                            password:
                              description: The password if the type is USERPASS.
                              type: string
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '401':
          description: Invalid Auth Token
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/import \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"rses":{"rse name1":{"rse_type":"DISK"},"rse name2":{"rse_type":"DISK"}},"distances":{"src rse1":{"dest rse1":{"distance":0,"ranking":0},"dest rse2":{"distance":0,"ranking":0}},"src rse2":{"dest rse1":{"distance":0,"ranking":0},"dest rse2":{"distance":0,"ranking":0}}},"accounts":[{"account":"string","email":"string","identities":[{"type":"X509","identity":"string","password":"string"}]}]}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/import"


            payload = {
                "rses": {
                    "rse name1": {"rse_type": "DISK"},
                    "rse name2": {"rse_type": "DISK"}
                },
                "distances": {
                    "src rse1": {
                        "dest rse1": {
                            "distance": 0,
                            "ranking": 0
                        },
                        "dest rse2": {
                            "distance": 0,
                            "ranking": 0
                        }
                    },
                    "src rse2": {
                        "dest rse1": {
                            "distance": 0,
                            "ranking": 0
                        },
                        "dest rse2": {
                            "distance": 0,
                            "ranking": 0
                        }
                    }
                },
                "accounts": [
                    {
                        "account": "string",
                        "email": "string",
                        "identities": [
                            {
                                "type": "X509",
                                "identity": "string",
                                "password": "string"
                            }
                        ]
                    }
                ]
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/import';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"rses":{"rse name1":{"rse_type":"DISK"},"rse name2":{"rse_type":"DISK"}},"distances":{"src rse1":{"dest rse1":{"distance":0,"ranking":0},"dest rse2":{"distance":0,"ranking":0}},"src rse2":{"dest rse1":{"distance":0,"ranking":0},"dest rse2":{"distance":0,"ranking":0}}},"accounts":[{"account":"string","email":"string","identities":[{"type":"X509","identity":"string","password":"string"}]}]}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /opendata/public/dids:
    get:
      summary: List Open Data DIDs marked as public
      description: >-
        Retrieves a list of public Open Data DIDs. Supports optional query
        parameters for pagination.
      tags:
        - Open Data Public
      parameters:
        - name: limit
          in: query
          description: Maximum number of results to return.
          schema:
            type: integer
          required: false
          style: form
        - name: offset
          in: query
          description: Number of items to skip before starting to collect the result set.
          schema:
            type: integer
          required: false
          style: form
      responses:
        '200':
          description: Successful retrieval of the list of Open Data DIDs.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid request or query parameters.
        '401':
          description: 'Access denied: Invalid authentication.'
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'http://undefinedundefined/opendata/public/dids?limit=SOME_INTEGER_VALUE&offset=SOME_INTEGER_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/opendata/public/dids"


            querystring =
            {"limit":"SOME_INTEGER_VALUE","offset":"SOME_INTEGER_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/opendata/public/dids?limit=SOME_INTEGER_VALUE&offset=SOME_INTEGER_VALUE';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /opendata/public/dids/{scope}/{name}:
    get:
      summary: Get Open Data DID Information for public Open Data DIDs
      description: >-
        Retrieves detailed Open Data information for the given scope and name.
        Only works for public opendata DIDs. Supports optional query parameters
        to control the inclusion of files, metadata, and DOI information.
      tags:
        - Open Data Public
      parameters:
        - name: scope
          in: path
          description: The scope of the data identifier.
          schema:
            type: string
          required: true
          style: simple
        - name: name
          in: path
          description: The name of the data identifier.
          schema:
            type: string
          required: true
          style: simple
        - name: files
          in: query
          description: >-
            Whether to include the list of files. '1' to include, '0' to
            exclude. Default is '0'.
          schema:
            type: string
            enum:
              - '0'
              - '1'
          required: false
          style: form
        - name: meta
          in: query
          description: >-
            Whether to include metadata. '1' to include, '0' to exclude. Default
            is '0'.
          schema:
            type: string
            enum:
              - '0'
              - '1'
          required: false
          style: form
        - name: doi
          in: query
          description: >-
            Whether to include the Digital Object Identifier (DOI). '1' to
            include, '0' to exclude. Default is '1'.
          schema:
            type: string
            enum:
              - '0'
              - '1'
          required: false
          style: form
        - name: record_id
          in: query
          description: >-
            Whether to include the record ID. '1' to include, '0' to exclude.
            Default is '1'.
          schema:
            type: string
            enum:
              - '0'
              - '1'
          required: false
          style: form
      responses:
        '200':
          description: Successful retrieval of Open Data DID information.
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid request or input parameters.
        '401':
          description: 'Access denied: Invalid authentication.'
        '404':
          description: Data Identifier not found.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url 'http://undefinedundefined/opendata/public/dids/{scope}/{name}?files=SOME_STRING_VALUE&meta=SOME_STRING_VALUE&doi=SOME_STRING_VALUE&record_id=SOME_STRING_VALUE' \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: >-
            import requests


            url =
            "http://undefinedundefined/opendata/public/dids/{scope}/{name}"


            querystring =
            {"files":"SOME_STRING_VALUE","meta":"SOME_STRING_VALUE","doi":"SOME_STRING_VALUE","record_id":"SOME_STRING_VALUE"}


            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}


            response = requests.request("GET", url, headers=headers,
            params=querystring)


            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/opendata/public/dids/{scope}/{name}?files=SOME_STRING_VALUE&meta=SOME_STRING_VALUE&doi=SOME_STRING_VALUE&record_id=SOME_STRING_VALUE';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /heartbeats:
    get:
      summary: List
      description: List all heartbeats.
      tags:
        - Heartbeat
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  description: List of tuples [('Executable', 'Hostname', ...), ...]
        '401':
          description: Invalid Auth Token
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/heartbeats \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/heartbeats"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/heartbeats';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    post:
      summary: Create
      tags:
        - Heartbeat
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - bytes
              properties:
                executable:
                  description: Name of the executable.
                  type: string
                hostname:
                  description: Name of the host.
                  type: string
                pid:
                  description: UNIX Process ID as a number, e.g., 1234.
                  type: integer
                older_than:
                  description: >-
                    Ignore specified heartbeats older than specified nr of
                    seconds.
                  type: integer
                payload:
                  description: >-
                    Payload identifier which can be further used to identify the
                    work a certain thread is executing.
                  type: string
      responses:
        '200':
          description: OK
        '400':
          description: Cannot decode json parameter list.
        '401':
          description: Invalid Auth Token
        '404':
          description: Key not found.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/heartbeats \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"executable":"string","hostname":"string","pid":0,"older_than":0,"payload":"string"}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/heartbeats"


            payload = {
                "executable": "string",
                "hostname": "string",
                "pid": 0,
                "older_than": 0,
                "payload": "string"
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/heartbeats';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"executable":"string","hostname":"string","pid":0,"older_than":0,"payload":"string"}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /dirac/addfiles:
    post:
      summary: Add files
      description: >
        Atomic method used by the RucioFileCatalog plugin in Dirac that:

        - Creates files and their replicas

        - Creates the dataset containing the files and attach the files to the
        dataset

        - Creates a rule on the dataset with RSE expression ANY and grouping
        NONE

        - Creates all the container hierarchy containing the dataset
      tags:
        - Dirac
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - lfns
              properties:
                lfns:
                  description: >-
                    List of lfn (dictionary {'lfn': <lfn>, 'rse': <rse>,
                    'bytes': <bytes>, 'adler32': <adler32>, 'guid': <guid>,
                    'pfn': <pfn>}.
                  type: array
                  items:
                    type: object
                ignore_availability:
                  description: If the availability should be ignored.
                  type: boolean
                parents_metadata:
                  description: Metadata for selected hierarchy DIDs.
                  type: object
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '400':
          description: Cannot decode json parameter list.
        '401':
          description: Invalid Auth Token
        '404':
          description: DID not found
        '405':
          description: Unsupported Operation
        '409':
          description: Duplicate
        '503':
          description: Temporary error.
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/dirac/addfiles \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"lfns":[{}],"ignore_availability":true,"parents_metadata":{}}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/dirac/addfiles"


            payload = {
                "lfns": [{}],
                "ignore_availability": True,
                "parents_metadata": {}
            }

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/dirac/addfiles';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"lfns":[{}],"ignore_availability":true,"parents_metadata":{}}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /config/{section}/{option}/{value}:
    put:
      summary: Create value
      description: Create or set the value of an option.
      tags:
        - Config
      parameters:
        - name: section
          in: path
          description: The section.
          schema:
            type: string
          style: simple
          required: true
        - name: option
          in: path
          description: The option of the section.
          schema:
            type: string
          style: simple
          required: true
        - name: value
          in: path
          description: The value to set.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '401':
          description: Invalid Auth Token
        '500':
          description: Value could not be set
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Could not set value {} for section {} option {}
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request PUT \
              --url http://undefinedundefined/config/{section}/{option}/{value} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/config/{section}/{option}/{value}"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("PUT", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url =
            'http://undefinedundefined/config/{section}/{option}/{value}';


            let options = {method: 'PUT', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /config/{section}/{option}:
    get:
      summary: Get option
      description: Returns the value of an option
      tags:
        - Config
      parameters:
        - name: section
          in: path
          description: The section.
          schema:
            type: string
          style: simple
          required: true
        - name: option
          in: path
          description: The option of the section.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: The value of the option
                type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: Config not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/config/{section}/{option} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/config/{section}/{option}"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/config/{section}/{option}';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    delete:
      summary: Delete option
      description: Delete an option of a section.
      tags:
        - Config
      parameters:
        - name: section
          in: path
          description: The section.
          schema:
            type: string
          style: simple
          required: true
        - name: option
          in: path
          description: The option of the section.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
        '401':
          description: Invalid Auth Token
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request DELETE \
              --url http://undefinedundefined/config/{section}/{option} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/config/{section}/{option}"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("DELETE", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/config/{section}/{option}';


            let options = {method: 'DELETE', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /config/{section}:
    get:
      summary: List Sections
      tags:
        - Config
      parameters:
        - name: section
          in: path
          description: The section to return.
          schema:
            type: string
          style: simple
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - bytes
              properties:
                bytes:
                  description: The new limit in bytes.
                  type: integer
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: Dictionary of section options.
                type: object
        '401':
          description: Invalid Auth Token
        '404':
          description: Config not found
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/config/{section} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{"bytes":0}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/config/{section}"


            payload = {"bytes": 0}

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("GET", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/config/{section}';

            let options = {
              method: 'GET',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{"bytes":0}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    delete:
      summary: Remove an existing section
      tags:
        - Config
      parameters:
        - name: section
          in: path
          description: The section.
          required: true
      responses:
        '200':
          description: OK
        '401':
          description: Invalid Auth Token
        '404':
          description: Config not found
        '406':
          description: Not acceptable
  /config:
    get:
      summary: List
      description: List the full configuration.
      tags:
        - Config
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: >-
                  A dict with the sections as keys and a dict with the
                  configuration as value.
                type: object
        '401':
          description: Invalid Auth Token
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/config \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/config"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/config';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
    post:
      summary: Create
      description: Create or set the configuration option in the requested section.
      tags:
        - Config
      requestBody:
        content:
          application/json:
            schema:
              description: >-
                The request body is expected to contain a json {'section':
                {'option': 'value'}}.
              type: object
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '400':
          description: The input data was incomplete or invalid
        '401':
          description: Invalid Auth Token
        '500':
          description: Configuration error
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/config \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \
              --header 'content-type: application/json' \
              --data '{}'
        - lang: Python
          source: >-
            import requests


            url = "http://undefinedundefined/config"


            payload = {}

            headers = {
                "X-Rucio-Auth-Token": "REPLACE_KEY_VALUE",
                "content-type": "application/json"
            }


            response = requests.request("POST", url, json=payload,
            headers=headers)


            print(response.text)
        - lang: Node
          source: |-
            const fetch = require('node-fetch');

            let url = 'http://undefinedundefined/config';

            let options = {
              method: 'POST',
              headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'},
              body: '{}'
            };

            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /scopes/{account}/{scope}:
    post:
      summary: Add Scope
      description: Adds a new scope.
      tags:
        - Scopes
      parameters:
        - name: account
          in: path
          description: The account associated with the scope.
          schema:
            type: string
          style: simple
          required: true
        - name: scope
          in: path
          description: The name of the scope.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: string
                enum:
                  - Created
        '401':
          description: Invalid Auth Token
        '404':
          description: Account not found
        '409':
          description: Scope already exists
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request POST \
              --url http://undefinedundefined/scopes/{account}/{scope} \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/scopes/{account}/{scope}"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("POST", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/scopes/{account}/{scope}';


            let options = {method: 'POST', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
  /scopes/{account}/scopes:
    get:
      summary: List Account Scopes
      description: List all scopes for an account.
      tags:
        - Scopes
      parameters:
        - name: account
          in: path
          description: The account associated with the scope.
          schema:
            type: string
          style: simple
          required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: All scopes for the account.
                type: array
                items:
                  description: A scope for the account.
                  type: string
        '401':
          description: Invalid Auth Token
        '404':
          description: Account not found or no scopes
        '406':
          description: Not acceptable
      x-codeSamples:
        - lang: Shell
          source: |-
            curl --request GET \
              --url http://undefinedundefined/scopes/{account}/scopes \
              --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE'
        - lang: Python
          source: |-
            import requests

            url = "http://undefinedundefined/scopes/{account}/scopes"

            headers = {"X-Rucio-Auth-Token": "REPLACE_KEY_VALUE"}

            response = requests.request("GET", url, headers=headers)

            print(response.text)
        - lang: Node
          source: >-
            const fetch = require('node-fetch');


            let url = 'http://undefinedundefined/scopes/{account}/scopes';


            let options = {method: 'GET', headers: {'X-Rucio-Auth-Token':
            'REPLACE_KEY_VALUE'}};


            fetch(url, options)
              .then(res => res.json())
              .then(json => console.log(json))
              .catch(err => console.error('error:' + err));
openapi: 3.0.2

