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: 34.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}: {} /accountlimits/local/{account}/{rse}: 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)); 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)); /accountlimits/global/{account}/{rse_expression}: 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)); 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)); /accounts/{account}/attr/{key}: 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)); 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)); /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: 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: string 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)); 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)); 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)); /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}: 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)); 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)); /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)); /auth/userpass: 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)); 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)); /auth/gss: 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)); 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)); /auth/x509: 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)); 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)); /auth/ssh: 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)); 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)); /auth/ssh_challenge_token: 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)); 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)); /auth/saml: 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)); 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)); /auth/validate: 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)); 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)); /auth/oidc: 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)); 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)); /auth/oidc_token: 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)); 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)); /auth/oidc_code: 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)); 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)); /auth/oidc_redirect: 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)); 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)); /auth/oidc_refresh: 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)); 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)); /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)); /config: 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)); 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)); /credentials/signurl: 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)); 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)); /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. schema: type: string style: simple required: true requestBody: content: application/json: schema: type: object properties: name: description: The name of the did. type: string recursive: description: If specified, also returns the child ids recursively. 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}/ \ --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \ --header 'content-type: application/json' \ --data '{"name":"string","recursive":true}' - lang: Python source: >- import requests url = "http://undefinedundefined/dids/{scope}/" payload = { "name": "string", "recursive": True } 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/dids/{scope}/'; let options = { method: 'GET', headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'}, body: '{"name":"string","recursive":true}' }; 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}/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 od 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 chilred. 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 dictionarie 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_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}/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/{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/{scope_name}/dids: 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)); 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)); 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)); /dids/{scope_name}/meta: post: summary: Add metadata description: Add metadata to 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 required: - meta properties: meta: description: >- The metadata to add. A dictionary containing the metadata name as key and the value as value. type: object recursive: description: >- Flag if the metadata should be applied recirsively to children. type: boolean default: false responses: '201': description: Created 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/{scope_name}/meta \ --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \ --header 'content-type: application/json' \ --data '{"meta":{},"recursive":false}' - lang: Python source: >- import requests url = "http://undefinedundefined/dids/{scope_name}/meta" payload = { "meta": {}, "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: '{"meta":{},"recursive":false}' }; fetch(url, options) .then(res => res.json()) .then(json => console.log(json)) .catch(err => console.error('error:' + err)); get: summary: Get metadata description: Get the metadata of 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: plugin in: query description: The plugin to use. schema: type: string default: DID_COLUMN responses: '200': description: OK content: application/json: schema: description: A data identifier with all attributes. type: object '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}/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)); delete: summary: Delete metadata description: Deletes the specified metadata from 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 - name: key in: query description: The key to delete. schema: type: string responses: '200': description: OK '400': description: scope_name could not be parsed. '401': description: Invalid Auth Token '404': description: Did or key not found '406': description: Not acceptable '409': description: Feature is not in current database. 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)); /dids/{scope_name}/meta/{key}: post: summary: Add metadata description: Add metadata to 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: key in: path description: The key for the metadata. schema: type: string style: simple required: true requestBody: content: application/json: schema: type: object required: - value properties: value: description: The value to set. type: object responses: '201': description: Created content: application/json: schema: type: string enum: - Created '400': description: Invalid key or value '401': description: Invalid Auth Token '404': description: Did not found '406': description: Not acceptable '409': description: Metadata already exists x-codeSamples: - lang: Shell source: |- curl --request POST \ --url http://undefinedundefined/dids/{scope_name}/meta/{key} \ --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' \ --header 'content-type: application/json' \ --data '{"value":{}}' - lang: Python source: >- import requests url = "http://undefinedundefined/dids/{scope_name}/meta/{key}" payload = {"value": {}} 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/{key}'; let options = { method: 'POST', headers: {'X-Rucio-Auth-Token': 'REPLACE_KEY_VALUE', 'content-type': 'application/json'}, body: '{"value":{}}' }; fetch(url, options) .then(res => res.json()) .then(json => console.log(json)) .catch(err => console.error('error:' + err)); /dids/bulkdidsmeta: post: summary: Add metadata bulk description: Adds metadata in a bulk. tags: - Data Identifiers requestBody: content: application/json: schema: type: object required: - dids properties: dids: description: A list with all the dids and the metadata. type: array items: description: The did and associated metadata. type: object properties: scope: description: The scope of the did. type: string name: description: The name of the did. type: string meta: description: >- The metadata to add. A dictionary with the meta key as key and the value as value. type: object responses: '200': description: Created content: application/json: schema: type: string enum: - Created '401': description: Invalid Auth Token '404': description: Did not found '406': description: Not acceptable '409': description: Unsupported Operation 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/{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: 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)); 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)); 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)); /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/{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/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 to 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 to 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/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/resurrect: post: summary: Resurrect dids description: Resurrect all given dids. tags: - Data Identifiers requestBody: content: application/json: schema: description: List of did 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)); /dids/bulkmeta: post: summary: Get metadata bulk description: List all metadata of a list of data identifiers. tags: - Data Identifiers requestBody: content: application/x-json-stream: schema: type: object required: - dids properties: dids: description: The dids. type: array items: description: A did. type: object properties: name: description: The name of the did. type: string scope: description: The scope of the did. type: string inherit: description: Concatenated the metadata of the parent if set to true. type: boolean default: false responses: '200': description: OK content: application/json: schema: description: >- A list of metadata identifiers for the dids. Separated by new lines. type: array items: description: The metadata for one did. type: object '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/dids/bulkmeta \ --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' - lang: Python source: |- import requests url = "http://undefinedundefined/dids/bulkmeta" 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/bulkmeta'; 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/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)); /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': , 'rse': , 'bytes': , 'adler32': , 'guid': , '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)); /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)); /heartbeats: 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)); 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)); /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)); /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)); /lifetime_exceptions/: 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)); 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)); /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)); /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: - >- Can not 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)); /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}/: 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)); 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)); /meta/{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/{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/{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/{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/{key}/: 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/{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/{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/{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)); 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/{key}/ \ --header 'X-Rucio-Auth-Token: REPLACE_KEY_VALUE' - lang: Python source: |- import requests url = "http://undefinedundefined/meta/{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/{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)); /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)); /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', 'closeness', 'dynamic', 'ranking', 'random'. schema: type: string - name: sort in: query description: >- Requested sorting of the result, e.g., 'geoip', 'closeness', 'dynamic', 'ranking', 'random'. schema: type: string requestBody: content: application/json: schema: type: object properties: client_location: description: The clients 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', 'closeness', 'dynamic', 'ranking', '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 - closeness - dynamic - ranking - 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: 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)); 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)); /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 ennable 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)); /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 retires. 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 retires. 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 retires. 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 retires. 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 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' \ --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"} 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'; 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}/attr/{key}: 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)); 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)); /rses/{source}/distances/{destination}: 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)); 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)); /rses/{rse}/protocols/{scheme}/{hostname}/{port}: put: summary: Update Protocol Attributes description: >- Updates attributes of an existing protocol entry. Because protocol identifier, hostname, and port are used as unique identifier 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 deterministicly. 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)); 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)); /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 deterministicly. 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: 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)); 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)); /rses/{rse}/qos_policy/{policy}: 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)); 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)); /rses/{rse}: 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 deterministicly. 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 deterministicly. 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 vailability of the RSE. type: boolean availability_write: description: The vailability of the RSE. type: boolean availability_delete: description: The vailability of the RSE. type: boolean deterministic: description: If the pfn is generated deterministicly. 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)); 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)); /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)); /rules/{rule_id}: 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)); 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)); /rules/: 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)); 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)); /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)); /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)); /subscriptions/Id/{subscription_id}: get: summary: Get Subscription from ID description: Retrieve a subscription matching the given subscription id. tags: - Replicas 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: - Replicas 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: - Replicas 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: - Replicas 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: - Replicas 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: - Replicas 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 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}}' - 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 }} 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}}' }; 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: - Replicas 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)); openapi: 3.0.2