From d020b10532b6bdffa4e00936650254d273022ab5 Mon Sep 17 00:00:00 2001 From: Oleh Paduchak Date: Tue, 27 May 2025 13:18:20 +0300 Subject: [PATCH 01/13] base swagger imp --- app/settings.py | 49 +++++++++++++- app/urls.py | 16 +++++ poetry.lock | 168 ++++++++++++++++++++++++++++++++++++------------ pyproject.toml | 2 + 4 files changed, 193 insertions(+), 42 deletions(-) diff --git a/app/settings.py b/app/settings.py index 814f2c82..5efd6297 100644 --- a/app/settings.py +++ b/app/settings.py @@ -107,6 +107,7 @@ "rest_framework_json_api", "addon_service", "django_celery_beat", + "drf_spectacular", ] MIDDLEWARE = [ @@ -171,7 +172,37 @@ }, }, } - +SWAGGER_SETTINGS = { + "DEFAULT_AUTO_SCHEMA_CLASS": "drf_yasg_json_api.inspectors.SwaggerAutoSchema", # Overridden + "DEFAULT_FIELD_INSPECTORS": [ + "drf_yasg_json_api.inspectors.NamesFormatFilter", # Replaces CamelCaseJSONFilter + "drf_yasg.inspectors.RecursiveFieldInspector", + "drf_yasg_json_api.inspectors.XPropertiesFilter", # Added + "drf_yasg_json_api.inspectors.JSONAPISerializerSmartInspector", # Added + "drf_yasg.inspectors.ReferencingSerializerInspector", + "drf_yasg_json_api.inspectors.IntegerIDFieldInspector", # Added + "drf_yasg.inspectors.ChoiceFieldInspector", + "drf_yasg.inspectors.FileFieldInspector", + "drf_yasg.inspectors.DictFieldInspector", + "drf_yasg.inspectors.JSONFieldInspector", + "drf_yasg.inspectors.HiddenFieldInspector", + "drf_yasg_json_api.inspectors.ManyRelatedFieldInspector", # Added + "drf_yasg_json_api.inspectors.IntegerPrimaryKeyRelatedFieldInspector", # Added + "drf_yasg.inspectors.RelatedFieldInspector", + "drf_yasg.inspectors.SerializerMethodFieldInspector", + "drf_yasg.inspectors.SimpleFieldInspector", + "drf_yasg.inspectors.StringDefaultFieldInspector", + ], + "DEFAULT_FILTER_INSPECTORS": [ + "drf_yasg_json_api.inspectors.DjangoFilterInspector", # Added (optional), requires django_filter + "drf_yasg.inspectors.CoreAPICompatInspector", + ], + "DEFAULT_PAGINATOR_INSPECTORS": [ + "drf_yasg_json_api.inspectors.DjangoRestResponsePagination", # Added + "drf_yasg.inspectors.DjangoRestResponsePagination", + "drf_yasg.inspectors.CoreAPICompatInspector", + ], +} if env.OSFDB_HOST: DATABASES["osf"] = { "ENGINE": "django.db.backends.postgresql", @@ -193,12 +224,13 @@ REST_FRAMEWORK = { "PAGE_SIZE": 101, "EXCEPTION_HANDLER": "addon_service.exception_handler.api_exception_handler", - "DEFAULT_PAGINATION_CLASS": "rest_framework_json_api.pagination.JsonApiPageNumberPagination", + "DEFAULT_PAGINATION_CLASS": "drf_spectacular_jsonapi.schemas.pagination.JsonApiPageNumberPagination", "DEFAULT_PARSER_CLASSES": ( "rest_framework_json_api.parsers.JSONParser", "rest_framework.parsers.FormParser", "rest_framework.parsers.MultiPartParser", ), + "DEFAULT_SCHEMA_CLASS": "drf_spectacular_jsonapi.schemas.openapi.JsonApiAutoSchema", "DEFAULT_RENDERER_CLASSES": ( "rest_framework_json_api.renderers.JSONRenderer", "rest_framework_json_api.renderers.BrowsableAPIRenderer", @@ -219,6 +251,19 @@ "TEST_REQUEST_DEFAULT_FORMAT": "vnd.api+json", } +SPECTACULAR_SETTINGS = { + "TITLE": "GravyValet API", + "DESCRIPTION": "Addons service designed for use with OSF", + "VERSION": "1.0.0", + "SERVE_INCLUDE_SCHEMA": False, + "COMPONENT_SPLIT_REQUEST": True, + "PREPROCESSING_HOOKS": ["drf_spectacular_jsonapi.hooks.fix_nested_path_parameters"], + "EXTENSIONS_INFO": { + "drf_spectacular_jsonapi.extensions.JSONAPIResourceExtension": {}, + "drf_spectacular_jsonapi.extensions.JSONAPIErrorExtension": {}, + }, + # OTHER SETTINGS +} # Password validation # https://docs.djangoproject.com/en/3.1/ref/settings/#auth-password-validators diff --git a/app/urls.py b/app/urls.py index 1e307e51..74285096 100644 --- a/app/urls.py +++ b/app/urls.py @@ -5,6 +5,11 @@ path, ) from django.views.generic.base import RedirectView +from drf_spectacular.views import ( + SpectacularAPIView, + SpectacularRedocView, + SpectacularSwaggerView, +) urlpatterns = [ @@ -15,6 +20,17 @@ RedirectView.as_view(url="/static/gravyvalet_code_docs/index.html"), name="docs-root", ), + path("api/schema/", SpectacularAPIView.as_view(), name="schema"), + path( + "api/schema/swagger-ui/", + SpectacularSwaggerView.as_view(url_name="schema"), + name="swagger-ui", + ), + path( + "api/schema/redoc/", + SpectacularRedocView.as_view(url_name="schema"), + name="redoc", + ), ] if "silk" in settings.INSTALLED_APPS: diff --git a/poetry.lock b/poetry.lock index e4a9d38d..379dc305 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.1.2 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.0.1 and should not be changed by hand. [[package]] name = "aiohappyeyeballs" @@ -113,7 +113,7 @@ propcache = ">=0.2.0" yarl = ">=1.17.0,<2.0" [package.extras] -speedups = ["Brotli ; platform_python_implementation == \"CPython\"", "aiodns (>=3.2.0) ; sys_platform == \"linux\" or sys_platform == \"darwin\"", "brotlicffi ; platform_python_implementation != \"CPython\""] +speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"] [[package]] name = "aiosignal" @@ -173,12 +173,12 @@ files = [ ] [package.extras] -benchmark = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\"", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\"", "pytest-xdist[psutil]"] -cov = ["cloudpickle ; platform_python_implementation == \"CPython\"", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\"", "pytest-xdist[psutil]"] -dev = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\"", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\"", "pytest-xdist[psutil]"] +benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] -tests = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\"", "pytest-xdist[psutil]"] -tests-mypy = ["mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\"", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\""] +tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] [[package]] name = "autobahn" @@ -199,13 +199,13 @@ setuptools = "*" txaio = ">=21.2.1" [package.extras] -all = ["PyGObject (>=3.40.0)", "argon2-cffi (>=20.1.0)", "attrs (>=20.3.0)", "base58 (>=2.1.0)", "bitarray (>=2.7.5)", "cbor2 (>=5.2.0)", "cffi (>=1.14.5)", "click (>=8.1.2)", "ecdsa (>=0.16.1)", "eth-abi (>=4.0.0)", "flatbuffers (>=22.12.6)", "hkdf (>=0.0.3)", "jinja2 (>=2.11.3)", "mnemonic (>=0.19)", "msgpack (>=1.0.2) ; platform_python_implementation == \"CPython\"", "passlib (>=1.7.4)", "py-ecc (>=5.1.0)", "py-eth-sig-utils (>=0.4.0)", "py-multihash (>=2.0.1)", "py-ubjson (>=0.16.1)", "pynacl (>=1.4.0)", "pyopenssl (>=20.0.1)", "python-snappy (>=0.6.0)", "pytrie (>=0.4.0)", "qrcode (>=7.3.1)", "rlp (>=2.0.1)", "service-identity (>=18.1.0)", "spake2 (>=0.8)", "twisted (>=20.3.0)", "twisted (>=24.3.0)", "u-msgpack-python (>=2.1) ; platform_python_implementation != \"CPython\"", "ujson (>=4.0.2) ; platform_python_implementation == \"CPython\"", "web3[ipfs] (>=6.0.0)", "xbr (>=21.2.1)", "yapf (==0.29.0)", "zlmdb (>=21.2.1)", "zope.interface (>=5.2.0)"] +all = ["PyGObject (>=3.40.0)", "argon2-cffi (>=20.1.0)", "attrs (>=20.3.0)", "base58 (>=2.1.0)", "bitarray (>=2.7.5)", "cbor2 (>=5.2.0)", "cffi (>=1.14.5)", "click (>=8.1.2)", "ecdsa (>=0.16.1)", "eth-abi (>=4.0.0)", "flatbuffers (>=22.12.6)", "hkdf (>=0.0.3)", "jinja2 (>=2.11.3)", "mnemonic (>=0.19)", "msgpack (>=1.0.2)", "passlib (>=1.7.4)", "py-ecc (>=5.1.0)", "py-eth-sig-utils (>=0.4.0)", "py-multihash (>=2.0.1)", "py-ubjson (>=0.16.1)", "pynacl (>=1.4.0)", "pyopenssl (>=20.0.1)", "python-snappy (>=0.6.0)", "pytrie (>=0.4.0)", "qrcode (>=7.3.1)", "rlp (>=2.0.1)", "service-identity (>=18.1.0)", "spake2 (>=0.8)", "twisted (>=20.3.0)", "twisted (>=24.3.0)", "u-msgpack-python (>=2.1)", "ujson (>=4.0.2)", "web3[ipfs] (>=6.0.0)", "xbr (>=21.2.1)", "yapf (==0.29.0)", "zlmdb (>=21.2.1)", "zope.interface (>=5.2.0)"] compress = ["python-snappy (>=0.6.0)"] -dev = ["backports.tempfile (>=1.0)", "build (>=1.2.1)", "bumpversion (>=0.5.3)", "codecov (>=2.0.15)", "flake8 (<5)", "humanize (>=0.5.1)", "mypy (>=0.610) ; python_version >= \"3.4\" and platform_python_implementation != \"PyPy\"", "passlib", "pep8-naming (>=0.3.3)", "pip (>=9.0.1)", "pyenchant (>=1.6.6)", "pyflakes (>=1.0.0)", "pyinstaller (>=4.2)", "pylint (>=1.9.2)", "pytest (>=3.4.2)", "pytest-aiohttp", "pytest-asyncio (>=0.14.0)", "pytest-runner (>=2.11.1)", "pyyaml (>=4.2b4)", "qualname", "sphinx (>=1.7.1)", "sphinx-autoapi (>=1.7.0)", "sphinx-rtd-theme (>=0.1.9)", "sphinxcontrib-images (>=0.9.1)", "tox (>=4.2.8)", "tox-gh-actions (>=2.2.0)", "twine (>=3.3.0)", "twisted (>=22.10.0)", "txaio (>=20.4.1)", "watchdog (>=0.8.3)", "wheel (>=0.36.2)", "yapf (==0.29.0)"] +dev = ["backports.tempfile (>=1.0)", "build (>=1.2.1)", "bumpversion (>=0.5.3)", "codecov (>=2.0.15)", "flake8 (<5)", "humanize (>=0.5.1)", "mypy (>=0.610)", "passlib", "pep8-naming (>=0.3.3)", "pip (>=9.0.1)", "pyenchant (>=1.6.6)", "pyflakes (>=1.0.0)", "pyinstaller (>=4.2)", "pylint (>=1.9.2)", "pytest (>=3.4.2)", "pytest-aiohttp", "pytest-asyncio (>=0.14.0)", "pytest-runner (>=2.11.1)", "pyyaml (>=4.2b4)", "qualname", "sphinx (>=1.7.1)", "sphinx-autoapi (>=1.7.0)", "sphinx-rtd-theme (>=0.1.9)", "sphinxcontrib-images (>=0.9.1)", "tox (>=4.2.8)", "tox-gh-actions (>=2.2.0)", "twine (>=3.3.0)", "twisted (>=22.10.0)", "txaio (>=20.4.1)", "watchdog (>=0.8.3)", "wheel (>=0.36.2)", "yapf (==0.29.0)"] encryption = ["pynacl (>=1.4.0)", "pyopenssl (>=20.0.1)", "pytrie (>=0.4.0)", "qrcode (>=7.3.1)", "service-identity (>=18.1.0)"] nvx = ["cffi (>=1.14.5)"] scram = ["argon2-cffi (>=20.1.0)", "cffi (>=1.14.5)", "passlib (>=1.7.4)"] -serialization = ["cbor2 (>=5.2.0)", "flatbuffers (>=22.12.6)", "msgpack (>=1.0.2) ; platform_python_implementation == \"CPython\"", "py-ubjson (>=0.16.1)", "u-msgpack-python (>=2.1) ; platform_python_implementation != \"CPython\"", "ujson (>=4.0.2) ; platform_python_implementation == \"CPython\""] +serialization = ["cbor2 (>=5.2.0)", "flatbuffers (>=22.12.6)", "msgpack (>=1.0.2)", "py-ubjson (>=0.16.1)", "u-msgpack-python (>=2.1)", "ujson (>=4.0.2)"] twisted = ["attrs (>=20.3.0)", "twisted (>=24.3.0)", "zope.interface (>=5.2.0)"] ui = ["PyGObject (>=3.40.0)"] xbr = ["base58 (>=2.1.0)", "bitarray (>=2.7.5)", "cbor2 (>=5.2.0)", "click (>=8.1.2)", "ecdsa (>=0.16.1)", "eth-abi (>=4.0.0)", "hkdf (>=0.0.3)", "jinja2 (>=2.11.3)", "mnemonic (>=0.19)", "py-ecc (>=5.1.0)", "py-eth-sig-utils (>=0.4.0)", "py-multihash (>=2.0.1)", "rlp (>=2.0.1)", "spake2 (>=0.8)", "twisted (>=20.3.0)", "web3[ipfs] (>=6.0.0)", "xbr (>=21.2.1)", "yapf (==0.29.0)", "zlmdb (>=21.2.1)"] @@ -330,33 +330,33 @@ vine = ">=5.1.0,<6.0" arangodb = ["pyArango (>=2.0.2)"] auth = ["cryptography (==44.0.2)"] azureblockblob = ["azure-identity (>=1.19.0)", "azure-storage-blob (>=12.15.0)"] -brotli = ["brotli (>=1.0.0) ; platform_python_implementation == \"CPython\"", "brotlipy (>=0.7.0) ; platform_python_implementation == \"PyPy\""] +brotli = ["brotli (>=1.0.0)", "brotlipy (>=0.7.0)"] cassandra = ["cassandra-driver (>=3.25.0,<4)"] consul = ["python-consul2 (==0.1.5)"] cosmosdbsql = ["pydocumentdb (==2.3.5)"] -couchbase = ["couchbase (>=3.0.0) ; platform_python_implementation != \"PyPy\" and (platform_system != \"Windows\" or python_version < \"3.10\")"] +couchbase = ["couchbase (>=3.0.0)"] couchdb = ["pycouchdb (==1.16.0)"] django = ["Django (>=2.2.28)"] dynamodb = ["boto3 (>=1.26.143)"] elasticsearch = ["elastic-transport (<=8.17.1)", "elasticsearch (<=8.17.2)"] -eventlet = ["eventlet (>=0.32.0) ; python_version < \"3.10\""] +eventlet = ["eventlet (>=0.32.0)"] gcs = ["google-cloud-firestore (==2.20.1)", "google-cloud-storage (>=2.10.0)", "grpcio (==1.67.0)"] gevent = ["gevent (>=1.5.0)"] -librabbitmq = ["librabbitmq (>=2.0.0) ; python_version < \"3.11\""] -memcache = ["pylibmc (==1.6.3) ; platform_system != \"Windows\""] +librabbitmq = ["librabbitmq (>=2.0.0)"] +memcache = ["pylibmc (==1.6.3)"] mongodb = ["pymongo (==4.10.1)"] msgpack = ["msgpack (==1.1.0)"] pydantic = ["pydantic (>=2.4)"] pymemcache = ["python-memcached (>=1.61)"] -pyro = ["pyro4 (==4.82) ; python_version < \"3.11\""] +pyro = ["pyro4 (==4.82)"] pytest = ["pytest-celery[all] (>=1.2.0,<1.3.0)"] redis = ["redis (>=4.5.2,!=4.5.5,<6.0.0)"] s3 = ["boto3 (>=1.26.143)"] slmq = ["softlayer_messaging (>=1.0.3)"] -solar = ["ephem (==4.2) ; platform_python_implementation != \"PyPy\""] +solar = ["ephem (==4.2)"] sqlalchemy = ["sqlalchemy (>=1.4.48,<2.1)"] sqs = ["boto3 (>=1.26.143)", "kombu[sqs] (>=5.3.4)", "urllib3 (>=1.26.16)"] -tblib = ["tblib (>=1.3.0) ; python_version < \"3.8.0\"", "tblib (>=1.5.0) ; python_version >= \"3.8.0\""] +tblib = ["tblib (>=1.3.0)", "tblib (>=1.5.0)"] yaml = ["PyYAML (>=3.10)"] zookeeper = ["kazoo (>=1.3.1)"] zstd = ["zstandard (==0.23.0)"] @@ -718,10 +718,10 @@ files = [ cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} [package.extras] -docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=3.0.0) ; python_version >= \"3.8\""] +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=3.0.0)"] docstest = ["pyenchant (>=3)", "readme-renderer (>=30.0)", "sphinxcontrib-spelling (>=7.3.1)"] -nox = ["nox (>=2024.4.15)", "nox[uv] (>=2024.3.2) ; python_version >= \"3.8\""] -pep8test = ["check-sdist ; python_version >= \"3.8\"", "click (>=8.0.1)", "mypy (>=1.4)", "ruff (>=0.3.6)"] +nox = ["nox (>=2024.4.15)", "nox[uv] (>=2024.3.2)"] +pep8test = ["check-sdist", "click (>=8.0.1)", "mypy (>=1.4)", "ruff (>=0.3.6)"] sdist = ["build (>=1.0.0)"] ssh = ["bcrypt (>=3.1.5)"] test = ["certifi (>=2024)", "cryptography-vectors (==44.0.1)", "pretend (>=0.7)", "pytest (>=7.4.0)", "pytest-benchmark (>=4.0)", "pytest-cov (>=2.10.1)", "pytest-xdist (>=3.5.0)"] @@ -901,6 +901,70 @@ django-filter = ["django-filter (>=2.4)"] django-polymorphic = ["django-polymorphic (>=3.0)"] openapi = ["pyyaml (>=5.4)", "uritemplate (>=3.0.1)"] +[[package]] +name = "drf-extensions" +version = "0.8.0" +description = "Extensions for Django REST Framework" +optional = false +python-versions = "*" +groups = ["main"] +files = [ + {file = "drf_extensions-0.8.0-py2.py3-none-any.whl", hash = "sha256:ab7bd854c9061c27ab55233b66d758001e5c2d81aaa9d117cbbe1c9ea49c77ab"}, + {file = "drf_extensions-0.8.0.tar.gz", hash = "sha256:c3f27bca74a2def53e8454a5c7b327595195df51e121743120b2f51ef5a52aaa"}, +] + +[package.dependencies] +Django = ">=2.2,<6.0" +djangorestframework = ">=3.10.3" +packaging = ">=24.1" + +[[package]] +name = "drf-spectacular" +version = "0.28.0" +description = "Sane and flexible OpenAPI 3 schema generation for Django REST framework" +optional = false +python-versions = ">=3.7" +groups = ["main"] +files = [ + {file = "drf_spectacular-0.28.0-py3-none-any.whl", hash = "sha256:856e7edf1056e49a4245e87a61e8da4baff46c83dbc25be1da2df77f354c7cb4"}, + {file = "drf_spectacular-0.28.0.tar.gz", hash = "sha256:2c778a47a40ab2f5078a7c42e82baba07397bb35b074ae4680721b2805943061"}, +] + +[package.dependencies] +Django = ">=2.2" +djangorestframework = ">=3.10.3" +inflection = ">=0.3.1" +jsonschema = ">=2.6.0" +PyYAML = ">=5.1" +uritemplate = ">=2.0.0" + +[package.extras] +offline = ["drf-spectacular-sidecar"] +sidecar = ["drf-spectacular-sidecar"] + +[[package]] +name = "drf-spectacular-jsonapi" +version = "0.5.2" +description = "open api 3 schema generator for drf-json-api package based on drf-spectacular package." +optional = false +python-versions = ">=3.7" +groups = ["main"] +files = [] +develop = false + +[package.dependencies] +Django = ">=3.2" +djangorestframework = ">=3.13" +djangorestframework-jsonapi = ">=6.0.0" +drf-extensions = ">=0.7.1" +drf-spectacular = ">=0.25.0" + +[package.source] +type = "git" +url = "ssh://git@github.com/opaduchak/drf-spectacular-json-api.git" +reference = "osf-fixes" +resolved_reference = "f280b852dbee1667c21a1998e7009567bfc113c4" + [[package]] name = "factory-boy" version = "3.3.1" @@ -950,7 +1014,7 @@ files = [ [package.extras] docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8.0.1)", "pytest (>=7.4.3)", "pytest-asyncio (>=0.21)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)", "virtualenv (>=20.26.2)"] -typing = ["typing-extensions (>=4.8) ; python_version < \"3.11\""] +typing = ["typing-extensions (>=4.8)"] [[package]] name = "flake8" @@ -1257,7 +1321,7 @@ azurestoragequeues = ["azure-identity (>=1.12.0)", "azure-storage-queue (>=12.6. confluentkafka = ["confluent-kafka (>=2.2.0)"] consul = ["python-consul2 (==0.1.5)"] gcpubsub = ["google-cloud-monitoring (>=2.16.0)", "google-cloud-pubsub (>=2.18.4)", "grpcio (==1.67.0)", "protobuf (==4.25.5)"] -librabbitmq = ["librabbitmq (>=2.0.0) ; python_version < \"3.11\""] +librabbitmq = ["librabbitmq (>=2.0.0)"] mongodb = ["pymongo (>=4.1.1)"] msgpack = ["msgpack (==1.1.0)"] pyro = ["pyro4 (==4.82)"] @@ -1505,6 +1569,18 @@ files = [ {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, ] +[[package]] +name = "packaging" +version = "25.0" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484"}, + {file = "packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f"}, +] + [[package]] name = "pdoc" version = "14.5.1" @@ -1703,8 +1779,8 @@ typing-extensions = {version = ">=4.6", markers = "python_version < \"3.13\""} tzdata = {version = "*", markers = "sys_platform == \"win32\""} [package.extras] -binary = ["psycopg-binary (==3.2.6) ; implementation_name != \"pypy\""] -c = ["psycopg-c (==3.2.6) ; implementation_name != \"pypy\""] +binary = ["psycopg-binary (==3.2.6)"] +c = ["psycopg-c (==3.2.6)"] dev = ["ast-comments (>=1.1.2)", "black (>=24.1.0)", "codespell (>=2.2)", "dnspython (>=2.1)", "flake8 (>=4.0)", "isort-psycopg", "isort[colors] (>=6.0)", "mypy (>=1.14)", "pre-commit (>=4.0.1)", "types-setuptools (>=57.4)", "wheel (>=0.37)"] docs = ["Sphinx (>=5.0)", "furo (==2022.6.21)", "sphinx-autobuild (>=2021.3.14)", "sphinx-autodoc-typehints (>=1.12)"] pool = ["psycopg-pool"] @@ -1951,7 +2027,7 @@ version = "6.0.2" description = "YAML parser and emitter for Python" optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["main", "dev"] files = [ {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, @@ -2080,7 +2156,7 @@ requests = ">=2.30.0,<3.0" urllib3 = ">=1.25.10,<3.0" [package.extras] -tests = ["coverage (>=6.0.0)", "flake8", "mypy", "pytest (>=7.0.0)", "pytest-asyncio", "pytest-cov", "pytest-httpserver", "tomli ; python_version < \"3.11\"", "tomli-w", "types-PyYAML", "types-requests"] +tests = ["coverage (>=6.0.0)", "flake8", "mypy", "pytest (>=7.0.0)", "pytest-asyncio", "pytest-cov", "pytest-httpserver", "tomli", "tomli-w", "types-PyYAML", "types-requests"] [[package]] name = "rpds-py" @@ -2302,9 +2378,9 @@ files = [ ] [package.extras] -core = ["importlib-metadata (>=6) ; python_version < \"3.10\"", "importlib-resources (>=5.10.2) ; python_version < \"3.9\"", "jaraco.text (>=3.7)", "more-itertools (>=8.8)", "ordered-set (>=3.1.1)", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1) ; python_version < \"3.11\"", "wheel (>=0.43.0)"] +core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.text (>=3.7)", "more-itertools (>=8.8)", "ordered-set (>=3.1.1)", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] -test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21) ; python_version >= \"3.9\" and sys_platform != \"cygwin\"", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.11.*)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf ; sys_platform != \"cygwin\"", "pytest-ruff (<0.4) ; platform_system == \"Windows\"", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\"", "pytest-ruff (>=0.3.2) ; sys_platform != \"cygwin\"", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.11.*)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (<0.4)", "pytest-ruff (>=0.2.1)", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] [[package]] name = "six" @@ -2381,19 +2457,19 @@ typing-extensions = ">=4.2.0" zope-interface = ">=5" [package.extras] -all-non-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226) ; platform_system == \"Windows\"", "pywin32 (!=226) ; platform_system == \"Windows\"", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)"] +all-non-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226)", "pywin32 (!=226)", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)"] conch = ["appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)"] dev = ["coverage (>=7.5,<8.0)", "cython-test-exception-raiser (>=1.0.2,<2)", "hypothesis (>=6.56)", "pydoctor (>=23.9.0,<23.10.0)", "pyflakes (>=2.2,<3.0)", "pyhamcrest (>=2)", "python-subunit (>=1.4,<2.0)", "sphinx (>=6,<7)", "sphinx-rtd-theme (>=1.3,<2.0)", "towncrier (>=23.6,<24.0)", "twistedchecker (>=0.7,<1.0)"] dev-release = ["pydoctor (>=23.9.0,<23.10.0)", "pydoctor (>=23.9.0,<23.10.0)", "sphinx (>=6,<7)", "sphinx (>=6,<7)", "sphinx-rtd-theme (>=1.3,<2.0)", "sphinx-rtd-theme (>=1.3,<2.0)", "towncrier (>=23.6,<24.0)", "towncrier (>=23.6,<24.0)"] -gtk-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pygobject", "pygobject", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226) ; platform_system == \"Windows\"", "pywin32 (!=226) ; platform_system == \"Windows\"", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)"] +gtk-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pygobject", "pygobject", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226)", "pywin32 (!=226)", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)"] http2 = ["h2 (>=3.0,<5.0)", "priority (>=1.1.0,<2.0)"] -macos-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyobjc-core", "pyobjc-core", "pyobjc-framework-cfnetwork", "pyobjc-framework-cfnetwork", "pyobjc-framework-cocoa", "pyobjc-framework-cocoa", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226) ; platform_system == \"Windows\"", "pywin32 (!=226) ; platform_system == \"Windows\"", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)"] -mypy = ["appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "coverage (>=7.5,<8.0)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "idna (>=2.4)", "mypy (>=1.8,<2.0)", "mypy-zope (>=1.0.3,<1.1.0)", "priority (>=1.1.0,<2.0)", "pydoctor (>=23.9.0,<23.10.0)", "pyflakes (>=2.2,<3.0)", "pyhamcrest (>=2)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "python-subunit (>=1.4,<2.0)", "pywin32 (!=226) ; platform_system == \"Windows\"", "service-identity (>=18.1.0)", "sphinx (>=6,<7)", "sphinx-rtd-theme (>=1.3,<2.0)", "towncrier (>=23.6,<24.0)", "twistedchecker (>=0.7,<1.0)", "types-pyopenssl", "types-setuptools"] -osx-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyobjc-core", "pyobjc-core", "pyobjc-framework-cfnetwork", "pyobjc-framework-cfnetwork", "pyobjc-framework-cocoa", "pyobjc-framework-cocoa", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226) ; platform_system == \"Windows\"", "pywin32 (!=226) ; platform_system == \"Windows\"", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)"] -serial = ["pyserial (>=3.0)", "pywin32 (!=226) ; platform_system == \"Windows\""] +macos-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyobjc-core", "pyobjc-core", "pyobjc-framework-cfnetwork", "pyobjc-framework-cfnetwork", "pyobjc-framework-cocoa", "pyobjc-framework-cocoa", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226)", "pywin32 (!=226)", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)"] +mypy = ["appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "coverage (>=7.5,<8.0)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "idna (>=2.4)", "mypy (>=1.8,<2.0)", "mypy-zope (>=1.0.3,<1.1.0)", "priority (>=1.1.0,<2.0)", "pydoctor (>=23.9.0,<23.10.0)", "pyflakes (>=2.2,<3.0)", "pyhamcrest (>=2)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "python-subunit (>=1.4,<2.0)", "pywin32 (!=226)", "service-identity (>=18.1.0)", "sphinx (>=6,<7)", "sphinx-rtd-theme (>=1.3,<2.0)", "towncrier (>=23.6,<24.0)", "twistedchecker (>=0.7,<1.0)", "types-pyopenssl", "types-setuptools"] +osx-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyobjc-core", "pyobjc-core", "pyobjc-framework-cfnetwork", "pyobjc-framework-cfnetwork", "pyobjc-framework-cocoa", "pyobjc-framework-cocoa", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226)", "pywin32 (!=226)", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)"] +serial = ["pyserial (>=3.0)", "pywin32 (!=226)"] test = ["cython-test-exception-raiser (>=1.0.2,<2)", "hypothesis (>=6.56)", "pyhamcrest (>=2)"] tls = ["idna (>=2.4)", "pyopenssl (>=21.0.0)", "service-identity (>=18.1.0)"] -windows-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226)", "pywin32 (!=226)", "pywin32 (!=226) ; platform_system == \"Windows\"", "pywin32 (!=226) ; platform_system == \"Windows\"", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)", "twisted-iocpsupport (>=1.0.2)", "twisted-iocpsupport (>=1.0.2)"] +windows-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226)", "pywin32 (!=226)", "pywin32 (!=226)", "pywin32 (!=226)", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)", "twisted-iocpsupport (>=1.0.2)", "twisted-iocpsupport (>=1.0.2)"] [[package]] name = "txaio" @@ -2423,7 +2499,7 @@ files = [ {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, ] -markers = {dev = "python_version == \"3.12\"", release = "python_version == \"3.12\""} +markers = {dev = "python_version < \"3.13\"", release = "python_version < \"3.13\""} [[package]] name = "tzdata" @@ -2438,6 +2514,18 @@ files = [ ] markers = {dev = "sys_platform == \"win32\"", release = "sys_platform == \"win32\""} +[[package]] +name = "uritemplate" +version = "4.1.1" +description = "Implementation of RFC 6570 URI Templates" +optional = false +python-versions = ">=3.6" +groups = ["main"] +files = [ + {file = "uritemplate-4.1.1-py2.py3-none-any.whl", hash = "sha256:830c08b8d99bdd312ea4ead05994a38e8936266f84b9a7878232db50b044e02e"}, + {file = "uritemplate-4.1.1.tar.gz", hash = "sha256:4346edfc5c3b79f694bccd6d6099a322bbeb628dbf2cd86eea55a456ce5124f0"}, +] + [[package]] name = "urllib3" version = "2.2.2" @@ -2451,7 +2539,7 @@ files = [ ] [package.extras] -brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] @@ -2487,7 +2575,7 @@ platformdirs = ">=3.9.1,<5" [package.extras] docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] -test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8) ; platform_python_implementation == \"PyPy\" or platform_python_implementation == \"CPython\" and sys_platform == \"win32\" and python_version >= \"3.13\"", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10) ; platform_python_implementation == \"CPython\""] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] [[package]] name = "wcwidth" @@ -2653,4 +2741,4 @@ testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] [metadata] lock-version = "2.1" python-versions = "^3.12" -content-hash = "bc1ceda74871d00d3d7b3777b6ba9edfb18c1a3af3497451a2800815818e272a" +content-hash = "b53f0026f04c386056607fc06558e28dcc265180e2cc7bf63cba00a78138c234" diff --git a/pyproject.toml b/pyproject.toml index 0923906a..5fb51e3d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,6 +27,8 @@ django-celery-beat = "^2.7.0" tqdm = "^4.67.1" itsdangerous = "^2.2.0" redis = "^5.2.1" +drf-spectacular = "^0.28.0" +drf-spectacular-jsonapi = {git = "git@github.com:opaduchak/drf-spectacular-json-api.git", branch = "osf-fixes"} [tool.poetry.group.dev.dependencies] From 5fdc139c7e9041051052c98048a145735346fbfd Mon Sep 17 00:00:00 2001 From: Oleh Paduchak Date: Tue, 27 May 2025 15:57:52 +0300 Subject: [PATCH 02/13] removed yasg settings --- app/settings.py | 32 +------------------------------- 1 file changed, 1 insertion(+), 31 deletions(-) diff --git a/app/settings.py b/app/settings.py index 5efd6297..fada488a 100644 --- a/app/settings.py +++ b/app/settings.py @@ -172,37 +172,7 @@ }, }, } -SWAGGER_SETTINGS = { - "DEFAULT_AUTO_SCHEMA_CLASS": "drf_yasg_json_api.inspectors.SwaggerAutoSchema", # Overridden - "DEFAULT_FIELD_INSPECTORS": [ - "drf_yasg_json_api.inspectors.NamesFormatFilter", # Replaces CamelCaseJSONFilter - "drf_yasg.inspectors.RecursiveFieldInspector", - "drf_yasg_json_api.inspectors.XPropertiesFilter", # Added - "drf_yasg_json_api.inspectors.JSONAPISerializerSmartInspector", # Added - "drf_yasg.inspectors.ReferencingSerializerInspector", - "drf_yasg_json_api.inspectors.IntegerIDFieldInspector", # Added - "drf_yasg.inspectors.ChoiceFieldInspector", - "drf_yasg.inspectors.FileFieldInspector", - "drf_yasg.inspectors.DictFieldInspector", - "drf_yasg.inspectors.JSONFieldInspector", - "drf_yasg.inspectors.HiddenFieldInspector", - "drf_yasg_json_api.inspectors.ManyRelatedFieldInspector", # Added - "drf_yasg_json_api.inspectors.IntegerPrimaryKeyRelatedFieldInspector", # Added - "drf_yasg.inspectors.RelatedFieldInspector", - "drf_yasg.inspectors.SerializerMethodFieldInspector", - "drf_yasg.inspectors.SimpleFieldInspector", - "drf_yasg.inspectors.StringDefaultFieldInspector", - ], - "DEFAULT_FILTER_INSPECTORS": [ - "drf_yasg_json_api.inspectors.DjangoFilterInspector", # Added (optional), requires django_filter - "drf_yasg.inspectors.CoreAPICompatInspector", - ], - "DEFAULT_PAGINATOR_INSPECTORS": [ - "drf_yasg_json_api.inspectors.DjangoRestResponsePagination", # Added - "drf_yasg.inspectors.DjangoRestResponsePagination", - "drf_yasg.inspectors.CoreAPICompatInspector", - ], -} + if env.OSFDB_HOST: DATABASES["osf"] = { "ENGINE": "django.db.backends.postgresql", From 67e1b8a5fe9a9242af51b1e16ea16e4fad130507 Mon Sep 17 00:00:00 2001 From: Oleh Paduchak Date: Tue, 27 May 2025 16:09:33 +0300 Subject: [PATCH 03/13] fixed ssh url --- poetry.lock | 82 +++++++++++++++++++++++++------------------------- pyproject.toml | 2 +- 2 files changed, 42 insertions(+), 42 deletions(-) diff --git a/poetry.lock b/poetry.lock index 379dc305..fe435f50 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.0.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.2 and should not be changed by hand. [[package]] name = "aiohappyeyeballs" @@ -113,7 +113,7 @@ propcache = ">=0.2.0" yarl = ">=1.17.0,<2.0" [package.extras] -speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"] +speedups = ["Brotli ; platform_python_implementation == \"CPython\"", "aiodns (>=3.2.0) ; sys_platform == \"linux\" or sys_platform == \"darwin\"", "brotlicffi ; platform_python_implementation != \"CPython\""] [[package]] name = "aiosignal" @@ -173,12 +173,12 @@ files = [ ] [package.extras] -benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +benchmark = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\"", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\"", "pytest-xdist[psutil]"] +cov = ["cloudpickle ; platform_python_implementation == \"CPython\"", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\"", "pytest-xdist[psutil]"] +dev = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\"", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\"", "pytest-xdist[psutil]"] docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"] -tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] -tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] +tests = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\"", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\"", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.9\" and python_version < \"3.13\""] [[package]] name = "autobahn" @@ -199,13 +199,13 @@ setuptools = "*" txaio = ">=21.2.1" [package.extras] -all = ["PyGObject (>=3.40.0)", "argon2-cffi (>=20.1.0)", "attrs (>=20.3.0)", "base58 (>=2.1.0)", "bitarray (>=2.7.5)", "cbor2 (>=5.2.0)", "cffi (>=1.14.5)", "click (>=8.1.2)", "ecdsa (>=0.16.1)", "eth-abi (>=4.0.0)", "flatbuffers (>=22.12.6)", "hkdf (>=0.0.3)", "jinja2 (>=2.11.3)", "mnemonic (>=0.19)", "msgpack (>=1.0.2)", "passlib (>=1.7.4)", "py-ecc (>=5.1.0)", "py-eth-sig-utils (>=0.4.0)", "py-multihash (>=2.0.1)", "py-ubjson (>=0.16.1)", "pynacl (>=1.4.0)", "pyopenssl (>=20.0.1)", "python-snappy (>=0.6.0)", "pytrie (>=0.4.0)", "qrcode (>=7.3.1)", "rlp (>=2.0.1)", "service-identity (>=18.1.0)", "spake2 (>=0.8)", "twisted (>=20.3.0)", "twisted (>=24.3.0)", "u-msgpack-python (>=2.1)", "ujson (>=4.0.2)", "web3[ipfs] (>=6.0.0)", "xbr (>=21.2.1)", "yapf (==0.29.0)", "zlmdb (>=21.2.1)", "zope.interface (>=5.2.0)"] +all = ["PyGObject (>=3.40.0)", "argon2-cffi (>=20.1.0)", "attrs (>=20.3.0)", "base58 (>=2.1.0)", "bitarray (>=2.7.5)", "cbor2 (>=5.2.0)", "cffi (>=1.14.5)", "click (>=8.1.2)", "ecdsa (>=0.16.1)", "eth-abi (>=4.0.0)", "flatbuffers (>=22.12.6)", "hkdf (>=0.0.3)", "jinja2 (>=2.11.3)", "mnemonic (>=0.19)", "msgpack (>=1.0.2) ; platform_python_implementation == \"CPython\"", "passlib (>=1.7.4)", "py-ecc (>=5.1.0)", "py-eth-sig-utils (>=0.4.0)", "py-multihash (>=2.0.1)", "py-ubjson (>=0.16.1)", "pynacl (>=1.4.0)", "pyopenssl (>=20.0.1)", "python-snappy (>=0.6.0)", "pytrie (>=0.4.0)", "qrcode (>=7.3.1)", "rlp (>=2.0.1)", "service-identity (>=18.1.0)", "spake2 (>=0.8)", "twisted (>=20.3.0)", "twisted (>=24.3.0)", "u-msgpack-python (>=2.1) ; platform_python_implementation != \"CPython\"", "ujson (>=4.0.2) ; platform_python_implementation == \"CPython\"", "web3[ipfs] (>=6.0.0)", "xbr (>=21.2.1)", "yapf (==0.29.0)", "zlmdb (>=21.2.1)", "zope.interface (>=5.2.0)"] compress = ["python-snappy (>=0.6.0)"] -dev = ["backports.tempfile (>=1.0)", "build (>=1.2.1)", "bumpversion (>=0.5.3)", "codecov (>=2.0.15)", "flake8 (<5)", "humanize (>=0.5.1)", "mypy (>=0.610)", "passlib", "pep8-naming (>=0.3.3)", "pip (>=9.0.1)", "pyenchant (>=1.6.6)", "pyflakes (>=1.0.0)", "pyinstaller (>=4.2)", "pylint (>=1.9.2)", "pytest (>=3.4.2)", "pytest-aiohttp", "pytest-asyncio (>=0.14.0)", "pytest-runner (>=2.11.1)", "pyyaml (>=4.2b4)", "qualname", "sphinx (>=1.7.1)", "sphinx-autoapi (>=1.7.0)", "sphinx-rtd-theme (>=0.1.9)", "sphinxcontrib-images (>=0.9.1)", "tox (>=4.2.8)", "tox-gh-actions (>=2.2.0)", "twine (>=3.3.0)", "twisted (>=22.10.0)", "txaio (>=20.4.1)", "watchdog (>=0.8.3)", "wheel (>=0.36.2)", "yapf (==0.29.0)"] +dev = ["backports.tempfile (>=1.0)", "build (>=1.2.1)", "bumpversion (>=0.5.3)", "codecov (>=2.0.15)", "flake8 (<5)", "humanize (>=0.5.1)", "mypy (>=0.610) ; python_version >= \"3.4\" and platform_python_implementation != \"PyPy\"", "passlib", "pep8-naming (>=0.3.3)", "pip (>=9.0.1)", "pyenchant (>=1.6.6)", "pyflakes (>=1.0.0)", "pyinstaller (>=4.2)", "pylint (>=1.9.2)", "pytest (>=3.4.2)", "pytest-aiohttp", "pytest-asyncio (>=0.14.0)", "pytest-runner (>=2.11.1)", "pyyaml (>=4.2b4)", "qualname", "sphinx (>=1.7.1)", "sphinx-autoapi (>=1.7.0)", "sphinx-rtd-theme (>=0.1.9)", "sphinxcontrib-images (>=0.9.1)", "tox (>=4.2.8)", "tox-gh-actions (>=2.2.0)", "twine (>=3.3.0)", "twisted (>=22.10.0)", "txaio (>=20.4.1)", "watchdog (>=0.8.3)", "wheel (>=0.36.2)", "yapf (==0.29.0)"] encryption = ["pynacl (>=1.4.0)", "pyopenssl (>=20.0.1)", "pytrie (>=0.4.0)", "qrcode (>=7.3.1)", "service-identity (>=18.1.0)"] nvx = ["cffi (>=1.14.5)"] scram = ["argon2-cffi (>=20.1.0)", "cffi (>=1.14.5)", "passlib (>=1.7.4)"] -serialization = ["cbor2 (>=5.2.0)", "flatbuffers (>=22.12.6)", "msgpack (>=1.0.2)", "py-ubjson (>=0.16.1)", "u-msgpack-python (>=2.1)", "ujson (>=4.0.2)"] +serialization = ["cbor2 (>=5.2.0)", "flatbuffers (>=22.12.6)", "msgpack (>=1.0.2) ; platform_python_implementation == \"CPython\"", "py-ubjson (>=0.16.1)", "u-msgpack-python (>=2.1) ; platform_python_implementation != \"CPython\"", "ujson (>=4.0.2) ; platform_python_implementation == \"CPython\""] twisted = ["attrs (>=20.3.0)", "twisted (>=24.3.0)", "zope.interface (>=5.2.0)"] ui = ["PyGObject (>=3.40.0)"] xbr = ["base58 (>=2.1.0)", "bitarray (>=2.7.5)", "cbor2 (>=5.2.0)", "click (>=8.1.2)", "ecdsa (>=0.16.1)", "eth-abi (>=4.0.0)", "hkdf (>=0.0.3)", "jinja2 (>=2.11.3)", "mnemonic (>=0.19)", "py-ecc (>=5.1.0)", "py-eth-sig-utils (>=0.4.0)", "py-multihash (>=2.0.1)", "rlp (>=2.0.1)", "spake2 (>=0.8)", "twisted (>=20.3.0)", "web3[ipfs] (>=6.0.0)", "xbr (>=21.2.1)", "yapf (==0.29.0)", "zlmdb (>=21.2.1)"] @@ -330,33 +330,33 @@ vine = ">=5.1.0,<6.0" arangodb = ["pyArango (>=2.0.2)"] auth = ["cryptography (==44.0.2)"] azureblockblob = ["azure-identity (>=1.19.0)", "azure-storage-blob (>=12.15.0)"] -brotli = ["brotli (>=1.0.0)", "brotlipy (>=0.7.0)"] +brotli = ["brotli (>=1.0.0) ; platform_python_implementation == \"CPython\"", "brotlipy (>=0.7.0) ; platform_python_implementation == \"PyPy\""] cassandra = ["cassandra-driver (>=3.25.0,<4)"] consul = ["python-consul2 (==0.1.5)"] cosmosdbsql = ["pydocumentdb (==2.3.5)"] -couchbase = ["couchbase (>=3.0.0)"] +couchbase = ["couchbase (>=3.0.0) ; platform_python_implementation != \"PyPy\" and (platform_system != \"Windows\" or python_version < \"3.10\")"] couchdb = ["pycouchdb (==1.16.0)"] django = ["Django (>=2.2.28)"] dynamodb = ["boto3 (>=1.26.143)"] elasticsearch = ["elastic-transport (<=8.17.1)", "elasticsearch (<=8.17.2)"] -eventlet = ["eventlet (>=0.32.0)"] +eventlet = ["eventlet (>=0.32.0) ; python_version < \"3.10\""] gcs = ["google-cloud-firestore (==2.20.1)", "google-cloud-storage (>=2.10.0)", "grpcio (==1.67.0)"] gevent = ["gevent (>=1.5.0)"] -librabbitmq = ["librabbitmq (>=2.0.0)"] -memcache = ["pylibmc (==1.6.3)"] +librabbitmq = ["librabbitmq (>=2.0.0) ; python_version < \"3.11\""] +memcache = ["pylibmc (==1.6.3) ; platform_system != \"Windows\""] mongodb = ["pymongo (==4.10.1)"] msgpack = ["msgpack (==1.1.0)"] pydantic = ["pydantic (>=2.4)"] pymemcache = ["python-memcached (>=1.61)"] -pyro = ["pyro4 (==4.82)"] +pyro = ["pyro4 (==4.82) ; python_version < \"3.11\""] pytest = ["pytest-celery[all] (>=1.2.0,<1.3.0)"] redis = ["redis (>=4.5.2,!=4.5.5,<6.0.0)"] s3 = ["boto3 (>=1.26.143)"] slmq = ["softlayer_messaging (>=1.0.3)"] -solar = ["ephem (==4.2)"] +solar = ["ephem (==4.2) ; platform_python_implementation != \"PyPy\""] sqlalchemy = ["sqlalchemy (>=1.4.48,<2.1)"] sqs = ["boto3 (>=1.26.143)", "kombu[sqs] (>=5.3.4)", "urllib3 (>=1.26.16)"] -tblib = ["tblib (>=1.3.0)", "tblib (>=1.5.0)"] +tblib = ["tblib (>=1.3.0) ; python_version < \"3.8.0\"", "tblib (>=1.5.0) ; python_version >= \"3.8.0\""] yaml = ["PyYAML (>=3.10)"] zookeeper = ["kazoo (>=1.3.1)"] zstd = ["zstandard (==0.23.0)"] @@ -718,10 +718,10 @@ files = [ cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} [package.extras] -docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=3.0.0)"] +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=3.0.0) ; python_version >= \"3.8\""] docstest = ["pyenchant (>=3)", "readme-renderer (>=30.0)", "sphinxcontrib-spelling (>=7.3.1)"] -nox = ["nox (>=2024.4.15)", "nox[uv] (>=2024.3.2)"] -pep8test = ["check-sdist", "click (>=8.0.1)", "mypy (>=1.4)", "ruff (>=0.3.6)"] +nox = ["nox (>=2024.4.15)", "nox[uv] (>=2024.3.2) ; python_version >= \"3.8\""] +pep8test = ["check-sdist ; python_version >= \"3.8\"", "click (>=8.0.1)", "mypy (>=1.4)", "ruff (>=0.3.6)"] sdist = ["build (>=1.0.0)"] ssh = ["bcrypt (>=3.1.5)"] test = ["certifi (>=2024)", "cryptography-vectors (==44.0.1)", "pretend (>=0.7)", "pytest (>=7.4.0)", "pytest-benchmark (>=4.0)", "pytest-cov (>=2.10.1)", "pytest-xdist (>=3.5.0)"] @@ -961,9 +961,9 @@ drf-spectacular = ">=0.25.0" [package.source] type = "git" -url = "ssh://git@github.com/opaduchak/drf-spectacular-json-api.git" +url = "https://github.com/opaduchak/drf-spectacular-json-api.git" reference = "osf-fixes" -resolved_reference = "f280b852dbee1667c21a1998e7009567bfc113c4" +resolved_reference = "4a4b62908585fd7ab24e9f43ff4cb09dea4e049d" [[package]] name = "factory-boy" @@ -1014,7 +1014,7 @@ files = [ [package.extras] docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8.0.1)", "pytest (>=7.4.3)", "pytest-asyncio (>=0.21)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)", "virtualenv (>=20.26.2)"] -typing = ["typing-extensions (>=4.8)"] +typing = ["typing-extensions (>=4.8) ; python_version < \"3.11\""] [[package]] name = "flake8" @@ -1321,7 +1321,7 @@ azurestoragequeues = ["azure-identity (>=1.12.0)", "azure-storage-queue (>=12.6. confluentkafka = ["confluent-kafka (>=2.2.0)"] consul = ["python-consul2 (==0.1.5)"] gcpubsub = ["google-cloud-monitoring (>=2.16.0)", "google-cloud-pubsub (>=2.18.4)", "grpcio (==1.67.0)", "protobuf (==4.25.5)"] -librabbitmq = ["librabbitmq (>=2.0.0)"] +librabbitmq = ["librabbitmq (>=2.0.0) ; python_version < \"3.11\""] mongodb = ["pymongo (>=4.1.1)"] msgpack = ["msgpack (==1.1.0)"] pyro = ["pyro4 (==4.82)"] @@ -1779,8 +1779,8 @@ typing-extensions = {version = ">=4.6", markers = "python_version < \"3.13\""} tzdata = {version = "*", markers = "sys_platform == \"win32\""} [package.extras] -binary = ["psycopg-binary (==3.2.6)"] -c = ["psycopg-c (==3.2.6)"] +binary = ["psycopg-binary (==3.2.6) ; implementation_name != \"pypy\""] +c = ["psycopg-c (==3.2.6) ; implementation_name != \"pypy\""] dev = ["ast-comments (>=1.1.2)", "black (>=24.1.0)", "codespell (>=2.2)", "dnspython (>=2.1)", "flake8 (>=4.0)", "isort-psycopg", "isort[colors] (>=6.0)", "mypy (>=1.14)", "pre-commit (>=4.0.1)", "types-setuptools (>=57.4)", "wheel (>=0.37)"] docs = ["Sphinx (>=5.0)", "furo (==2022.6.21)", "sphinx-autobuild (>=2021.3.14)", "sphinx-autodoc-typehints (>=1.12)"] pool = ["psycopg-pool"] @@ -2156,7 +2156,7 @@ requests = ">=2.30.0,<3.0" urllib3 = ">=1.25.10,<3.0" [package.extras] -tests = ["coverage (>=6.0.0)", "flake8", "mypy", "pytest (>=7.0.0)", "pytest-asyncio", "pytest-cov", "pytest-httpserver", "tomli", "tomli-w", "types-PyYAML", "types-requests"] +tests = ["coverage (>=6.0.0)", "flake8", "mypy", "pytest (>=7.0.0)", "pytest-asyncio", "pytest-cov", "pytest-httpserver", "tomli ; python_version < \"3.11\"", "tomli-w", "types-PyYAML", "types-requests"] [[package]] name = "rpds-py" @@ -2378,9 +2378,9 @@ files = [ ] [package.extras] -core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.text (>=3.7)", "more-itertools (>=8.8)", "ordered-set (>=3.1.1)", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] +core = ["importlib-metadata (>=6) ; python_version < \"3.10\"", "importlib-resources (>=5.10.2) ; python_version < \"3.9\"", "jaraco.text (>=3.7)", "more-itertools (>=8.8)", "ordered-set (>=3.1.1)", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1) ; python_version < \"3.11\"", "wheel (>=0.43.0)"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] -test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.11.*)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (<0.4)", "pytest-ruff (>=0.2.1)", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21) ; python_version >= \"3.9\" and sys_platform != \"cygwin\"", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.11.*)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf ; sys_platform != \"cygwin\"", "pytest-ruff (<0.4) ; platform_system == \"Windows\"", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\"", "pytest-ruff (>=0.3.2) ; sys_platform != \"cygwin\"", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] [[package]] name = "six" @@ -2457,19 +2457,19 @@ typing-extensions = ">=4.2.0" zope-interface = ">=5" [package.extras] -all-non-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226)", "pywin32 (!=226)", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)"] +all-non-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226) ; platform_system == \"Windows\"", "pywin32 (!=226) ; platform_system == \"Windows\"", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)"] conch = ["appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)"] dev = ["coverage (>=7.5,<8.0)", "cython-test-exception-raiser (>=1.0.2,<2)", "hypothesis (>=6.56)", "pydoctor (>=23.9.0,<23.10.0)", "pyflakes (>=2.2,<3.0)", "pyhamcrest (>=2)", "python-subunit (>=1.4,<2.0)", "sphinx (>=6,<7)", "sphinx-rtd-theme (>=1.3,<2.0)", "towncrier (>=23.6,<24.0)", "twistedchecker (>=0.7,<1.0)"] dev-release = ["pydoctor (>=23.9.0,<23.10.0)", "pydoctor (>=23.9.0,<23.10.0)", "sphinx (>=6,<7)", "sphinx (>=6,<7)", "sphinx-rtd-theme (>=1.3,<2.0)", "sphinx-rtd-theme (>=1.3,<2.0)", "towncrier (>=23.6,<24.0)", "towncrier (>=23.6,<24.0)"] -gtk-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pygobject", "pygobject", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226)", "pywin32 (!=226)", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)"] +gtk-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pygobject", "pygobject", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226) ; platform_system == \"Windows\"", "pywin32 (!=226) ; platform_system == \"Windows\"", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)"] http2 = ["h2 (>=3.0,<5.0)", "priority (>=1.1.0,<2.0)"] -macos-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyobjc-core", "pyobjc-core", "pyobjc-framework-cfnetwork", "pyobjc-framework-cfnetwork", "pyobjc-framework-cocoa", "pyobjc-framework-cocoa", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226)", "pywin32 (!=226)", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)"] -mypy = ["appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "coverage (>=7.5,<8.0)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "idna (>=2.4)", "mypy (>=1.8,<2.0)", "mypy-zope (>=1.0.3,<1.1.0)", "priority (>=1.1.0,<2.0)", "pydoctor (>=23.9.0,<23.10.0)", "pyflakes (>=2.2,<3.0)", "pyhamcrest (>=2)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "python-subunit (>=1.4,<2.0)", "pywin32 (!=226)", "service-identity (>=18.1.0)", "sphinx (>=6,<7)", "sphinx-rtd-theme (>=1.3,<2.0)", "towncrier (>=23.6,<24.0)", "twistedchecker (>=0.7,<1.0)", "types-pyopenssl", "types-setuptools"] -osx-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyobjc-core", "pyobjc-core", "pyobjc-framework-cfnetwork", "pyobjc-framework-cfnetwork", "pyobjc-framework-cocoa", "pyobjc-framework-cocoa", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226)", "pywin32 (!=226)", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)"] -serial = ["pyserial (>=3.0)", "pywin32 (!=226)"] +macos-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyobjc-core", "pyobjc-core", "pyobjc-framework-cfnetwork", "pyobjc-framework-cfnetwork", "pyobjc-framework-cocoa", "pyobjc-framework-cocoa", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226) ; platform_system == \"Windows\"", "pywin32 (!=226) ; platform_system == \"Windows\"", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)"] +mypy = ["appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "coverage (>=7.5,<8.0)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "idna (>=2.4)", "mypy (>=1.8,<2.0)", "mypy-zope (>=1.0.3,<1.1.0)", "priority (>=1.1.0,<2.0)", "pydoctor (>=23.9.0,<23.10.0)", "pyflakes (>=2.2,<3.0)", "pyhamcrest (>=2)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "python-subunit (>=1.4,<2.0)", "pywin32 (!=226) ; platform_system == \"Windows\"", "service-identity (>=18.1.0)", "sphinx (>=6,<7)", "sphinx-rtd-theme (>=1.3,<2.0)", "towncrier (>=23.6,<24.0)", "twistedchecker (>=0.7,<1.0)", "types-pyopenssl", "types-setuptools"] +osx-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyobjc-core", "pyobjc-core", "pyobjc-framework-cfnetwork", "pyobjc-framework-cfnetwork", "pyobjc-framework-cocoa", "pyobjc-framework-cocoa", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226) ; platform_system == \"Windows\"", "pywin32 (!=226) ; platform_system == \"Windows\"", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)"] +serial = ["pyserial (>=3.0)", "pywin32 (!=226) ; platform_system == \"Windows\""] test = ["cython-test-exception-raiser (>=1.0.2,<2)", "hypothesis (>=6.56)", "pyhamcrest (>=2)"] tls = ["idna (>=2.4)", "pyopenssl (>=21.0.0)", "service-identity (>=18.1.0)"] -windows-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226)", "pywin32 (!=226)", "pywin32 (!=226)", "pywin32 (!=226)", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)", "twisted-iocpsupport (>=1.0.2)", "twisted-iocpsupport (>=1.0.2)"] +windows-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226)", "pywin32 (!=226)", "pywin32 (!=226) ; platform_system == \"Windows\"", "pywin32 (!=226) ; platform_system == \"Windows\"", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)", "twisted-iocpsupport (>=1.0.2)", "twisted-iocpsupport (>=1.0.2)"] [[package]] name = "txaio" @@ -2499,7 +2499,7 @@ files = [ {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, ] -markers = {dev = "python_version < \"3.13\"", release = "python_version < \"3.13\""} +markers = {dev = "python_version == \"3.12\"", release = "python_version == \"3.12\""} [[package]] name = "tzdata" @@ -2539,7 +2539,7 @@ files = [ ] [package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""] h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] @@ -2575,7 +2575,7 @@ platformdirs = ">=3.9.1,<5" [package.extras] docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] -test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8) ; platform_python_implementation == \"PyPy\" or platform_python_implementation == \"CPython\" and sys_platform == \"win32\" and python_version >= \"3.13\"", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10) ; platform_python_implementation == \"CPython\""] [[package]] name = "wcwidth" @@ -2741,4 +2741,4 @@ testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] [metadata] lock-version = "2.1" python-versions = "^3.12" -content-hash = "b53f0026f04c386056607fc06558e28dcc265180e2cc7bf63cba00a78138c234" +content-hash = "995ab5635fe48f9e7c79a483b889bc8242022b1aec820b2a501992fb2ac648ce" diff --git a/pyproject.toml b/pyproject.toml index 5fb51e3d..af51bd52 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,7 +28,7 @@ tqdm = "^4.67.1" itsdangerous = "^2.2.0" redis = "^5.2.1" drf-spectacular = "^0.28.0" -drf-spectacular-jsonapi = {git = "git@github.com:opaduchak/drf-spectacular-json-api.git", branch = "osf-fixes"} +drf-spectacular-jsonapi = {git = "https://github.com/opaduchak/drf-spectacular-json-api.git", branch = "osf-fixes"} [tool.poetry.group.dev.dependencies] From d8b9899cfb37873d93814aee2a816e5729636008 Mon Sep 17 00:00:00 2001 From: Oleh Paduchak Date: Tue, 27 May 2025 18:27:42 +0300 Subject: [PATCH 04/13] fixed filters --- addon_service/apps.py | 4 ++++ addon_service/common/openapi_extensions.py | 28 ++++++++++++++++++++++ addon_service/common/viewsets.py | 3 +-- app/settings.py | 6 ----- 4 files changed, 33 insertions(+), 8 deletions(-) create mode 100644 addon_service/common/openapi_extensions.py diff --git a/addon_service/apps.py b/addon_service/apps.py index 21e574e3..c2916203 100644 --- a/addon_service/apps.py +++ b/addon_service/apps.py @@ -3,3 +3,7 @@ class AddonServiceConfig(AppConfig): name = "addon_service" + + def ready(self): + # need to import openapi extensions here for them to be registered + import addon_service.common.openapi_extensions # noqa: F401 diff --git a/addon_service/common/openapi_extensions.py b/addon_service/common/openapi_extensions.py new file mode 100644 index 00000000..7c2f4498 --- /dev/null +++ b/addon_service/common/openapi_extensions.py @@ -0,0 +1,28 @@ +from drf_spectacular.extensions import OpenApiFilterExtension + + +class RestrictedReadOnlyViewSetExtension(OpenApiFilterExtension): + target_class = "addon_service.common.filtering.RestrictedListEndpointFilterBackend" # full dotted path + + def get_schema_operation_parameters(self, auto_schema, *args, **kwargs): + if auto_schema.method != "GET" or "list" not in auto_schema.view.action: + return [] + + required_filter_fields = getattr( + auto_schema.view, "required_list_filter_fields", () + ) + + parameters = [] + for field_name in required_filter_fields: + parameters.append( + { + "name": f"filter[{field_name}]", + "in": "query", # This corresponds to OpenApiParameter.QUERY + "description": f"Filter by {field_name}. This filter must be uniquely identifying.", + "required": True, + "schema": { + "type": "string" # This corresponds to OpenApiTypes.STR, OpenApiTypes.URI, etc. + }, + } + ) + return parameters diff --git a/addon_service/common/viewsets.py b/addon_service/common/viewsets.py index 4f20b36f..4fb386a9 100644 --- a/addon_service/common/viewsets.py +++ b/addon_service/common/viewsets.py @@ -24,6 +24,7 @@ class _DrfJsonApiHelpers(AutoPrefetchMixin, PreloadIncludesMixin, RelatedMixin): class RestrictedReadOnlyViewSet(ReadOnlyModelViewSet): + filter_backends = [RestrictedListEndpointFilterBackend] """ReadOnlyViewSet that requires `list` actions return only one result. UserReference and ResourceReference endpoints are major entry points into @@ -47,8 +48,6 @@ def list(self, request, *args, **kwargs): RestrictedListEndpointFilterBackend and check_object_permissions to enforce permissions on returned entities. """ - self.filter_backends = [RestrictedListEndpointFilterBackend] - qs = self.filter_queryset(self.get_queryset()) try: self.check_object_permissions(self.request, qs.get()) diff --git a/app/settings.py b/app/settings.py index fada488a..3e5dedad 100644 --- a/app/settings.py +++ b/app/settings.py @@ -209,7 +209,6 @@ "addon_service.common.queryparams_filter.AllowedQueryParamsFilter", "rest_framework_json_api.filters.OrderingFilter", "rest_framework_json_api.django_filters.DjangoFilterBackend", - "rest_framework.filters.SearchFilter", ), "DEFAULT_AUTHENTICATION_CLASSES": ( "addon_service.authentication.GVCombinedAuthentication", @@ -228,11 +227,6 @@ "SERVE_INCLUDE_SCHEMA": False, "COMPONENT_SPLIT_REQUEST": True, "PREPROCESSING_HOOKS": ["drf_spectacular_jsonapi.hooks.fix_nested_path_parameters"], - "EXTENSIONS_INFO": { - "drf_spectacular_jsonapi.extensions.JSONAPIResourceExtension": {}, - "drf_spectacular_jsonapi.extensions.JSONAPIErrorExtension": {}, - }, - # OTHER SETTINGS } # Password validation # https://docs.djangoproject.com/en/3.1/ref/settings/#auth-password-validators From 51fe7f62ae70e8d1ed0f6dbdd5d678e4a2db8aaf Mon Sep 17 00:00:00 2001 From: Oleh Paduchak Date: Mon, 23 Jun 2025 13:41:16 +0300 Subject: [PATCH 05/13] fixed resurse reference and user reference endpoints --- addon_service/common/filtering.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addon_service/common/filtering.py b/addon_service/common/filtering.py index 84c7435b..e971d728 100644 --- a/addon_service/common/filtering.py +++ b/addon_service/common/filtering.py @@ -21,6 +21,8 @@ def filter_queryset(self, request, queryset, view): class RestrictedListEndpointFilterBackend(filters.BaseFilterBackend): def filter_queryset(self, request, queryset, view): + if view.action != "list": + return queryset required_filters = set(view.required_list_filter_fields) filter_expressions = extract_filter_expressions( request.query_params, view.get_serializer() From b8318738934cdd9cd11410d329e09f9d54bf4518 Mon Sep 17 00:00:00 2001 From: Oleh Paduchak Date: Thu, 26 Jun 2025 16:30:10 +0300 Subject: [PATCH 06/13] added extend_schema descriptions, excluded internal views, fixed some viewsets to remove unused methods --- Dockerfile | 4 +- .../addon_operation_invocation/views.py | 18 ++++++- .../authorized_account/citation/views.py | 10 ++++ .../authorized_account/computing/views.py | 10 ++++ .../authorized_account/link/views.py | 10 ++++ .../authorized_account/storage/views.py | 10 ++++ addon_service/common/schemas.py | 47 +++++++++++++++++++ addon_service/common/viewsets.py | 11 +++++ .../configured_addon/citation/views.py | 16 +++++++ .../configured_addon/computing/models.py | 2 +- .../configured_addon/computing/views.py | 16 +++++++ addon_service/configured_addon/link/views.py | 15 ++++++ addon_service/configured_addon/models.py | 2 +- addon_service/configured_addon/serializers.py | 2 +- .../configured_addon/storage/views.py | 13 +++++ .../external_service/citation/views.py | 12 +++++ .../external_service/computing/views.py | 12 +++++ addon_service/external_service/link/views.py | 12 +++++ addon_service/external_service/models.py | 2 +- .../external_service/storage/views.py | 13 +++++ .../commands/fill_external_services.py | 16 ++++++- addon_service/oauth1/views.py | 2 + addon_service/oauth2/views.py | 2 + addon_service/resource_reference/views.py | 13 +++++ addon_service/user_reference/views.py | 13 +++++ 25 files changed, 274 insertions(+), 9 deletions(-) create mode 100644 addon_service/common/schemas.py diff --git a/Dockerfile b/Dockerfile index 04590361..39d84b18 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM python:3.13 AS gv-base # System Dependencies: -RUN apt-get update && apt-get install -y libpq-dev +RUN apt-get update && apt-get install -y libpq-dev libxml2-dev libxslt-dev COPY pyproject.toml /code/ COPY poetry.lock /code/ @@ -15,7 +15,7 @@ ENV PATH="$PATH:/root/.local/bin" FROM python:3.13-slim AS gv-runtime-base # System Dependencies: -RUN apt-get update && apt-get install -y libpq-dev +RUN apt-get update && apt-get install -y libpq-dev libxml2-dev libxslt-dev COPY pyproject.toml /code/ COPY poetry.lock /code/ diff --git a/addon_service/addon_operation_invocation/views.py b/addon_service/addon_operation_invocation/views.py index 579c44f7..2faaae8d 100644 --- a/addon_service/addon_operation_invocation/views.py +++ b/addon_service/addon_operation_invocation/views.py @@ -1,3 +1,7 @@ +from drf_spectacular.utils import ( + extend_schema, + extend_schema_view, +) from rest_framework.response import Response from addon_service.common.permissions import ( @@ -6,7 +10,7 @@ SessionUserMayAccessInvocation, SessionUserMayPerformInvocation, ) -from addon_service.common.viewsets import RetrieveWriteViewSet +from addon_service.common.viewsets import RetrieveCreateViewSet from addon_service.tasks.invocation import ( perform_invocation__blocking, perform_invocation__celery, @@ -31,7 +35,16 @@ from .serializers import AddonOperationInvocationSerializer -class AddonOperationInvocationViewSet(RetrieveWriteViewSet): +@extend_schema_view( + create=extend_schema( + description="Perform some action using external service, for instance list files on storage provider. " + "In order to perform such action you need to include configured_addon relationship" + ), + retrieve=extend_schema( + description="Get singular instance of addon operation invocation by it's pk. May be useful to view action log", + ), +) +class AddonOperationInvocationViewSet(RetrieveCreateViewSet): queryset = AddonOperationInvocation.objects.all() serializer_class = AddonOperationInvocationSerializer @@ -40,6 +53,7 @@ def get_permissions(self): case "retrieve" | "retrieve_related": return [IsAuthenticated(), SessionUserMayAccessInvocation()] case "partial_update" | "update" | "destroy": + # prohibit this? Maybe allow only to delete invocation from action log, but definitely not update return [IsAuthenticated(), SessionUserIsOwner()] case "create": return [SessionUserMayPerformInvocation()] diff --git a/addon_service/authorized_account/citation/views.py b/addon_service/authorized_account/citation/views.py index 28d3c837..452b9b1b 100644 --- a/addon_service/authorized_account/citation/views.py +++ b/addon_service/authorized_account/citation/views.py @@ -1,9 +1,19 @@ +from drf_spectacular.utils import ( + extend_schema, + extend_schema_view, +) + from addon_service.authorized_account.views import AuthorizedAccountViewSet from .models import AuthorizedCitationAccount from .serializers import AuthorizedCitationAccountSerializer +@extend_schema_view( + create=extend_schema( + description='Create new authorized citation account for given external citation service.\n For OAuth services it\'s required to create account with `"initiate_oauth"=true` in order to proceed with OAuth flow' + ), +) class AuthorizedCitationAccountViewSet(AuthorizedAccountViewSet): queryset = AuthorizedCitationAccount.objects.all() serializer_class = AuthorizedCitationAccountSerializer diff --git a/addon_service/authorized_account/computing/views.py b/addon_service/authorized_account/computing/views.py index 51f82168..d986cd2f 100644 --- a/addon_service/authorized_account/computing/views.py +++ b/addon_service/authorized_account/computing/views.py @@ -1,9 +1,19 @@ +from drf_spectacular.utils import ( + extend_schema, + extend_schema_view, +) + from addon_service.authorized_account.views import AuthorizedAccountViewSet from .models import AuthorizedComputingAccount from .serializers import AuthorizedComputingAccountSerializer +@extend_schema_view( + create=extend_schema( + description='Create new authorized computing account for given external computing service.\n For OAuth services it\'s required to create account with `"initiate_oauth"=true` in order to proceed with OAuth flow' + ), +) class AuthorizedComputingAccountViewSet(AuthorizedAccountViewSet): queryset = AuthorizedComputingAccount.objects.all() serializer_class = AuthorizedComputingAccountSerializer diff --git a/addon_service/authorized_account/link/views.py b/addon_service/authorized_account/link/views.py index c6ea9ab6..3f0440cb 100644 --- a/addon_service/authorized_account/link/views.py +++ b/addon_service/authorized_account/link/views.py @@ -1,9 +1,19 @@ +from drf_spectacular.utils import ( + extend_schema, + extend_schema_view, +) + from addon_service.authorized_account.views import AuthorizedAccountViewSet from .models import AuthorizedLinkAccount from .serializers import AuthorizedLinkAccountSerializer +@extend_schema_view( + create=extend_schema( + description='Create new authorized link account for given external link service.\n For OAuth services it\'s required to create account with `"initiate_oauth"=true` in order to proceed with OAuth flow' + ), +) class AuthorizedLinkAccountViewSet(AuthorizedAccountViewSet): queryset = AuthorizedLinkAccount.objects.all() serializer_class = AuthorizedLinkAccountSerializer diff --git a/addon_service/authorized_account/storage/views.py b/addon_service/authorized_account/storage/views.py index 587a03a0..fb66fe73 100644 --- a/addon_service/authorized_account/storage/views.py +++ b/addon_service/authorized_account/storage/views.py @@ -1,3 +1,8 @@ +from drf_spectacular.utils import ( + extend_schema, + extend_schema_view, +) + from addon_imps.storage.google_drive import GoogleDriveStorageImp from addon_service.authorized_account.views import AuthorizedAccountViewSet @@ -8,6 +13,11 @@ ) +@extend_schema_view( + create=extend_schema( + description='Create new authorized storage account for given external storage service.\n For OAuth services it\'s required to create account with `"initiate_oauth"=true` in order to proceed with OAuth flow' + ), +) class AuthorizedStorageAccountViewSet(AuthorizedAccountViewSet): queryset = AuthorizedStorageAccount.objects.all() serializer_class = AuthorizedStorageAccountSerializer diff --git a/addon_service/common/schemas.py b/addon_service/common/schemas.py new file mode 100644 index 00000000..4d7ab6d7 --- /dev/null +++ b/addon_service/common/schemas.py @@ -0,0 +1,47 @@ +from rest_framework.decorators import action +from rest_framework_json_api.relations import ResourceRelatedField + + +def auto_related_actions(cls): + """ + A class decorator that automatically adds a DRF @action for each + relationship on a ViewSet's serializer_class. + """ + # Find the serializer + serializer_class = getattr(cls, "serializer_class", None) + if not serializer_class: + return cls + + # Find all relationship fields + relationship_fields = { + field_name: field + for field_name, field in serializer_class().get_fields().items() + if isinstance(field, ResourceRelatedField) + } + + for field_name, field in relationship_fields.items(): + # This is the handler that will be used for our action. + # It's a bridge to the existing `retrieve_related` method. + def related_field_handler(self, request, *args, **kwargs): + # We pass the field_name explicitly to retrieve_related + kwargs["related_field"] = field_name + return self.retrieve_related(request, *args, **kwargs) + + # Set docstrings for better schema descriptions + related_field_handler.__doc__ = ( + f"Retrieve the related {field_name} for this resource." + ) + related_field_handler.__name__ = f"{field_name}_related_action" + + # Decorate our handler with @action. This is what the router looks for. + # The `url_path` will be the same as the field name. + decorated_handler = action( + detail=True, + methods=["get"], + url_path=field_name, + )(related_field_handler) + + # Attach the brand new, decorated method to the ViewSet class + setattr(cls, f"{field_name}_related_action", decorated_handler) + + return cls diff --git a/addon_service/common/viewsets.py b/addon_service/common/viewsets.py index 4fb386a9..d2ce9ca5 100644 --- a/addon_service/common/viewsets.py +++ b/addon_service/common/viewsets.py @@ -73,6 +73,17 @@ def perform_create(self, serializer): _instance.save() +class RetrieveCreateViewSet( + _DrfJsonApiHelpers, + _CreateWithPermissionsMixin, + drf_mixins.RetrieveModelMixin, + GenericViewSet, +): + """viewset allowing create, retrieve, update""" + + http_method_names = ["get", "post", "head", "options"] + + class RetrieveWriteViewSet( _DrfJsonApiHelpers, _CreateWithPermissionsMixin, diff --git a/addon_service/configured_addon/citation/views.py b/addon_service/configured_addon/citation/views.py index 936821a0..1982a702 100644 --- a/addon_service/configured_addon/citation/views.py +++ b/addon_service/configured_addon/citation/views.py @@ -1,9 +1,25 @@ +from drf_spectacular.utils import ( + extend_schema, + extend_schema_view, +) + from addon_service.configured_addon.views import ConfiguredAddonViewSet from .models import ConfiguredCitationAddon from .serializers import ConfiguredCitationAddonSerializer +@extend_schema_view( + create=extend_schema( + description="Create new configured citation addon for given authorized citation account, linking it to desired project.\n " + "To configure it properly, you must specify `root_folder` on the provider's side.\n " + "Note that everything under this folder is going to be accessible to everyone who has access to this project" + ), + get=extend_schema( + description="Get configured citation addon by it's pk. " + "\nIf you want to fetch all configured citation addons, you should do so through resource_reference related view", + ), +) class ConfiguredCitationAddonViewSet(ConfiguredAddonViewSet): queryset = ConfiguredCitationAddon.objects.active() serializer_class = ConfiguredCitationAddonSerializer diff --git a/addon_service/configured_addon/computing/models.py b/addon_service/configured_addon/computing/models.py index 25c96e93..88e2d848 100644 --- a/addon_service/configured_addon/computing/models.py +++ b/addon_service/configured_addon/computing/models.py @@ -18,6 +18,6 @@ def config(self) -> ComputingConfig: return self.base_account.authorizedcomputingaccount.config @property - def external_service_name(self): + def external_service_name(self) -> str: number = self.base_account.external_service.int_addon_imp return AddonImpNumbers(number).name.lower() diff --git a/addon_service/configured_addon/computing/views.py b/addon_service/configured_addon/computing/views.py index a267b932..c8e82b35 100644 --- a/addon_service/configured_addon/computing/views.py +++ b/addon_service/configured_addon/computing/views.py @@ -1,5 +1,9 @@ from http import HTTPMethod +from drf_spectacular.utils import ( + extend_schema, + extend_schema_view, +) from rest_framework.decorators import action from rest_framework.response import Response @@ -10,6 +14,18 @@ from .serializers import ConfiguredComputingAddonSerializer +@extend_schema_view( + create=extend_schema( + description="Create new configured computing addon for given authorized computing account, linking it to desired project.\n " + "To configure it properly, you must specify `root_folder` on the provider's side.\n " + "Note that everything under this folder is going to be accessible to everyone who has access to this project" + ), + get=extend_schema( + description="Get configured computing addon by it's pk. " + "\nIf you want to fetch all configured computing addons, you should do so through resource_reference related view", + ), + get_wb_credentials=extend_schema(exclude=True), +) class ConfiguredComputingAddonViewSet(ConfiguredAddonViewSet): queryset = ConfiguredComputingAddon.objects.active() serializer_class = ConfiguredComputingAddonSerializer diff --git a/addon_service/configured_addon/link/views.py b/addon_service/configured_addon/link/views.py index bf1a886b..b5c39dfd 100644 --- a/addon_service/configured_addon/link/views.py +++ b/addon_service/configured_addon/link/views.py @@ -1,5 +1,9 @@ from http import HTTPMethod +from drf_spectacular.utils import ( + extend_schema, + extend_schema_view, +) from rest_framework.decorators import action from rest_framework.response import Response @@ -13,6 +17,17 @@ ) +@extend_schema_view( + create=extend_schema( + description="Create new configured link addon for given authorized link account, linking it to desired project.\n " + "To configure it properly, you must specify `root_folder` on the provider's side.\n " + "Note that everything under this folder is going to be accessible to everyone who has access to this project" + ), + get=extend_schema( + description="Get configured link addon by it's pk. " + "\nIf you want to fetch all configured link addons, you should do so through resource_reference related view", + ), +) class ConfiguredLinkAddonViewSet(ConfiguredAddonViewSet): queryset = ConfiguredLinkAddon.objects.active().select_related( "base_account__authorizedlinkaccount", diff --git a/addon_service/configured_addon/models.py b/addon_service/configured_addon/models.py index ce91544c..9b6e759c 100644 --- a/addon_service/configured_addon/models.py +++ b/addon_service/configured_addon/models.py @@ -138,7 +138,7 @@ def imp_cls(self) -> type[AddonImp]: return self.base_account.imp_cls @property - def external_service_name(self): + def external_service_name(self) -> str: number = self.base_account.external_service.int_addon_imp return AddonImpNumbers(number).name.lower() diff --git a/addon_service/configured_addon/serializers.py b/addon_service/configured_addon/serializers.py index ded2328e..1b3b9768 100644 --- a/addon_service/configured_addon/serializers.py +++ b/addon_service/configured_addon/serializers.py @@ -33,7 +33,7 @@ def __init__(self, *args, **kwargs): current_user_is_owner = serializers.SerializerMethodField() - def get_current_user_is_owner(self, configured_addon: ConfiguredAddon): + def get_current_user_is_owner(self, configured_addon: ConfiguredAddon) -> bool: return configured_addon.owner_uri == get_user_uri(self.context["request"]) def create(self, validated_data): diff --git a/addon_service/configured_addon/storage/views.py b/addon_service/configured_addon/storage/views.py index f3e119d7..f128638e 100644 --- a/addon_service/configured_addon/storage/views.py +++ b/addon_service/configured_addon/storage/views.py @@ -1,5 +1,6 @@ from http import HTTPMethod +import drf_spectacular.utils from django.http import Http404 from rest_framework.decorators import action from rest_framework.response import Response @@ -14,6 +15,18 @@ from .serializers import ConfiguredStorageAddonSerializer +@drf_spectacular.utils.extend_schema_view( + create=drf_spectacular.utils.extend_schema( + description="Create new configured storage addon for given authorized storage account, linking it to desired project.\n " + "To configure it properly, you must specify `root_folder` on the provider's side.\n " + "Note that everything under this folder is going to be accessible to everyone who has access to this project" + ), + get=drf_spectacular.utils.extend_schema( + description="Get configured storage addon by it's pk. " + "\nIf you want to fetch all configured storage addons, you should do so through resource_reference related view", + ), + get_wb_credentials=drf_spectacular.utils.extend_schema(exclude=True), +) class ConfiguredStorageAddonViewSet(ConfiguredAddonViewSet): queryset = ConfiguredStorageAddon.objects.active().select_related( "base_account__authorizedstorageaccount", diff --git a/addon_service/external_service/citation/views.py b/addon_service/external_service/citation/views.py index b8e9fa03..cdbc7ca3 100644 --- a/addon_service/external_service/citation/views.py +++ b/addon_service/external_service/citation/views.py @@ -1,9 +1,21 @@ +from drf_spectacular.utils import ( + extend_schema, + extend_schema_view, +) from rest_framework_json_api.views import ReadOnlyModelViewSet from .models import ExternalCitationService from .serializers import ExternalCitationServiceSerializer +@extend_schema_view( + list=extend_schema( + description="Get the list of all available external citation services" + ), + get=extend_schema( + description="Get particular external citation service", + ), +) class ExternalCitationServiceViewSet(ReadOnlyModelViewSet): queryset = ExternalCitationService.objects.all().select_related( "oauth2_client_config", "oauth1_client_config" diff --git a/addon_service/external_service/computing/views.py b/addon_service/external_service/computing/views.py index b52baf0e..bc793b8d 100644 --- a/addon_service/external_service/computing/views.py +++ b/addon_service/external_service/computing/views.py @@ -1,9 +1,21 @@ +from drf_spectacular.utils import ( + extend_schema, + extend_schema_view, +) from rest_framework_json_api.views import ReadOnlyModelViewSet from .models import ExternalComputingService from .serializers import ExternalComputingServiceSerializer +@extend_schema_view( + list=extend_schema( + description="Get the list of all available external computing services" + ), + get=extend_schema( + description="Get particular external computing service", + ), +) class ExternalComputingServiceViewSet(ReadOnlyModelViewSet): queryset = ExternalComputingService.objects.all().select_related( "oauth2_client_config" diff --git a/addon_service/external_service/link/views.py b/addon_service/external_service/link/views.py index 6eccaf8d..8076a197 100644 --- a/addon_service/external_service/link/views.py +++ b/addon_service/external_service/link/views.py @@ -1,9 +1,21 @@ +from drf_spectacular.utils import ( + extend_schema, + extend_schema_view, +) from rest_framework_json_api.views import ReadOnlyModelViewSet from .models import ExternalLinkService from .serializers import ExternalLinkServiceSerializer +@extend_schema_view( + list=extend_schema( + description="Get the list of all available external link services" + ), + get=extend_schema( + description="Get particular external link service", + ), +) class ExternalLinkServiceViewSet(ReadOnlyModelViewSet): queryset = ExternalLinkService.objects.all().select_related("oauth2_client_config") serializer_class = ExternalLinkServiceSerializer diff --git a/addon_service/external_service/models.py b/addon_service/external_service/models.py index 7a7c3302..a371393a 100644 --- a/addon_service/external_service/models.py +++ b/addon_service/external_service/models.py @@ -90,7 +90,7 @@ def configurable_api_root(self): return ServiceTypes.HOSTED in self.service_type @property - def external_service_name(self): + def external_service_name(self) -> str: number = self.int_addon_imp return known_imps.AddonImpNumbers(number).name.lower() diff --git a/addon_service/external_service/storage/views.py b/addon_service/external_service/storage/views.py index 703f48c2..2bc4a1e2 100644 --- a/addon_service/external_service/storage/views.py +++ b/addon_service/external_service/storage/views.py @@ -1,9 +1,22 @@ +from drf_spectacular.utils import ( + extend_schema, + extend_schema_view, +) from rest_framework_json_api.views import ReadOnlyModelViewSet from .models import ExternalStorageService from .serializers import ExternalStorageServiceSerializer +@extend_schema_view( + list=extend_schema( + description="Get the list of all available external storage services" + ), + get=extend_schema( + description="Get particular external storage service", + ), + get_wb_credentials=extend_schema(exclude=True), +) class ExternalStorageServiceViewSet(ReadOnlyModelViewSet): queryset = ExternalStorageService.objects.all().select_related( "oauth2_client_config" diff --git a/addon_service/management/commands/fill_external_services.py b/addon_service/management/commands/fill_external_services.py index d4de9690..dd074a43 100644 --- a/addon_service/management/commands/fill_external_services.py +++ b/addon_service/management/commands/fill_external_services.py @@ -1,4 +1,5 @@ import csv +import logging from pathlib import Path from typing import Any @@ -7,6 +8,7 @@ from addon_service.external_service.citation.models import ExternalCitationService from addon_service.external_service.computing.models import ExternalComputingService from addon_service.external_service.link.models import ExternalLinkService +from addon_service.external_service.models import ExternalService from addon_service.external_service.storage.models import ExternalStorageService from addon_service.oauth1 import OAuth1ClientConfig from addon_service.oauth2 import OAuth2ClientConfig @@ -25,11 +27,13 @@ } icons_path = Path(__file__).parent.parent.parent / "static/provider_icons" +logger = logging.getLogger(__name__) class Command(BaseCommand): def handle(self, *args, **kwargs): services = self.load_csv_data(services_csv) + oauth2_configs = self.load_csv_data(oauth2_csv) oauth1_configs = self.load_csv_data(oauth1_csv) @@ -44,14 +48,24 @@ def handle(self, *args, **kwargs): oauth1_config = oauth1_configs[oauth1_id] oauth1_config = OAuth1ClientConfig.objects.create(**oauth1_config) service["oauth1_client_config"] = oauth1_config + logger.warning(f"Filled service {service['display_name']}") model.objects.create(**service) def load_csv_data(self, path: Path) -> dict[str, dict[str, Any]]: + current_services_names = { + service[0] + for service in ExternalService.objects.values_list("display_name").all() + } with path.open() as services_file: item = csv.reader(services_file) field_names = next(item) data_list = [dict(zip(field_names, service)) for service in item] - return {item.pop("id"): self.fix_values(item) for item in data_list} + print(data_list) + return { + item.pop("id"): self.fix_values(item) + for item in data_list + if item.get("display_name") not in current_services_names + } def fix_values(self, item): raw_values = {key: self.fix_value(value) for key, value in item.items()} diff --git a/addon_service/oauth1/views.py b/addon_service/oauth1/views.py index 9a72e367..423338d4 100644 --- a/addon_service/oauth1/views.py +++ b/addon_service/oauth1/views.py @@ -2,6 +2,7 @@ from asgiref.sync import async_to_sync from django.http import HttpResponse +from drf_spectacular.utils import extend_schema from addon_service.authorized_account.citation.models import AuthorizedCitationAccount from addon_service.authorized_account.computing.models import AuthorizedComputingAccount @@ -10,6 +11,7 @@ from addon_service.osf_models.fields import decrypt_string +@extend_schema(exclude=True) def oauth1_callback_view(request): oauth_token = request.GET["oauth_token"] oauth_verifier = request.GET["oauth_verifier"] diff --git a/addon_service/oauth2/views.py b/addon_service/oauth2/views.py index d442f676..8dc6623d 100644 --- a/addon_service/oauth2/views.py +++ b/addon_service/oauth2/views.py @@ -4,6 +4,7 @@ from asgiref.sync import sync_to_async from django.db import transaction from django.http import HttpResponse +from drf_spectacular.utils import extend_schema from addon_service.models import ( OAuth2ClientConfig, @@ -12,6 +13,7 @@ from addon_service.oauth2.utils import get_initial_access_token +@extend_schema(exclude=True) @transaction.non_atomic_requests # async views and ATOMIC_REQUESTS do not mix async def oauth2_callback_view(request): """ diff --git a/addon_service/resource_reference/views.py b/addon_service/resource_reference/views.py index 7d8eeec2..4f2e7a89 100644 --- a/addon_service/resource_reference/views.py +++ b/addon_service/resource_reference/views.py @@ -1,3 +1,8 @@ +from drf_spectacular.utils import ( + extend_schema, + extend_schema_view, +) + from addon_service.common.permissions import SessionUserCanViewReferencedResource from addon_service.common.viewsets import RestrictedReadOnlyViewSet from addon_service.serializers import ResourceReferenceSerializer @@ -5,6 +10,14 @@ from .models import ResourceReference +@extend_schema_view( + list=extend_schema( + description="Get resource reference by resource_uri. Even through this is a list method, this endpoint returns only one entity" + ), + retrieve=extend_schema( + description="Get resource reference by it's pk", + ), +) class ResourceReferenceViewSet(RestrictedReadOnlyViewSet): queryset = ResourceReference.objects.all() serializer_class = ResourceReferenceSerializer diff --git a/addon_service/user_reference/views.py b/addon_service/user_reference/views.py index f33b53af..d14dde3b 100644 --- a/addon_service/user_reference/views.py +++ b/addon_service/user_reference/views.py @@ -1,3 +1,8 @@ +from drf_spectacular.utils import ( + extend_schema, + extend_schema_view, +) + from addon_service.common.permissions import SessionUserIsOwner from addon_service.common.viewsets import RestrictedReadOnlyViewSet @@ -5,6 +10,14 @@ from .serializers import UserReferenceSerializer +@extend_schema_view( + list=extend_schema( + description="Get user reference by user_uri. Even through this is a list method, this endpoint returns only one entity" + ), + retrieve=extend_schema( + description="Get user reference by it's pk", + ), +) class UserReferenceViewSet(RestrictedReadOnlyViewSet): queryset = UserReference.objects.all() serializer_class = UserReferenceSerializer From ac47984c5c15671752855c0bff9c94955eaa686b Mon Sep 17 00:00:00 2001 From: Oleh Paduchak Date: Mon, 30 Jun 2025 16:29:01 +0300 Subject: [PATCH 07/13] added management command to generate proper openapi spec --- addon_service/management/commands/openapi.py | 201 +++++++++++++++++++ app/urls.py | 16 -- 2 files changed, 201 insertions(+), 16 deletions(-) create mode 100644 addon_service/management/commands/openapi.py diff --git a/addon_service/management/commands/openapi.py b/addon_service/management/commands/openapi.py new file mode 100644 index 00000000..377c1098 --- /dev/null +++ b/addon_service/management/commands/openapi.py @@ -0,0 +1,201 @@ +import copy +import os +import sys + +import yaml +from django.core.management import ( + BaseCommand, + call_command, +) +from yaml import ( + CSafeDumper, + CSafeLoader, +) + + +RELATED_FIELD_PARAM_NAME = "related_field" + +JSON_API_CONTENT_TYPE = "application/vnd.api+json" + + +def kebab_to_camel(s: str) -> str: + if s == "AuthorizedAccount": + return "AuthorizedStorageAccount" + elif s == "ConfiguredAddon": + return "ConfiguredStorageAddon" + s = s.title() + parts = s.split("-") + return parts[0] + "".join(word.capitalize() for word in parts[1:]) + + +def fix_resource(s: str) -> str: + if s == "AuthorizedAccount": + return "authorized-storage-account" + elif s == "ConfiguredAddon": + return "configured-storage-addon" + return s + + +def get_schema_from_ref(openapi_data, ref): + """ + Resolves a $ref string to its corresponding schema object in the OpenAPI data. + Example: '#/components/schemas/Article' -> openapi_data['components']['schemas']['Article'] + """ + parts = ref.strip("#/").split("/") + node = openapi_data + for part in parts: + if part in node: + node = node[part] + else: + return None + return node + + +class Command(BaseCommand): + + def add_arguments(self, parser): + parser.add_argument( + "--output", + type=str, + default="openapi.yml", + ) + + def handle(self, *args, **options): + call_command("spectacular", file=".openapi.yml") + with open(".openapi.yml") as buf: + data = yaml.load(buf, CSafeLoader) + os.remove(".openapi.yml") + + if "paths" not in data: + print("Warning: No 'paths' object found in the YAML file. Nothing to do.") + yaml.dump(data, sys.stdout) + return + + paths = data["paths"] + new_paths = {} + paths_to_delete = [] + + print("🔍 Starting scan for generic relationship endpoints...") + reverse_path_index = { + path_item["get"]["operationId"].replace("_", "-"): path_item + for path, path_item in paths.items() + if "get" in path_item + } + + for path, path_item in paths.items(): + if path.endswith(f"/{{{RELATED_FIELD_PARAM_NAME}}}/"): + print(f" -> Found generic relationship path: {path}") + paths_to_delete.append(path) + + base_path = path.rsplit("/", 2)[0] + "/" + primary_resource_path = f"{base_path}" + + if primary_resource_path not in paths: + print( + f" [!] Warning: Could not find parent path '{primary_resource_path}' to infer relationships. Skipping." + ) + continue + + try: + # We assume the 'get' operation on the primary resource defines its schema + schema_ref: str = paths[primary_resource_path]["get"]["responses"][ + "200" + ]["content"][JSON_API_CONTENT_TYPE]["schema"]["$ref"] + primary_resource_schema = get_schema_from_ref( + data, schema_ref.removesuffix("Response") + ) + except KeyError: + print( + f" [!] Warning: Could not find a valid 200 OK schema reference for '{primary_resource_path}'. Skipping." + ) + continue + + if not primary_resource_schema: + print( + f" [!] Warning: Could not resolve schema reference '{schema_ref}'. Skipping." + ) + continue + + try: + relationships = primary_resource_schema["properties"][ + "relationships" + ]["properties"] + except KeyError: + print( + f" [!] Warning: No 'properties.relationships.properties' found in schema for '{primary_resource_path}'. Skipping." + ) + continue + + print(f" Found relationships: {', '.join(relationships.keys())}") + + for rel_name, rel_schema in relationships.items(): + new_path_str = f"{base_path}{rel_name}" + resource: str = rel_schema["properties"]["data"].get( + "properties", + rel_schema["properties"]["data"] + .get("items", {}) + .get("properties"), + )["type"]["enum"][0] + # if resource.endswith('s'): + resource = resource.removesuffix("s") + # schema_name = f'Paginated{kebab_to_camel(resource)}List' + # else: + schema_name = f"{kebab_to_camel(resource)}Response" + new_schema_ref = f"#/components/schemas/{schema_name}" + new_path_item = copy.deepcopy( + reverse_path_index.get(f"{fix_resource(resource)}s-retrieve") + ) + if not new_path_item: + new_path_item = copy.deepcopy(path_item) + + method = "get" + operation = new_path_item[method] + operation["operationId"] = ( + f"{path_item[method]['operationId']}_related_{rel_name}" + ) + operation["tags"] = path_item[method]["tags"] + if "parameters" in operation: + operation["parameters"] = [ + p + for p in operation["parameters"] + if p.get("name") != RELATED_FIELD_PARAM_NAME + ] + + try: + operation["responses"]["200"]["content"][JSON_API_CONTENT_TYPE][ + "schema" + ] = {"$ref": new_schema_ref} + print( + f" ✓ Creating endpoint '{method.upper()} {new_path_str}'" + ) + print(f" - Pointing schema to: {new_schema_ref}") + + except KeyError: + print( + f" [!] Warning: Could not find a valid response structure in '{method.upper()} {path}' to rewire the schema." + ) + + new_paths[new_path_str] = {"get": operation} + + output_file = options["output"] + if paths_to_delete: + print("\n🔄 Updating OpenAPI structure...") + for path in paths_to_delete: + del data["paths"][path] + print(f" - Removed generic path: {path}") + + data["paths"].update(new_paths) + for path in new_paths: + print(f" + Added specific path: {path}") + + # Dump the modified data to the output file + with open(output_file, "w") as f: + yaml.dump(data, f) + print(f"\n✅ Success! Wrote refined OpenAPI spec to '{output_file}'") + else: + print( + "\n✅ No generic relationship paths found to modify. Output file is unchanged." + ) + # Optionally write to output file anyway + with open(output_file, "w") as f: + yaml.dump(data, f, CSafeDumper) diff --git a/app/urls.py b/app/urls.py index 74285096..1e307e51 100644 --- a/app/urls.py +++ b/app/urls.py @@ -5,11 +5,6 @@ path, ) from django.views.generic.base import RedirectView -from drf_spectacular.views import ( - SpectacularAPIView, - SpectacularRedocView, - SpectacularSwaggerView, -) urlpatterns = [ @@ -20,17 +15,6 @@ RedirectView.as_view(url="/static/gravyvalet_code_docs/index.html"), name="docs-root", ), - path("api/schema/", SpectacularAPIView.as_view(), name="schema"), - path( - "api/schema/swagger-ui/", - SpectacularSwaggerView.as_view(url_name="schema"), - name="swagger-ui", - ), - path( - "api/schema/redoc/", - SpectacularRedocView.as_view(url_name="schema"), - name="redoc", - ), ] if "silk" in settings.INSTALLED_APPS: From e35d973eeca9ea62481690dbe06d4538dfc3d044 Mon Sep 17 00:00:00 2001 From: Oleh Paduchak Date: Mon, 30 Jun 2025 16:33:29 +0300 Subject: [PATCH 08/13] reverted removal of swagger views, added debug switch --- app/urls.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/app/urls.py b/app/urls.py index 1e307e51..c0c0ef0a 100644 --- a/app/urls.py +++ b/app/urls.py @@ -5,6 +5,11 @@ path, ) from django.views.generic.base import RedirectView +from drf_spectacular.views import ( + SpectacularAPIView, + SpectacularRedocView, + SpectacularSwaggerView, +) urlpatterns = [ @@ -16,6 +21,18 @@ name="docs-root", ), ] +if settings.DEBUG: + path("api/schema/", SpectacularAPIView.as_view(), name="schema"), + path( + "api/schema/swagger-ui/", + SpectacularSwaggerView.as_view(url_name="schema"), + name="swagger-ui", + ), + path( + "api/schema/redoc/", + SpectacularRedocView.as_view(url_name="schema"), + name="redoc", + ), if "silk" in settings.INSTALLED_APPS: urlpatterns.append(path("silk/", include("silk.urls", namespace="silk"))) From 313937f7808cf0233c014d113b3f36405c31e8ad Mon Sep 17 00:00:00 2001 From: Oleh Paduchak Date: Mon, 30 Jun 2025 16:35:07 +0300 Subject: [PATCH 09/13] declutter --- addon_service/management/commands/openapi.py | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/addon_service/management/commands/openapi.py b/addon_service/management/commands/openapi.py index 377c1098..7db458e5 100644 --- a/addon_service/management/commands/openapi.py +++ b/addon_service/management/commands/openapi.py @@ -37,10 +37,6 @@ def fix_resource(s: str) -> str: def get_schema_from_ref(openapi_data, ref): - """ - Resolves a $ref string to its corresponding schema object in the OpenAPI data. - Example: '#/components/schemas/Article' -> openapi_data['components']['schemas']['Article'] - """ parts = ref.strip("#/").split("/") node = openapi_data for part in parts: @@ -97,7 +93,6 @@ def handle(self, *args, **options): continue try: - # We assume the 'get' operation on the primary resource defines its schema schema_ref: str = paths[primary_resource_path]["get"]["responses"][ "200" ]["content"][JSON_API_CONTENT_TYPE]["schema"]["$ref"] @@ -136,10 +131,7 @@ def handle(self, *args, **options): .get("items", {}) .get("properties"), )["type"]["enum"][0] - # if resource.endswith('s'): resource = resource.removesuffix("s") - # schema_name = f'Paginated{kebab_to_camel(resource)}List' - # else: schema_name = f"{kebab_to_camel(resource)}Response" new_schema_ref = f"#/components/schemas/{schema_name}" new_path_item = copy.deepcopy( @@ -188,7 +180,6 @@ def handle(self, *args, **options): for path in new_paths: print(f" + Added specific path: {path}") - # Dump the modified data to the output file with open(output_file, "w") as f: yaml.dump(data, f) print(f"\n✅ Success! Wrote refined OpenAPI spec to '{output_file}'") @@ -196,6 +187,5 @@ def handle(self, *args, **options): print( "\n✅ No generic relationship paths found to modify. Output file is unchanged." ) - # Optionally write to output file anyway with open(output_file, "w") as f: yaml.dump(data, f, CSafeDumper) From ad3cf3671b33c22e3b6fc3dfaf99912faade3a5d Mon Sep 17 00:00:00 2001 From: Oleh Paduchak Date: Mon, 30 Jun 2025 17:37:42 +0300 Subject: [PATCH 10/13] added generated names for relations --- addon_service/management/commands/openapi.py | 54 +- openapi.yml | 11403 +++++++++++++++++ 2 files changed, 11440 insertions(+), 17 deletions(-) create mode 100644 openapi.yml diff --git a/addon_service/management/commands/openapi.py b/addon_service/management/commands/openapi.py index 7db458e5..2753f0a7 100644 --- a/addon_service/management/commands/openapi.py +++ b/addon_service/management/commands/openapi.py @@ -47,6 +47,13 @@ def get_schema_from_ref(openapi_data, ref): return node +def make_decription(child_name: str, parent_name: str, relation_name: str): + if relation_name.endswith("s"): + return f"Fetch all related {kebab_to_camel(child_name)}s to this {parent_name}" + else: + return f"Fetch {parent_name}'s {kebab_to_camel(child_name)}" + + class Command(BaseCommand): def add_arguments(self, parser): @@ -78,30 +85,29 @@ def handle(self, *args, **options): if "get" in path_item } - for path, path_item in paths.items(): + for path, parent_path_item in paths.items(): if path.endswith(f"/{{{RELATED_FIELD_PARAM_NAME}}}/"): print(f" -> Found generic relationship path: {path}") paths_to_delete.append(path) base_path = path.rsplit("/", 2)[0] + "/" - primary_resource_path = f"{base_path}" - if primary_resource_path not in paths: + if base_path not in paths: print( - f" [!] Warning: Could not find parent path '{primary_resource_path}' to infer relationships. Skipping." + f" [!] Warning: Could not find parent path '{base_path}' to infer relationships. Skipping." ) continue try: - schema_ref: str = paths[primary_resource_path]["get"]["responses"][ - "200" - ]["content"][JSON_API_CONTENT_TYPE]["schema"]["$ref"] + schema_ref: str = paths[base_path]["get"]["responses"]["200"][ + "content" + ][JSON_API_CONTENT_TYPE]["schema"]["$ref"] primary_resource_schema = get_schema_from_ref( data, schema_ref.removesuffix("Response") ) except KeyError: print( - f" [!] Warning: Could not find a valid 200 OK schema reference for '{primary_resource_path}'. Skipping." + f" [!] Warning: Could not find a valid 200 OK schema reference for '{base_path}'. Skipping." ) continue @@ -117,7 +123,7 @@ def handle(self, *args, **options): ]["properties"] except KeyError: print( - f" [!] Warning: No 'properties.relationships.properties' found in schema for '{primary_resource_path}'. Skipping." + f" [!] Warning: No 'properties.relationships.properties' found in schema for '{base_path}'. Skipping." ) continue @@ -133,19 +139,26 @@ def handle(self, *args, **options): )["type"]["enum"][0] resource = resource.removesuffix("s") schema_name = f"{kebab_to_camel(resource)}Response" - new_schema_ref = f"#/components/schemas/{schema_name}" + relationship_schema_ref = f"#/components/schemas/{schema_name}" new_path_item = copy.deepcopy( reverse_path_index.get(f"{fix_resource(resource)}s-retrieve") ) - if not new_path_item: - new_path_item = copy.deepcopy(path_item) method = "get" operation = new_path_item[method] operation["operationId"] = ( - f"{path_item[method]['operationId']}_related_{rel_name}" + f"{parent_path_item[method]['operationId']}_related_{rel_name}" + ) + parent_name = schema_ref.rsplit("/", maxsplit=1)[1].removesuffix( + "Response" + ) + operation["description"] = ( + f"Fetch all related {kebab_to_camel(resource)}s to this {parent_name}" + ) + operation["description"] = make_decription( + resource, parent_name, rel_name ) - operation["tags"] = path_item[method]["tags"] + operation["tags"] = parent_path_item[method]["tags"] if "parameters" in operation: operation["parameters"] = [ p @@ -156,11 +169,13 @@ def handle(self, *args, **options): try: operation["responses"]["200"]["content"][JSON_API_CONTENT_TYPE][ "schema" - ] = {"$ref": new_schema_ref} + ] = {"$ref": relationship_schema_ref} print( f" ✓ Creating endpoint '{method.upper()} {new_path_str}'" ) - print(f" - Pointing schema to: {new_schema_ref}") + print( + f" - Pointing schema to: {relationship_schema_ref}" + ) except KeyError: print( @@ -169,7 +184,12 @@ def handle(self, *args, **options): new_paths[new_path_str] = {"get": operation} - output_file = options["output"] + self.collect_and_write_output( + data, new_paths, options["output"], paths_to_delete + ) + + @staticmethod + def collect_and_write_output(data, new_paths, output_file, paths_to_delete): if paths_to_delete: print("\n🔄 Updating OpenAPI structure...") for path in paths_to_delete: diff --git a/openapi.yml b/openapi.yml new file mode 100644 index 00000000..075b60ce --- /dev/null +++ b/openapi.yml @@ -0,0 +1,11403 @@ +components: + schemas: + AddonImp: + additionalProperties: false + properties: + attributes: + properties: + docstring: + readOnly: true + type: string + interface_docstring: + readOnly: true + type: string + name: + readOnly: true + type: string + type: object + id: {} + links: + properties: + self: + example: http://api.example.org/accounts/123 + format: uri + nullable: false + type: string + type: object + relationships: + properties: + implemented_operations: + description: A related resource object from type addon-operations + properties: + data: + properties: + id: + description: The identifier of the related object. + title: Resource Identifier + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - addon-operations + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + readOnly: true + required: + - data + title: Implemented operations + type: object + type: object + type: + allOf: + - $ref: '#/components/schemas/AddonImpTypeEnum' + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + required: + - type + - id + type: object + AddonImpResponse: + properties: + data: + items: + $ref: '#/components/schemas/AddonImp' + type: array + required: + - data + type: object + AddonImpTypeEnum: + enum: + - addon-imps + type: string + AddonOperation: + additionalProperties: false + properties: + attributes: + properties: + capability: + description: '* `ACCESS` - ACCESS + + * `UPDATE` - UPDATE' + enum: + - ACCESS + - UPDATE + readOnly: true + type: string + docstring: + readOnly: true + type: string + kwargs_jsonschema: + readOnly: true + name: + readOnly: true + type: string + result_jsonschema: + readOnly: true + type: object + id: {} + links: + properties: + self: + example: http://api.example.org/accounts/123 + format: uri + nullable: false + type: string + type: object + relationships: + properties: + implemented_by: + description: A related resource object from type addon-imps + properties: + data: + items: + properties: + id: + description: The identifier of the related object. + title: Resource Identifier + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - addon-imps + title: Resource Type Name + type: string + required: + - id + - type + type: object + type: array + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + readOnly: true + required: + - data + title: Implemented by + type: object + type: object + type: + allOf: + - $ref: '#/components/schemas/AddonOperationTypeEnum' + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + required: + - type + - id + type: object + AddonOperationInvocation: + additionalProperties: false + properties: + attributes: + properties: + created: + format: date-time + readOnly: true + type: string + invocation_status: + description: '* `STARTING` - STARTING + + * `GOING` - GOING + + * `SUCCESS` - SUCCESS + + * `ERROR` - ERROR' + enum: + - STARTING + - GOING + - SUCCESS + - ERROR + readOnly: true + type: string + modified: + format: date-time + readOnly: true + type: string + operation_kwargs: {} + operation_name: + type: string + operation_result: + readOnly: true + required: + - operation_kwargs + - operation_name + type: object + links: + properties: + self: + example: http://api.example.org/accounts/123 + format: uri + nullable: false + type: string + type: object + relationships: + properties: + by_user: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - user-references + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + readOnly: true + required: + - data + title: By user + type: object + operation: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - addon-operations + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + readOnly: true + required: + - data + title: Operation + type: object + thru_account: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - AuthorizedAccount + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + required: + - data + title: Thru account + type: object + thru_addon: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - ConfiguredAddon + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + required: + - data + title: Thru addon + type: object + type: object + type: + allOf: + - $ref: '#/components/schemas/AddonOperationInvocationTypeEnum' + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + required: + - type + type: object + AddonOperationInvocationRequest: + properties: + data: + additionalProperties: false + properties: + attributes: + properties: + created: + format: date-time + readOnly: true + type: string + invocation_status: + description: '* `STARTING` - STARTING + + * `GOING` - GOING + + * `SUCCESS` - SUCCESS + + * `ERROR` - ERROR' + enum: + - STARTING + - GOING + - SUCCESS + - ERROR + readOnly: true + type: string + modified: + format: date-time + readOnly: true + type: string + operation_kwargs: {} + operation_name: + minLength: 1 + type: string + operation_result: + readOnly: true + required: + - operation_kwargs + - operation_name + type: object + relationships: + properties: + by_user: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - user-references + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: By user + type: object + operation: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - addon-operations + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Operation + type: object + thru_account: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - AuthorizedAccount + title: Resource Type Name + type: string + required: + - id + - type + type: object + required: + - data + title: Thru account + type: object + thru_addon: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - ConfiguredAddon + title: Resource Type Name + type: string + required: + - id + - type + type: object + required: + - data + title: Thru addon + type: object + type: object + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + enum: + - addon-operation-invocations + type: string + required: + - type + type: object + required: + - data + type: object + AddonOperationInvocationResponse: + properties: + data: + $ref: '#/components/schemas/AddonOperationInvocation' + required: + - data + type: object + AddonOperationInvocationTypeEnum: + enum: + - addon-operation-invocations + type: string + AddonOperationResponse: + properties: + data: + items: + $ref: '#/components/schemas/AddonOperation' + type: array + required: + - data + type: object + AddonOperationTypeEnum: + enum: + - addon-operations + type: string + AuthorizedCitationAccount: + additionalProperties: false + properties: + attributes: + properties: + api_base_url: + format: uri + nullable: true + type: string + auth_url: + readOnly: true + type: string + authorized_capabilities: + items: + description: '* `ACCESS` - ACCESS + + * `UPDATE` - UPDATE' + enum: + - ACCESS + - UPDATE + type: string + type: array + authorized_operation_names: + items: + type: string + readOnly: true + type: array + credentials: + writeOnly: true + credentials_available: + readOnly: true + type: boolean + default_root_folder: + type: string + display_name: + maxLength: 256 + nullable: true + type: string + id: + format: uuid + readOnly: true + type: string + initiate_oauth: + type: boolean + writeOnly: true + required: + - authorized_capabilities + type: object + links: + properties: + self: + example: http://api.example.org/accounts/123 + format: uri + nullable: false + type: string + type: object + relationships: + properties: + account_owner: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - user-references + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + readOnly: true + required: + - data + title: Account owner + type: object + authorized_operations: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - addon-operations + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + readOnly: true + required: + - data + title: Authorized operations + type: object + configured_citation_addons: + description: A related resource object from type configured-citation-addons + properties: + data: + items: + properties: + id: + description: The identifier of the related object. + title: Resource Identifier + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - configured-citation-addons + title: Resource Type Name + type: string + required: + - id + - type + type: object + type: array + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + required: + - data + title: Configured citation addons + type: object + external_citation_service: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - external-citation-services + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + required: + - data + title: External citation service + type: object + required: + - external_citation_service + type: object + type: + allOf: + - $ref: '#/components/schemas/AuthorizedCitationAccountTypeEnum' + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + required: + - type + type: object + AuthorizedCitationAccountRequest: + properties: + data: + additionalProperties: false + properties: + attributes: + properties: + api_base_url: + format: uri + nullable: true + type: string + auth_url: + minLength: 1 + readOnly: true + type: string + authorized_capabilities: + items: + description: '* `ACCESS` - ACCESS + + * `UPDATE` - UPDATE' + enum: + - ACCESS + - UPDATE + type: string + type: array + authorized_operation_names: + items: + minLength: 1 + type: string + readOnly: true + type: array + credentials: + writeOnly: true + credentials_available: + readOnly: true + type: boolean + default_root_folder: + type: string + display_name: + maxLength: 256 + nullable: true + type: string + id: + format: uuid + readOnly: true + type: string + initiate_oauth: + type: boolean + writeOnly: true + required: + - authorized_capabilities + type: object + relationships: + properties: + account_owner: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - user-references + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Account owner + type: object + authorized_operations: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - addon-operations + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Authorized operations + type: object + configured_citation_addons: + description: A related resource object from type configured-citation-addons + properties: + data: + items: + properties: + id: + description: The identifier of the related object. + title: Resource Identifier + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - configured-citation-addons + title: Resource Type Name + type: string + required: + - id + - type + type: object + type: array + required: + - data + title: Configured citation addons + type: object + external_citation_service: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - external-citation-services + title: Resource Type Name + type: string + required: + - id + - type + type: object + required: + - data + title: External citation service + type: object + required: + - external_citation_service + type: object + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + enum: + - authorized-citation-accounts + type: string + required: + - type + type: object + required: + - data + type: object + AuthorizedCitationAccountResponse: + properties: + data: + $ref: '#/components/schemas/AuthorizedCitationAccount' + required: + - data + type: object + AuthorizedCitationAccountTypeEnum: + enum: + - authorized-citation-accounts + type: string + AuthorizedComputingAccount: + additionalProperties: false + properties: + attributes: + properties: + api_base_url: + format: uri + nullable: true + type: string + auth_url: + readOnly: true + type: string + authorized_capabilities: + items: + description: '* `ACCESS` - ACCESS + + * `UPDATE` - UPDATE' + enum: + - ACCESS + - UPDATE + type: string + type: array + authorized_operation_names: + items: + type: string + readOnly: true + type: array + credentials: + writeOnly: true + credentials_available: + readOnly: true + type: boolean + display_name: + maxLength: 256 + nullable: true + type: string + id: + format: uuid + readOnly: true + type: string + initiate_oauth: + type: boolean + writeOnly: true + required: + - authorized_capabilities + type: object + links: + properties: + self: + example: http://api.example.org/accounts/123 + format: uri + nullable: false + type: string + type: object + relationships: + properties: + account_owner: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - user-references + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + readOnly: true + required: + - data + title: Account owner + type: object + authorized_operations: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - addon-operations + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + readOnly: true + required: + - data + title: Authorized operations + type: object + configured_computing_addons: + description: A related resource object from type configured-computing-addons + properties: + data: + items: + properties: + id: + description: The identifier of the related object. + title: Resource Identifier + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - configured-computing-addons + title: Resource Type Name + type: string + required: + - id + - type + type: object + type: array + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + required: + - data + title: Configured computing addons + type: object + external_computing_service: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - external-computing-services + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + required: + - data + title: External computing service + type: object + required: + - external_computing_service + type: object + type: + allOf: + - $ref: '#/components/schemas/AuthorizedComputingAccountTypeEnum' + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + required: + - type + type: object + AuthorizedComputingAccountRequest: + properties: + data: + additionalProperties: false + properties: + attributes: + properties: + api_base_url: + format: uri + nullable: true + type: string + auth_url: + minLength: 1 + readOnly: true + type: string + authorized_capabilities: + items: + description: '* `ACCESS` - ACCESS + + * `UPDATE` - UPDATE' + enum: + - ACCESS + - UPDATE + type: string + type: array + authorized_operation_names: + items: + minLength: 1 + type: string + readOnly: true + type: array + credentials: + writeOnly: true + credentials_available: + readOnly: true + type: boolean + display_name: + maxLength: 256 + nullable: true + type: string + id: + format: uuid + readOnly: true + type: string + initiate_oauth: + type: boolean + writeOnly: true + required: + - authorized_capabilities + type: object + relationships: + properties: + account_owner: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - user-references + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Account owner + type: object + authorized_operations: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - addon-operations + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Authorized operations + type: object + configured_computing_addons: + description: A related resource object from type configured-computing-addons + properties: + data: + items: + properties: + id: + description: The identifier of the related object. + title: Resource Identifier + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - configured-computing-addons + title: Resource Type Name + type: string + required: + - id + - type + type: object + type: array + required: + - data + title: Configured computing addons + type: object + external_computing_service: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - external-computing-services + title: Resource Type Name + type: string + required: + - id + - type + type: object + required: + - data + title: External computing service + type: object + required: + - external_computing_service + type: object + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + enum: + - authorized-computing-accounts + type: string + required: + - type + type: object + required: + - data + type: object + AuthorizedComputingAccountResponse: + properties: + data: + $ref: '#/components/schemas/AuthorizedComputingAccount' + required: + - data + type: object + AuthorizedComputingAccountTypeEnum: + enum: + - authorized-computing-accounts + type: string + AuthorizedLinkAccount: + additionalProperties: false + properties: + attributes: + properties: + api_base_url: + format: uri + nullable: true + type: string + auth_url: + readOnly: true + type: string + authorized_capabilities: + items: + description: '* `ACCESS` - ACCESS + + * `UPDATE` - UPDATE' + enum: + - ACCESS + - UPDATE + type: string + type: array + authorized_operation_names: + items: + type: string + readOnly: true + type: array + credentials: + writeOnly: true + credentials_available: + readOnly: true + type: boolean + display_name: + maxLength: 256 + nullable: true + type: string + id: + format: uuid + readOnly: true + type: string + initiate_oauth: + type: boolean + writeOnly: true + required: + - authorized_capabilities + type: object + links: + properties: + self: + example: http://api.example.org/accounts/123 + format: uri + nullable: false + type: string + type: object + relationships: + properties: + account_owner: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - user-references + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + readOnly: true + required: + - data + title: Account owner + type: object + authorized_operations: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - addon-operations + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + readOnly: true + required: + - data + title: Authorized operations + type: object + configured_link_addons: + description: A related resource object from type configured-link-addons + properties: + data: + items: + properties: + id: + description: The identifier of the related object. + title: Resource Identifier + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - configured-link-addons + title: Resource Type Name + type: string + required: + - id + - type + type: object + type: array + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + required: + - data + title: Configured link addons + type: object + external_link_service: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - external-link-services + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + required: + - data + title: External link service + type: object + required: + - external_link_service + type: object + type: + allOf: + - $ref: '#/components/schemas/AuthorizedLinkAccountTypeEnum' + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + required: + - type + type: object + AuthorizedLinkAccountRequest: + properties: + data: + additionalProperties: false + properties: + attributes: + properties: + api_base_url: + format: uri + nullable: true + type: string + auth_url: + minLength: 1 + readOnly: true + type: string + authorized_capabilities: + items: + description: '* `ACCESS` - ACCESS + + * `UPDATE` - UPDATE' + enum: + - ACCESS + - UPDATE + type: string + type: array + authorized_operation_names: + items: + minLength: 1 + type: string + readOnly: true + type: array + credentials: + writeOnly: true + credentials_available: + readOnly: true + type: boolean + display_name: + maxLength: 256 + nullable: true + type: string + id: + format: uuid + readOnly: true + type: string + initiate_oauth: + type: boolean + writeOnly: true + required: + - authorized_capabilities + type: object + relationships: + properties: + account_owner: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - user-references + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Account owner + type: object + authorized_operations: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - addon-operations + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Authorized operations + type: object + configured_link_addons: + description: A related resource object from type configured-link-addons + properties: + data: + items: + properties: + id: + description: The identifier of the related object. + title: Resource Identifier + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - configured-link-addons + title: Resource Type Name + type: string + required: + - id + - type + type: object + type: array + required: + - data + title: Configured link addons + type: object + external_link_service: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - external-link-services + title: Resource Type Name + type: string + required: + - id + - type + type: object + required: + - data + title: External link service + type: object + required: + - external_link_service + type: object + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + enum: + - authorized-link-accounts + type: string + required: + - type + type: object + required: + - data + type: object + AuthorizedLinkAccountResponse: + properties: + data: + $ref: '#/components/schemas/AuthorizedLinkAccount' + required: + - data + type: object + AuthorizedLinkAccountTypeEnum: + enum: + - authorized-link-accounts + type: string + AuthorizedStorageAccount: + additionalProperties: false + properties: + attributes: + properties: + api_base_url: + format: uri + nullable: true + type: string + auth_url: + readOnly: true + type: string + authorized_capabilities: + items: + description: '* `ACCESS` - ACCESS + + * `UPDATE` - UPDATE' + enum: + - ACCESS + - UPDATE + type: string + type: array + authorized_operation_names: + items: + type: string + readOnly: true + type: array + credentials: + writeOnly: true + credentials_available: + readOnly: true + type: boolean + default_root_folder: + type: string + display_name: + maxLength: 256 + nullable: true + type: string + id: + format: uuid + readOnly: true + type: string + initiate_oauth: + type: boolean + writeOnly: true + required: + - authorized_capabilities + type: object + links: + properties: + self: + example: http://api.example.org/accounts/123 + format: uri + nullable: false + type: string + type: object + relationships: + properties: + account_owner: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - user-references + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + readOnly: true + required: + - data + title: Account owner + type: object + authorized_operations: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - addon-operations + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + readOnly: true + required: + - data + title: Authorized operations + type: object + external_storage_service: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - external-storage-services + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + required: + - data + title: External storage service + type: object + required: + - external_storage_service + type: object + type: + allOf: + - $ref: '#/components/schemas/AuthorizedStorageAccountTypeEnum' + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + required: + - type + type: object + AuthorizedStorageAccountRequest: + properties: + data: + additionalProperties: false + properties: + attributes: + properties: + api_base_url: + format: uri + nullable: true + type: string + auth_url: + minLength: 1 + readOnly: true + type: string + authorized_capabilities: + items: + description: '* `ACCESS` - ACCESS + + * `UPDATE` - UPDATE' + enum: + - ACCESS + - UPDATE + type: string + type: array + authorized_operation_names: + items: + minLength: 1 + type: string + readOnly: true + type: array + credentials: + writeOnly: true + credentials_available: + readOnly: true + type: boolean + default_root_folder: + type: string + display_name: + maxLength: 256 + nullable: true + type: string + id: + format: uuid + readOnly: true + type: string + initiate_oauth: + type: boolean + writeOnly: true + required: + - authorized_capabilities + type: object + relationships: + properties: + account_owner: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - user-references + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Account owner + type: object + authorized_operations: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - addon-operations + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Authorized operations + type: object + external_storage_service: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - external-storage-services + title: Resource Type Name + type: string + required: + - id + - type + type: object + required: + - data + title: External storage service + type: object + required: + - external_storage_service + type: object + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + enum: + - authorized-storage-accounts + type: string + required: + - type + type: object + required: + - data + type: object + AuthorizedStorageAccountResponse: + properties: + data: + $ref: '#/components/schemas/AuthorizedStorageAccount' + required: + - data + type: object + AuthorizedStorageAccountTypeEnum: + enum: + - authorized-storage-accounts + type: string + ConfiguredCitationAddon: + additionalProperties: false + properties: + attributes: + properties: + authorized_resource_uri: + type: string + writeOnly: true + connected_capabilities: + items: + description: '* `ACCESS` - ACCESS + + * `UPDATE` - UPDATE' + enum: + - ACCESS + - UPDATE + type: string + type: array + connected_operation_names: + items: + type: string + readOnly: true + type: array + current_user_is_owner: + readOnly: true + type: boolean + display_name: + maxLength: 256 + nullable: true + type: string + external_service_name: + readOnly: true + type: string + id: + format: uuid + readOnly: true + type: string + root_folder: + type: string + required: + - connected_capabilities + type: object + links: + properties: + self: + example: http://api.example.org/accounts/123 + format: uri + nullable: false + type: string + type: object + relationships: + properties: + authorized_resource: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - resource-references + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + readOnly: true + required: + - data + title: Authorized resource + type: object + base_account: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - authorized-citation-accounts + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + required: + - data + title: Base account + type: object + connected_operations: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - addon-operations + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + readOnly: true + required: + - data + title: Connected operations + type: object + external_citation_service: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - external-citation-services + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + readOnly: true + required: + - data + title: External citation service + type: object + required: + - base_account + type: object + type: + allOf: + - $ref: '#/components/schemas/ConfiguredCitationAddonTypeEnum' + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + required: + - type + type: object + ConfiguredCitationAddonRequest: + properties: + data: + additionalProperties: false + properties: + attributes: + properties: + authorized_resource_uri: + minLength: 1 + type: string + writeOnly: true + connected_capabilities: + items: + description: '* `ACCESS` - ACCESS + + * `UPDATE` - UPDATE' + enum: + - ACCESS + - UPDATE + type: string + type: array + connected_operation_names: + items: + minLength: 1 + type: string + readOnly: true + type: array + current_user_is_owner: + readOnly: true + type: boolean + display_name: + maxLength: 256 + nullable: true + type: string + external_service_name: + minLength: 1 + readOnly: true + type: string + id: + format: uuid + readOnly: true + type: string + root_folder: + type: string + required: + - connected_capabilities + type: object + relationships: + properties: + authorized_resource: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - resource-references + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Authorized resource + type: object + base_account: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - authorized-citation-accounts + title: Resource Type Name + type: string + required: + - id + - type + type: object + required: + - data + title: Base account + type: object + connected_operations: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - addon-operations + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Connected operations + type: object + external_citation_service: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - external-citation-services + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: External citation service + type: object + required: + - base_account + type: object + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + enum: + - configured-citation-addons + type: string + required: + - type + type: object + required: + - data + type: object + ConfiguredCitationAddonResponse: + properties: + data: + $ref: '#/components/schemas/ConfiguredCitationAddon' + required: + - data + type: object + ConfiguredCitationAddonTypeEnum: + enum: + - configured-citation-addons + type: string + ConfiguredComputingAddon: + additionalProperties: false + properties: + attributes: + properties: + authorized_resource_uri: + type: string + writeOnly: true + connected_capabilities: + items: + description: '* `ACCESS` - ACCESS + + * `UPDATE` - UPDATE' + enum: + - ACCESS + - UPDATE + type: string + type: array + connected_operation_names: + items: + type: string + readOnly: true + type: array + current_user_is_owner: + readOnly: true + type: boolean + display_name: + maxLength: 256 + nullable: true + type: string + external_service_name: + readOnly: true + type: string + id: + format: uuid + readOnly: true + type: string + required: + - connected_capabilities + type: object + links: + properties: + self: + example: http://api.example.org/accounts/123 + format: uri + nullable: false + type: string + type: object + relationships: + properties: + authorized_resource: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - resource-references + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + readOnly: true + required: + - data + title: Authorized resource + type: object + base_account: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - authorized-computing-accounts + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + required: + - data + title: Base account + type: object + connected_operations: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - addon-operations + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + readOnly: true + required: + - data + title: Connected operations + type: object + external_computing_service: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - external-computing-services + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + readOnly: true + required: + - data + title: External computing service + type: object + required: + - base_account + type: object + type: + allOf: + - $ref: '#/components/schemas/ConfiguredComputingAddonTypeEnum' + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + required: + - type + type: object + ConfiguredComputingAddonRequest: + properties: + data: + additionalProperties: false + properties: + attributes: + properties: + authorized_resource_uri: + minLength: 1 + type: string + writeOnly: true + connected_capabilities: + items: + description: '* `ACCESS` - ACCESS + + * `UPDATE` - UPDATE' + enum: + - ACCESS + - UPDATE + type: string + type: array + connected_operation_names: + items: + minLength: 1 + type: string + readOnly: true + type: array + current_user_is_owner: + readOnly: true + type: boolean + display_name: + maxLength: 256 + nullable: true + type: string + external_service_name: + minLength: 1 + readOnly: true + type: string + id: + format: uuid + readOnly: true + type: string + required: + - connected_capabilities + type: object + relationships: + properties: + authorized_resource: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - resource-references + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Authorized resource + type: object + base_account: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - authorized-computing-accounts + title: Resource Type Name + type: string + required: + - id + - type + type: object + required: + - data + title: Base account + type: object + connected_operations: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - addon-operations + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Connected operations + type: object + external_computing_service: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - external-computing-services + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: External computing service + type: object + required: + - base_account + type: object + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + enum: + - configured-computing-addons + type: string + required: + - type + type: object + required: + - data + type: object + ConfiguredComputingAddonResponse: + properties: + data: + $ref: '#/components/schemas/ConfiguredComputingAddon' + required: + - data + type: object + ConfiguredComputingAddonTypeEnum: + enum: + - configured-computing-addons + type: string + ConfiguredLinkAddon: + additionalProperties: false + properties: + attributes: + properties: + authorized_resource_uri: + type: string + writeOnly: true + connected_capabilities: + items: + description: '* `ACCESS` - ACCESS + + * `UPDATE` - UPDATE' + enum: + - ACCESS + - UPDATE + type: string + type: array + connected_operation_names: + items: + type: string + readOnly: true + type: array + current_user_is_owner: + readOnly: true + type: boolean + display_name: + maxLength: 256 + nullable: true + type: string + external_service_name: + readOnly: true + type: string + id: + format: uuid + readOnly: true + type: string + resource_type: + description: '* `Audiovisual` - Audiovisual + + * `Award` - Award + + * `Book` - Book + + * `BookChapter` - BookChapter + + * `Collection` - Collection + + * `ComputationalNotebook` - ComputationalNotebook + + * `ConferencePaper` - ConferencePaper + + * `ConferenceProceeding` - ConferenceProceeding + + * `DataPaper` - DataPaper + + * `Dataset` - Dataset + + * `Dissertation` - Dissertation + + * `Event` - Event + + * `Image` - Image + + * `Instrument` - Instrument + + * `InteractiveResource` - InteractiveResource + + * `Journal` - Journal + + * `JournalArticle` - JournalArticle + + * `Model` - Model + + * `OutputManagementPlan` - OutputManagementPlan + + * `PeerReview` - PeerReview + + * `PhysicalObject` - PhysicalObject + + * `Preprint` - Preprint + + * `Project` - Project + + * `Report` - Report + + * `Service` - Service + + * `Software` - Software + + * `Sound` - Sound + + * `Standard` - Standard + + * `StudyRegistration` - StudyRegistration + + * `Text` - Text + + * `Workflow` - Workflow + + * `Other` - Other' + enum: + - Audiovisual + - Award + - Book + - BookChapter + - Collection + - ComputationalNotebook + - ConferencePaper + - ConferenceProceeding + - DataPaper + - Dataset + - Dissertation + - Event + - Image + - Instrument + - InteractiveResource + - Journal + - JournalArticle + - Model + - OutputManagementPlan + - PeerReview + - PhysicalObject + - Preprint + - Project + - Report + - Service + - Software + - Sound + - Standard + - StudyRegistration + - Text + - Workflow + - Other + - null + nullable: true + type: string + target_id: + nullable: true + type: string + target_url: + format: uri + readOnly: true + type: string + required: + - connected_capabilities + type: object + links: + properties: + self: + example: http://api.example.org/accounts/123 + format: uri + nullable: false + type: string + type: object + relationships: + properties: + authorized_resource: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - resource-references + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + readOnly: true + required: + - data + title: Authorized resource + type: object + base_account: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - authorized-link-accounts + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + required: + - data + title: Base account + type: object + connected_operations: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - addon-operations + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + readOnly: true + required: + - data + title: Connected operations + type: object + external_link_service: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - external-link-services + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + readOnly: true + required: + - data + title: External link service + type: object + required: + - base_account + type: object + type: + allOf: + - $ref: '#/components/schemas/ConfiguredLinkAddonTypeEnum' + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + required: + - type + type: object + ConfiguredLinkAddonRequest: + properties: + data: + additionalProperties: false + properties: + attributes: + properties: + authorized_resource_uri: + minLength: 1 + type: string + writeOnly: true + connected_capabilities: + items: + description: '* `ACCESS` - ACCESS + + * `UPDATE` - UPDATE' + enum: + - ACCESS + - UPDATE + type: string + type: array + connected_operation_names: + items: + minLength: 1 + type: string + readOnly: true + type: array + current_user_is_owner: + readOnly: true + type: boolean + display_name: + maxLength: 256 + nullable: true + type: string + external_service_name: + readOnly: true + type: string + id: + format: uuid + readOnly: true + type: string + resource_type: + description: '* `Audiovisual` - Audiovisual + + * `Award` - Award + + * `Book` - Book + + * `BookChapter` - BookChapter + + * `Collection` - Collection + + * `ComputationalNotebook` - ComputationalNotebook + + * `ConferencePaper` - ConferencePaper + + * `ConferenceProceeding` - ConferenceProceeding + + * `DataPaper` - DataPaper + + * `Dataset` - Dataset + + * `Dissertation` - Dissertation + + * `Event` - Event + + * `Image` - Image + + * `Instrument` - Instrument + + * `InteractiveResource` - InteractiveResource + + * `Journal` - Journal + + * `JournalArticle` - JournalArticle + + * `Model` - Model + + * `OutputManagementPlan` - OutputManagementPlan + + * `PeerReview` - PeerReview + + * `PhysicalObject` - PhysicalObject + + * `Preprint` - Preprint + + * `Project` - Project + + * `Report` - Report + + * `Service` - Service + + * `Software` - Software + + * `Sound` - Sound + + * `Standard` - Standard + + * `StudyRegistration` - StudyRegistration + + * `Text` - Text + + * `Workflow` - Workflow + + * `Other` - Other' + enum: + - Audiovisual + - Award + - Book + - BookChapter + - Collection + - ComputationalNotebook + - ConferencePaper + - ConferenceProceeding + - DataPaper + - Dataset + - Dissertation + - Event + - Image + - Instrument + - InteractiveResource + - Journal + - JournalArticle + - Model + - OutputManagementPlan + - PeerReview + - PhysicalObject + - Preprint + - Project + - Report + - Service + - Software + - Sound + - Standard + - StudyRegistration + - Text + - Workflow + - Other + - null + nullable: true + type: string + target_id: + minLength: 1 + nullable: true + type: string + target_url: + format: uri + minLength: 1 + readOnly: true + type: string + required: + - connected_capabilities + type: object + relationships: + properties: + authorized_resource: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - resource-references + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Authorized resource + type: object + base_account: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - authorized-link-accounts + title: Resource Type Name + type: string + required: + - id + - type + type: object + required: + - data + title: Base account + type: object + connected_operations: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - addon-operations + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Connected operations + type: object + external_link_service: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - external-link-services + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: External link service + type: object + required: + - base_account + type: object + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + enum: + - configured-link-addons + type: string + required: + - type + type: object + required: + - data + type: object + ConfiguredLinkAddonResponse: + properties: + data: + $ref: '#/components/schemas/ConfiguredLinkAddon' + required: + - data + type: object + ConfiguredLinkAddonTypeEnum: + enum: + - configured-link-addons + type: string + ConfiguredStorageAddon: + additionalProperties: false + properties: + attributes: + properties: + authorized_resource_uri: + type: string + writeOnly: true + connected_capabilities: + items: + description: '* `ACCESS` - ACCESS + + * `UPDATE` - UPDATE' + enum: + - ACCESS + - UPDATE + type: string + type: array + connected_operation_names: + items: + type: string + readOnly: true + type: array + current_user_is_owner: + readOnly: true + type: boolean + display_name: + maxLength: 256 + nullable: true + type: string + external_service_name: + readOnly: true + type: string + id: + format: uuid + readOnly: true + type: string + root_folder: + type: string + required: + - connected_capabilities + type: object + links: + properties: + self: + example: http://api.example.org/accounts/123 + format: uri + nullable: false + type: string + type: object + relationships: + properties: + authorized_resource: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - resource-references + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + readOnly: true + required: + - data + title: Authorized resource + type: object + base_account: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - authorized-storage-accounts + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + required: + - data + title: Base account + type: object + connected_operations: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - addon-operations + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + readOnly: true + required: + - data + title: Connected operations + type: object + external_storage_service: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - external-storage-services + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + readOnly: true + required: + - data + title: External storage service + type: object + required: + - base_account + type: object + type: + allOf: + - $ref: '#/components/schemas/ConfiguredStorageAddonTypeEnum' + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + required: + - type + type: object + ConfiguredStorageAddonRequest: + properties: + data: + additionalProperties: false + properties: + attributes: + properties: + authorized_resource_uri: + minLength: 1 + type: string + writeOnly: true + connected_capabilities: + items: + description: '* `ACCESS` - ACCESS + + * `UPDATE` - UPDATE' + enum: + - ACCESS + - UPDATE + type: string + type: array + connected_operation_names: + items: + minLength: 1 + type: string + readOnly: true + type: array + current_user_is_owner: + readOnly: true + type: boolean + display_name: + maxLength: 256 + nullable: true + type: string + external_service_name: + readOnly: true + type: string + id: + format: uuid + readOnly: true + type: string + root_folder: + type: string + required: + - connected_capabilities + type: object + relationships: + properties: + authorized_resource: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - resource-references + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Authorized resource + type: object + base_account: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - authorized-storage-accounts + title: Resource Type Name + type: string + required: + - id + - type + type: object + required: + - data + title: Base account + type: object + connected_operations: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - addon-operations + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Connected operations + type: object + external_storage_service: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - external-storage-services + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: External storage service + type: object + required: + - base_account + type: object + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + enum: + - configured-storage-addons + type: string + required: + - type + type: object + required: + - data + type: object + ConfiguredStorageAddonResponse: + properties: + data: + $ref: '#/components/schemas/ConfiguredStorageAddon' + required: + - data + type: object + ConfiguredStorageAddonTypeEnum: + enum: + - configured-storage-addons + type: string + ExternalCitationService: + additionalProperties: false + properties: + attributes: + properties: + api_base_url_options: + items: + type: string + readOnly: true + type: array + auth_uri: + readOnly: true + type: string + configurable_api_root: + readOnly: true + type: string + credentials_format: + description: '* `UNSPECIFIED` - UNSPECIFIED + + * `OAUTH2` - OAUTH2 + + * `ACCESS_KEY_SECRET_KEY` - ACCESS_KEY_SECRET_KEY + + * `USERNAME_PASSWORD` - USERNAME_PASSWORD + + * `PERSONAL_ACCESS_TOKEN` - PERSONAL_ACCESS_TOKEN + + * `OAUTH1A` - OAUTH1A + + * `DATAVERSE_API_TOKEN` - DATAVERSE_API_TOKEN' + enum: + - UNSPECIFIED + - OAUTH2 + - ACCESS_KEY_SECRET_KEY + - USERNAME_PASSWORD + - PERSONAL_ACCESS_TOKEN + - OAUTH1A + - DATAVERSE_API_TOKEN + readOnly: true + type: string + display_name: + type: string + external_service_name: + readOnly: true + type: string + icon_url: + readOnly: true + type: string + id: + format: uuid + readOnly: true + type: string + supported_features: + items: + description: '* `FORKING_PARTIAL` - FORKING_PARTIAL + + * `PERMISSIONS_PARTIAL` - PERMISSIONS_PARTIAL' + enum: + - FORKING_PARTIAL + - PERMISSIONS_PARTIAL + type: string + readOnly: true + type: array + wb_key: + type: string + required: + - display_name + type: object + id: {} + links: + properties: + self: + example: http://api.example.org/accounts/123 + format: uri + nullable: false + type: string + type: object + relationships: + properties: + addon_imp: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - addon-imps + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + required: + - data + title: Addon imp + type: object + required: + - addon_imp + type: object + type: + allOf: + - $ref: '#/components/schemas/ExternalCitationServiceTypeEnum' + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + required: + - type + - id + type: object + ExternalCitationServiceResponse: + properties: + data: + $ref: '#/components/schemas/ExternalCitationService' + required: + - data + type: object + ExternalCitationServiceTypeEnum: + enum: + - external-citation-services + type: string + ExternalComputingService: + additionalProperties: false + properties: + attributes: + properties: + api_base_url_options: + items: + type: string + readOnly: true + type: array + auth_uri: + readOnly: true + type: string + configurable_api_root: + readOnly: true + type: string + credentials_format: + description: '* `UNSPECIFIED` - UNSPECIFIED + + * `OAUTH2` - OAUTH2 + + * `ACCESS_KEY_SECRET_KEY` - ACCESS_KEY_SECRET_KEY + + * `USERNAME_PASSWORD` - USERNAME_PASSWORD + + * `PERSONAL_ACCESS_TOKEN` - PERSONAL_ACCESS_TOKEN + + * `OAUTH1A` - OAUTH1A + + * `DATAVERSE_API_TOKEN` - DATAVERSE_API_TOKEN' + enum: + - UNSPECIFIED + - OAUTH2 + - ACCESS_KEY_SECRET_KEY + - USERNAME_PASSWORD + - PERSONAL_ACCESS_TOKEN + - OAUTH1A + - DATAVERSE_API_TOKEN + readOnly: true + type: string + display_name: + type: string + icon_url: + readOnly: true + type: string + id: + format: uuid + readOnly: true + type: string + supported_features: + items: + description: '* `ADD_UPDATE_FILES_PARTIAL` - ADD_UPDATE_FILES_PARTIAL + + * `FORKING_PARTIAL` - FORKING_PARTIAL + + * `LOGS_PARTIAL` - LOGS_PARTIAL + + * `PERMISSIONS_PARTIAL` - PERMISSIONS_PARTIAL + + * `REGISTERING_PARTIAL` - REGISTERING_PARTIAL' + enum: + - ADD_UPDATE_FILES_PARTIAL + - FORKING_PARTIAL + - LOGS_PARTIAL + - PERMISSIONS_PARTIAL + - REGISTERING_PARTIAL + type: string + readOnly: true + type: array + wb_key: + type: string + required: + - display_name + type: object + id: {} + links: + properties: + self: + example: http://api.example.org/accounts/123 + format: uri + nullable: false + type: string + type: object + relationships: + properties: + addon_imp: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - addon-imps + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + required: + - data + title: Addon imp + type: object + required: + - addon_imp + type: object + type: + allOf: + - $ref: '#/components/schemas/ExternalComputingServiceTypeEnum' + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + required: + - type + - id + type: object + ExternalComputingServiceResponse: + properties: + data: + $ref: '#/components/schemas/ExternalComputingService' + required: + - data + type: object + ExternalComputingServiceTypeEnum: + enum: + - external-computing-services + type: string + ExternalLinkService: + additionalProperties: false + properties: + attributes: + properties: + api_base_url_options: + items: + type: string + readOnly: true + type: array + auth_uri: + readOnly: true + type: string + configurable_api_root: + readOnly: true + type: string + credentials_format: + description: '* `UNSPECIFIED` - UNSPECIFIED + + * `OAUTH2` - OAUTH2 + + * `ACCESS_KEY_SECRET_KEY` - ACCESS_KEY_SECRET_KEY + + * `USERNAME_PASSWORD` - USERNAME_PASSWORD + + * `PERSONAL_ACCESS_TOKEN` - PERSONAL_ACCESS_TOKEN + + * `OAUTH1A` - OAUTH1A + + * `DATAVERSE_API_TOKEN` - DATAVERSE_API_TOKEN' + enum: + - UNSPECIFIED + - OAUTH2 + - ACCESS_KEY_SECRET_KEY + - USERNAME_PASSWORD + - PERSONAL_ACCESS_TOKEN + - OAUTH1A + - DATAVERSE_API_TOKEN + readOnly: true + type: string + display_name: + type: string + external_service_name: + readOnly: true + type: string + icon_url: + readOnly: true + type: string + id: + format: uuid + readOnly: true + type: string + supported_features: + items: + description: '* `ADD_UPDATE_FILES` - ADD_UPDATE_FILES + + * `DELETE_FILES` - DELETE_FILES + + * `FORKING` - FORKING + + * `FORKING_PARTIAL` - FORKING_PARTIAL + + * `LOGS` - LOGS + + * `LOGS_PARTIAL` - LOGS_PARTIAL + + * `PERMISSIONS` - PERMISSIONS + + * `REGISTERING` - REGISTERING + + * `FILE_VERSIONS` - FILE_VERSIONS' + enum: + - ADD_UPDATE_FILES + - DELETE_FILES + - FORKING + - FORKING_PARTIAL + - LOGS + - LOGS_PARTIAL + - PERMISSIONS + - REGISTERING + - FILE_VERSIONS + type: string + readOnly: true + type: array + supported_resource_types: + items: + description: '* `Audiovisual` - Audiovisual + + * `Award` - Award + + * `Book` - Book + + * `BookChapter` - BookChapter + + * `Collection` - Collection + + * `ComputationalNotebook` - ComputationalNotebook + + * `ConferencePaper` - ConferencePaper + + * `ConferenceProceeding` - ConferenceProceeding + + * `DataPaper` - DataPaper + + * `Dataset` - Dataset + + * `Dissertation` - Dissertation + + * `Event` - Event + + * `Image` - Image + + * `Instrument` - Instrument + + * `InteractiveResource` - InteractiveResource + + * `Journal` - Journal + + * `JournalArticle` - JournalArticle + + * `Model` - Model + + * `OutputManagementPlan` - OutputManagementPlan + + * `PeerReview` - PeerReview + + * `PhysicalObject` - PhysicalObject + + * `Preprint` - Preprint + + * `Project` - Project + + * `Report` - Report + + * `Service` - Service + + * `Software` - Software + + * `Sound` - Sound + + * `Standard` - Standard + + * `StudyRegistration` - StudyRegistration + + * `Text` - Text + + * `Workflow` - Workflow + + * `Other` - Other' + enum: + - Audiovisual + - Award + - Book + - BookChapter + - Collection + - ComputationalNotebook + - ConferencePaper + - ConferenceProceeding + - DataPaper + - Dataset + - Dissertation + - Event + - Image + - Instrument + - InteractiveResource + - Journal + - JournalArticle + - Model + - OutputManagementPlan + - PeerReview + - PhysicalObject + - Preprint + - Project + - Report + - Service + - Software + - Sound + - Standard + - StudyRegistration + - Text + - Workflow + - Other + type: string + readOnly: true + type: array + wb_key: + type: string + required: + - display_name + type: object + id: {} + links: + properties: + self: + example: http://api.example.org/accounts/123 + format: uri + nullable: false + type: string + type: object + relationships: + properties: + addon_imp: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - addon-imps + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + required: + - data + title: Addon imp + type: object + required: + - addon_imp + type: object + type: + allOf: + - $ref: '#/components/schemas/ExternalLinkServiceTypeEnum' + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + required: + - type + - id + type: object + ExternalLinkServiceResponse: + properties: + data: + $ref: '#/components/schemas/ExternalLinkService' + required: + - data + type: object + ExternalLinkServiceTypeEnum: + enum: + - external-link-services + type: string + ExternalStorageService: + additionalProperties: false + properties: + attributes: + properties: + api_base_url_options: + items: + type: string + readOnly: true + type: array + auth_uri: + readOnly: true + type: string + configurable_api_root: + readOnly: true + type: string + credentials_format: + description: '* `UNSPECIFIED` - UNSPECIFIED + + * `OAUTH2` - OAUTH2 + + * `ACCESS_KEY_SECRET_KEY` - ACCESS_KEY_SECRET_KEY + + * `USERNAME_PASSWORD` - USERNAME_PASSWORD + + * `PERSONAL_ACCESS_TOKEN` - PERSONAL_ACCESS_TOKEN + + * `OAUTH1A` - OAUTH1A + + * `DATAVERSE_API_TOKEN` - DATAVERSE_API_TOKEN' + enum: + - UNSPECIFIED + - OAUTH2 + - ACCESS_KEY_SECRET_KEY + - USERNAME_PASSWORD + - PERSONAL_ACCESS_TOKEN + - OAUTH1A + - DATAVERSE_API_TOKEN + readOnly: true + type: string + display_name: + type: string + external_service_name: + readOnly: true + type: string + icon_url: + readOnly: true + type: string + id: + format: uuid + readOnly: true + type: string + max_concurrent_downloads: + maximum: 2147483647 + minimum: -2147483648 + type: integer + max_upload_mb: + maximum: 2147483647 + minimum: -2147483648 + type: integer + supported_features: + items: + description: '* `ADD_UPDATE_FILES` - ADD_UPDATE_FILES + + * `ADD_UPDATE_FILES_PARTIAL` - ADD_UPDATE_FILES_PARTIAL + + * `DELETE_FILES` - DELETE_FILES + + * `DELETE_FILES_PARTIAL` - DELETE_FILES_PARTIAL + + * `FORKING` - FORKING + + * `LOGS` - LOGS + + * `PERMISSIONS` - PERMISSIONS + + * `REGISTERING` - REGISTERING + + * `FILE_VERSIONS` - FILE_VERSIONS + + * `COPY_INTO` - COPY_INTO + + * `DOWNLOAD_AS_ZIP` - DOWNLOAD_AS_ZIP' + enum: + - ADD_UPDATE_FILES + - ADD_UPDATE_FILES_PARTIAL + - DELETE_FILES + - DELETE_FILES_PARTIAL + - FORKING + - LOGS + - PERMISSIONS + - REGISTERING + - FILE_VERSIONS + - COPY_INTO + - DOWNLOAD_AS_ZIP + type: string + readOnly: true + type: array + wb_key: + type: string + required: + - max_concurrent_downloads + - max_upload_mb + - display_name + type: object + id: {} + links: + properties: + self: + example: http://api.example.org/accounts/123 + format: uri + nullable: false + type: string + type: object + relationships: + properties: + addon_imp: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - addon-imps + title: Resource Type Name + type: string + required: + - id + - type + type: object + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + required: + - data + title: Addon imp + type: object + required: + - addon_imp + type: object + type: + allOf: + - $ref: '#/components/schemas/ExternalStorageServiceTypeEnum' + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + required: + - type + - id + type: object + ExternalStorageServiceResponse: + properties: + data: + $ref: '#/components/schemas/ExternalStorageService' + required: + - data + type: object + ExternalStorageServiceTypeEnum: + enum: + - external-storage-services + type: string + PaginatedExternalCitationServiceList: + properties: + data: + items: + $ref: '#/components/schemas/ExternalCitationService' + type: array + links: + properties: + first: + example: http://api.example.org/accounts/?page[number]=1 + format: uri + nullable: true + type: string + last: + example: http://api.example.org/accounts/?page[number]=3 + format: uri + nullable: true + type: string + next: + example: http://api.example.org/accounts/?page[number]=3 + format: uri + nullable: true + type: string + prev: + example: http://api.example.org/accounts/?page[number]=1 + format: uri + nullable: true + type: string + required: + - count + - next + - prev + type: object + meta: + properties: + pagination: + properties: + count: + example: 2 + type: integer + page: + example: 1 + type: integer + pages: + example: 1 + type: integer + required: + - count + - next + - prev + type: object + required: + - pagination + type: object + required: + - meta + - data + - links + type: object + PaginatedExternalComputingServiceList: + properties: + data: + items: + $ref: '#/components/schemas/ExternalComputingService' + type: array + links: + properties: + first: + example: http://api.example.org/accounts/?page[number]=1 + format: uri + nullable: true + type: string + last: + example: http://api.example.org/accounts/?page[number]=3 + format: uri + nullable: true + type: string + next: + example: http://api.example.org/accounts/?page[number]=3 + format: uri + nullable: true + type: string + prev: + example: http://api.example.org/accounts/?page[number]=1 + format: uri + nullable: true + type: string + required: + - count + - next + - prev + type: object + meta: + properties: + pagination: + properties: + count: + example: 2 + type: integer + page: + example: 1 + type: integer + pages: + example: 1 + type: integer + required: + - count + - next + - prev + type: object + required: + - pagination + type: object + required: + - meta + - data + - links + type: object + PaginatedExternalLinkServiceList: + properties: + data: + items: + $ref: '#/components/schemas/ExternalLinkService' + type: array + links: + properties: + first: + example: http://api.example.org/accounts/?page[number]=1 + format: uri + nullable: true + type: string + last: + example: http://api.example.org/accounts/?page[number]=3 + format: uri + nullable: true + type: string + next: + example: http://api.example.org/accounts/?page[number]=3 + format: uri + nullable: true + type: string + prev: + example: http://api.example.org/accounts/?page[number]=1 + format: uri + nullable: true + type: string + required: + - count + - next + - prev + type: object + meta: + properties: + pagination: + properties: + count: + example: 2 + type: integer + page: + example: 1 + type: integer + pages: + example: 1 + type: integer + required: + - count + - next + - prev + type: object + required: + - pagination + type: object + required: + - meta + - data + - links + type: object + PaginatedExternalStorageServiceList: + properties: + data: + items: + $ref: '#/components/schemas/ExternalStorageService' + type: array + links: + properties: + first: + example: http://api.example.org/accounts/?page[number]=1 + format: uri + nullable: true + type: string + last: + example: http://api.example.org/accounts/?page[number]=3 + format: uri + nullable: true + type: string + next: + example: http://api.example.org/accounts/?page[number]=3 + format: uri + nullable: true + type: string + prev: + example: http://api.example.org/accounts/?page[number]=1 + format: uri + nullable: true + type: string + required: + - count + - next + - prev + type: object + meta: + properties: + pagination: + properties: + count: + example: 2 + type: integer + page: + example: 1 + type: integer + pages: + example: 1 + type: integer + required: + - count + - next + - prev + type: object + required: + - pagination + type: object + required: + - meta + - data + - links + type: object + PaginatedResourceReferenceList: + properties: + data: + items: + $ref: '#/components/schemas/ResourceReference' + type: array + links: + properties: + first: + example: http://api.example.org/accounts/?page[number]=1 + format: uri + nullable: true + type: string + last: + example: http://api.example.org/accounts/?page[number]=3 + format: uri + nullable: true + type: string + next: + example: http://api.example.org/accounts/?page[number]=3 + format: uri + nullable: true + type: string + prev: + example: http://api.example.org/accounts/?page[number]=1 + format: uri + nullable: true + type: string + required: + - count + - next + - prev + type: object + meta: + properties: + pagination: + properties: + count: + example: 2 + type: integer + page: + example: 1 + type: integer + pages: + example: 1 + type: integer + required: + - count + - next + - prev + type: object + required: + - pagination + type: object + required: + - meta + - data + - links + type: object + PaginatedUserReferenceList: + properties: + data: + items: + $ref: '#/components/schemas/UserReference' + type: array + links: + properties: + first: + example: http://api.example.org/accounts/?page[number]=1 + format: uri + nullable: true + type: string + last: + example: http://api.example.org/accounts/?page[number]=3 + format: uri + nullable: true + type: string + next: + example: http://api.example.org/accounts/?page[number]=3 + format: uri + nullable: true + type: string + prev: + example: http://api.example.org/accounts/?page[number]=1 + format: uri + nullable: true + type: string + required: + - count + - next + - prev + type: object + meta: + properties: + pagination: + properties: + count: + example: 2 + type: integer + page: + example: 1 + type: integer + pages: + example: 1 + type: integer + required: + - count + - next + - prev + type: object + required: + - pagination + type: object + required: + - meta + - data + - links + type: object + PatchedAuthorizedCitationAccountRequest: + properties: + data: + additionalProperties: false + properties: + attributes: + properties: + api_base_url: + format: uri + nullable: true + type: string + auth_url: + minLength: 1 + readOnly: true + type: string + authorized_capabilities: + items: + description: '* `ACCESS` - ACCESS + + * `UPDATE` - UPDATE' + enum: + - ACCESS + - UPDATE + type: string + type: array + authorized_operation_names: + items: + minLength: 1 + type: string + readOnly: true + type: array + credentials: + writeOnly: true + credentials_available: + readOnly: true + type: boolean + default_root_folder: + type: string + display_name: + maxLength: 256 + nullable: true + type: string + id: + format: uuid + readOnly: true + type: string + initiate_oauth: + type: boolean + writeOnly: true + required: + - authorized_capabilities + type: object + id: {} + relationships: + properties: + account_owner: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - user-references + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Account owner + type: object + authorized_operations: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - addon-operations + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Authorized operations + type: object + configured_citation_addons: + description: A related resource object from type configured-citation-addons + properties: + data: + items: + properties: + id: + description: The identifier of the related object. + title: Resource Identifier + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - configured-citation-addons + title: Resource Type Name + type: string + required: + - id + - type + type: object + type: array + required: + - data + title: Configured citation addons + type: object + external_citation_service: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - external-citation-services + title: Resource Type Name + type: string + required: + - id + - type + type: object + required: + - data + title: External citation service + type: object + required: + - external_citation_service + type: object + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + enum: + - authorized-citation-accounts + type: string + required: + - type + - id + type: object + required: + - data + type: object + PatchedAuthorizedComputingAccountRequest: + properties: + data: + additionalProperties: false + properties: + attributes: + properties: + api_base_url: + format: uri + nullable: true + type: string + auth_url: + minLength: 1 + readOnly: true + type: string + authorized_capabilities: + items: + description: '* `ACCESS` - ACCESS + + * `UPDATE` - UPDATE' + enum: + - ACCESS + - UPDATE + type: string + type: array + authorized_operation_names: + items: + minLength: 1 + type: string + readOnly: true + type: array + credentials: + writeOnly: true + credentials_available: + readOnly: true + type: boolean + display_name: + maxLength: 256 + nullable: true + type: string + id: + format: uuid + readOnly: true + type: string + initiate_oauth: + type: boolean + writeOnly: true + required: + - authorized_capabilities + type: object + id: {} + relationships: + properties: + account_owner: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - user-references + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Account owner + type: object + authorized_operations: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - addon-operations + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Authorized operations + type: object + configured_computing_addons: + description: A related resource object from type configured-computing-addons + properties: + data: + items: + properties: + id: + description: The identifier of the related object. + title: Resource Identifier + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - configured-computing-addons + title: Resource Type Name + type: string + required: + - id + - type + type: object + type: array + required: + - data + title: Configured computing addons + type: object + external_computing_service: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - external-computing-services + title: Resource Type Name + type: string + required: + - id + - type + type: object + required: + - data + title: External computing service + type: object + required: + - external_computing_service + type: object + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + enum: + - authorized-computing-accounts + type: string + required: + - type + - id + type: object + required: + - data + type: object + PatchedAuthorizedLinkAccountRequest: + properties: + data: + additionalProperties: false + properties: + attributes: + properties: + api_base_url: + format: uri + nullable: true + type: string + auth_url: + minLength: 1 + readOnly: true + type: string + authorized_capabilities: + items: + description: '* `ACCESS` - ACCESS + + * `UPDATE` - UPDATE' + enum: + - ACCESS + - UPDATE + type: string + type: array + authorized_operation_names: + items: + minLength: 1 + type: string + readOnly: true + type: array + credentials: + writeOnly: true + credentials_available: + readOnly: true + type: boolean + display_name: + maxLength: 256 + nullable: true + type: string + id: + format: uuid + readOnly: true + type: string + initiate_oauth: + type: boolean + writeOnly: true + required: + - authorized_capabilities + type: object + id: {} + relationships: + properties: + account_owner: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - user-references + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Account owner + type: object + authorized_operations: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - addon-operations + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Authorized operations + type: object + configured_link_addons: + description: A related resource object from type configured-link-addons + properties: + data: + items: + properties: + id: + description: The identifier of the related object. + title: Resource Identifier + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - configured-link-addons + title: Resource Type Name + type: string + required: + - id + - type + type: object + type: array + required: + - data + title: Configured link addons + type: object + external_link_service: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - external-link-services + title: Resource Type Name + type: string + required: + - id + - type + type: object + required: + - data + title: External link service + type: object + required: + - external_link_service + type: object + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + enum: + - authorized-link-accounts + type: string + required: + - type + - id + type: object + required: + - data + type: object + PatchedAuthorizedStorageAccountRequest: + properties: + data: + additionalProperties: false + properties: + attributes: + properties: + api_base_url: + format: uri + nullable: true + type: string + auth_url: + minLength: 1 + readOnly: true + type: string + authorized_capabilities: + items: + description: '* `ACCESS` - ACCESS + + * `UPDATE` - UPDATE' + enum: + - ACCESS + - UPDATE + type: string + type: array + authorized_operation_names: + items: + minLength: 1 + type: string + readOnly: true + type: array + credentials: + writeOnly: true + credentials_available: + readOnly: true + type: boolean + default_root_folder: + type: string + display_name: + maxLength: 256 + nullable: true + type: string + id: + format: uuid + readOnly: true + type: string + initiate_oauth: + type: boolean + writeOnly: true + required: + - authorized_capabilities + type: object + id: {} + relationships: + properties: + account_owner: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - user-references + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Account owner + type: object + authorized_operations: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - addon-operations + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Authorized operations + type: object + configured_storage_addons: + description: A related resource object from type configured-storage-addons + properties: + data: + items: + properties: + id: + description: The identifier of the related object. + title: Resource Identifier + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - configured-storage-addons + title: Resource Type Name + type: string + required: + - id + - type + type: object + type: array + required: + - data + title: Configured storage addons + type: object + external_storage_service: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - external-storage-services + title: Resource Type Name + type: string + required: + - id + - type + type: object + required: + - data + title: External storage service + type: object + required: + - external_storage_service + type: object + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + enum: + - authorized-storage-accounts + type: string + required: + - type + - id + type: object + required: + - data + type: object + PatchedConfiguredCitationAddonRequest: + properties: + data: + additionalProperties: false + properties: + attributes: + properties: + authorized_resource_uri: + minLength: 1 + type: string + writeOnly: true + connected_capabilities: + items: + description: '* `ACCESS` - ACCESS + + * `UPDATE` - UPDATE' + enum: + - ACCESS + - UPDATE + type: string + type: array + connected_operation_names: + items: + minLength: 1 + type: string + readOnly: true + type: array + current_user_is_owner: + readOnly: true + type: boolean + display_name: + maxLength: 256 + nullable: true + type: string + external_service_name: + minLength: 1 + readOnly: true + type: string + id: + format: uuid + readOnly: true + type: string + root_folder: + type: string + required: + - connected_capabilities + type: object + id: {} + relationships: + properties: + authorized_resource: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - resource-references + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Authorized resource + type: object + base_account: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - authorized-citation-accounts + title: Resource Type Name + type: string + required: + - id + - type + type: object + required: + - data + title: Base account + type: object + connected_operations: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - addon-operations + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Connected operations + type: object + external_citation_service: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - external-citation-services + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: External citation service + type: object + required: + - base_account + type: object + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + enum: + - configured-citation-addons + type: string + required: + - type + - id + type: object + required: + - data + type: object + PatchedConfiguredComputingAddonRequest: + properties: + data: + additionalProperties: false + properties: + attributes: + properties: + authorized_resource_uri: + minLength: 1 + type: string + writeOnly: true + connected_capabilities: + items: + description: '* `ACCESS` - ACCESS + + * `UPDATE` - UPDATE' + enum: + - ACCESS + - UPDATE + type: string + type: array + connected_operation_names: + items: + minLength: 1 + type: string + readOnly: true + type: array + current_user_is_owner: + readOnly: true + type: boolean + display_name: + maxLength: 256 + nullable: true + type: string + external_service_name: + minLength: 1 + readOnly: true + type: string + id: + format: uuid + readOnly: true + type: string + required: + - connected_capabilities + type: object + id: {} + relationships: + properties: + authorized_resource: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - resource-references + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Authorized resource + type: object + base_account: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - authorized-computing-accounts + title: Resource Type Name + type: string + required: + - id + - type + type: object + required: + - data + title: Base account + type: object + connected_operations: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - addon-operations + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Connected operations + type: object + external_computing_service: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - external-computing-services + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: External computing service + type: object + required: + - base_account + type: object + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + enum: + - configured-computing-addons + type: string + required: + - type + - id + type: object + required: + - data + type: object + PatchedConfiguredLinkAddonRequest: + properties: + data: + additionalProperties: false + properties: + attributes: + properties: + authorized_resource_uri: + minLength: 1 + type: string + writeOnly: true + connected_capabilities: + items: + description: '* `ACCESS` - ACCESS + + * `UPDATE` - UPDATE' + enum: + - ACCESS + - UPDATE + type: string + type: array + connected_operation_names: + items: + minLength: 1 + type: string + readOnly: true + type: array + current_user_is_owner: + readOnly: true + type: boolean + display_name: + maxLength: 256 + nullable: true + type: string + external_service_name: + readOnly: true + type: string + id: + format: uuid + readOnly: true + type: string + resource_type: + description: '* `Audiovisual` - Audiovisual + + * `Award` - Award + + * `Book` - Book + + * `BookChapter` - BookChapter + + * `Collection` - Collection + + * `ComputationalNotebook` - ComputationalNotebook + + * `ConferencePaper` - ConferencePaper + + * `ConferenceProceeding` - ConferenceProceeding + + * `DataPaper` - DataPaper + + * `Dataset` - Dataset + + * `Dissertation` - Dissertation + + * `Event` - Event + + * `Image` - Image + + * `Instrument` - Instrument + + * `InteractiveResource` - InteractiveResource + + * `Journal` - Journal + + * `JournalArticle` - JournalArticle + + * `Model` - Model + + * `OutputManagementPlan` - OutputManagementPlan + + * `PeerReview` - PeerReview + + * `PhysicalObject` - PhysicalObject + + * `Preprint` - Preprint + + * `Project` - Project + + * `Report` - Report + + * `Service` - Service + + * `Software` - Software + + * `Sound` - Sound + + * `Standard` - Standard + + * `StudyRegistration` - StudyRegistration + + * `Text` - Text + + * `Workflow` - Workflow + + * `Other` - Other' + enum: + - Audiovisual + - Award + - Book + - BookChapter + - Collection + - ComputationalNotebook + - ConferencePaper + - ConferenceProceeding + - DataPaper + - Dataset + - Dissertation + - Event + - Image + - Instrument + - InteractiveResource + - Journal + - JournalArticle + - Model + - OutputManagementPlan + - PeerReview + - PhysicalObject + - Preprint + - Project + - Report + - Service + - Software + - Sound + - Standard + - StudyRegistration + - Text + - Workflow + - Other + - null + nullable: true + type: string + target_id: + minLength: 1 + nullable: true + type: string + target_url: + format: uri + minLength: 1 + readOnly: true + type: string + required: + - connected_capabilities + type: object + id: {} + relationships: + properties: + authorized_resource: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - resource-references + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Authorized resource + type: object + base_account: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - authorized-link-accounts + title: Resource Type Name + type: string + required: + - id + - type + type: object + required: + - data + title: Base account + type: object + connected_operations: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - addon-operations + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Connected operations + type: object + external_link_service: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - external-link-services + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: External link service + type: object + required: + - base_account + type: object + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + enum: + - configured-link-addons + type: string + required: + - type + - id + type: object + required: + - data + type: object + PatchedConfiguredStorageAddonRequest: + properties: + data: + additionalProperties: false + properties: + attributes: + properties: + authorized_resource_uri: + minLength: 1 + type: string + writeOnly: true + connected_capabilities: + items: + description: '* `ACCESS` - ACCESS + + * `UPDATE` - UPDATE' + enum: + - ACCESS + - UPDATE + type: string + type: array + connected_operation_names: + items: + minLength: 1 + type: string + readOnly: true + type: array + current_user_is_owner: + readOnly: true + type: boolean + display_name: + maxLength: 256 + nullable: true + type: string + external_service_name: + readOnly: true + type: string + id: + format: uuid + readOnly: true + type: string + root_folder: + type: string + required: + - connected_capabilities + type: object + id: {} + relationships: + properties: + authorized_resource: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - resource-references + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Authorized resource + type: object + base_account: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - authorized-storage-accounts + title: Resource Type Name + type: string + required: + - id + - type + type: object + required: + - data + title: Base account + type: object + connected_operations: + description: The identifier of the related object. + properties: + data: + properties: + id: + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - addon-operations + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: Connected operations + type: object + external_storage_service: + description: The identifier of the related object. + properties: + data: + properties: + id: + format: uuid + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share + common attributes and relationships. + enum: + - external-storage-services + title: Resource Type Name + type: string + required: + - id + - type + type: object + readOnly: true + required: + - data + title: External storage service + type: object + required: + - base_account + type: object + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + enum: + - configured-storage-addons + type: string + required: + - type + - id + type: object + required: + - data + type: object + ResourceReference: + additionalProperties: false + properties: + attributes: + properties: + resource_uri: + format: uri + maxLength: 200 + type: string + required: + - resource_uri + type: object + id: + format: uuid + type: string + links: + properties: + self: + example: http://api.example.org/accounts/123 + format: uri + nullable: false + type: string + type: object + relationships: + properties: + configured_citation_addons: + description: A related resource object from type configured-citation-addons + properties: + data: + items: + properties: + id: + description: The identifier of the related object. + title: Resource Identifier + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - configured-citation-addons + title: Resource Type Name + type: string + required: + - id + - type + type: object + type: array + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + required: + - data + title: Configured citation addons + type: object + configured_computing_addons: + description: A related resource object from type configured-computing-addons + properties: + data: + items: + properties: + id: + description: The identifier of the related object. + title: Resource Identifier + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - configured-computing-addons + title: Resource Type Name + type: string + required: + - id + - type + type: object + type: array + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + required: + - data + title: Configured computing addons + type: object + configured_link_addons: + description: A related resource object from type configured-link-addons + properties: + data: + items: + properties: + id: + description: The identifier of the related object. + title: Resource Identifier + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - configured-link-addons + title: Resource Type Name + type: string + required: + - id + - type + type: object + type: array + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + required: + - data + title: Configured link addons + type: object + configured_storage_addons: + description: A related resource object from type configured-storage-addons + properties: + data: + items: + properties: + id: + description: The identifier of the related object. + title: Resource Identifier + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - configured-storage-addons + title: Resource Type Name + type: string + required: + - id + - type + type: object + type: array + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + required: + - data + title: Configured storage addons + type: object + required: + - configured_storage_addons + - configured_link_addons + - configured_citation_addons + - configured_computing_addons + type: object + type: + allOf: + - $ref: '#/components/schemas/ResourceReferenceTypeEnum' + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + required: + - type + - id + type: object + ResourceReferenceResponse: + properties: + data: + $ref: '#/components/schemas/ResourceReference' + required: + - data + type: object + ResourceReferenceTypeEnum: + enum: + - resource-references + type: string + UserReference: + additionalProperties: false + properties: + attributes: + properties: + user_uri: + format: uri + maxLength: 200 + type: string + required: + - user_uri + type: object + id: + format: uuid + type: string + links: + properties: + self: + example: http://api.example.org/accounts/123 + format: uri + nullable: false + type: string + type: object + relationships: + properties: + authorized_citation_accounts: + description: A related resource object from type authorized-citation-accounts + properties: + data: + items: + properties: + id: + description: The identifier of the related object. + title: Resource Identifier + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - authorized-citation-accounts + title: Resource Type Name + type: string + required: + - id + - type + type: object + type: array + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + required: + - data + title: Authorized citation accounts + type: object + authorized_computing_accounts: + description: A related resource object from type authorized-computing-accounts + properties: + data: + items: + properties: + id: + description: The identifier of the related object. + title: Resource Identifier + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - authorized-computing-accounts + title: Resource Type Name + type: string + required: + - id + - type + type: object + type: array + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + required: + - data + title: Authorized computing accounts + type: object + authorized_link_accounts: + description: A related resource object from type authorized-citation-accounts + properties: + data: + items: + properties: + id: + description: The identifier of the related object. + title: Resource Identifier + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - authorized-citation-accounts + title: Resource Type Name + type: string + required: + - id + - type + type: object + type: array + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + required: + - data + title: Authorized link accounts + type: object + authorized_storage_accounts: + description: A related resource object from type authorized-storage-accounts + properties: + data: + items: + properties: + id: + description: The identifier of the related object. + title: Resource Identifier + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - authorized-storage-accounts + title: Resource Type Name + type: string + required: + - id + - type + type: object + type: array + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + required: + - data + title: Authorized storage accounts + type: object + configured_resources: + description: A related resource object from type resource-references + properties: + data: + items: + properties: + id: + description: The identifier of the related object. + title: Resource Identifier + type: string + type: + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common + attributes and relationships. + enum: + - resource-references + title: Resource Type Name + type: string + required: + - id + - type + type: object + type: array + links: + properties: + related: + example: http://api.example.org/accounts/123 + format: uri + nullable: true + type: string + type: object + required: + - data + title: Configured resources + type: object + required: + - authorized_storage_accounts + - authorized_citation_accounts + - authorized_computing_accounts + - authorized_link_accounts + - configured_resources + type: object + type: + allOf: + - $ref: '#/components/schemas/UserReferenceTypeEnum' + description: The [type](https://jsonapi.org/format/#document-resource-object-identification) + member is used to describe resource objects that share common attributes + and relationships. + required: + - type + - id + type: object + UserReferenceResponse: + properties: + data: + $ref: '#/components/schemas/UserReference' + required: + - data + type: object + UserReferenceTypeEnum: + enum: + - user-references + type: string +info: + description: Addons service designed for use with OSF + title: GravyValet API + version: 1.0.0 +openapi: 3.0.3 +paths: + /v1/addon-imps/: + get: + description: viewset for read-only access to any `StaticDataclassModel` + operationId: addon_imps_list + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[addon-imps] + schema: + items: + enum: + - url + - name + - docstring + - interface_docstring + - implemented_operations + type: string + type: array + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - implemented_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AddonImpResponse' + description: '' + security: + - {} + tags: + - addon-imps + /v1/addon-imps/{id}/: + get: + description: viewset for read-only access to any `StaticDataclassModel` + operationId: addon_imps_retrieve + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[addon-imps] + schema: + items: + enum: + - url + - name + - docstring + - interface_docstring + - implemented_operations + type: string + type: array + - in: path + name: id + required: true + schema: + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - implemented_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AddonImpResponse' + description: '' + security: + - {} + tags: + - addon-imps + /v1/addon-imps/{id}/implemented_operations: + get: + description: Fetch all related AddonOperation to this AddonImp + operationId: addon_imps_retrieve_2_related_implemented_operations + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[addon-operations] + schema: + items: + enum: + - url + - name + - docstring + - capability + - kwargs_jsonschema + - result_jsonschema + - implemented_by + type: string + type: array + - in: path + name: id + required: true + schema: + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - implemented_by + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AddonOperationResponse' + description: '' + security: + - {} + tags: + - addon-imps + /v1/addon-operation-invocations/: + post: + description: Perform some action using external service, for instance list files + on storage provider. In order to perform such action you need to include configured_addon + relationship + operationId: addon_operation_invocations_create + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AddonOperationInvocationRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/AddonOperationInvocationRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/AddonOperationInvocationRequest' + required: true + responses: + '201': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AddonOperationInvocationResponse' + description: '' + tags: + - addon-operation-invocations + /v1/addon-operation-invocations/{id}/: + get: + description: Get singular instance of addon operation invocation by it's pk. + May be useful to view action log + operationId: addon_operation_invocations_retrieve + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[addon-operation-invocations] + schema: + items: + enum: + - url + - invocation_status + - operation_kwargs + - operation_result + - operation + - by_user + - thru_account + - thru_addon + - created + - modified + - operation_name + type: string + type: array + - description: A UUID string identifying this addon operation invocation. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - thru_account + - thru_addon + - operation + - by_user + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AddonOperationInvocationResponse' + description: '' + tags: + - addon-operation-invocations + /v1/addon-operation-invocations/{id}/by_user: + get: + description: Fetch all related UserReference to this AddonOperationInvocation + operationId: addon_operation_invocations_retrieve_2_related_by_user + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[user-references] + schema: + items: + enum: + - url + - user_uri + - authorized_storage_accounts + - authorized_citation_accounts + - authorized_computing_accounts + - authorized_link_accounts + - configured_resources + type: string + type: array + - description: A UUID string identifying this User Reference. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - authorized_storage_accounts + - authorized_citation_accounts + - authorized_computing_accounts + - authorized_link_accounts + - configured_resources + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/UserReferenceResponse' + description: '' + tags: &id001 + - addon-operation-invocations + /v1/addon-operation-invocations/{id}/operation: + get: + description: Fetch all related AddonOperation to this AddonOperationInvocation + operationId: addon_operation_invocations_retrieve_2_related_operation + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[addon-operations] + schema: + items: + enum: + - url + - name + - docstring + - capability + - kwargs_jsonschema + - result_jsonschema + - implemented_by + type: string + type: array + - in: path + name: id + required: true + schema: + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - implemented_by + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AddonOperationResponse' + description: '' + security: + - {} + tags: *id001 + /v1/addon-operation-invocations/{id}/thru_account: + get: + description: Fetch all related AuthorizedStorageAccount to this AddonOperationInvocation + operationId: addon_operation_invocations_retrieve_2_related_thru_account + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[authorized-storage-accounts] + schema: + items: + enum: + - id + - url + - display_name + - account_owner + - api_base_url + - auth_url + - authorized_capabilities + - authorized_operations + - authorized_operation_names + - configured_storage_addons + - credentials + - default_root_folder + - external_storage_service + - initiate_oauth + - credentials_available + type: string + type: array + - description: A UUID string identifying this Authorized Storage Account. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - account_owner + - external_storage_service + - configured_storage_addons + - authorized_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AuthorizedStorageAccountResponse' + description: '' + tags: *id001 + /v1/addon-operation-invocations/{id}/thru_addon: + get: + description: Fetch all related ConfiguredStorageAddon to this AddonOperationInvocation + operationId: addon_operation_invocations_retrieve_2_related_thru_addon + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[configured-storage-addons] + schema: + items: + enum: + - id + - url + - display_name + - root_folder + - base_account + - authorized_resource + - authorized_resource_uri + - connected_capabilities + - connected_operations + - connected_operation_names + - external_storage_service + - current_user_is_owner + - external_service_name + type: string + type: array + - description: A UUID string identifying this Configured Storage Addon. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - base_account + - external_storage_service + - authorized_resource + - connected_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ConfiguredStorageAddonResponse' + description: '' + tags: *id001 + /v1/addon-operations/: + get: + description: viewset for read-only access to any `StaticDataclassModel` + operationId: addon_operations_list + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[addon-operations] + schema: + items: + enum: + - url + - name + - docstring + - capability + - kwargs_jsonschema + - result_jsonschema + - implemented_by + type: string + type: array + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - implemented_by + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AddonOperationResponse' + description: '' + security: + - {} + tags: + - addon-operations + /v1/addon-operations/{id}/: + get: + description: viewset for read-only access to any `StaticDataclassModel` + operationId: addon_operations_retrieve + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[addon-operations] + schema: + items: + enum: + - url + - name + - docstring + - capability + - kwargs_jsonschema + - result_jsonschema + - implemented_by + type: string + type: array + - in: path + name: id + required: true + schema: + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - implemented_by + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AddonOperationResponse' + description: '' + security: + - {} + tags: + - addon-operations + /v1/addon-operations/{id}/implemented_by: + get: + description: Fetch all related AddonImp to this AddonOperation + operationId: addon_operations_retrieve_2_related_implemented_by + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[addon-imps] + schema: + items: + enum: + - url + - name + - docstring + - interface_docstring + - implemented_operations + type: string + type: array + - in: path + name: id + required: true + schema: + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - implemented_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AddonImpResponse' + description: '' + security: + - {} + tags: + - addon-operations + /v1/authorized-citation-accounts/: + post: + description: "Create new authorized citation account for given external citation\ + \ service.\n For OAuth services it's required to create account with `\"initiate_oauth\"\ + =true` in order to proceed with OAuth flow" + operationId: authorized_citation_accounts_create + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AuthorizedCitationAccountRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/AuthorizedCitationAccountRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/AuthorizedCitationAccountRequest' + required: true + responses: + '201': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AuthorizedCitationAccountResponse' + description: '' + tags: + - authorized-citation-accounts + /v1/authorized-citation-accounts/{id}/: + delete: + description: viewset allowing create, retrieve, update, delete + operationId: authorized_citation_accounts_destroy + parameters: + - description: A UUID string identifying this Authorized Citation Account. + in: path + name: id + required: true + schema: + format: uuid + type: string + responses: + '204': + description: No response body + tags: + - authorized-citation-accounts + get: + description: viewset allowing create, retrieve, update, delete + operationId: authorized_citation_accounts_retrieve + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[authorized-citation-accounts] + schema: + items: + enum: + - id + - url + - display_name + - account_owner + - api_base_url + - auth_url + - authorized_capabilities + - authorized_operations + - authorized_operation_names + - configured_citation_addons + - credentials + - default_root_folder + - external_citation_service + - initiate_oauth + - credentials_available + type: string + type: array + - description: A UUID string identifying this Authorized Citation Account. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - account_owner + - external_citation_service + - configured_citation_addons + - authorized_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AuthorizedCitationAccountResponse' + description: '' + tags: + - authorized-citation-accounts + patch: + description: viewset allowing create, retrieve, update, delete + operationId: authorized_citation_accounts_partial_update + parameters: + - description: A UUID string identifying this Authorized Citation Account. + in: path + name: id + required: true + schema: + format: uuid + type: string + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/PatchedAuthorizedCitationAccountRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedAuthorizedCitationAccountRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedAuthorizedCitationAccountRequest' + required: true + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AuthorizedCitationAccountResponse' + description: '' + tags: + - authorized-citation-accounts + /v1/authorized-citation-accounts/{id}/account_owner: + get: + description: Fetch all related UserReference to this AuthorizedCitationAccount + operationId: authorized_citation_accounts_retrieve_2_related_account_owner + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[user-references] + schema: + items: + enum: + - url + - user_uri + - authorized_storage_accounts + - authorized_citation_accounts + - authorized_computing_accounts + - authorized_link_accounts + - configured_resources + type: string + type: array + - description: A UUID string identifying this User Reference. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - authorized_storage_accounts + - authorized_citation_accounts + - authorized_computing_accounts + - authorized_link_accounts + - configured_resources + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/UserReferenceResponse' + description: '' + tags: &id002 + - authorized-citation-accounts + /v1/authorized-citation-accounts/{id}/authorized_operations: + get: + description: Fetch all related AddonOperation to this AuthorizedCitationAccount + operationId: authorized_citation_accounts_retrieve_2_related_authorized_operations + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[addon-operations] + schema: + items: + enum: + - url + - name + - docstring + - capability + - kwargs_jsonschema + - result_jsonschema + - implemented_by + type: string + type: array + - in: path + name: id + required: true + schema: + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - implemented_by + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AddonOperationResponse' + description: '' + security: + - {} + tags: *id002 + /v1/authorized-citation-accounts/{id}/configured_citation_addons: + get: + description: Fetch all related ConfiguredCitationAddon to this AuthorizedCitationAccount + operationId: authorized_citation_accounts_retrieve_2_related_configured_citation_addons + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[configured-citation-addons] + schema: + items: + enum: + - id + - url + - display_name + - root_folder + - base_account + - authorized_resource + - authorized_resource_uri + - connected_capabilities + - connected_operations + - connected_operation_names + - external_service_name + - external_citation_service + - current_user_is_owner + type: string + type: array + - description: A UUID string identifying this Configured Citation Addon. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - base_account + - external_citation_service + - authorized_resource + - connected_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ConfiguredCitationAddonResponse' + description: '' + tags: *id002 + /v1/authorized-citation-accounts/{id}/external_citation_service: + get: + description: Fetch all related ExternalCitationService to this AuthorizedCitationAccount + operationId: authorized_citation_accounts_retrieve_2_related_external_citation_service + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[external-citation-services] + schema: + items: + enum: + - id + - addon_imp + - auth_uri + - credentials_format + - display_name + - url + - configurable_api_root + - wb_key + - external_service_name + - supported_features + - icon_url + - api_base_url_options + type: string + type: array + - description: A UUID string identifying this External Citation Service. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - addon_imp + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ExternalCitationServiceResponse' + description: '' + security: + - {} + tags: *id002 + /v1/authorized-computing-accounts/: + post: + description: "Create new authorized computing account for given external computing\ + \ service.\n For OAuth services it's required to create account with `\"initiate_oauth\"\ + =true` in order to proceed with OAuth flow" + operationId: authorized_computing_accounts_create + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AuthorizedComputingAccountRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/AuthorizedComputingAccountRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/AuthorizedComputingAccountRequest' + required: true + responses: + '201': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AuthorizedComputingAccountResponse' + description: '' + tags: + - authorized-computing-accounts + /v1/authorized-computing-accounts/{id}/: + delete: + description: viewset allowing create, retrieve, update, delete + operationId: authorized_computing_accounts_destroy + parameters: + - description: A UUID string identifying this Authorized Computing Account. + in: path + name: id + required: true + schema: + format: uuid + type: string + responses: + '204': + description: No response body + tags: + - authorized-computing-accounts + get: + description: viewset allowing create, retrieve, update, delete + operationId: authorized_computing_accounts_retrieve + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[authorized-computing-accounts] + schema: + items: + enum: + - id + - url + - display_name + - account_owner + - api_base_url + - auth_url + - authorized_capabilities + - authorized_operations + - authorized_operation_names + - configured_computing_addons + - credentials + - external_computing_service + - initiate_oauth + - credentials_available + type: string + type: array + - description: A UUID string identifying this Authorized Computing Account. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - account_owner + - external_computing_service + - configured_computing_addons + - authorized_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AuthorizedComputingAccountResponse' + description: '' + tags: + - authorized-computing-accounts + patch: + description: viewset allowing create, retrieve, update, delete + operationId: authorized_computing_accounts_partial_update + parameters: + - description: A UUID string identifying this Authorized Computing Account. + in: path + name: id + required: true + schema: + format: uuid + type: string + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/PatchedAuthorizedComputingAccountRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedAuthorizedComputingAccountRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedAuthorizedComputingAccountRequest' + required: true + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AuthorizedComputingAccountResponse' + description: '' + tags: + - authorized-computing-accounts + /v1/authorized-computing-accounts/{id}/account_owner: + get: + description: Fetch all related UserReference to this AuthorizedComputingAccount + operationId: authorized_computing_accounts_retrieve_2_related_account_owner + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[user-references] + schema: + items: + enum: + - url + - user_uri + - authorized_storage_accounts + - authorized_citation_accounts + - authorized_computing_accounts + - authorized_link_accounts + - configured_resources + type: string + type: array + - description: A UUID string identifying this User Reference. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - authorized_storage_accounts + - authorized_citation_accounts + - authorized_computing_accounts + - authorized_link_accounts + - configured_resources + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/UserReferenceResponse' + description: '' + tags: &id003 + - authorized-computing-accounts + /v1/authorized-computing-accounts/{id}/authorized_operations: + get: + description: Fetch all related AddonOperation to this AuthorizedComputingAccount + operationId: authorized_computing_accounts_retrieve_2_related_authorized_operations + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[addon-operations] + schema: + items: + enum: + - url + - name + - docstring + - capability + - kwargs_jsonschema + - result_jsonschema + - implemented_by + type: string + type: array + - in: path + name: id + required: true + schema: + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - implemented_by + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AddonOperationResponse' + description: '' + security: + - {} + tags: *id003 + /v1/authorized-computing-accounts/{id}/configured_computing_addons: + get: + description: Fetch all related ConfiguredComputingAddon to this AuthorizedComputingAccount + operationId: authorized_computing_accounts_retrieve_2_related_configured_computing_addons + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[configured-computing-addons] + schema: + items: + enum: + - id + - url + - display_name + - base_account + - authorized_resource + - authorized_resource_uri + - connected_capabilities + - connected_operations + - connected_operation_names + - external_service_name + - external_computing_service + - current_user_is_owner + type: string + type: array + - description: A UUID string identifying this Configured Computing Addon. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - base_account + - external_computing_service + - authorized_resource + - connected_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ConfiguredComputingAddonResponse' + description: '' + tags: *id003 + /v1/authorized-computing-accounts/{id}/external_computing_service: + get: + description: Fetch all related ExternalComputingService to this AuthorizedComputingAccount + operationId: authorized_computing_accounts_retrieve_2_related_external_computing_service + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[external-computing-services] + schema: + items: + enum: + - id + - addon_imp + - auth_uri + - credentials_format + - display_name + - url + - configurable_api_root + - supported_features + - icon_url + - wb_key + - api_base_url_options + type: string + type: array + - description: A UUID string identifying this External Computing Service. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - addon_imp + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ExternalComputingServiceResponse' + description: '' + security: + - {} + tags: *id003 + /v1/authorized-link-accounts/: + post: + description: "Create new authorized link account for given external link service.\n\ + \ For OAuth services it's required to create account with `\"initiate_oauth\"\ + =true` in order to proceed with OAuth flow" + operationId: authorized_link_accounts_create + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AuthorizedLinkAccountRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/AuthorizedLinkAccountRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/AuthorizedLinkAccountRequest' + required: true + responses: + '201': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AuthorizedLinkAccountResponse' + description: '' + tags: + - authorized-link-accounts + /v1/authorized-link-accounts/{id}/: + delete: + description: viewset allowing create, retrieve, update, delete + operationId: authorized_link_accounts_destroy + parameters: + - description: A UUID string identifying this Authorized Link Account. + in: path + name: id + required: true + schema: + format: uuid + type: string + responses: + '204': + description: No response body + tags: + - authorized-link-accounts + get: + description: viewset allowing create, retrieve, update, delete + operationId: authorized_link_accounts_retrieve + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[authorized-link-accounts] + schema: + items: + enum: + - id + - url + - display_name + - account_owner + - api_base_url + - auth_url + - authorized_capabilities + - authorized_operations + - authorized_operation_names + - configured_link_addons + - credentials + - external_link_service + - initiate_oauth + - credentials_available + type: string + type: array + - description: A UUID string identifying this Authorized Link Account. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - account_owner + - external_link_service + - configured_link_addons + - authorized_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AuthorizedLinkAccountResponse' + description: '' + tags: + - authorized-link-accounts + patch: + description: viewset allowing create, retrieve, update, delete + operationId: authorized_link_accounts_partial_update + parameters: + - description: A UUID string identifying this Authorized Link Account. + in: path + name: id + required: true + schema: + format: uuid + type: string + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/PatchedAuthorizedLinkAccountRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedAuthorizedLinkAccountRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedAuthorizedLinkAccountRequest' + required: true + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AuthorizedLinkAccountResponse' + description: '' + tags: + - authorized-link-accounts + /v1/authorized-link-accounts/{id}/account_owner: + get: + description: Fetch all related UserReference to this AuthorizedLinkAccount + operationId: authorized_link_accounts_retrieve_2_related_account_owner + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[user-references] + schema: + items: + enum: + - url + - user_uri + - authorized_storage_accounts + - authorized_citation_accounts + - authorized_computing_accounts + - authorized_link_accounts + - configured_resources + type: string + type: array + - description: A UUID string identifying this User Reference. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - authorized_storage_accounts + - authorized_citation_accounts + - authorized_computing_accounts + - authorized_link_accounts + - configured_resources + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/UserReferenceResponse' + description: '' + tags: &id004 + - authorized-link-accounts + /v1/authorized-link-accounts/{id}/authorized_operations: + get: + description: Fetch all related AddonOperation to this AuthorizedLinkAccount + operationId: authorized_link_accounts_retrieve_2_related_authorized_operations + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[addon-operations] + schema: + items: + enum: + - url + - name + - docstring + - capability + - kwargs_jsonschema + - result_jsonschema + - implemented_by + type: string + type: array + - in: path + name: id + required: true + schema: + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - implemented_by + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AddonOperationResponse' + description: '' + security: + - {} + tags: *id004 + /v1/authorized-link-accounts/{id}/configured_link_addons: + get: + description: Fetch all related ConfiguredLinkAddon to this AuthorizedLinkAccount + operationId: authorized_link_accounts_retrieve_2_related_configured_link_addons + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[configured-link-addons] + schema: + items: + enum: + - id + - display_name + - target_url + - base_account + - authorized_resource + - authorized_resource_uri + - connected_capabilities + - connected_operations + - connected_operation_names + - external_link_service + - current_user_is_owner + - external_service_name + - resource_type + - target_id + type: string + type: array + - description: A UUID string identifying this Configured Link Addon. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - base_account + - external_link_service + - authorized_resource + - connected_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ConfiguredLinkAddonResponse' + description: '' + tags: *id004 + /v1/authorized-link-accounts/{id}/external_link_service: + get: + description: Fetch all related ExternalLinkService to this AuthorizedLinkAccount + operationId: authorized_link_accounts_retrieve_2_related_external_link_service + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[external-link-services] + schema: + items: + enum: + - id + - addon_imp + - auth_uri + - credentials_format + - display_name + - url + - wb_key + - external_service_name + - configurable_api_root + - supported_resource_types + - supported_features + - icon_url + - api_base_url_options + type: string + type: array + - description: A UUID string identifying this External Link Service. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - addon_imp + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ExternalLinkServiceResponse' + description: '' + security: + - {} + tags: *id004 + /v1/authorized-storage-accounts/: + post: + description: "Create new authorized storage account for given external storage\ + \ service.\n For OAuth services it's required to create account with `\"initiate_oauth\"\ + =true` in order to proceed with OAuth flow" + operationId: authorized_storage_accounts_create + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AuthorizedStorageAccountRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/AuthorizedStorageAccountRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/AuthorizedStorageAccountRequest' + required: true + responses: + '201': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AuthorizedStorageAccountResponse' + description: '' + tags: + - authorized-storage-accounts + /v1/authorized-storage-accounts/{id}/: + delete: + description: viewset allowing create, retrieve, update, delete + operationId: authorized_storage_accounts_destroy + parameters: + - description: A UUID string identifying this Authorized Storage Account. + in: path + name: id + required: true + schema: + format: uuid + type: string + responses: + '204': + description: No response body + tags: + - authorized-storage-accounts + get: + description: viewset allowing create, retrieve, update, delete + operationId: authorized_storage_accounts_retrieve + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[authorized-storage-accounts] + schema: + items: + enum: + - id + - url + - display_name + - account_owner + - api_base_url + - auth_url + - authorized_capabilities + - authorized_operations + - authorized_operation_names + - configured_storage_addons + - credentials + - default_root_folder + - external_storage_service + - initiate_oauth + - credentials_available + type: string + type: array + - description: A UUID string identifying this Authorized Storage Account. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - account_owner + - external_storage_service + - configured_storage_addons + - authorized_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AuthorizedStorageAccountResponse' + description: '' + tags: + - authorized-storage-accounts + patch: + description: viewset allowing create, retrieve, update, delete + operationId: authorized_storage_accounts_partial_update + parameters: + - description: A UUID string identifying this Authorized Storage Account. + in: path + name: id + required: true + schema: + format: uuid + type: string + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/PatchedAuthorizedStorageAccountRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedAuthorizedStorageAccountRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedAuthorizedStorageAccountRequest' + required: true + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AuthorizedStorageAccountResponse' + description: '' + tags: + - authorized-storage-accounts + /v1/authorized-storage-accounts/{id}/account_owner: + get: + description: Fetch all related UserReference to this AuthorizedStorageAccount + operationId: authorized_storage_accounts_retrieve_2_related_account_owner + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[user-references] + schema: + items: + enum: + - url + - user_uri + - authorized_storage_accounts + - authorized_citation_accounts + - authorized_computing_accounts + - authorized_link_accounts + - configured_resources + type: string + type: array + - description: A UUID string identifying this User Reference. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - authorized_storage_accounts + - authorized_citation_accounts + - authorized_computing_accounts + - authorized_link_accounts + - configured_resources + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/UserReferenceResponse' + description: '' + tags: &id005 + - authorized-storage-accounts + /v1/authorized-storage-accounts/{id}/authorized_operations: + get: + description: Fetch all related AddonOperation to this AuthorizedStorageAccount + operationId: authorized_storage_accounts_retrieve_2_related_authorized_operations + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[addon-operations] + schema: + items: + enum: + - url + - name + - docstring + - capability + - kwargs_jsonschema + - result_jsonschema + - implemented_by + type: string + type: array + - in: path + name: id + required: true + schema: + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - implemented_by + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AddonOperationResponse' + description: '' + security: + - {} + tags: *id005 + /v1/authorized-storage-accounts/{id}/external_storage_service: + get: + description: Fetch all related ExternalStorageService to this AuthorizedStorageAccount + operationId: authorized_storage_accounts_retrieve_2_related_external_storage_service + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[external-storage-services] + schema: + items: + enum: + - id + - addon_imp + - auth_uri + - credentials_format + - max_concurrent_downloads + - max_upload_mb + - display_name + - url + - wb_key + - external_service_name + - configurable_api_root + - supported_features + - icon_url + - api_base_url_options + type: string + type: array + - description: A UUID string identifying this External Storage Service. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - addon_imp + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ExternalStorageServiceResponse' + description: '' + security: + - {} + tags: *id005 + /v1/configured-citation-addons/: + post: + description: "Create new configured citation addon for given authorized citation\ + \ account, linking it to desired project.\n To configure it properly, you\ + \ must specify `root_folder` on the provider's side.\n Note that everything\ + \ under this folder is going to be accessible to everyone who has access to\ + \ this project" + operationId: configured_citation_addons_create + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ConfiguredCitationAddonRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ConfiguredCitationAddonRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ConfiguredCitationAddonRequest' + required: true + responses: + '201': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ConfiguredCitationAddonResponse' + description: '' + tags: + - configured-citation-addons + /v1/configured-citation-addons/{id}/: + delete: + description: viewset allowing create, retrieve, update, delete + operationId: configured_citation_addons_destroy + parameters: + - description: A UUID string identifying this Configured Citation Addon. + in: path + name: id + required: true + schema: + format: uuid + type: string + responses: + '204': + description: No response body + tags: + - configured-citation-addons + get: + description: viewset allowing create, retrieve, update, delete + operationId: configured_citation_addons_retrieve + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[configured-citation-addons] + schema: + items: + enum: + - id + - url + - display_name + - root_folder + - base_account + - authorized_resource + - authorized_resource_uri + - connected_capabilities + - connected_operations + - connected_operation_names + - external_service_name + - external_citation_service + - current_user_is_owner + type: string + type: array + - description: A UUID string identifying this Configured Citation Addon. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - base_account + - external_citation_service + - authorized_resource + - connected_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ConfiguredCitationAddonResponse' + description: '' + tags: + - configured-citation-addons + patch: + description: viewset allowing create, retrieve, update, delete + operationId: configured_citation_addons_partial_update + parameters: + - description: A UUID string identifying this Configured Citation Addon. + in: path + name: id + required: true + schema: + format: uuid + type: string + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/PatchedConfiguredCitationAddonRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedConfiguredCitationAddonRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedConfiguredCitationAddonRequest' + required: true + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ConfiguredCitationAddonResponse' + description: '' + tags: + - configured-citation-addons + /v1/configured-citation-addons/{id}/authorized_resource: + get: + description: Fetch all related ResourceReference to this ConfiguredCitationAddon + operationId: configured_citation_addons_retrieve_2_related_authorized_resource + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[resource-references] + schema: + items: + enum: + - url + - resource_uri + - configured_storage_addons + - configured_link_addons + - configured_citation_addons + - configured_computing_addons + type: string + type: array + - description: A UUID string identifying this Resource Reference. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - configured_storage_addons + - configured_citation_addons + - configured_link_addons + - configured_computing_addons + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ResourceReferenceResponse' + description: '' + tags: &id006 + - configured-citation-addons + /v1/configured-citation-addons/{id}/base_account: + get: + description: Fetch all related AuthorizedCitationAccount to this ConfiguredCitationAddon + operationId: configured_citation_addons_retrieve_2_related_base_account + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[authorized-citation-accounts] + schema: + items: + enum: + - id + - url + - display_name + - account_owner + - api_base_url + - auth_url + - authorized_capabilities + - authorized_operations + - authorized_operation_names + - configured_citation_addons + - credentials + - default_root_folder + - external_citation_service + - initiate_oauth + - credentials_available + type: string + type: array + - description: A UUID string identifying this Authorized Citation Account. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - account_owner + - external_citation_service + - configured_citation_addons + - authorized_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AuthorizedCitationAccountResponse' + description: '' + tags: *id006 + /v1/configured-citation-addons/{id}/connected_operations: + get: + description: Fetch all related AddonOperation to this ConfiguredCitationAddon + operationId: configured_citation_addons_retrieve_2_related_connected_operations + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[addon-operations] + schema: + items: + enum: + - url + - name + - docstring + - capability + - kwargs_jsonschema + - result_jsonschema + - implemented_by + type: string + type: array + - in: path + name: id + required: true + schema: + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - implemented_by + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AddonOperationResponse' + description: '' + security: + - {} + tags: *id006 + /v1/configured-citation-addons/{id}/external_citation_service: + get: + description: Fetch all related ExternalCitationService to this ConfiguredCitationAddon + operationId: configured_citation_addons_retrieve_2_related_external_citation_service + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[external-citation-services] + schema: + items: + enum: + - id + - addon_imp + - auth_uri + - credentials_format + - display_name + - url + - configurable_api_root + - wb_key + - external_service_name + - supported_features + - icon_url + - api_base_url_options + type: string + type: array + - description: A UUID string identifying this External Citation Service. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - addon_imp + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ExternalCitationServiceResponse' + description: '' + security: + - {} + tags: *id006 + /v1/configured-computing-addons/: + post: + description: "Create new configured computing addon for given authorized computing\ + \ account, linking it to desired project.\n To configure it properly, you\ + \ must specify `root_folder` on the provider's side.\n Note that everything\ + \ under this folder is going to be accessible to everyone who has access to\ + \ this project" + operationId: configured_computing_addons_create + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ConfiguredComputingAddonRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ConfiguredComputingAddonRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ConfiguredComputingAddonRequest' + required: true + responses: + '201': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ConfiguredComputingAddonResponse' + description: '' + tags: + - configured-computing-addons + /v1/configured-computing-addons/{id}/: + delete: + description: viewset allowing create, retrieve, update, delete + operationId: configured_computing_addons_destroy + parameters: + - description: A UUID string identifying this Configured Computing Addon. + in: path + name: id + required: true + schema: + format: uuid + type: string + responses: + '204': + description: No response body + tags: + - configured-computing-addons + get: + description: viewset allowing create, retrieve, update, delete + operationId: configured_computing_addons_retrieve + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[configured-computing-addons] + schema: + items: + enum: + - id + - url + - display_name + - base_account + - authorized_resource + - authorized_resource_uri + - connected_capabilities + - connected_operations + - connected_operation_names + - external_service_name + - external_computing_service + - current_user_is_owner + type: string + type: array + - description: A UUID string identifying this Configured Computing Addon. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - base_account + - external_computing_service + - authorized_resource + - connected_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ConfiguredComputingAddonResponse' + description: '' + tags: + - configured-computing-addons + patch: + description: viewset allowing create, retrieve, update, delete + operationId: configured_computing_addons_partial_update + parameters: + - description: A UUID string identifying this Configured Computing Addon. + in: path + name: id + required: true + schema: + format: uuid + type: string + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/PatchedConfiguredComputingAddonRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedConfiguredComputingAddonRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedConfiguredComputingAddonRequest' + required: true + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ConfiguredComputingAddonResponse' + description: '' + tags: + - configured-computing-addons + /v1/configured-computing-addons/{id}/authorized_resource: + get: + description: Fetch all related ResourceReference to this ConfiguredComputingAddon + operationId: configured_computing_addons_retrieve_2_related_authorized_resource + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[resource-references] + schema: + items: + enum: + - url + - resource_uri + - configured_storage_addons + - configured_link_addons + - configured_citation_addons + - configured_computing_addons + type: string + type: array + - description: A UUID string identifying this Resource Reference. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - configured_storage_addons + - configured_citation_addons + - configured_link_addons + - configured_computing_addons + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ResourceReferenceResponse' + description: '' + tags: &id007 + - configured-computing-addons + /v1/configured-computing-addons/{id}/base_account: + get: + description: Fetch all related AuthorizedComputingAccount to this ConfiguredComputingAddon + operationId: configured_computing_addons_retrieve_2_related_base_account + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[authorized-computing-accounts] + schema: + items: + enum: + - id + - url + - display_name + - account_owner + - api_base_url + - auth_url + - authorized_capabilities + - authorized_operations + - authorized_operation_names + - configured_computing_addons + - credentials + - external_computing_service + - initiate_oauth + - credentials_available + type: string + type: array + - description: A UUID string identifying this Authorized Computing Account. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - account_owner + - external_computing_service + - configured_computing_addons + - authorized_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AuthorizedComputingAccountResponse' + description: '' + tags: *id007 + /v1/configured-computing-addons/{id}/connected_operations: + get: + description: Fetch all related AddonOperation to this ConfiguredComputingAddon + operationId: configured_computing_addons_retrieve_2_related_connected_operations + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[addon-operations] + schema: + items: + enum: + - url + - name + - docstring + - capability + - kwargs_jsonschema + - result_jsonschema + - implemented_by + type: string + type: array + - in: path + name: id + required: true + schema: + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - implemented_by + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AddonOperationResponse' + description: '' + security: + - {} + tags: *id007 + /v1/configured-computing-addons/{id}/external_computing_service: + get: + description: Fetch all related ExternalComputingService to this ConfiguredComputingAddon + operationId: configured_computing_addons_retrieve_2_related_external_computing_service + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[external-computing-services] + schema: + items: + enum: + - id + - addon_imp + - auth_uri + - credentials_format + - display_name + - url + - configurable_api_root + - supported_features + - icon_url + - wb_key + - api_base_url_options + type: string + type: array + - description: A UUID string identifying this External Computing Service. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - addon_imp + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ExternalComputingServiceResponse' + description: '' + security: + - {} + tags: *id007 + /v1/configured-link-addons/: + post: + description: "Create new configured link addon for given authorized link account,\ + \ linking it to desired project.\n To configure it properly, you must specify\ + \ `root_folder` on the provider's side.\n Note that everything under this\ + \ folder is going to be accessible to everyone who has access to this project" + operationId: configured_link_addons_create + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ConfiguredLinkAddonRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ConfiguredLinkAddonRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ConfiguredLinkAddonRequest' + required: true + responses: + '201': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ConfiguredLinkAddonResponse' + description: '' + tags: + - configured-link-addons + /v1/configured-link-addons/{id}/: + delete: + description: viewset allowing create, retrieve, update, delete + operationId: configured_link_addons_destroy + parameters: + - description: A UUID string identifying this Configured Link Addon. + in: path + name: id + required: true + schema: + format: uuid + type: string + responses: + '204': + description: No response body + tags: + - configured-link-addons + get: + description: viewset allowing create, retrieve, update, delete + operationId: configured_link_addons_retrieve + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[configured-link-addons] + schema: + items: + enum: + - id + - display_name + - target_url + - base_account + - authorized_resource + - authorized_resource_uri + - connected_capabilities + - connected_operations + - connected_operation_names + - external_link_service + - current_user_is_owner + - external_service_name + - resource_type + - target_id + type: string + type: array + - description: A UUID string identifying this Configured Link Addon. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - base_account + - external_link_service + - authorized_resource + - connected_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ConfiguredLinkAddonResponse' + description: '' + tags: + - configured-link-addons + patch: + description: viewset allowing create, retrieve, update, delete + operationId: configured_link_addons_partial_update + parameters: + - description: A UUID string identifying this Configured Link Addon. + in: path + name: id + required: true + schema: + format: uuid + type: string + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/PatchedConfiguredLinkAddonRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedConfiguredLinkAddonRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedConfiguredLinkAddonRequest' + required: true + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ConfiguredLinkAddonResponse' + description: '' + tags: + - configured-link-addons + /v1/configured-link-addons/{id}/authorized_resource: + get: + description: Fetch all related ResourceReference to this ConfiguredLinkAddon + operationId: configured_link_addons_retrieve_2_related_authorized_resource + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[resource-references] + schema: + items: + enum: + - url + - resource_uri + - configured_storage_addons + - configured_link_addons + - configured_citation_addons + - configured_computing_addons + type: string + type: array + - description: A UUID string identifying this Resource Reference. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - configured_storage_addons + - configured_citation_addons + - configured_link_addons + - configured_computing_addons + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ResourceReferenceResponse' + description: '' + tags: &id008 + - configured-link-addons + /v1/configured-link-addons/{id}/base_account: + get: + description: Fetch all related AuthorizedLinkAccount to this ConfiguredLinkAddon + operationId: configured_link_addons_retrieve_2_related_base_account + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[authorized-link-accounts] + schema: + items: + enum: + - id + - url + - display_name + - account_owner + - api_base_url + - auth_url + - authorized_capabilities + - authorized_operations + - authorized_operation_names + - configured_link_addons + - credentials + - external_link_service + - initiate_oauth + - credentials_available + type: string + type: array + - description: A UUID string identifying this Authorized Link Account. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - account_owner + - external_link_service + - configured_link_addons + - authorized_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AuthorizedLinkAccountResponse' + description: '' + tags: *id008 + /v1/configured-link-addons/{id}/connected_operations: + get: + description: Fetch all related AddonOperation to this ConfiguredLinkAddon + operationId: configured_link_addons_retrieve_2_related_connected_operations + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[addon-operations] + schema: + items: + enum: + - url + - name + - docstring + - capability + - kwargs_jsonschema + - result_jsonschema + - implemented_by + type: string + type: array + - in: path + name: id + required: true + schema: + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - implemented_by + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AddonOperationResponse' + description: '' + security: + - {} + tags: *id008 + /v1/configured-link-addons/{id}/external_link_service: + get: + description: Fetch all related ExternalLinkService to this ConfiguredLinkAddon + operationId: configured_link_addons_retrieve_2_related_external_link_service + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[external-link-services] + schema: + items: + enum: + - id + - addon_imp + - auth_uri + - credentials_format + - display_name + - url + - wb_key + - external_service_name + - configurable_api_root + - supported_resource_types + - supported_features + - icon_url + - api_base_url_options + type: string + type: array + - description: A UUID string identifying this External Link Service. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - addon_imp + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ExternalLinkServiceResponse' + description: '' + security: + - {} + tags: *id008 + /v1/configured-link-addons/{id}/verified-links/: + get: + description: viewset allowing create, retrieve, update, delete + operationId: configured_link_addons_verified_links_retrieve + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[configured-link-addons] + schema: + items: + enum: + - id + - display_name + - target_url + - base_account + - authorized_resource + - authorized_resource_uri + - connected_capabilities + - connected_operations + - connected_operation_names + - external_link_service + - current_user_is_owner + - external_service_name + - resource_type + - target_id + type: string + type: array + - description: A UUID string identifying this Configured Link Addon. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - base_account + - external_link_service + - authorized_resource + - connected_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ConfiguredLinkAddonResponse' + description: '' + tags: + - configured-link-addons + /v1/configured-storage-addons/: + post: + description: "Create new configured storage addon for given authorized storage\ + \ account, linking it to desired project.\n To configure it properly, you\ + \ must specify `root_folder` on the provider's side.\n Note that everything\ + \ under this folder is going to be accessible to everyone who has access to\ + \ this project" + operationId: configured_storage_addons_create + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ConfiguredStorageAddonRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/ConfiguredStorageAddonRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/ConfiguredStorageAddonRequest' + required: true + responses: + '201': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ConfiguredStorageAddonResponse' + description: '' + tags: + - configured-storage-addons + /v1/configured-storage-addons/{id}/: + delete: + description: viewset allowing create, retrieve, update, delete + operationId: configured_storage_addons_destroy + parameters: + - description: A UUID string identifying this Configured Storage Addon. + in: path + name: id + required: true + schema: + format: uuid + type: string + responses: + '204': + description: No response body + tags: + - configured-storage-addons + get: + description: viewset allowing create, retrieve, update, delete + operationId: configured_storage_addons_retrieve + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[configured-storage-addons] + schema: + items: + enum: + - id + - url + - display_name + - root_folder + - base_account + - authorized_resource + - authorized_resource_uri + - connected_capabilities + - connected_operations + - connected_operation_names + - external_storage_service + - current_user_is_owner + - external_service_name + type: string + type: array + - description: A UUID string identifying this Configured Storage Addon. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - base_account + - external_storage_service + - authorized_resource + - connected_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ConfiguredStorageAddonResponse' + description: '' + tags: + - configured-storage-addons + patch: + description: viewset allowing create, retrieve, update, delete + operationId: configured_storage_addons_partial_update + parameters: + - description: A UUID string identifying this Configured Storage Addon. + in: path + name: id + required: true + schema: + format: uuid + type: string + requestBody: + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/PatchedConfiguredStorageAddonRequest' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedConfiguredStorageAddonRequest' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedConfiguredStorageAddonRequest' + required: true + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ConfiguredStorageAddonResponse' + description: '' + tags: + - configured-storage-addons + /v1/configured-storage-addons/{id}/authorized_resource: + get: + description: Fetch all related ResourceReference to this ConfiguredStorageAddon + operationId: configured_storage_addons_retrieve_2_related_authorized_resource + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[resource-references] + schema: + items: + enum: + - url + - resource_uri + - configured_storage_addons + - configured_link_addons + - configured_citation_addons + - configured_computing_addons + type: string + type: array + - description: A UUID string identifying this Resource Reference. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - configured_storage_addons + - configured_citation_addons + - configured_link_addons + - configured_computing_addons + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ResourceReferenceResponse' + description: '' + tags: &id009 + - configured-storage-addons + /v1/configured-storage-addons/{id}/base_account: + get: + description: Fetch all related AuthorizedStorageAccount to this ConfiguredStorageAddon + operationId: configured_storage_addons_retrieve_2_related_base_account + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[authorized-storage-accounts] + schema: + items: + enum: + - id + - url + - display_name + - account_owner + - api_base_url + - auth_url + - authorized_capabilities + - authorized_operations + - authorized_operation_names + - configured_storage_addons + - credentials + - default_root_folder + - external_storage_service + - initiate_oauth + - credentials_available + type: string + type: array + - description: A UUID string identifying this Authorized Storage Account. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - account_owner + - external_storage_service + - configured_storage_addons + - authorized_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AuthorizedStorageAccountResponse' + description: '' + tags: *id009 + /v1/configured-storage-addons/{id}/connected_operations: + get: + description: Fetch all related AddonOperation to this ConfiguredStorageAddon + operationId: configured_storage_addons_retrieve_2_related_connected_operations + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[addon-operations] + schema: + items: + enum: + - url + - name + - docstring + - capability + - kwargs_jsonschema + - result_jsonschema + - implemented_by + type: string + type: array + - in: path + name: id + required: true + schema: + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - implemented_by + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AddonOperationResponse' + description: '' + security: + - {} + tags: *id009 + /v1/configured-storage-addons/{id}/external_storage_service: + get: + description: Fetch all related ExternalStorageService to this ConfiguredStorageAddon + operationId: configured_storage_addons_retrieve_2_related_external_storage_service + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[external-storage-services] + schema: + items: + enum: + - id + - addon_imp + - auth_uri + - credentials_format + - max_concurrent_downloads + - max_upload_mb + - display_name + - url + - wb_key + - external_service_name + - configurable_api_root + - supported_features + - icon_url + - api_base_url_options + type: string + type: array + - description: A UUID string identifying this External Storage Service. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - addon_imp + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ExternalStorageServiceResponse' + description: '' + security: + - {} + tags: *id009 + /v1/external-citation-services/: + get: + description: Get the list of all available external citation services + operationId: external_citation_services_list + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[external-citation-services] + schema: + items: + enum: + - id + - addon_imp + - auth_uri + - credentials_format + - display_name + - url + - configurable_api_root + - wb_key + - external_service_name + - supported_features + - icon_url + - api_base_url_options + type: string + type: array + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - addon_imp + type: string + type: array + - description: A page number within the paginated result set. + in: query + name: page[number] + required: false + schema: + type: integer + - description: Number of results to return per page. + in: query + name: page[size] + required: false + schema: + type: integer + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/PaginatedExternalCitationServiceList' + description: '' + security: + - {} + tags: + - external-citation-services + /v1/external-citation-services/{id}/: + get: + description: "This mixin provides a helper attributes to select or prefetch\ + \ related models\nbased on the include specified in the URL.\n\n__all__ can\ + \ be used to specify a prefetch which should be done regardless of the include\n\ + \n\n.. code:: python\n\n # When MyViewSet is called with ?include=author\ + \ it will prefetch author and authorbio\n class MyViewSet(viewsets.ModelViewSet):\n\ + \ queryset = Book.objects.all()\n prefetch_for_includes = {\n\ + \ '__all__': [],\n 'category.section': ['category']\n\ + \ }\n select_for_includes = {\n '__all__': [],\n\ + \ 'author': ['author', 'author__authorbio'],\n }" + operationId: external_citation_services_retrieve + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[external-citation-services] + schema: + items: + enum: + - id + - addon_imp + - auth_uri + - credentials_format + - display_name + - url + - configurable_api_root + - wb_key + - external_service_name + - supported_features + - icon_url + - api_base_url_options + type: string + type: array + - description: A UUID string identifying this External Citation Service. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - addon_imp + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ExternalCitationServiceResponse' + description: '' + security: + - {} + tags: + - external-citation-services + /v1/external-citation-services/{id}/addon_imp: + get: + description: Fetch all related AddonImp to this ExternalCitationService + operationId: external_citation_services_retrieve_2_related_addon_imp + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[addon-imps] + schema: + items: + enum: + - url + - name + - docstring + - interface_docstring + - implemented_operations + type: string + type: array + - in: path + name: id + required: true + schema: + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - implemented_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AddonImpResponse' + description: '' + security: + - {} + tags: + - external-citation-services + /v1/external-computing-services/: + get: + description: Get the list of all available external computing services + operationId: external_computing_services_list + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[external-computing-services] + schema: + items: + enum: + - id + - addon_imp + - auth_uri + - credentials_format + - display_name + - url + - configurable_api_root + - supported_features + - icon_url + - wb_key + - api_base_url_options + type: string + type: array + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - addon_imp + type: string + type: array + - description: A page number within the paginated result set. + in: query + name: page[number] + required: false + schema: + type: integer + - description: Number of results to return per page. + in: query + name: page[size] + required: false + schema: + type: integer + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/PaginatedExternalComputingServiceList' + description: '' + security: + - {} + tags: + - external-computing-services + /v1/external-computing-services/{id}/: + get: + description: "This mixin provides a helper attributes to select or prefetch\ + \ related models\nbased on the include specified in the URL.\n\n__all__ can\ + \ be used to specify a prefetch which should be done regardless of the include\n\ + \n\n.. code:: python\n\n # When MyViewSet is called with ?include=author\ + \ it will prefetch author and authorbio\n class MyViewSet(viewsets.ModelViewSet):\n\ + \ queryset = Book.objects.all()\n prefetch_for_includes = {\n\ + \ '__all__': [],\n 'category.section': ['category']\n\ + \ }\n select_for_includes = {\n '__all__': [],\n\ + \ 'author': ['author', 'author__authorbio'],\n }" + operationId: external_computing_services_retrieve + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[external-computing-services] + schema: + items: + enum: + - id + - addon_imp + - auth_uri + - credentials_format + - display_name + - url + - configurable_api_root + - supported_features + - icon_url + - wb_key + - api_base_url_options + type: string + type: array + - description: A UUID string identifying this External Computing Service. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - addon_imp + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ExternalComputingServiceResponse' + description: '' + security: + - {} + tags: + - external-computing-services + /v1/external-computing-services/{id}/addon_imp: + get: + description: Fetch all related AddonImp to this ExternalComputingService + operationId: external_computing_services_retrieve_2_related_addon_imp + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[addon-imps] + schema: + items: + enum: + - url + - name + - docstring + - interface_docstring + - implemented_operations + type: string + type: array + - in: path + name: id + required: true + schema: + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - implemented_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AddonImpResponse' + description: '' + security: + - {} + tags: + - external-computing-services + /v1/external-link-services/: + get: + description: Get the list of all available external link services + operationId: external_link_services_list + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[external-link-services] + schema: + items: + enum: + - id + - addon_imp + - auth_uri + - credentials_format + - display_name + - url + - wb_key + - external_service_name + - configurable_api_root + - supported_resource_types + - supported_features + - icon_url + - api_base_url_options + type: string + type: array + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - addon_imp + type: string + type: array + - description: A page number within the paginated result set. + in: query + name: page[number] + required: false + schema: + type: integer + - description: Number of results to return per page. + in: query + name: page[size] + required: false + schema: + type: integer + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/PaginatedExternalLinkServiceList' + description: '' + security: + - {} + tags: + - external-link-services + /v1/external-link-services/{id}/: + get: + description: "This mixin provides a helper attributes to select or prefetch\ + \ related models\nbased on the include specified in the URL.\n\n__all__ can\ + \ be used to specify a prefetch which should be done regardless of the include\n\ + \n\n.. code:: python\n\n # When MyViewSet is called with ?include=author\ + \ it will prefetch author and authorbio\n class MyViewSet(viewsets.ModelViewSet):\n\ + \ queryset = Book.objects.all()\n prefetch_for_includes = {\n\ + \ '__all__': [],\n 'category.section': ['category']\n\ + \ }\n select_for_includes = {\n '__all__': [],\n\ + \ 'author': ['author', 'author__authorbio'],\n }" + operationId: external_link_services_retrieve + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[external-link-services] + schema: + items: + enum: + - id + - addon_imp + - auth_uri + - credentials_format + - display_name + - url + - wb_key + - external_service_name + - configurable_api_root + - supported_resource_types + - supported_features + - icon_url + - api_base_url_options + type: string + type: array + - description: A UUID string identifying this External Link Service. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - addon_imp + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ExternalLinkServiceResponse' + description: '' + security: + - {} + tags: + - external-link-services + /v1/external-link-services/{id}/addon_imp: + get: + description: Fetch all related AddonImp to this ExternalLinkService + operationId: external_link_services_retrieve_2_related_addon_imp + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[addon-imps] + schema: + items: + enum: + - url + - name + - docstring + - interface_docstring + - implemented_operations + type: string + type: array + - in: path + name: id + required: true + schema: + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - implemented_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AddonImpResponse' + description: '' + security: + - {} + tags: + - external-link-services + /v1/external-storage-services/: + get: + description: Get the list of all available external storage services + operationId: external_storage_services_list + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[external-storage-services] + schema: + items: + enum: + - id + - addon_imp + - auth_uri + - credentials_format + - max_concurrent_downloads + - max_upload_mb + - display_name + - url + - wb_key + - external_service_name + - configurable_api_root + - supported_features + - icon_url + - api_base_url_options + type: string + type: array + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - addon_imp + type: string + type: array + - description: A page number within the paginated result set. + in: query + name: page[number] + required: false + schema: + type: integer + - description: Number of results to return per page. + in: query + name: page[size] + required: false + schema: + type: integer + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/PaginatedExternalStorageServiceList' + description: '' + security: + - {} + tags: + - external-storage-services + /v1/external-storage-services/{id}/: + get: + description: "This mixin provides a helper attributes to select or prefetch\ + \ related models\nbased on the include specified in the URL.\n\n__all__ can\ + \ be used to specify a prefetch which should be done regardless of the include\n\ + \n\n.. code:: python\n\n # When MyViewSet is called with ?include=author\ + \ it will prefetch author and authorbio\n class MyViewSet(viewsets.ModelViewSet):\n\ + \ queryset = Book.objects.all()\n prefetch_for_includes = {\n\ + \ '__all__': [],\n 'category.section': ['category']\n\ + \ }\n select_for_includes = {\n '__all__': [],\n\ + \ 'author': ['author', 'author__authorbio'],\n }" + operationId: external_storage_services_retrieve + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[external-storage-services] + schema: + items: + enum: + - id + - addon_imp + - auth_uri + - credentials_format + - max_concurrent_downloads + - max_upload_mb + - display_name + - url + - wb_key + - external_service_name + - configurable_api_root + - supported_features + - icon_url + - api_base_url_options + type: string + type: array + - description: A UUID string identifying this External Storage Service. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - addon_imp + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ExternalStorageServiceResponse' + description: '' + security: + - {} + tags: + - external-storage-services + /v1/external-storage-services/{id}/addon_imp: + get: + description: Fetch all related AddonImp to this ExternalStorageService + operationId: external_storage_services_retrieve_2_related_addon_imp + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[addon-imps] + schema: + items: + enum: + - url + - name + - docstring + - interface_docstring + - implemented_operations + type: string + type: array + - in: path + name: id + required: true + schema: + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - implemented_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AddonImpResponse' + description: '' + security: + - {} + tags: + - external-storage-services + /v1/resource-references/: + get: + description: Get resource reference by resource_uri. Even through this is a + list method, this endpoint returns only one entity + operationId: resource_references_list + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[resource-references] + schema: + items: + enum: + - url + - resource_uri + - configured_storage_addons + - configured_link_addons + - configured_citation_addons + - configured_computing_addons + type: string + type: array + - description: Filter by resource_uri. This filter must be uniquely identifying. + in: query + name: filter[resource_uri] + required: true + schema: + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - configured_storage_addons + - configured_citation_addons + - configured_link_addons + - configured_computing_addons + type: string + type: array + - description: A page number within the paginated result set. + in: query + name: page[number] + required: false + schema: + type: integer + - description: Number of results to return per page. + in: query + name: page[size] + required: false + schema: + type: integer + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/PaginatedResourceReferenceList' + description: '' + tags: + - resource-references + /v1/resource-references/{id}/: + get: + description: Get resource reference by it's pk + operationId: resource_references_retrieve + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[resource-references] + schema: + items: + enum: + - url + - resource_uri + - configured_storage_addons + - configured_link_addons + - configured_citation_addons + - configured_computing_addons + type: string + type: array + - description: A UUID string identifying this Resource Reference. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - configured_storage_addons + - configured_citation_addons + - configured_link_addons + - configured_computing_addons + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ResourceReferenceResponse' + description: '' + tags: + - resource-references + /v1/resource-references/{id}/configured_citation_addons: + get: + description: Fetch all related ConfiguredCitationAddon to this ResourceReference + operationId: resource_references_retrieve_2_related_configured_citation_addons + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[configured-citation-addons] + schema: + items: + enum: + - id + - url + - display_name + - root_folder + - base_account + - authorized_resource + - authorized_resource_uri + - connected_capabilities + - connected_operations + - connected_operation_names + - external_service_name + - external_citation_service + - current_user_is_owner + type: string + type: array + - description: A UUID string identifying this Configured Citation Addon. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - base_account + - external_citation_service + - authorized_resource + - connected_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ConfiguredCitationAddonResponse' + description: '' + tags: &id010 + - resource-references + /v1/resource-references/{id}/configured_computing_addons: + get: + description: Fetch all related ConfiguredComputingAddon to this ResourceReference + operationId: resource_references_retrieve_2_related_configured_computing_addons + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[configured-computing-addons] + schema: + items: + enum: + - id + - url + - display_name + - base_account + - authorized_resource + - authorized_resource_uri + - connected_capabilities + - connected_operations + - connected_operation_names + - external_service_name + - external_computing_service + - current_user_is_owner + type: string + type: array + - description: A UUID string identifying this Configured Computing Addon. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - base_account + - external_computing_service + - authorized_resource + - connected_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ConfiguredComputingAddonResponse' + description: '' + tags: *id010 + /v1/resource-references/{id}/configured_link_addons: + get: + description: Fetch all related ConfiguredLinkAddon to this ResourceReference + operationId: resource_references_retrieve_2_related_configured_link_addons + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[configured-link-addons] + schema: + items: + enum: + - id + - display_name + - target_url + - base_account + - authorized_resource + - authorized_resource_uri + - connected_capabilities + - connected_operations + - connected_operation_names + - external_link_service + - current_user_is_owner + - external_service_name + - resource_type + - target_id + type: string + type: array + - description: A UUID string identifying this Configured Link Addon. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - base_account + - external_link_service + - authorized_resource + - connected_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ConfiguredLinkAddonResponse' + description: '' + tags: *id010 + /v1/resource-references/{id}/configured_storage_addons: + get: + description: Fetch all related ConfiguredStorageAddon to this ResourceReference + operationId: resource_references_retrieve_2_related_configured_storage_addons + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[configured-storage-addons] + schema: + items: + enum: + - id + - url + - display_name + - root_folder + - base_account + - authorized_resource + - authorized_resource_uri + - connected_capabilities + - connected_operations + - connected_operation_names + - external_storage_service + - current_user_is_owner + - external_service_name + type: string + type: array + - description: A UUID string identifying this Configured Storage Addon. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - base_account + - external_storage_service + - authorized_resource + - connected_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ConfiguredStorageAddonResponse' + description: '' + tags: *id010 + /v1/user-references/: + get: + description: Get user reference by user_uri. Even through this is a list method, + this endpoint returns only one entity + operationId: user_references_list + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[user-references] + schema: + items: + enum: + - url + - user_uri + - authorized_storage_accounts + - authorized_citation_accounts + - authorized_computing_accounts + - authorized_link_accounts + - configured_resources + type: string + type: array + - description: Filter by user_uri. This filter must be uniquely identifying. + in: query + name: filter[user_uri] + required: true + schema: + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - authorized_storage_accounts + - authorized_citation_accounts + - authorized_computing_accounts + - authorized_link_accounts + - configured_resources + type: string + type: array + - description: A page number within the paginated result set. + in: query + name: page[number] + required: false + schema: + type: integer + - description: Number of results to return per page. + in: query + name: page[size] + required: false + schema: + type: integer + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/PaginatedUserReferenceList' + description: '' + tags: + - user-references + /v1/user-references/{id}/: + get: + description: Get user reference by it's pk + operationId: user_references_retrieve + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[user-references] + schema: + items: + enum: + - url + - user_uri + - authorized_storage_accounts + - authorized_citation_accounts + - authorized_computing_accounts + - authorized_link_accounts + - configured_resources + type: string + type: array + - description: A UUID string identifying this User Reference. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - authorized_storage_accounts + - authorized_citation_accounts + - authorized_computing_accounts + - authorized_link_accounts + - configured_resources + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/UserReferenceResponse' + description: '' + tags: + - user-references + /v1/user-references/{id}/authorized_citation_accounts: + get: + description: Fetch all related AuthorizedCitationAccount to this UserReference + operationId: user_references_retrieve_2_related_authorized_citation_accounts + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[authorized-citation-accounts] + schema: + items: + enum: + - id + - url + - display_name + - account_owner + - api_base_url + - auth_url + - authorized_capabilities + - authorized_operations + - authorized_operation_names + - configured_citation_addons + - credentials + - default_root_folder + - external_citation_service + - initiate_oauth + - credentials_available + type: string + type: array + - description: A UUID string identifying this Authorized Citation Account. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - account_owner + - external_citation_service + - configured_citation_addons + - authorized_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AuthorizedCitationAccountResponse' + description: '' + tags: &id011 + - user-references + /v1/user-references/{id}/authorized_computing_accounts: + get: + description: Fetch all related AuthorizedComputingAccount to this UserReference + operationId: user_references_retrieve_2_related_authorized_computing_accounts + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[authorized-computing-accounts] + schema: + items: + enum: + - id + - url + - display_name + - account_owner + - api_base_url + - auth_url + - authorized_capabilities + - authorized_operations + - authorized_operation_names + - configured_computing_addons + - credentials + - external_computing_service + - initiate_oauth + - credentials_available + type: string + type: array + - description: A UUID string identifying this Authorized Computing Account. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - account_owner + - external_computing_service + - configured_computing_addons + - authorized_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AuthorizedComputingAccountResponse' + description: '' + tags: *id011 + /v1/user-references/{id}/authorized_link_accounts: + get: + description: Fetch all related AuthorizedCitationAccount to this UserReference + operationId: user_references_retrieve_2_related_authorized_link_accounts + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[authorized-citation-accounts] + schema: + items: + enum: + - id + - url + - display_name + - account_owner + - api_base_url + - auth_url + - authorized_capabilities + - authorized_operations + - authorized_operation_names + - configured_citation_addons + - credentials + - default_root_folder + - external_citation_service + - initiate_oauth + - credentials_available + type: string + type: array + - description: A UUID string identifying this Authorized Citation Account. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - account_owner + - external_citation_service + - configured_citation_addons + - authorized_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AuthorizedCitationAccountResponse' + description: '' + tags: *id011 + /v1/user-references/{id}/authorized_storage_accounts: + get: + description: Fetch all related AuthorizedStorageAccount to this UserReference + operationId: user_references_retrieve_2_related_authorized_storage_accounts + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[authorized-storage-accounts] + schema: + items: + enum: + - id + - url + - display_name + - account_owner + - api_base_url + - auth_url + - authorized_capabilities + - authorized_operations + - authorized_operation_names + - configured_storage_addons + - credentials + - default_root_folder + - external_storage_service + - initiate_oauth + - credentials_available + type: string + type: array + - description: A UUID string identifying this Authorized Storage Account. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - account_owner + - external_storage_service + - configured_storage_addons + - authorized_operations + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/AuthorizedStorageAccountResponse' + description: '' + tags: *id011 + /v1/user-references/{id}/configured_resources: + get: + description: Fetch all related ResourceReference to this UserReference + operationId: user_references_retrieve_2_related_configured_resources + parameters: + - description: endpoint return only specific fields in the response on a per-type + basis by including a fields[TYPE] query parameter. + explode: false + in: query + name: fields[resource-references] + schema: + items: + enum: + - url + - resource_uri + - configured_storage_addons + - configured_link_addons + - configured_citation_addons + - configured_computing_addons + type: string + type: array + - description: A UUID string identifying this Resource Reference. + in: path + name: id + required: true + schema: + format: uuid + type: string + - description: include query parameter to allow the client to customize which + related resources should be returned. + explode: false + in: query + name: include + schema: + items: + enum: + - configured_storage_addons + - configured_citation_addons + - configured_link_addons + - configured_computing_addons + type: string + type: array + responses: + '200': + content: + application/vnd.api+json: + schema: + $ref: '#/components/schemas/ResourceReferenceResponse' + description: '' + tags: *id011 From a9bc59b4cd99c64d34f6ee7ee8ac77671b74e7e3 Mon Sep 17 00:00:00 2001 From: Oleh Paduchak Date: Mon, 30 Jun 2025 20:23:13 +0300 Subject: [PATCH 11/13] removed openapi.yml --- .../commands/fill_external_services.py | 1 - openapi.yml | 11403 ---------------- 2 files changed, 11404 deletions(-) delete mode 100644 openapi.yml diff --git a/addon_service/management/commands/fill_external_services.py b/addon_service/management/commands/fill_external_services.py index dd074a43..fb572e0c 100644 --- a/addon_service/management/commands/fill_external_services.py +++ b/addon_service/management/commands/fill_external_services.py @@ -60,7 +60,6 @@ def load_csv_data(self, path: Path) -> dict[str, dict[str, Any]]: item = csv.reader(services_file) field_names = next(item) data_list = [dict(zip(field_names, service)) for service in item] - print(data_list) return { item.pop("id"): self.fix_values(item) for item in data_list diff --git a/openapi.yml b/openapi.yml deleted file mode 100644 index 075b60ce..00000000 --- a/openapi.yml +++ /dev/null @@ -1,11403 +0,0 @@ -components: - schemas: - AddonImp: - additionalProperties: false - properties: - attributes: - properties: - docstring: - readOnly: true - type: string - interface_docstring: - readOnly: true - type: string - name: - readOnly: true - type: string - type: object - id: {} - links: - properties: - self: - example: http://api.example.org/accounts/123 - format: uri - nullable: false - type: string - type: object - relationships: - properties: - implemented_operations: - description: A related resource object from type addon-operations - properties: - data: - properties: - id: - description: The identifier of the related object. - title: Resource Identifier - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - addon-operations - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - readOnly: true - required: - - data - title: Implemented operations - type: object - type: object - type: - allOf: - - $ref: '#/components/schemas/AddonImpTypeEnum' - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - required: - - type - - id - type: object - AddonImpResponse: - properties: - data: - items: - $ref: '#/components/schemas/AddonImp' - type: array - required: - - data - type: object - AddonImpTypeEnum: - enum: - - addon-imps - type: string - AddonOperation: - additionalProperties: false - properties: - attributes: - properties: - capability: - description: '* `ACCESS` - ACCESS - - * `UPDATE` - UPDATE' - enum: - - ACCESS - - UPDATE - readOnly: true - type: string - docstring: - readOnly: true - type: string - kwargs_jsonschema: - readOnly: true - name: - readOnly: true - type: string - result_jsonschema: - readOnly: true - type: object - id: {} - links: - properties: - self: - example: http://api.example.org/accounts/123 - format: uri - nullable: false - type: string - type: object - relationships: - properties: - implemented_by: - description: A related resource object from type addon-imps - properties: - data: - items: - properties: - id: - description: The identifier of the related object. - title: Resource Identifier - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - addon-imps - title: Resource Type Name - type: string - required: - - id - - type - type: object - type: array - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - readOnly: true - required: - - data - title: Implemented by - type: object - type: object - type: - allOf: - - $ref: '#/components/schemas/AddonOperationTypeEnum' - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - required: - - type - - id - type: object - AddonOperationInvocation: - additionalProperties: false - properties: - attributes: - properties: - created: - format: date-time - readOnly: true - type: string - invocation_status: - description: '* `STARTING` - STARTING - - * `GOING` - GOING - - * `SUCCESS` - SUCCESS - - * `ERROR` - ERROR' - enum: - - STARTING - - GOING - - SUCCESS - - ERROR - readOnly: true - type: string - modified: - format: date-time - readOnly: true - type: string - operation_kwargs: {} - operation_name: - type: string - operation_result: - readOnly: true - required: - - operation_kwargs - - operation_name - type: object - links: - properties: - self: - example: http://api.example.org/accounts/123 - format: uri - nullable: false - type: string - type: object - relationships: - properties: - by_user: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - user-references - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - readOnly: true - required: - - data - title: By user - type: object - operation: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - addon-operations - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - readOnly: true - required: - - data - title: Operation - type: object - thru_account: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - AuthorizedAccount - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - required: - - data - title: Thru account - type: object - thru_addon: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - ConfiguredAddon - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - required: - - data - title: Thru addon - type: object - type: object - type: - allOf: - - $ref: '#/components/schemas/AddonOperationInvocationTypeEnum' - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - required: - - type - type: object - AddonOperationInvocationRequest: - properties: - data: - additionalProperties: false - properties: - attributes: - properties: - created: - format: date-time - readOnly: true - type: string - invocation_status: - description: '* `STARTING` - STARTING - - * `GOING` - GOING - - * `SUCCESS` - SUCCESS - - * `ERROR` - ERROR' - enum: - - STARTING - - GOING - - SUCCESS - - ERROR - readOnly: true - type: string - modified: - format: date-time - readOnly: true - type: string - operation_kwargs: {} - operation_name: - minLength: 1 - type: string - operation_result: - readOnly: true - required: - - operation_kwargs - - operation_name - type: object - relationships: - properties: - by_user: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - user-references - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: By user - type: object - operation: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - addon-operations - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Operation - type: object - thru_account: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - AuthorizedAccount - title: Resource Type Name - type: string - required: - - id - - type - type: object - required: - - data - title: Thru account - type: object - thru_addon: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - ConfiguredAddon - title: Resource Type Name - type: string - required: - - id - - type - type: object - required: - - data - title: Thru addon - type: object - type: object - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - enum: - - addon-operation-invocations - type: string - required: - - type - type: object - required: - - data - type: object - AddonOperationInvocationResponse: - properties: - data: - $ref: '#/components/schemas/AddonOperationInvocation' - required: - - data - type: object - AddonOperationInvocationTypeEnum: - enum: - - addon-operation-invocations - type: string - AddonOperationResponse: - properties: - data: - items: - $ref: '#/components/schemas/AddonOperation' - type: array - required: - - data - type: object - AddonOperationTypeEnum: - enum: - - addon-operations - type: string - AuthorizedCitationAccount: - additionalProperties: false - properties: - attributes: - properties: - api_base_url: - format: uri - nullable: true - type: string - auth_url: - readOnly: true - type: string - authorized_capabilities: - items: - description: '* `ACCESS` - ACCESS - - * `UPDATE` - UPDATE' - enum: - - ACCESS - - UPDATE - type: string - type: array - authorized_operation_names: - items: - type: string - readOnly: true - type: array - credentials: - writeOnly: true - credentials_available: - readOnly: true - type: boolean - default_root_folder: - type: string - display_name: - maxLength: 256 - nullable: true - type: string - id: - format: uuid - readOnly: true - type: string - initiate_oauth: - type: boolean - writeOnly: true - required: - - authorized_capabilities - type: object - links: - properties: - self: - example: http://api.example.org/accounts/123 - format: uri - nullable: false - type: string - type: object - relationships: - properties: - account_owner: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - user-references - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - readOnly: true - required: - - data - title: Account owner - type: object - authorized_operations: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - addon-operations - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - readOnly: true - required: - - data - title: Authorized operations - type: object - configured_citation_addons: - description: A related resource object from type configured-citation-addons - properties: - data: - items: - properties: - id: - description: The identifier of the related object. - title: Resource Identifier - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - configured-citation-addons - title: Resource Type Name - type: string - required: - - id - - type - type: object - type: array - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - required: - - data - title: Configured citation addons - type: object - external_citation_service: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - external-citation-services - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - required: - - data - title: External citation service - type: object - required: - - external_citation_service - type: object - type: - allOf: - - $ref: '#/components/schemas/AuthorizedCitationAccountTypeEnum' - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - required: - - type - type: object - AuthorizedCitationAccountRequest: - properties: - data: - additionalProperties: false - properties: - attributes: - properties: - api_base_url: - format: uri - nullable: true - type: string - auth_url: - minLength: 1 - readOnly: true - type: string - authorized_capabilities: - items: - description: '* `ACCESS` - ACCESS - - * `UPDATE` - UPDATE' - enum: - - ACCESS - - UPDATE - type: string - type: array - authorized_operation_names: - items: - minLength: 1 - type: string - readOnly: true - type: array - credentials: - writeOnly: true - credentials_available: - readOnly: true - type: boolean - default_root_folder: - type: string - display_name: - maxLength: 256 - nullable: true - type: string - id: - format: uuid - readOnly: true - type: string - initiate_oauth: - type: boolean - writeOnly: true - required: - - authorized_capabilities - type: object - relationships: - properties: - account_owner: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - user-references - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Account owner - type: object - authorized_operations: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - addon-operations - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Authorized operations - type: object - configured_citation_addons: - description: A related resource object from type configured-citation-addons - properties: - data: - items: - properties: - id: - description: The identifier of the related object. - title: Resource Identifier - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - configured-citation-addons - title: Resource Type Name - type: string - required: - - id - - type - type: object - type: array - required: - - data - title: Configured citation addons - type: object - external_citation_service: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - external-citation-services - title: Resource Type Name - type: string - required: - - id - - type - type: object - required: - - data - title: External citation service - type: object - required: - - external_citation_service - type: object - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - enum: - - authorized-citation-accounts - type: string - required: - - type - type: object - required: - - data - type: object - AuthorizedCitationAccountResponse: - properties: - data: - $ref: '#/components/schemas/AuthorizedCitationAccount' - required: - - data - type: object - AuthorizedCitationAccountTypeEnum: - enum: - - authorized-citation-accounts - type: string - AuthorizedComputingAccount: - additionalProperties: false - properties: - attributes: - properties: - api_base_url: - format: uri - nullable: true - type: string - auth_url: - readOnly: true - type: string - authorized_capabilities: - items: - description: '* `ACCESS` - ACCESS - - * `UPDATE` - UPDATE' - enum: - - ACCESS - - UPDATE - type: string - type: array - authorized_operation_names: - items: - type: string - readOnly: true - type: array - credentials: - writeOnly: true - credentials_available: - readOnly: true - type: boolean - display_name: - maxLength: 256 - nullable: true - type: string - id: - format: uuid - readOnly: true - type: string - initiate_oauth: - type: boolean - writeOnly: true - required: - - authorized_capabilities - type: object - links: - properties: - self: - example: http://api.example.org/accounts/123 - format: uri - nullable: false - type: string - type: object - relationships: - properties: - account_owner: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - user-references - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - readOnly: true - required: - - data - title: Account owner - type: object - authorized_operations: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - addon-operations - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - readOnly: true - required: - - data - title: Authorized operations - type: object - configured_computing_addons: - description: A related resource object from type configured-computing-addons - properties: - data: - items: - properties: - id: - description: The identifier of the related object. - title: Resource Identifier - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - configured-computing-addons - title: Resource Type Name - type: string - required: - - id - - type - type: object - type: array - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - required: - - data - title: Configured computing addons - type: object - external_computing_service: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - external-computing-services - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - required: - - data - title: External computing service - type: object - required: - - external_computing_service - type: object - type: - allOf: - - $ref: '#/components/schemas/AuthorizedComputingAccountTypeEnum' - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - required: - - type - type: object - AuthorizedComputingAccountRequest: - properties: - data: - additionalProperties: false - properties: - attributes: - properties: - api_base_url: - format: uri - nullable: true - type: string - auth_url: - minLength: 1 - readOnly: true - type: string - authorized_capabilities: - items: - description: '* `ACCESS` - ACCESS - - * `UPDATE` - UPDATE' - enum: - - ACCESS - - UPDATE - type: string - type: array - authorized_operation_names: - items: - minLength: 1 - type: string - readOnly: true - type: array - credentials: - writeOnly: true - credentials_available: - readOnly: true - type: boolean - display_name: - maxLength: 256 - nullable: true - type: string - id: - format: uuid - readOnly: true - type: string - initiate_oauth: - type: boolean - writeOnly: true - required: - - authorized_capabilities - type: object - relationships: - properties: - account_owner: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - user-references - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Account owner - type: object - authorized_operations: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - addon-operations - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Authorized operations - type: object - configured_computing_addons: - description: A related resource object from type configured-computing-addons - properties: - data: - items: - properties: - id: - description: The identifier of the related object. - title: Resource Identifier - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - configured-computing-addons - title: Resource Type Name - type: string - required: - - id - - type - type: object - type: array - required: - - data - title: Configured computing addons - type: object - external_computing_service: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - external-computing-services - title: Resource Type Name - type: string - required: - - id - - type - type: object - required: - - data - title: External computing service - type: object - required: - - external_computing_service - type: object - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - enum: - - authorized-computing-accounts - type: string - required: - - type - type: object - required: - - data - type: object - AuthorizedComputingAccountResponse: - properties: - data: - $ref: '#/components/schemas/AuthorizedComputingAccount' - required: - - data - type: object - AuthorizedComputingAccountTypeEnum: - enum: - - authorized-computing-accounts - type: string - AuthorizedLinkAccount: - additionalProperties: false - properties: - attributes: - properties: - api_base_url: - format: uri - nullable: true - type: string - auth_url: - readOnly: true - type: string - authorized_capabilities: - items: - description: '* `ACCESS` - ACCESS - - * `UPDATE` - UPDATE' - enum: - - ACCESS - - UPDATE - type: string - type: array - authorized_operation_names: - items: - type: string - readOnly: true - type: array - credentials: - writeOnly: true - credentials_available: - readOnly: true - type: boolean - display_name: - maxLength: 256 - nullable: true - type: string - id: - format: uuid - readOnly: true - type: string - initiate_oauth: - type: boolean - writeOnly: true - required: - - authorized_capabilities - type: object - links: - properties: - self: - example: http://api.example.org/accounts/123 - format: uri - nullable: false - type: string - type: object - relationships: - properties: - account_owner: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - user-references - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - readOnly: true - required: - - data - title: Account owner - type: object - authorized_operations: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - addon-operations - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - readOnly: true - required: - - data - title: Authorized operations - type: object - configured_link_addons: - description: A related resource object from type configured-link-addons - properties: - data: - items: - properties: - id: - description: The identifier of the related object. - title: Resource Identifier - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - configured-link-addons - title: Resource Type Name - type: string - required: - - id - - type - type: object - type: array - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - required: - - data - title: Configured link addons - type: object - external_link_service: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - external-link-services - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - required: - - data - title: External link service - type: object - required: - - external_link_service - type: object - type: - allOf: - - $ref: '#/components/schemas/AuthorizedLinkAccountTypeEnum' - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - required: - - type - type: object - AuthorizedLinkAccountRequest: - properties: - data: - additionalProperties: false - properties: - attributes: - properties: - api_base_url: - format: uri - nullable: true - type: string - auth_url: - minLength: 1 - readOnly: true - type: string - authorized_capabilities: - items: - description: '* `ACCESS` - ACCESS - - * `UPDATE` - UPDATE' - enum: - - ACCESS - - UPDATE - type: string - type: array - authorized_operation_names: - items: - minLength: 1 - type: string - readOnly: true - type: array - credentials: - writeOnly: true - credentials_available: - readOnly: true - type: boolean - display_name: - maxLength: 256 - nullable: true - type: string - id: - format: uuid - readOnly: true - type: string - initiate_oauth: - type: boolean - writeOnly: true - required: - - authorized_capabilities - type: object - relationships: - properties: - account_owner: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - user-references - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Account owner - type: object - authorized_operations: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - addon-operations - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Authorized operations - type: object - configured_link_addons: - description: A related resource object from type configured-link-addons - properties: - data: - items: - properties: - id: - description: The identifier of the related object. - title: Resource Identifier - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - configured-link-addons - title: Resource Type Name - type: string - required: - - id - - type - type: object - type: array - required: - - data - title: Configured link addons - type: object - external_link_service: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - external-link-services - title: Resource Type Name - type: string - required: - - id - - type - type: object - required: - - data - title: External link service - type: object - required: - - external_link_service - type: object - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - enum: - - authorized-link-accounts - type: string - required: - - type - type: object - required: - - data - type: object - AuthorizedLinkAccountResponse: - properties: - data: - $ref: '#/components/schemas/AuthorizedLinkAccount' - required: - - data - type: object - AuthorizedLinkAccountTypeEnum: - enum: - - authorized-link-accounts - type: string - AuthorizedStorageAccount: - additionalProperties: false - properties: - attributes: - properties: - api_base_url: - format: uri - nullable: true - type: string - auth_url: - readOnly: true - type: string - authorized_capabilities: - items: - description: '* `ACCESS` - ACCESS - - * `UPDATE` - UPDATE' - enum: - - ACCESS - - UPDATE - type: string - type: array - authorized_operation_names: - items: - type: string - readOnly: true - type: array - credentials: - writeOnly: true - credentials_available: - readOnly: true - type: boolean - default_root_folder: - type: string - display_name: - maxLength: 256 - nullable: true - type: string - id: - format: uuid - readOnly: true - type: string - initiate_oauth: - type: boolean - writeOnly: true - required: - - authorized_capabilities - type: object - links: - properties: - self: - example: http://api.example.org/accounts/123 - format: uri - nullable: false - type: string - type: object - relationships: - properties: - account_owner: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - user-references - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - readOnly: true - required: - - data - title: Account owner - type: object - authorized_operations: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - addon-operations - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - readOnly: true - required: - - data - title: Authorized operations - type: object - external_storage_service: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - external-storage-services - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - required: - - data - title: External storage service - type: object - required: - - external_storage_service - type: object - type: - allOf: - - $ref: '#/components/schemas/AuthorizedStorageAccountTypeEnum' - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - required: - - type - type: object - AuthorizedStorageAccountRequest: - properties: - data: - additionalProperties: false - properties: - attributes: - properties: - api_base_url: - format: uri - nullable: true - type: string - auth_url: - minLength: 1 - readOnly: true - type: string - authorized_capabilities: - items: - description: '* `ACCESS` - ACCESS - - * `UPDATE` - UPDATE' - enum: - - ACCESS - - UPDATE - type: string - type: array - authorized_operation_names: - items: - minLength: 1 - type: string - readOnly: true - type: array - credentials: - writeOnly: true - credentials_available: - readOnly: true - type: boolean - default_root_folder: - type: string - display_name: - maxLength: 256 - nullable: true - type: string - id: - format: uuid - readOnly: true - type: string - initiate_oauth: - type: boolean - writeOnly: true - required: - - authorized_capabilities - type: object - relationships: - properties: - account_owner: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - user-references - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Account owner - type: object - authorized_operations: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - addon-operations - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Authorized operations - type: object - external_storage_service: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - external-storage-services - title: Resource Type Name - type: string - required: - - id - - type - type: object - required: - - data - title: External storage service - type: object - required: - - external_storage_service - type: object - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - enum: - - authorized-storage-accounts - type: string - required: - - type - type: object - required: - - data - type: object - AuthorizedStorageAccountResponse: - properties: - data: - $ref: '#/components/schemas/AuthorizedStorageAccount' - required: - - data - type: object - AuthorizedStorageAccountTypeEnum: - enum: - - authorized-storage-accounts - type: string - ConfiguredCitationAddon: - additionalProperties: false - properties: - attributes: - properties: - authorized_resource_uri: - type: string - writeOnly: true - connected_capabilities: - items: - description: '* `ACCESS` - ACCESS - - * `UPDATE` - UPDATE' - enum: - - ACCESS - - UPDATE - type: string - type: array - connected_operation_names: - items: - type: string - readOnly: true - type: array - current_user_is_owner: - readOnly: true - type: boolean - display_name: - maxLength: 256 - nullable: true - type: string - external_service_name: - readOnly: true - type: string - id: - format: uuid - readOnly: true - type: string - root_folder: - type: string - required: - - connected_capabilities - type: object - links: - properties: - self: - example: http://api.example.org/accounts/123 - format: uri - nullable: false - type: string - type: object - relationships: - properties: - authorized_resource: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - resource-references - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - readOnly: true - required: - - data - title: Authorized resource - type: object - base_account: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - authorized-citation-accounts - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - required: - - data - title: Base account - type: object - connected_operations: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - addon-operations - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - readOnly: true - required: - - data - title: Connected operations - type: object - external_citation_service: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - external-citation-services - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - readOnly: true - required: - - data - title: External citation service - type: object - required: - - base_account - type: object - type: - allOf: - - $ref: '#/components/schemas/ConfiguredCitationAddonTypeEnum' - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - required: - - type - type: object - ConfiguredCitationAddonRequest: - properties: - data: - additionalProperties: false - properties: - attributes: - properties: - authorized_resource_uri: - minLength: 1 - type: string - writeOnly: true - connected_capabilities: - items: - description: '* `ACCESS` - ACCESS - - * `UPDATE` - UPDATE' - enum: - - ACCESS - - UPDATE - type: string - type: array - connected_operation_names: - items: - minLength: 1 - type: string - readOnly: true - type: array - current_user_is_owner: - readOnly: true - type: boolean - display_name: - maxLength: 256 - nullable: true - type: string - external_service_name: - minLength: 1 - readOnly: true - type: string - id: - format: uuid - readOnly: true - type: string - root_folder: - type: string - required: - - connected_capabilities - type: object - relationships: - properties: - authorized_resource: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - resource-references - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Authorized resource - type: object - base_account: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - authorized-citation-accounts - title: Resource Type Name - type: string - required: - - id - - type - type: object - required: - - data - title: Base account - type: object - connected_operations: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - addon-operations - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Connected operations - type: object - external_citation_service: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - external-citation-services - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: External citation service - type: object - required: - - base_account - type: object - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - enum: - - configured-citation-addons - type: string - required: - - type - type: object - required: - - data - type: object - ConfiguredCitationAddonResponse: - properties: - data: - $ref: '#/components/schemas/ConfiguredCitationAddon' - required: - - data - type: object - ConfiguredCitationAddonTypeEnum: - enum: - - configured-citation-addons - type: string - ConfiguredComputingAddon: - additionalProperties: false - properties: - attributes: - properties: - authorized_resource_uri: - type: string - writeOnly: true - connected_capabilities: - items: - description: '* `ACCESS` - ACCESS - - * `UPDATE` - UPDATE' - enum: - - ACCESS - - UPDATE - type: string - type: array - connected_operation_names: - items: - type: string - readOnly: true - type: array - current_user_is_owner: - readOnly: true - type: boolean - display_name: - maxLength: 256 - nullable: true - type: string - external_service_name: - readOnly: true - type: string - id: - format: uuid - readOnly: true - type: string - required: - - connected_capabilities - type: object - links: - properties: - self: - example: http://api.example.org/accounts/123 - format: uri - nullable: false - type: string - type: object - relationships: - properties: - authorized_resource: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - resource-references - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - readOnly: true - required: - - data - title: Authorized resource - type: object - base_account: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - authorized-computing-accounts - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - required: - - data - title: Base account - type: object - connected_operations: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - addon-operations - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - readOnly: true - required: - - data - title: Connected operations - type: object - external_computing_service: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - external-computing-services - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - readOnly: true - required: - - data - title: External computing service - type: object - required: - - base_account - type: object - type: - allOf: - - $ref: '#/components/schemas/ConfiguredComputingAddonTypeEnum' - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - required: - - type - type: object - ConfiguredComputingAddonRequest: - properties: - data: - additionalProperties: false - properties: - attributes: - properties: - authorized_resource_uri: - minLength: 1 - type: string - writeOnly: true - connected_capabilities: - items: - description: '* `ACCESS` - ACCESS - - * `UPDATE` - UPDATE' - enum: - - ACCESS - - UPDATE - type: string - type: array - connected_operation_names: - items: - minLength: 1 - type: string - readOnly: true - type: array - current_user_is_owner: - readOnly: true - type: boolean - display_name: - maxLength: 256 - nullable: true - type: string - external_service_name: - minLength: 1 - readOnly: true - type: string - id: - format: uuid - readOnly: true - type: string - required: - - connected_capabilities - type: object - relationships: - properties: - authorized_resource: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - resource-references - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Authorized resource - type: object - base_account: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - authorized-computing-accounts - title: Resource Type Name - type: string - required: - - id - - type - type: object - required: - - data - title: Base account - type: object - connected_operations: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - addon-operations - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Connected operations - type: object - external_computing_service: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - external-computing-services - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: External computing service - type: object - required: - - base_account - type: object - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - enum: - - configured-computing-addons - type: string - required: - - type - type: object - required: - - data - type: object - ConfiguredComputingAddonResponse: - properties: - data: - $ref: '#/components/schemas/ConfiguredComputingAddon' - required: - - data - type: object - ConfiguredComputingAddonTypeEnum: - enum: - - configured-computing-addons - type: string - ConfiguredLinkAddon: - additionalProperties: false - properties: - attributes: - properties: - authorized_resource_uri: - type: string - writeOnly: true - connected_capabilities: - items: - description: '* `ACCESS` - ACCESS - - * `UPDATE` - UPDATE' - enum: - - ACCESS - - UPDATE - type: string - type: array - connected_operation_names: - items: - type: string - readOnly: true - type: array - current_user_is_owner: - readOnly: true - type: boolean - display_name: - maxLength: 256 - nullable: true - type: string - external_service_name: - readOnly: true - type: string - id: - format: uuid - readOnly: true - type: string - resource_type: - description: '* `Audiovisual` - Audiovisual - - * `Award` - Award - - * `Book` - Book - - * `BookChapter` - BookChapter - - * `Collection` - Collection - - * `ComputationalNotebook` - ComputationalNotebook - - * `ConferencePaper` - ConferencePaper - - * `ConferenceProceeding` - ConferenceProceeding - - * `DataPaper` - DataPaper - - * `Dataset` - Dataset - - * `Dissertation` - Dissertation - - * `Event` - Event - - * `Image` - Image - - * `Instrument` - Instrument - - * `InteractiveResource` - InteractiveResource - - * `Journal` - Journal - - * `JournalArticle` - JournalArticle - - * `Model` - Model - - * `OutputManagementPlan` - OutputManagementPlan - - * `PeerReview` - PeerReview - - * `PhysicalObject` - PhysicalObject - - * `Preprint` - Preprint - - * `Project` - Project - - * `Report` - Report - - * `Service` - Service - - * `Software` - Software - - * `Sound` - Sound - - * `Standard` - Standard - - * `StudyRegistration` - StudyRegistration - - * `Text` - Text - - * `Workflow` - Workflow - - * `Other` - Other' - enum: - - Audiovisual - - Award - - Book - - BookChapter - - Collection - - ComputationalNotebook - - ConferencePaper - - ConferenceProceeding - - DataPaper - - Dataset - - Dissertation - - Event - - Image - - Instrument - - InteractiveResource - - Journal - - JournalArticle - - Model - - OutputManagementPlan - - PeerReview - - PhysicalObject - - Preprint - - Project - - Report - - Service - - Software - - Sound - - Standard - - StudyRegistration - - Text - - Workflow - - Other - - null - nullable: true - type: string - target_id: - nullable: true - type: string - target_url: - format: uri - readOnly: true - type: string - required: - - connected_capabilities - type: object - links: - properties: - self: - example: http://api.example.org/accounts/123 - format: uri - nullable: false - type: string - type: object - relationships: - properties: - authorized_resource: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - resource-references - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - readOnly: true - required: - - data - title: Authorized resource - type: object - base_account: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - authorized-link-accounts - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - required: - - data - title: Base account - type: object - connected_operations: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - addon-operations - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - readOnly: true - required: - - data - title: Connected operations - type: object - external_link_service: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - external-link-services - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - readOnly: true - required: - - data - title: External link service - type: object - required: - - base_account - type: object - type: - allOf: - - $ref: '#/components/schemas/ConfiguredLinkAddonTypeEnum' - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - required: - - type - type: object - ConfiguredLinkAddonRequest: - properties: - data: - additionalProperties: false - properties: - attributes: - properties: - authorized_resource_uri: - minLength: 1 - type: string - writeOnly: true - connected_capabilities: - items: - description: '* `ACCESS` - ACCESS - - * `UPDATE` - UPDATE' - enum: - - ACCESS - - UPDATE - type: string - type: array - connected_operation_names: - items: - minLength: 1 - type: string - readOnly: true - type: array - current_user_is_owner: - readOnly: true - type: boolean - display_name: - maxLength: 256 - nullable: true - type: string - external_service_name: - readOnly: true - type: string - id: - format: uuid - readOnly: true - type: string - resource_type: - description: '* `Audiovisual` - Audiovisual - - * `Award` - Award - - * `Book` - Book - - * `BookChapter` - BookChapter - - * `Collection` - Collection - - * `ComputationalNotebook` - ComputationalNotebook - - * `ConferencePaper` - ConferencePaper - - * `ConferenceProceeding` - ConferenceProceeding - - * `DataPaper` - DataPaper - - * `Dataset` - Dataset - - * `Dissertation` - Dissertation - - * `Event` - Event - - * `Image` - Image - - * `Instrument` - Instrument - - * `InteractiveResource` - InteractiveResource - - * `Journal` - Journal - - * `JournalArticle` - JournalArticle - - * `Model` - Model - - * `OutputManagementPlan` - OutputManagementPlan - - * `PeerReview` - PeerReview - - * `PhysicalObject` - PhysicalObject - - * `Preprint` - Preprint - - * `Project` - Project - - * `Report` - Report - - * `Service` - Service - - * `Software` - Software - - * `Sound` - Sound - - * `Standard` - Standard - - * `StudyRegistration` - StudyRegistration - - * `Text` - Text - - * `Workflow` - Workflow - - * `Other` - Other' - enum: - - Audiovisual - - Award - - Book - - BookChapter - - Collection - - ComputationalNotebook - - ConferencePaper - - ConferenceProceeding - - DataPaper - - Dataset - - Dissertation - - Event - - Image - - Instrument - - InteractiveResource - - Journal - - JournalArticle - - Model - - OutputManagementPlan - - PeerReview - - PhysicalObject - - Preprint - - Project - - Report - - Service - - Software - - Sound - - Standard - - StudyRegistration - - Text - - Workflow - - Other - - null - nullable: true - type: string - target_id: - minLength: 1 - nullable: true - type: string - target_url: - format: uri - minLength: 1 - readOnly: true - type: string - required: - - connected_capabilities - type: object - relationships: - properties: - authorized_resource: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - resource-references - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Authorized resource - type: object - base_account: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - authorized-link-accounts - title: Resource Type Name - type: string - required: - - id - - type - type: object - required: - - data - title: Base account - type: object - connected_operations: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - addon-operations - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Connected operations - type: object - external_link_service: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - external-link-services - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: External link service - type: object - required: - - base_account - type: object - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - enum: - - configured-link-addons - type: string - required: - - type - type: object - required: - - data - type: object - ConfiguredLinkAddonResponse: - properties: - data: - $ref: '#/components/schemas/ConfiguredLinkAddon' - required: - - data - type: object - ConfiguredLinkAddonTypeEnum: - enum: - - configured-link-addons - type: string - ConfiguredStorageAddon: - additionalProperties: false - properties: - attributes: - properties: - authorized_resource_uri: - type: string - writeOnly: true - connected_capabilities: - items: - description: '* `ACCESS` - ACCESS - - * `UPDATE` - UPDATE' - enum: - - ACCESS - - UPDATE - type: string - type: array - connected_operation_names: - items: - type: string - readOnly: true - type: array - current_user_is_owner: - readOnly: true - type: boolean - display_name: - maxLength: 256 - nullable: true - type: string - external_service_name: - readOnly: true - type: string - id: - format: uuid - readOnly: true - type: string - root_folder: - type: string - required: - - connected_capabilities - type: object - links: - properties: - self: - example: http://api.example.org/accounts/123 - format: uri - nullable: false - type: string - type: object - relationships: - properties: - authorized_resource: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - resource-references - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - readOnly: true - required: - - data - title: Authorized resource - type: object - base_account: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - authorized-storage-accounts - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - required: - - data - title: Base account - type: object - connected_operations: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - addon-operations - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - readOnly: true - required: - - data - title: Connected operations - type: object - external_storage_service: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - external-storage-services - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - readOnly: true - required: - - data - title: External storage service - type: object - required: - - base_account - type: object - type: - allOf: - - $ref: '#/components/schemas/ConfiguredStorageAddonTypeEnum' - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - required: - - type - type: object - ConfiguredStorageAddonRequest: - properties: - data: - additionalProperties: false - properties: - attributes: - properties: - authorized_resource_uri: - minLength: 1 - type: string - writeOnly: true - connected_capabilities: - items: - description: '* `ACCESS` - ACCESS - - * `UPDATE` - UPDATE' - enum: - - ACCESS - - UPDATE - type: string - type: array - connected_operation_names: - items: - minLength: 1 - type: string - readOnly: true - type: array - current_user_is_owner: - readOnly: true - type: boolean - display_name: - maxLength: 256 - nullable: true - type: string - external_service_name: - readOnly: true - type: string - id: - format: uuid - readOnly: true - type: string - root_folder: - type: string - required: - - connected_capabilities - type: object - relationships: - properties: - authorized_resource: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - resource-references - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Authorized resource - type: object - base_account: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - authorized-storage-accounts - title: Resource Type Name - type: string - required: - - id - - type - type: object - required: - - data - title: Base account - type: object - connected_operations: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - addon-operations - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Connected operations - type: object - external_storage_service: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - external-storage-services - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: External storage service - type: object - required: - - base_account - type: object - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - enum: - - configured-storage-addons - type: string - required: - - type - type: object - required: - - data - type: object - ConfiguredStorageAddonResponse: - properties: - data: - $ref: '#/components/schemas/ConfiguredStorageAddon' - required: - - data - type: object - ConfiguredStorageAddonTypeEnum: - enum: - - configured-storage-addons - type: string - ExternalCitationService: - additionalProperties: false - properties: - attributes: - properties: - api_base_url_options: - items: - type: string - readOnly: true - type: array - auth_uri: - readOnly: true - type: string - configurable_api_root: - readOnly: true - type: string - credentials_format: - description: '* `UNSPECIFIED` - UNSPECIFIED - - * `OAUTH2` - OAUTH2 - - * `ACCESS_KEY_SECRET_KEY` - ACCESS_KEY_SECRET_KEY - - * `USERNAME_PASSWORD` - USERNAME_PASSWORD - - * `PERSONAL_ACCESS_TOKEN` - PERSONAL_ACCESS_TOKEN - - * `OAUTH1A` - OAUTH1A - - * `DATAVERSE_API_TOKEN` - DATAVERSE_API_TOKEN' - enum: - - UNSPECIFIED - - OAUTH2 - - ACCESS_KEY_SECRET_KEY - - USERNAME_PASSWORD - - PERSONAL_ACCESS_TOKEN - - OAUTH1A - - DATAVERSE_API_TOKEN - readOnly: true - type: string - display_name: - type: string - external_service_name: - readOnly: true - type: string - icon_url: - readOnly: true - type: string - id: - format: uuid - readOnly: true - type: string - supported_features: - items: - description: '* `FORKING_PARTIAL` - FORKING_PARTIAL - - * `PERMISSIONS_PARTIAL` - PERMISSIONS_PARTIAL' - enum: - - FORKING_PARTIAL - - PERMISSIONS_PARTIAL - type: string - readOnly: true - type: array - wb_key: - type: string - required: - - display_name - type: object - id: {} - links: - properties: - self: - example: http://api.example.org/accounts/123 - format: uri - nullable: false - type: string - type: object - relationships: - properties: - addon_imp: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - addon-imps - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - required: - - data - title: Addon imp - type: object - required: - - addon_imp - type: object - type: - allOf: - - $ref: '#/components/schemas/ExternalCitationServiceTypeEnum' - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - required: - - type - - id - type: object - ExternalCitationServiceResponse: - properties: - data: - $ref: '#/components/schemas/ExternalCitationService' - required: - - data - type: object - ExternalCitationServiceTypeEnum: - enum: - - external-citation-services - type: string - ExternalComputingService: - additionalProperties: false - properties: - attributes: - properties: - api_base_url_options: - items: - type: string - readOnly: true - type: array - auth_uri: - readOnly: true - type: string - configurable_api_root: - readOnly: true - type: string - credentials_format: - description: '* `UNSPECIFIED` - UNSPECIFIED - - * `OAUTH2` - OAUTH2 - - * `ACCESS_KEY_SECRET_KEY` - ACCESS_KEY_SECRET_KEY - - * `USERNAME_PASSWORD` - USERNAME_PASSWORD - - * `PERSONAL_ACCESS_TOKEN` - PERSONAL_ACCESS_TOKEN - - * `OAUTH1A` - OAUTH1A - - * `DATAVERSE_API_TOKEN` - DATAVERSE_API_TOKEN' - enum: - - UNSPECIFIED - - OAUTH2 - - ACCESS_KEY_SECRET_KEY - - USERNAME_PASSWORD - - PERSONAL_ACCESS_TOKEN - - OAUTH1A - - DATAVERSE_API_TOKEN - readOnly: true - type: string - display_name: - type: string - icon_url: - readOnly: true - type: string - id: - format: uuid - readOnly: true - type: string - supported_features: - items: - description: '* `ADD_UPDATE_FILES_PARTIAL` - ADD_UPDATE_FILES_PARTIAL - - * `FORKING_PARTIAL` - FORKING_PARTIAL - - * `LOGS_PARTIAL` - LOGS_PARTIAL - - * `PERMISSIONS_PARTIAL` - PERMISSIONS_PARTIAL - - * `REGISTERING_PARTIAL` - REGISTERING_PARTIAL' - enum: - - ADD_UPDATE_FILES_PARTIAL - - FORKING_PARTIAL - - LOGS_PARTIAL - - PERMISSIONS_PARTIAL - - REGISTERING_PARTIAL - type: string - readOnly: true - type: array - wb_key: - type: string - required: - - display_name - type: object - id: {} - links: - properties: - self: - example: http://api.example.org/accounts/123 - format: uri - nullable: false - type: string - type: object - relationships: - properties: - addon_imp: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - addon-imps - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - required: - - data - title: Addon imp - type: object - required: - - addon_imp - type: object - type: - allOf: - - $ref: '#/components/schemas/ExternalComputingServiceTypeEnum' - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - required: - - type - - id - type: object - ExternalComputingServiceResponse: - properties: - data: - $ref: '#/components/schemas/ExternalComputingService' - required: - - data - type: object - ExternalComputingServiceTypeEnum: - enum: - - external-computing-services - type: string - ExternalLinkService: - additionalProperties: false - properties: - attributes: - properties: - api_base_url_options: - items: - type: string - readOnly: true - type: array - auth_uri: - readOnly: true - type: string - configurable_api_root: - readOnly: true - type: string - credentials_format: - description: '* `UNSPECIFIED` - UNSPECIFIED - - * `OAUTH2` - OAUTH2 - - * `ACCESS_KEY_SECRET_KEY` - ACCESS_KEY_SECRET_KEY - - * `USERNAME_PASSWORD` - USERNAME_PASSWORD - - * `PERSONAL_ACCESS_TOKEN` - PERSONAL_ACCESS_TOKEN - - * `OAUTH1A` - OAUTH1A - - * `DATAVERSE_API_TOKEN` - DATAVERSE_API_TOKEN' - enum: - - UNSPECIFIED - - OAUTH2 - - ACCESS_KEY_SECRET_KEY - - USERNAME_PASSWORD - - PERSONAL_ACCESS_TOKEN - - OAUTH1A - - DATAVERSE_API_TOKEN - readOnly: true - type: string - display_name: - type: string - external_service_name: - readOnly: true - type: string - icon_url: - readOnly: true - type: string - id: - format: uuid - readOnly: true - type: string - supported_features: - items: - description: '* `ADD_UPDATE_FILES` - ADD_UPDATE_FILES - - * `DELETE_FILES` - DELETE_FILES - - * `FORKING` - FORKING - - * `FORKING_PARTIAL` - FORKING_PARTIAL - - * `LOGS` - LOGS - - * `LOGS_PARTIAL` - LOGS_PARTIAL - - * `PERMISSIONS` - PERMISSIONS - - * `REGISTERING` - REGISTERING - - * `FILE_VERSIONS` - FILE_VERSIONS' - enum: - - ADD_UPDATE_FILES - - DELETE_FILES - - FORKING - - FORKING_PARTIAL - - LOGS - - LOGS_PARTIAL - - PERMISSIONS - - REGISTERING - - FILE_VERSIONS - type: string - readOnly: true - type: array - supported_resource_types: - items: - description: '* `Audiovisual` - Audiovisual - - * `Award` - Award - - * `Book` - Book - - * `BookChapter` - BookChapter - - * `Collection` - Collection - - * `ComputationalNotebook` - ComputationalNotebook - - * `ConferencePaper` - ConferencePaper - - * `ConferenceProceeding` - ConferenceProceeding - - * `DataPaper` - DataPaper - - * `Dataset` - Dataset - - * `Dissertation` - Dissertation - - * `Event` - Event - - * `Image` - Image - - * `Instrument` - Instrument - - * `InteractiveResource` - InteractiveResource - - * `Journal` - Journal - - * `JournalArticle` - JournalArticle - - * `Model` - Model - - * `OutputManagementPlan` - OutputManagementPlan - - * `PeerReview` - PeerReview - - * `PhysicalObject` - PhysicalObject - - * `Preprint` - Preprint - - * `Project` - Project - - * `Report` - Report - - * `Service` - Service - - * `Software` - Software - - * `Sound` - Sound - - * `Standard` - Standard - - * `StudyRegistration` - StudyRegistration - - * `Text` - Text - - * `Workflow` - Workflow - - * `Other` - Other' - enum: - - Audiovisual - - Award - - Book - - BookChapter - - Collection - - ComputationalNotebook - - ConferencePaper - - ConferenceProceeding - - DataPaper - - Dataset - - Dissertation - - Event - - Image - - Instrument - - InteractiveResource - - Journal - - JournalArticle - - Model - - OutputManagementPlan - - PeerReview - - PhysicalObject - - Preprint - - Project - - Report - - Service - - Software - - Sound - - Standard - - StudyRegistration - - Text - - Workflow - - Other - type: string - readOnly: true - type: array - wb_key: - type: string - required: - - display_name - type: object - id: {} - links: - properties: - self: - example: http://api.example.org/accounts/123 - format: uri - nullable: false - type: string - type: object - relationships: - properties: - addon_imp: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - addon-imps - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - required: - - data - title: Addon imp - type: object - required: - - addon_imp - type: object - type: - allOf: - - $ref: '#/components/schemas/ExternalLinkServiceTypeEnum' - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - required: - - type - - id - type: object - ExternalLinkServiceResponse: - properties: - data: - $ref: '#/components/schemas/ExternalLinkService' - required: - - data - type: object - ExternalLinkServiceTypeEnum: - enum: - - external-link-services - type: string - ExternalStorageService: - additionalProperties: false - properties: - attributes: - properties: - api_base_url_options: - items: - type: string - readOnly: true - type: array - auth_uri: - readOnly: true - type: string - configurable_api_root: - readOnly: true - type: string - credentials_format: - description: '* `UNSPECIFIED` - UNSPECIFIED - - * `OAUTH2` - OAUTH2 - - * `ACCESS_KEY_SECRET_KEY` - ACCESS_KEY_SECRET_KEY - - * `USERNAME_PASSWORD` - USERNAME_PASSWORD - - * `PERSONAL_ACCESS_TOKEN` - PERSONAL_ACCESS_TOKEN - - * `OAUTH1A` - OAUTH1A - - * `DATAVERSE_API_TOKEN` - DATAVERSE_API_TOKEN' - enum: - - UNSPECIFIED - - OAUTH2 - - ACCESS_KEY_SECRET_KEY - - USERNAME_PASSWORD - - PERSONAL_ACCESS_TOKEN - - OAUTH1A - - DATAVERSE_API_TOKEN - readOnly: true - type: string - display_name: - type: string - external_service_name: - readOnly: true - type: string - icon_url: - readOnly: true - type: string - id: - format: uuid - readOnly: true - type: string - max_concurrent_downloads: - maximum: 2147483647 - minimum: -2147483648 - type: integer - max_upload_mb: - maximum: 2147483647 - minimum: -2147483648 - type: integer - supported_features: - items: - description: '* `ADD_UPDATE_FILES` - ADD_UPDATE_FILES - - * `ADD_UPDATE_FILES_PARTIAL` - ADD_UPDATE_FILES_PARTIAL - - * `DELETE_FILES` - DELETE_FILES - - * `DELETE_FILES_PARTIAL` - DELETE_FILES_PARTIAL - - * `FORKING` - FORKING - - * `LOGS` - LOGS - - * `PERMISSIONS` - PERMISSIONS - - * `REGISTERING` - REGISTERING - - * `FILE_VERSIONS` - FILE_VERSIONS - - * `COPY_INTO` - COPY_INTO - - * `DOWNLOAD_AS_ZIP` - DOWNLOAD_AS_ZIP' - enum: - - ADD_UPDATE_FILES - - ADD_UPDATE_FILES_PARTIAL - - DELETE_FILES - - DELETE_FILES_PARTIAL - - FORKING - - LOGS - - PERMISSIONS - - REGISTERING - - FILE_VERSIONS - - COPY_INTO - - DOWNLOAD_AS_ZIP - type: string - readOnly: true - type: array - wb_key: - type: string - required: - - max_concurrent_downloads - - max_upload_mb - - display_name - type: object - id: {} - links: - properties: - self: - example: http://api.example.org/accounts/123 - format: uri - nullable: false - type: string - type: object - relationships: - properties: - addon_imp: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - addon-imps - title: Resource Type Name - type: string - required: - - id - - type - type: object - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - required: - - data - title: Addon imp - type: object - required: - - addon_imp - type: object - type: - allOf: - - $ref: '#/components/schemas/ExternalStorageServiceTypeEnum' - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - required: - - type - - id - type: object - ExternalStorageServiceResponse: - properties: - data: - $ref: '#/components/schemas/ExternalStorageService' - required: - - data - type: object - ExternalStorageServiceTypeEnum: - enum: - - external-storage-services - type: string - PaginatedExternalCitationServiceList: - properties: - data: - items: - $ref: '#/components/schemas/ExternalCitationService' - type: array - links: - properties: - first: - example: http://api.example.org/accounts/?page[number]=1 - format: uri - nullable: true - type: string - last: - example: http://api.example.org/accounts/?page[number]=3 - format: uri - nullable: true - type: string - next: - example: http://api.example.org/accounts/?page[number]=3 - format: uri - nullable: true - type: string - prev: - example: http://api.example.org/accounts/?page[number]=1 - format: uri - nullable: true - type: string - required: - - count - - next - - prev - type: object - meta: - properties: - pagination: - properties: - count: - example: 2 - type: integer - page: - example: 1 - type: integer - pages: - example: 1 - type: integer - required: - - count - - next - - prev - type: object - required: - - pagination - type: object - required: - - meta - - data - - links - type: object - PaginatedExternalComputingServiceList: - properties: - data: - items: - $ref: '#/components/schemas/ExternalComputingService' - type: array - links: - properties: - first: - example: http://api.example.org/accounts/?page[number]=1 - format: uri - nullable: true - type: string - last: - example: http://api.example.org/accounts/?page[number]=3 - format: uri - nullable: true - type: string - next: - example: http://api.example.org/accounts/?page[number]=3 - format: uri - nullable: true - type: string - prev: - example: http://api.example.org/accounts/?page[number]=1 - format: uri - nullable: true - type: string - required: - - count - - next - - prev - type: object - meta: - properties: - pagination: - properties: - count: - example: 2 - type: integer - page: - example: 1 - type: integer - pages: - example: 1 - type: integer - required: - - count - - next - - prev - type: object - required: - - pagination - type: object - required: - - meta - - data - - links - type: object - PaginatedExternalLinkServiceList: - properties: - data: - items: - $ref: '#/components/schemas/ExternalLinkService' - type: array - links: - properties: - first: - example: http://api.example.org/accounts/?page[number]=1 - format: uri - nullable: true - type: string - last: - example: http://api.example.org/accounts/?page[number]=3 - format: uri - nullable: true - type: string - next: - example: http://api.example.org/accounts/?page[number]=3 - format: uri - nullable: true - type: string - prev: - example: http://api.example.org/accounts/?page[number]=1 - format: uri - nullable: true - type: string - required: - - count - - next - - prev - type: object - meta: - properties: - pagination: - properties: - count: - example: 2 - type: integer - page: - example: 1 - type: integer - pages: - example: 1 - type: integer - required: - - count - - next - - prev - type: object - required: - - pagination - type: object - required: - - meta - - data - - links - type: object - PaginatedExternalStorageServiceList: - properties: - data: - items: - $ref: '#/components/schemas/ExternalStorageService' - type: array - links: - properties: - first: - example: http://api.example.org/accounts/?page[number]=1 - format: uri - nullable: true - type: string - last: - example: http://api.example.org/accounts/?page[number]=3 - format: uri - nullable: true - type: string - next: - example: http://api.example.org/accounts/?page[number]=3 - format: uri - nullable: true - type: string - prev: - example: http://api.example.org/accounts/?page[number]=1 - format: uri - nullable: true - type: string - required: - - count - - next - - prev - type: object - meta: - properties: - pagination: - properties: - count: - example: 2 - type: integer - page: - example: 1 - type: integer - pages: - example: 1 - type: integer - required: - - count - - next - - prev - type: object - required: - - pagination - type: object - required: - - meta - - data - - links - type: object - PaginatedResourceReferenceList: - properties: - data: - items: - $ref: '#/components/schemas/ResourceReference' - type: array - links: - properties: - first: - example: http://api.example.org/accounts/?page[number]=1 - format: uri - nullable: true - type: string - last: - example: http://api.example.org/accounts/?page[number]=3 - format: uri - nullable: true - type: string - next: - example: http://api.example.org/accounts/?page[number]=3 - format: uri - nullable: true - type: string - prev: - example: http://api.example.org/accounts/?page[number]=1 - format: uri - nullable: true - type: string - required: - - count - - next - - prev - type: object - meta: - properties: - pagination: - properties: - count: - example: 2 - type: integer - page: - example: 1 - type: integer - pages: - example: 1 - type: integer - required: - - count - - next - - prev - type: object - required: - - pagination - type: object - required: - - meta - - data - - links - type: object - PaginatedUserReferenceList: - properties: - data: - items: - $ref: '#/components/schemas/UserReference' - type: array - links: - properties: - first: - example: http://api.example.org/accounts/?page[number]=1 - format: uri - nullable: true - type: string - last: - example: http://api.example.org/accounts/?page[number]=3 - format: uri - nullable: true - type: string - next: - example: http://api.example.org/accounts/?page[number]=3 - format: uri - nullable: true - type: string - prev: - example: http://api.example.org/accounts/?page[number]=1 - format: uri - nullable: true - type: string - required: - - count - - next - - prev - type: object - meta: - properties: - pagination: - properties: - count: - example: 2 - type: integer - page: - example: 1 - type: integer - pages: - example: 1 - type: integer - required: - - count - - next - - prev - type: object - required: - - pagination - type: object - required: - - meta - - data - - links - type: object - PatchedAuthorizedCitationAccountRequest: - properties: - data: - additionalProperties: false - properties: - attributes: - properties: - api_base_url: - format: uri - nullable: true - type: string - auth_url: - minLength: 1 - readOnly: true - type: string - authorized_capabilities: - items: - description: '* `ACCESS` - ACCESS - - * `UPDATE` - UPDATE' - enum: - - ACCESS - - UPDATE - type: string - type: array - authorized_operation_names: - items: - minLength: 1 - type: string - readOnly: true - type: array - credentials: - writeOnly: true - credentials_available: - readOnly: true - type: boolean - default_root_folder: - type: string - display_name: - maxLength: 256 - nullable: true - type: string - id: - format: uuid - readOnly: true - type: string - initiate_oauth: - type: boolean - writeOnly: true - required: - - authorized_capabilities - type: object - id: {} - relationships: - properties: - account_owner: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - user-references - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Account owner - type: object - authorized_operations: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - addon-operations - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Authorized operations - type: object - configured_citation_addons: - description: A related resource object from type configured-citation-addons - properties: - data: - items: - properties: - id: - description: The identifier of the related object. - title: Resource Identifier - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - configured-citation-addons - title: Resource Type Name - type: string - required: - - id - - type - type: object - type: array - required: - - data - title: Configured citation addons - type: object - external_citation_service: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - external-citation-services - title: Resource Type Name - type: string - required: - - id - - type - type: object - required: - - data - title: External citation service - type: object - required: - - external_citation_service - type: object - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - enum: - - authorized-citation-accounts - type: string - required: - - type - - id - type: object - required: - - data - type: object - PatchedAuthorizedComputingAccountRequest: - properties: - data: - additionalProperties: false - properties: - attributes: - properties: - api_base_url: - format: uri - nullable: true - type: string - auth_url: - minLength: 1 - readOnly: true - type: string - authorized_capabilities: - items: - description: '* `ACCESS` - ACCESS - - * `UPDATE` - UPDATE' - enum: - - ACCESS - - UPDATE - type: string - type: array - authorized_operation_names: - items: - minLength: 1 - type: string - readOnly: true - type: array - credentials: - writeOnly: true - credentials_available: - readOnly: true - type: boolean - display_name: - maxLength: 256 - nullable: true - type: string - id: - format: uuid - readOnly: true - type: string - initiate_oauth: - type: boolean - writeOnly: true - required: - - authorized_capabilities - type: object - id: {} - relationships: - properties: - account_owner: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - user-references - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Account owner - type: object - authorized_operations: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - addon-operations - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Authorized operations - type: object - configured_computing_addons: - description: A related resource object from type configured-computing-addons - properties: - data: - items: - properties: - id: - description: The identifier of the related object. - title: Resource Identifier - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - configured-computing-addons - title: Resource Type Name - type: string - required: - - id - - type - type: object - type: array - required: - - data - title: Configured computing addons - type: object - external_computing_service: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - external-computing-services - title: Resource Type Name - type: string - required: - - id - - type - type: object - required: - - data - title: External computing service - type: object - required: - - external_computing_service - type: object - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - enum: - - authorized-computing-accounts - type: string - required: - - type - - id - type: object - required: - - data - type: object - PatchedAuthorizedLinkAccountRequest: - properties: - data: - additionalProperties: false - properties: - attributes: - properties: - api_base_url: - format: uri - nullable: true - type: string - auth_url: - minLength: 1 - readOnly: true - type: string - authorized_capabilities: - items: - description: '* `ACCESS` - ACCESS - - * `UPDATE` - UPDATE' - enum: - - ACCESS - - UPDATE - type: string - type: array - authorized_operation_names: - items: - minLength: 1 - type: string - readOnly: true - type: array - credentials: - writeOnly: true - credentials_available: - readOnly: true - type: boolean - display_name: - maxLength: 256 - nullable: true - type: string - id: - format: uuid - readOnly: true - type: string - initiate_oauth: - type: boolean - writeOnly: true - required: - - authorized_capabilities - type: object - id: {} - relationships: - properties: - account_owner: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - user-references - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Account owner - type: object - authorized_operations: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - addon-operations - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Authorized operations - type: object - configured_link_addons: - description: A related resource object from type configured-link-addons - properties: - data: - items: - properties: - id: - description: The identifier of the related object. - title: Resource Identifier - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - configured-link-addons - title: Resource Type Name - type: string - required: - - id - - type - type: object - type: array - required: - - data - title: Configured link addons - type: object - external_link_service: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - external-link-services - title: Resource Type Name - type: string - required: - - id - - type - type: object - required: - - data - title: External link service - type: object - required: - - external_link_service - type: object - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - enum: - - authorized-link-accounts - type: string - required: - - type - - id - type: object - required: - - data - type: object - PatchedAuthorizedStorageAccountRequest: - properties: - data: - additionalProperties: false - properties: - attributes: - properties: - api_base_url: - format: uri - nullable: true - type: string - auth_url: - minLength: 1 - readOnly: true - type: string - authorized_capabilities: - items: - description: '* `ACCESS` - ACCESS - - * `UPDATE` - UPDATE' - enum: - - ACCESS - - UPDATE - type: string - type: array - authorized_operation_names: - items: - minLength: 1 - type: string - readOnly: true - type: array - credentials: - writeOnly: true - credentials_available: - readOnly: true - type: boolean - default_root_folder: - type: string - display_name: - maxLength: 256 - nullable: true - type: string - id: - format: uuid - readOnly: true - type: string - initiate_oauth: - type: boolean - writeOnly: true - required: - - authorized_capabilities - type: object - id: {} - relationships: - properties: - account_owner: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - user-references - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Account owner - type: object - authorized_operations: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - addon-operations - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Authorized operations - type: object - configured_storage_addons: - description: A related resource object from type configured-storage-addons - properties: - data: - items: - properties: - id: - description: The identifier of the related object. - title: Resource Identifier - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - configured-storage-addons - title: Resource Type Name - type: string - required: - - id - - type - type: object - type: array - required: - - data - title: Configured storage addons - type: object - external_storage_service: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - external-storage-services - title: Resource Type Name - type: string - required: - - id - - type - type: object - required: - - data - title: External storage service - type: object - required: - - external_storage_service - type: object - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - enum: - - authorized-storage-accounts - type: string - required: - - type - - id - type: object - required: - - data - type: object - PatchedConfiguredCitationAddonRequest: - properties: - data: - additionalProperties: false - properties: - attributes: - properties: - authorized_resource_uri: - minLength: 1 - type: string - writeOnly: true - connected_capabilities: - items: - description: '* `ACCESS` - ACCESS - - * `UPDATE` - UPDATE' - enum: - - ACCESS - - UPDATE - type: string - type: array - connected_operation_names: - items: - minLength: 1 - type: string - readOnly: true - type: array - current_user_is_owner: - readOnly: true - type: boolean - display_name: - maxLength: 256 - nullable: true - type: string - external_service_name: - minLength: 1 - readOnly: true - type: string - id: - format: uuid - readOnly: true - type: string - root_folder: - type: string - required: - - connected_capabilities - type: object - id: {} - relationships: - properties: - authorized_resource: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - resource-references - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Authorized resource - type: object - base_account: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - authorized-citation-accounts - title: Resource Type Name - type: string - required: - - id - - type - type: object - required: - - data - title: Base account - type: object - connected_operations: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - addon-operations - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Connected operations - type: object - external_citation_service: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - external-citation-services - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: External citation service - type: object - required: - - base_account - type: object - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - enum: - - configured-citation-addons - type: string - required: - - type - - id - type: object - required: - - data - type: object - PatchedConfiguredComputingAddonRequest: - properties: - data: - additionalProperties: false - properties: - attributes: - properties: - authorized_resource_uri: - minLength: 1 - type: string - writeOnly: true - connected_capabilities: - items: - description: '* `ACCESS` - ACCESS - - * `UPDATE` - UPDATE' - enum: - - ACCESS - - UPDATE - type: string - type: array - connected_operation_names: - items: - minLength: 1 - type: string - readOnly: true - type: array - current_user_is_owner: - readOnly: true - type: boolean - display_name: - maxLength: 256 - nullable: true - type: string - external_service_name: - minLength: 1 - readOnly: true - type: string - id: - format: uuid - readOnly: true - type: string - required: - - connected_capabilities - type: object - id: {} - relationships: - properties: - authorized_resource: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - resource-references - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Authorized resource - type: object - base_account: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - authorized-computing-accounts - title: Resource Type Name - type: string - required: - - id - - type - type: object - required: - - data - title: Base account - type: object - connected_operations: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - addon-operations - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Connected operations - type: object - external_computing_service: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - external-computing-services - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: External computing service - type: object - required: - - base_account - type: object - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - enum: - - configured-computing-addons - type: string - required: - - type - - id - type: object - required: - - data - type: object - PatchedConfiguredLinkAddonRequest: - properties: - data: - additionalProperties: false - properties: - attributes: - properties: - authorized_resource_uri: - minLength: 1 - type: string - writeOnly: true - connected_capabilities: - items: - description: '* `ACCESS` - ACCESS - - * `UPDATE` - UPDATE' - enum: - - ACCESS - - UPDATE - type: string - type: array - connected_operation_names: - items: - minLength: 1 - type: string - readOnly: true - type: array - current_user_is_owner: - readOnly: true - type: boolean - display_name: - maxLength: 256 - nullable: true - type: string - external_service_name: - readOnly: true - type: string - id: - format: uuid - readOnly: true - type: string - resource_type: - description: '* `Audiovisual` - Audiovisual - - * `Award` - Award - - * `Book` - Book - - * `BookChapter` - BookChapter - - * `Collection` - Collection - - * `ComputationalNotebook` - ComputationalNotebook - - * `ConferencePaper` - ConferencePaper - - * `ConferenceProceeding` - ConferenceProceeding - - * `DataPaper` - DataPaper - - * `Dataset` - Dataset - - * `Dissertation` - Dissertation - - * `Event` - Event - - * `Image` - Image - - * `Instrument` - Instrument - - * `InteractiveResource` - InteractiveResource - - * `Journal` - Journal - - * `JournalArticle` - JournalArticle - - * `Model` - Model - - * `OutputManagementPlan` - OutputManagementPlan - - * `PeerReview` - PeerReview - - * `PhysicalObject` - PhysicalObject - - * `Preprint` - Preprint - - * `Project` - Project - - * `Report` - Report - - * `Service` - Service - - * `Software` - Software - - * `Sound` - Sound - - * `Standard` - Standard - - * `StudyRegistration` - StudyRegistration - - * `Text` - Text - - * `Workflow` - Workflow - - * `Other` - Other' - enum: - - Audiovisual - - Award - - Book - - BookChapter - - Collection - - ComputationalNotebook - - ConferencePaper - - ConferenceProceeding - - DataPaper - - Dataset - - Dissertation - - Event - - Image - - Instrument - - InteractiveResource - - Journal - - JournalArticle - - Model - - OutputManagementPlan - - PeerReview - - PhysicalObject - - Preprint - - Project - - Report - - Service - - Software - - Sound - - Standard - - StudyRegistration - - Text - - Workflow - - Other - - null - nullable: true - type: string - target_id: - minLength: 1 - nullable: true - type: string - target_url: - format: uri - minLength: 1 - readOnly: true - type: string - required: - - connected_capabilities - type: object - id: {} - relationships: - properties: - authorized_resource: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - resource-references - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Authorized resource - type: object - base_account: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - authorized-link-accounts - title: Resource Type Name - type: string - required: - - id - - type - type: object - required: - - data - title: Base account - type: object - connected_operations: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - addon-operations - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Connected operations - type: object - external_link_service: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - external-link-services - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: External link service - type: object - required: - - base_account - type: object - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - enum: - - configured-link-addons - type: string - required: - - type - - id - type: object - required: - - data - type: object - PatchedConfiguredStorageAddonRequest: - properties: - data: - additionalProperties: false - properties: - attributes: - properties: - authorized_resource_uri: - minLength: 1 - type: string - writeOnly: true - connected_capabilities: - items: - description: '* `ACCESS` - ACCESS - - * `UPDATE` - UPDATE' - enum: - - ACCESS - - UPDATE - type: string - type: array - connected_operation_names: - items: - minLength: 1 - type: string - readOnly: true - type: array - current_user_is_owner: - readOnly: true - type: boolean - display_name: - maxLength: 256 - nullable: true - type: string - external_service_name: - readOnly: true - type: string - id: - format: uuid - readOnly: true - type: string - root_folder: - type: string - required: - - connected_capabilities - type: object - id: {} - relationships: - properties: - authorized_resource: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - resource-references - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Authorized resource - type: object - base_account: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - authorized-storage-accounts - title: Resource Type Name - type: string - required: - - id - - type - type: object - required: - - data - title: Base account - type: object - connected_operations: - description: The identifier of the related object. - properties: - data: - properties: - id: - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - addon-operations - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: Connected operations - type: object - external_storage_service: - description: The identifier of the related object. - properties: - data: - properties: - id: - format: uuid - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share - common attributes and relationships. - enum: - - external-storage-services - title: Resource Type Name - type: string - required: - - id - - type - type: object - readOnly: true - required: - - data - title: External storage service - type: object - required: - - base_account - type: object - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - enum: - - configured-storage-addons - type: string - required: - - type - - id - type: object - required: - - data - type: object - ResourceReference: - additionalProperties: false - properties: - attributes: - properties: - resource_uri: - format: uri - maxLength: 200 - type: string - required: - - resource_uri - type: object - id: - format: uuid - type: string - links: - properties: - self: - example: http://api.example.org/accounts/123 - format: uri - nullable: false - type: string - type: object - relationships: - properties: - configured_citation_addons: - description: A related resource object from type configured-citation-addons - properties: - data: - items: - properties: - id: - description: The identifier of the related object. - title: Resource Identifier - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - configured-citation-addons - title: Resource Type Name - type: string - required: - - id - - type - type: object - type: array - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - required: - - data - title: Configured citation addons - type: object - configured_computing_addons: - description: A related resource object from type configured-computing-addons - properties: - data: - items: - properties: - id: - description: The identifier of the related object. - title: Resource Identifier - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - configured-computing-addons - title: Resource Type Name - type: string - required: - - id - - type - type: object - type: array - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - required: - - data - title: Configured computing addons - type: object - configured_link_addons: - description: A related resource object from type configured-link-addons - properties: - data: - items: - properties: - id: - description: The identifier of the related object. - title: Resource Identifier - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - configured-link-addons - title: Resource Type Name - type: string - required: - - id - - type - type: object - type: array - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - required: - - data - title: Configured link addons - type: object - configured_storage_addons: - description: A related resource object from type configured-storage-addons - properties: - data: - items: - properties: - id: - description: The identifier of the related object. - title: Resource Identifier - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - configured-storage-addons - title: Resource Type Name - type: string - required: - - id - - type - type: object - type: array - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - required: - - data - title: Configured storage addons - type: object - required: - - configured_storage_addons - - configured_link_addons - - configured_citation_addons - - configured_computing_addons - type: object - type: - allOf: - - $ref: '#/components/schemas/ResourceReferenceTypeEnum' - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - required: - - type - - id - type: object - ResourceReferenceResponse: - properties: - data: - $ref: '#/components/schemas/ResourceReference' - required: - - data - type: object - ResourceReferenceTypeEnum: - enum: - - resource-references - type: string - UserReference: - additionalProperties: false - properties: - attributes: - properties: - user_uri: - format: uri - maxLength: 200 - type: string - required: - - user_uri - type: object - id: - format: uuid - type: string - links: - properties: - self: - example: http://api.example.org/accounts/123 - format: uri - nullable: false - type: string - type: object - relationships: - properties: - authorized_citation_accounts: - description: A related resource object from type authorized-citation-accounts - properties: - data: - items: - properties: - id: - description: The identifier of the related object. - title: Resource Identifier - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - authorized-citation-accounts - title: Resource Type Name - type: string - required: - - id - - type - type: object - type: array - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - required: - - data - title: Authorized citation accounts - type: object - authorized_computing_accounts: - description: A related resource object from type authorized-computing-accounts - properties: - data: - items: - properties: - id: - description: The identifier of the related object. - title: Resource Identifier - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - authorized-computing-accounts - title: Resource Type Name - type: string - required: - - id - - type - type: object - type: array - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - required: - - data - title: Authorized computing accounts - type: object - authorized_link_accounts: - description: A related resource object from type authorized-citation-accounts - properties: - data: - items: - properties: - id: - description: The identifier of the related object. - title: Resource Identifier - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - authorized-citation-accounts - title: Resource Type Name - type: string - required: - - id - - type - type: object - type: array - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - required: - - data - title: Authorized link accounts - type: object - authorized_storage_accounts: - description: A related resource object from type authorized-storage-accounts - properties: - data: - items: - properties: - id: - description: The identifier of the related object. - title: Resource Identifier - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - authorized-storage-accounts - title: Resource Type Name - type: string - required: - - id - - type - type: object - type: array - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - required: - - data - title: Authorized storage accounts - type: object - configured_resources: - description: A related resource object from type resource-references - properties: - data: - items: - properties: - id: - description: The identifier of the related object. - title: Resource Identifier - type: string - type: - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common - attributes and relationships. - enum: - - resource-references - title: Resource Type Name - type: string - required: - - id - - type - type: object - type: array - links: - properties: - related: - example: http://api.example.org/accounts/123 - format: uri - nullable: true - type: string - type: object - required: - - data - title: Configured resources - type: object - required: - - authorized_storage_accounts - - authorized_citation_accounts - - authorized_computing_accounts - - authorized_link_accounts - - configured_resources - type: object - type: - allOf: - - $ref: '#/components/schemas/UserReferenceTypeEnum' - description: The [type](https://jsonapi.org/format/#document-resource-object-identification) - member is used to describe resource objects that share common attributes - and relationships. - required: - - type - - id - type: object - UserReferenceResponse: - properties: - data: - $ref: '#/components/schemas/UserReference' - required: - - data - type: object - UserReferenceTypeEnum: - enum: - - user-references - type: string -info: - description: Addons service designed for use with OSF - title: GravyValet API - version: 1.0.0 -openapi: 3.0.3 -paths: - /v1/addon-imps/: - get: - description: viewset for read-only access to any `StaticDataclassModel` - operationId: addon_imps_list - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[addon-imps] - schema: - items: - enum: - - url - - name - - docstring - - interface_docstring - - implemented_operations - type: string - type: array - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - implemented_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AddonImpResponse' - description: '' - security: - - {} - tags: - - addon-imps - /v1/addon-imps/{id}/: - get: - description: viewset for read-only access to any `StaticDataclassModel` - operationId: addon_imps_retrieve - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[addon-imps] - schema: - items: - enum: - - url - - name - - docstring - - interface_docstring - - implemented_operations - type: string - type: array - - in: path - name: id - required: true - schema: - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - implemented_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AddonImpResponse' - description: '' - security: - - {} - tags: - - addon-imps - /v1/addon-imps/{id}/implemented_operations: - get: - description: Fetch all related AddonOperation to this AddonImp - operationId: addon_imps_retrieve_2_related_implemented_operations - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[addon-operations] - schema: - items: - enum: - - url - - name - - docstring - - capability - - kwargs_jsonschema - - result_jsonschema - - implemented_by - type: string - type: array - - in: path - name: id - required: true - schema: - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - implemented_by - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AddonOperationResponse' - description: '' - security: - - {} - tags: - - addon-imps - /v1/addon-operation-invocations/: - post: - description: Perform some action using external service, for instance list files - on storage provider. In order to perform such action you need to include configured_addon - relationship - operationId: addon_operation_invocations_create - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AddonOperationInvocationRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/AddonOperationInvocationRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/AddonOperationInvocationRequest' - required: true - responses: - '201': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AddonOperationInvocationResponse' - description: '' - tags: - - addon-operation-invocations - /v1/addon-operation-invocations/{id}/: - get: - description: Get singular instance of addon operation invocation by it's pk. - May be useful to view action log - operationId: addon_operation_invocations_retrieve - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[addon-operation-invocations] - schema: - items: - enum: - - url - - invocation_status - - operation_kwargs - - operation_result - - operation - - by_user - - thru_account - - thru_addon - - created - - modified - - operation_name - type: string - type: array - - description: A UUID string identifying this addon operation invocation. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - thru_account - - thru_addon - - operation - - by_user - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AddonOperationInvocationResponse' - description: '' - tags: - - addon-operation-invocations - /v1/addon-operation-invocations/{id}/by_user: - get: - description: Fetch all related UserReference to this AddonOperationInvocation - operationId: addon_operation_invocations_retrieve_2_related_by_user - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[user-references] - schema: - items: - enum: - - url - - user_uri - - authorized_storage_accounts - - authorized_citation_accounts - - authorized_computing_accounts - - authorized_link_accounts - - configured_resources - type: string - type: array - - description: A UUID string identifying this User Reference. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - authorized_storage_accounts - - authorized_citation_accounts - - authorized_computing_accounts - - authorized_link_accounts - - configured_resources - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/UserReferenceResponse' - description: '' - tags: &id001 - - addon-operation-invocations - /v1/addon-operation-invocations/{id}/operation: - get: - description: Fetch all related AddonOperation to this AddonOperationInvocation - operationId: addon_operation_invocations_retrieve_2_related_operation - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[addon-operations] - schema: - items: - enum: - - url - - name - - docstring - - capability - - kwargs_jsonschema - - result_jsonschema - - implemented_by - type: string - type: array - - in: path - name: id - required: true - schema: - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - implemented_by - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AddonOperationResponse' - description: '' - security: - - {} - tags: *id001 - /v1/addon-operation-invocations/{id}/thru_account: - get: - description: Fetch all related AuthorizedStorageAccount to this AddonOperationInvocation - operationId: addon_operation_invocations_retrieve_2_related_thru_account - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[authorized-storage-accounts] - schema: - items: - enum: - - id - - url - - display_name - - account_owner - - api_base_url - - auth_url - - authorized_capabilities - - authorized_operations - - authorized_operation_names - - configured_storage_addons - - credentials - - default_root_folder - - external_storage_service - - initiate_oauth - - credentials_available - type: string - type: array - - description: A UUID string identifying this Authorized Storage Account. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - account_owner - - external_storage_service - - configured_storage_addons - - authorized_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AuthorizedStorageAccountResponse' - description: '' - tags: *id001 - /v1/addon-operation-invocations/{id}/thru_addon: - get: - description: Fetch all related ConfiguredStorageAddon to this AddonOperationInvocation - operationId: addon_operation_invocations_retrieve_2_related_thru_addon - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[configured-storage-addons] - schema: - items: - enum: - - id - - url - - display_name - - root_folder - - base_account - - authorized_resource - - authorized_resource_uri - - connected_capabilities - - connected_operations - - connected_operation_names - - external_storage_service - - current_user_is_owner - - external_service_name - type: string - type: array - - description: A UUID string identifying this Configured Storage Addon. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - base_account - - external_storage_service - - authorized_resource - - connected_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ConfiguredStorageAddonResponse' - description: '' - tags: *id001 - /v1/addon-operations/: - get: - description: viewset for read-only access to any `StaticDataclassModel` - operationId: addon_operations_list - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[addon-operations] - schema: - items: - enum: - - url - - name - - docstring - - capability - - kwargs_jsonschema - - result_jsonschema - - implemented_by - type: string - type: array - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - implemented_by - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AddonOperationResponse' - description: '' - security: - - {} - tags: - - addon-operations - /v1/addon-operations/{id}/: - get: - description: viewset for read-only access to any `StaticDataclassModel` - operationId: addon_operations_retrieve - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[addon-operations] - schema: - items: - enum: - - url - - name - - docstring - - capability - - kwargs_jsonschema - - result_jsonschema - - implemented_by - type: string - type: array - - in: path - name: id - required: true - schema: - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - implemented_by - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AddonOperationResponse' - description: '' - security: - - {} - tags: - - addon-operations - /v1/addon-operations/{id}/implemented_by: - get: - description: Fetch all related AddonImp to this AddonOperation - operationId: addon_operations_retrieve_2_related_implemented_by - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[addon-imps] - schema: - items: - enum: - - url - - name - - docstring - - interface_docstring - - implemented_operations - type: string - type: array - - in: path - name: id - required: true - schema: - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - implemented_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AddonImpResponse' - description: '' - security: - - {} - tags: - - addon-operations - /v1/authorized-citation-accounts/: - post: - description: "Create new authorized citation account for given external citation\ - \ service.\n For OAuth services it's required to create account with `\"initiate_oauth\"\ - =true` in order to proceed with OAuth flow" - operationId: authorized_citation_accounts_create - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AuthorizedCitationAccountRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/AuthorizedCitationAccountRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/AuthorizedCitationAccountRequest' - required: true - responses: - '201': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AuthorizedCitationAccountResponse' - description: '' - tags: - - authorized-citation-accounts - /v1/authorized-citation-accounts/{id}/: - delete: - description: viewset allowing create, retrieve, update, delete - operationId: authorized_citation_accounts_destroy - parameters: - - description: A UUID string identifying this Authorized Citation Account. - in: path - name: id - required: true - schema: - format: uuid - type: string - responses: - '204': - description: No response body - tags: - - authorized-citation-accounts - get: - description: viewset allowing create, retrieve, update, delete - operationId: authorized_citation_accounts_retrieve - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[authorized-citation-accounts] - schema: - items: - enum: - - id - - url - - display_name - - account_owner - - api_base_url - - auth_url - - authorized_capabilities - - authorized_operations - - authorized_operation_names - - configured_citation_addons - - credentials - - default_root_folder - - external_citation_service - - initiate_oauth - - credentials_available - type: string - type: array - - description: A UUID string identifying this Authorized Citation Account. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - account_owner - - external_citation_service - - configured_citation_addons - - authorized_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AuthorizedCitationAccountResponse' - description: '' - tags: - - authorized-citation-accounts - patch: - description: viewset allowing create, retrieve, update, delete - operationId: authorized_citation_accounts_partial_update - parameters: - - description: A UUID string identifying this Authorized Citation Account. - in: path - name: id - required: true - schema: - format: uuid - type: string - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/PatchedAuthorizedCitationAccountRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedAuthorizedCitationAccountRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedAuthorizedCitationAccountRequest' - required: true - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AuthorizedCitationAccountResponse' - description: '' - tags: - - authorized-citation-accounts - /v1/authorized-citation-accounts/{id}/account_owner: - get: - description: Fetch all related UserReference to this AuthorizedCitationAccount - operationId: authorized_citation_accounts_retrieve_2_related_account_owner - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[user-references] - schema: - items: - enum: - - url - - user_uri - - authorized_storage_accounts - - authorized_citation_accounts - - authorized_computing_accounts - - authorized_link_accounts - - configured_resources - type: string - type: array - - description: A UUID string identifying this User Reference. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - authorized_storage_accounts - - authorized_citation_accounts - - authorized_computing_accounts - - authorized_link_accounts - - configured_resources - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/UserReferenceResponse' - description: '' - tags: &id002 - - authorized-citation-accounts - /v1/authorized-citation-accounts/{id}/authorized_operations: - get: - description: Fetch all related AddonOperation to this AuthorizedCitationAccount - operationId: authorized_citation_accounts_retrieve_2_related_authorized_operations - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[addon-operations] - schema: - items: - enum: - - url - - name - - docstring - - capability - - kwargs_jsonschema - - result_jsonschema - - implemented_by - type: string - type: array - - in: path - name: id - required: true - schema: - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - implemented_by - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AddonOperationResponse' - description: '' - security: - - {} - tags: *id002 - /v1/authorized-citation-accounts/{id}/configured_citation_addons: - get: - description: Fetch all related ConfiguredCitationAddon to this AuthorizedCitationAccount - operationId: authorized_citation_accounts_retrieve_2_related_configured_citation_addons - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[configured-citation-addons] - schema: - items: - enum: - - id - - url - - display_name - - root_folder - - base_account - - authorized_resource - - authorized_resource_uri - - connected_capabilities - - connected_operations - - connected_operation_names - - external_service_name - - external_citation_service - - current_user_is_owner - type: string - type: array - - description: A UUID string identifying this Configured Citation Addon. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - base_account - - external_citation_service - - authorized_resource - - connected_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ConfiguredCitationAddonResponse' - description: '' - tags: *id002 - /v1/authorized-citation-accounts/{id}/external_citation_service: - get: - description: Fetch all related ExternalCitationService to this AuthorizedCitationAccount - operationId: authorized_citation_accounts_retrieve_2_related_external_citation_service - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[external-citation-services] - schema: - items: - enum: - - id - - addon_imp - - auth_uri - - credentials_format - - display_name - - url - - configurable_api_root - - wb_key - - external_service_name - - supported_features - - icon_url - - api_base_url_options - type: string - type: array - - description: A UUID string identifying this External Citation Service. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - addon_imp - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ExternalCitationServiceResponse' - description: '' - security: - - {} - tags: *id002 - /v1/authorized-computing-accounts/: - post: - description: "Create new authorized computing account for given external computing\ - \ service.\n For OAuth services it's required to create account with `\"initiate_oauth\"\ - =true` in order to proceed with OAuth flow" - operationId: authorized_computing_accounts_create - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AuthorizedComputingAccountRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/AuthorizedComputingAccountRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/AuthorizedComputingAccountRequest' - required: true - responses: - '201': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AuthorizedComputingAccountResponse' - description: '' - tags: - - authorized-computing-accounts - /v1/authorized-computing-accounts/{id}/: - delete: - description: viewset allowing create, retrieve, update, delete - operationId: authorized_computing_accounts_destroy - parameters: - - description: A UUID string identifying this Authorized Computing Account. - in: path - name: id - required: true - schema: - format: uuid - type: string - responses: - '204': - description: No response body - tags: - - authorized-computing-accounts - get: - description: viewset allowing create, retrieve, update, delete - operationId: authorized_computing_accounts_retrieve - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[authorized-computing-accounts] - schema: - items: - enum: - - id - - url - - display_name - - account_owner - - api_base_url - - auth_url - - authorized_capabilities - - authorized_operations - - authorized_operation_names - - configured_computing_addons - - credentials - - external_computing_service - - initiate_oauth - - credentials_available - type: string - type: array - - description: A UUID string identifying this Authorized Computing Account. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - account_owner - - external_computing_service - - configured_computing_addons - - authorized_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AuthorizedComputingAccountResponse' - description: '' - tags: - - authorized-computing-accounts - patch: - description: viewset allowing create, retrieve, update, delete - operationId: authorized_computing_accounts_partial_update - parameters: - - description: A UUID string identifying this Authorized Computing Account. - in: path - name: id - required: true - schema: - format: uuid - type: string - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/PatchedAuthorizedComputingAccountRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedAuthorizedComputingAccountRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedAuthorizedComputingAccountRequest' - required: true - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AuthorizedComputingAccountResponse' - description: '' - tags: - - authorized-computing-accounts - /v1/authorized-computing-accounts/{id}/account_owner: - get: - description: Fetch all related UserReference to this AuthorizedComputingAccount - operationId: authorized_computing_accounts_retrieve_2_related_account_owner - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[user-references] - schema: - items: - enum: - - url - - user_uri - - authorized_storage_accounts - - authorized_citation_accounts - - authorized_computing_accounts - - authorized_link_accounts - - configured_resources - type: string - type: array - - description: A UUID string identifying this User Reference. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - authorized_storage_accounts - - authorized_citation_accounts - - authorized_computing_accounts - - authorized_link_accounts - - configured_resources - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/UserReferenceResponse' - description: '' - tags: &id003 - - authorized-computing-accounts - /v1/authorized-computing-accounts/{id}/authorized_operations: - get: - description: Fetch all related AddonOperation to this AuthorizedComputingAccount - operationId: authorized_computing_accounts_retrieve_2_related_authorized_operations - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[addon-operations] - schema: - items: - enum: - - url - - name - - docstring - - capability - - kwargs_jsonschema - - result_jsonschema - - implemented_by - type: string - type: array - - in: path - name: id - required: true - schema: - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - implemented_by - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AddonOperationResponse' - description: '' - security: - - {} - tags: *id003 - /v1/authorized-computing-accounts/{id}/configured_computing_addons: - get: - description: Fetch all related ConfiguredComputingAddon to this AuthorizedComputingAccount - operationId: authorized_computing_accounts_retrieve_2_related_configured_computing_addons - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[configured-computing-addons] - schema: - items: - enum: - - id - - url - - display_name - - base_account - - authorized_resource - - authorized_resource_uri - - connected_capabilities - - connected_operations - - connected_operation_names - - external_service_name - - external_computing_service - - current_user_is_owner - type: string - type: array - - description: A UUID string identifying this Configured Computing Addon. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - base_account - - external_computing_service - - authorized_resource - - connected_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ConfiguredComputingAddonResponse' - description: '' - tags: *id003 - /v1/authorized-computing-accounts/{id}/external_computing_service: - get: - description: Fetch all related ExternalComputingService to this AuthorizedComputingAccount - operationId: authorized_computing_accounts_retrieve_2_related_external_computing_service - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[external-computing-services] - schema: - items: - enum: - - id - - addon_imp - - auth_uri - - credentials_format - - display_name - - url - - configurable_api_root - - supported_features - - icon_url - - wb_key - - api_base_url_options - type: string - type: array - - description: A UUID string identifying this External Computing Service. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - addon_imp - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ExternalComputingServiceResponse' - description: '' - security: - - {} - tags: *id003 - /v1/authorized-link-accounts/: - post: - description: "Create new authorized link account for given external link service.\n\ - \ For OAuth services it's required to create account with `\"initiate_oauth\"\ - =true` in order to proceed with OAuth flow" - operationId: authorized_link_accounts_create - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AuthorizedLinkAccountRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/AuthorizedLinkAccountRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/AuthorizedLinkAccountRequest' - required: true - responses: - '201': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AuthorizedLinkAccountResponse' - description: '' - tags: - - authorized-link-accounts - /v1/authorized-link-accounts/{id}/: - delete: - description: viewset allowing create, retrieve, update, delete - operationId: authorized_link_accounts_destroy - parameters: - - description: A UUID string identifying this Authorized Link Account. - in: path - name: id - required: true - schema: - format: uuid - type: string - responses: - '204': - description: No response body - tags: - - authorized-link-accounts - get: - description: viewset allowing create, retrieve, update, delete - operationId: authorized_link_accounts_retrieve - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[authorized-link-accounts] - schema: - items: - enum: - - id - - url - - display_name - - account_owner - - api_base_url - - auth_url - - authorized_capabilities - - authorized_operations - - authorized_operation_names - - configured_link_addons - - credentials - - external_link_service - - initiate_oauth - - credentials_available - type: string - type: array - - description: A UUID string identifying this Authorized Link Account. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - account_owner - - external_link_service - - configured_link_addons - - authorized_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AuthorizedLinkAccountResponse' - description: '' - tags: - - authorized-link-accounts - patch: - description: viewset allowing create, retrieve, update, delete - operationId: authorized_link_accounts_partial_update - parameters: - - description: A UUID string identifying this Authorized Link Account. - in: path - name: id - required: true - schema: - format: uuid - type: string - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/PatchedAuthorizedLinkAccountRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedAuthorizedLinkAccountRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedAuthorizedLinkAccountRequest' - required: true - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AuthorizedLinkAccountResponse' - description: '' - tags: - - authorized-link-accounts - /v1/authorized-link-accounts/{id}/account_owner: - get: - description: Fetch all related UserReference to this AuthorizedLinkAccount - operationId: authorized_link_accounts_retrieve_2_related_account_owner - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[user-references] - schema: - items: - enum: - - url - - user_uri - - authorized_storage_accounts - - authorized_citation_accounts - - authorized_computing_accounts - - authorized_link_accounts - - configured_resources - type: string - type: array - - description: A UUID string identifying this User Reference. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - authorized_storage_accounts - - authorized_citation_accounts - - authorized_computing_accounts - - authorized_link_accounts - - configured_resources - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/UserReferenceResponse' - description: '' - tags: &id004 - - authorized-link-accounts - /v1/authorized-link-accounts/{id}/authorized_operations: - get: - description: Fetch all related AddonOperation to this AuthorizedLinkAccount - operationId: authorized_link_accounts_retrieve_2_related_authorized_operations - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[addon-operations] - schema: - items: - enum: - - url - - name - - docstring - - capability - - kwargs_jsonschema - - result_jsonschema - - implemented_by - type: string - type: array - - in: path - name: id - required: true - schema: - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - implemented_by - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AddonOperationResponse' - description: '' - security: - - {} - tags: *id004 - /v1/authorized-link-accounts/{id}/configured_link_addons: - get: - description: Fetch all related ConfiguredLinkAddon to this AuthorizedLinkAccount - operationId: authorized_link_accounts_retrieve_2_related_configured_link_addons - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[configured-link-addons] - schema: - items: - enum: - - id - - display_name - - target_url - - base_account - - authorized_resource - - authorized_resource_uri - - connected_capabilities - - connected_operations - - connected_operation_names - - external_link_service - - current_user_is_owner - - external_service_name - - resource_type - - target_id - type: string - type: array - - description: A UUID string identifying this Configured Link Addon. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - base_account - - external_link_service - - authorized_resource - - connected_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ConfiguredLinkAddonResponse' - description: '' - tags: *id004 - /v1/authorized-link-accounts/{id}/external_link_service: - get: - description: Fetch all related ExternalLinkService to this AuthorizedLinkAccount - operationId: authorized_link_accounts_retrieve_2_related_external_link_service - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[external-link-services] - schema: - items: - enum: - - id - - addon_imp - - auth_uri - - credentials_format - - display_name - - url - - wb_key - - external_service_name - - configurable_api_root - - supported_resource_types - - supported_features - - icon_url - - api_base_url_options - type: string - type: array - - description: A UUID string identifying this External Link Service. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - addon_imp - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ExternalLinkServiceResponse' - description: '' - security: - - {} - tags: *id004 - /v1/authorized-storage-accounts/: - post: - description: "Create new authorized storage account for given external storage\ - \ service.\n For OAuth services it's required to create account with `\"initiate_oauth\"\ - =true` in order to proceed with OAuth flow" - operationId: authorized_storage_accounts_create - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AuthorizedStorageAccountRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/AuthorizedStorageAccountRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/AuthorizedStorageAccountRequest' - required: true - responses: - '201': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AuthorizedStorageAccountResponse' - description: '' - tags: - - authorized-storage-accounts - /v1/authorized-storage-accounts/{id}/: - delete: - description: viewset allowing create, retrieve, update, delete - operationId: authorized_storage_accounts_destroy - parameters: - - description: A UUID string identifying this Authorized Storage Account. - in: path - name: id - required: true - schema: - format: uuid - type: string - responses: - '204': - description: No response body - tags: - - authorized-storage-accounts - get: - description: viewset allowing create, retrieve, update, delete - operationId: authorized_storage_accounts_retrieve - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[authorized-storage-accounts] - schema: - items: - enum: - - id - - url - - display_name - - account_owner - - api_base_url - - auth_url - - authorized_capabilities - - authorized_operations - - authorized_operation_names - - configured_storage_addons - - credentials - - default_root_folder - - external_storage_service - - initiate_oauth - - credentials_available - type: string - type: array - - description: A UUID string identifying this Authorized Storage Account. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - account_owner - - external_storage_service - - configured_storage_addons - - authorized_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AuthorizedStorageAccountResponse' - description: '' - tags: - - authorized-storage-accounts - patch: - description: viewset allowing create, retrieve, update, delete - operationId: authorized_storage_accounts_partial_update - parameters: - - description: A UUID string identifying this Authorized Storage Account. - in: path - name: id - required: true - schema: - format: uuid - type: string - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/PatchedAuthorizedStorageAccountRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedAuthorizedStorageAccountRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedAuthorizedStorageAccountRequest' - required: true - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AuthorizedStorageAccountResponse' - description: '' - tags: - - authorized-storage-accounts - /v1/authorized-storage-accounts/{id}/account_owner: - get: - description: Fetch all related UserReference to this AuthorizedStorageAccount - operationId: authorized_storage_accounts_retrieve_2_related_account_owner - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[user-references] - schema: - items: - enum: - - url - - user_uri - - authorized_storage_accounts - - authorized_citation_accounts - - authorized_computing_accounts - - authorized_link_accounts - - configured_resources - type: string - type: array - - description: A UUID string identifying this User Reference. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - authorized_storage_accounts - - authorized_citation_accounts - - authorized_computing_accounts - - authorized_link_accounts - - configured_resources - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/UserReferenceResponse' - description: '' - tags: &id005 - - authorized-storage-accounts - /v1/authorized-storage-accounts/{id}/authorized_operations: - get: - description: Fetch all related AddonOperation to this AuthorizedStorageAccount - operationId: authorized_storage_accounts_retrieve_2_related_authorized_operations - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[addon-operations] - schema: - items: - enum: - - url - - name - - docstring - - capability - - kwargs_jsonschema - - result_jsonschema - - implemented_by - type: string - type: array - - in: path - name: id - required: true - schema: - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - implemented_by - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AddonOperationResponse' - description: '' - security: - - {} - tags: *id005 - /v1/authorized-storage-accounts/{id}/external_storage_service: - get: - description: Fetch all related ExternalStorageService to this AuthorizedStorageAccount - operationId: authorized_storage_accounts_retrieve_2_related_external_storage_service - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[external-storage-services] - schema: - items: - enum: - - id - - addon_imp - - auth_uri - - credentials_format - - max_concurrent_downloads - - max_upload_mb - - display_name - - url - - wb_key - - external_service_name - - configurable_api_root - - supported_features - - icon_url - - api_base_url_options - type: string - type: array - - description: A UUID string identifying this External Storage Service. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - addon_imp - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ExternalStorageServiceResponse' - description: '' - security: - - {} - tags: *id005 - /v1/configured-citation-addons/: - post: - description: "Create new configured citation addon for given authorized citation\ - \ account, linking it to desired project.\n To configure it properly, you\ - \ must specify `root_folder` on the provider's side.\n Note that everything\ - \ under this folder is going to be accessible to everyone who has access to\ - \ this project" - operationId: configured_citation_addons_create - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ConfiguredCitationAddonRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ConfiguredCitationAddonRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/ConfiguredCitationAddonRequest' - required: true - responses: - '201': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ConfiguredCitationAddonResponse' - description: '' - tags: - - configured-citation-addons - /v1/configured-citation-addons/{id}/: - delete: - description: viewset allowing create, retrieve, update, delete - operationId: configured_citation_addons_destroy - parameters: - - description: A UUID string identifying this Configured Citation Addon. - in: path - name: id - required: true - schema: - format: uuid - type: string - responses: - '204': - description: No response body - tags: - - configured-citation-addons - get: - description: viewset allowing create, retrieve, update, delete - operationId: configured_citation_addons_retrieve - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[configured-citation-addons] - schema: - items: - enum: - - id - - url - - display_name - - root_folder - - base_account - - authorized_resource - - authorized_resource_uri - - connected_capabilities - - connected_operations - - connected_operation_names - - external_service_name - - external_citation_service - - current_user_is_owner - type: string - type: array - - description: A UUID string identifying this Configured Citation Addon. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - base_account - - external_citation_service - - authorized_resource - - connected_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ConfiguredCitationAddonResponse' - description: '' - tags: - - configured-citation-addons - patch: - description: viewset allowing create, retrieve, update, delete - operationId: configured_citation_addons_partial_update - parameters: - - description: A UUID string identifying this Configured Citation Addon. - in: path - name: id - required: true - schema: - format: uuid - type: string - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/PatchedConfiguredCitationAddonRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedConfiguredCitationAddonRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedConfiguredCitationAddonRequest' - required: true - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ConfiguredCitationAddonResponse' - description: '' - tags: - - configured-citation-addons - /v1/configured-citation-addons/{id}/authorized_resource: - get: - description: Fetch all related ResourceReference to this ConfiguredCitationAddon - operationId: configured_citation_addons_retrieve_2_related_authorized_resource - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[resource-references] - schema: - items: - enum: - - url - - resource_uri - - configured_storage_addons - - configured_link_addons - - configured_citation_addons - - configured_computing_addons - type: string - type: array - - description: A UUID string identifying this Resource Reference. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - configured_storage_addons - - configured_citation_addons - - configured_link_addons - - configured_computing_addons - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ResourceReferenceResponse' - description: '' - tags: &id006 - - configured-citation-addons - /v1/configured-citation-addons/{id}/base_account: - get: - description: Fetch all related AuthorizedCitationAccount to this ConfiguredCitationAddon - operationId: configured_citation_addons_retrieve_2_related_base_account - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[authorized-citation-accounts] - schema: - items: - enum: - - id - - url - - display_name - - account_owner - - api_base_url - - auth_url - - authorized_capabilities - - authorized_operations - - authorized_operation_names - - configured_citation_addons - - credentials - - default_root_folder - - external_citation_service - - initiate_oauth - - credentials_available - type: string - type: array - - description: A UUID string identifying this Authorized Citation Account. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - account_owner - - external_citation_service - - configured_citation_addons - - authorized_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AuthorizedCitationAccountResponse' - description: '' - tags: *id006 - /v1/configured-citation-addons/{id}/connected_operations: - get: - description: Fetch all related AddonOperation to this ConfiguredCitationAddon - operationId: configured_citation_addons_retrieve_2_related_connected_operations - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[addon-operations] - schema: - items: - enum: - - url - - name - - docstring - - capability - - kwargs_jsonschema - - result_jsonschema - - implemented_by - type: string - type: array - - in: path - name: id - required: true - schema: - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - implemented_by - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AddonOperationResponse' - description: '' - security: - - {} - tags: *id006 - /v1/configured-citation-addons/{id}/external_citation_service: - get: - description: Fetch all related ExternalCitationService to this ConfiguredCitationAddon - operationId: configured_citation_addons_retrieve_2_related_external_citation_service - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[external-citation-services] - schema: - items: - enum: - - id - - addon_imp - - auth_uri - - credentials_format - - display_name - - url - - configurable_api_root - - wb_key - - external_service_name - - supported_features - - icon_url - - api_base_url_options - type: string - type: array - - description: A UUID string identifying this External Citation Service. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - addon_imp - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ExternalCitationServiceResponse' - description: '' - security: - - {} - tags: *id006 - /v1/configured-computing-addons/: - post: - description: "Create new configured computing addon for given authorized computing\ - \ account, linking it to desired project.\n To configure it properly, you\ - \ must specify `root_folder` on the provider's side.\n Note that everything\ - \ under this folder is going to be accessible to everyone who has access to\ - \ this project" - operationId: configured_computing_addons_create - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ConfiguredComputingAddonRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ConfiguredComputingAddonRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/ConfiguredComputingAddonRequest' - required: true - responses: - '201': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ConfiguredComputingAddonResponse' - description: '' - tags: - - configured-computing-addons - /v1/configured-computing-addons/{id}/: - delete: - description: viewset allowing create, retrieve, update, delete - operationId: configured_computing_addons_destroy - parameters: - - description: A UUID string identifying this Configured Computing Addon. - in: path - name: id - required: true - schema: - format: uuid - type: string - responses: - '204': - description: No response body - tags: - - configured-computing-addons - get: - description: viewset allowing create, retrieve, update, delete - operationId: configured_computing_addons_retrieve - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[configured-computing-addons] - schema: - items: - enum: - - id - - url - - display_name - - base_account - - authorized_resource - - authorized_resource_uri - - connected_capabilities - - connected_operations - - connected_operation_names - - external_service_name - - external_computing_service - - current_user_is_owner - type: string - type: array - - description: A UUID string identifying this Configured Computing Addon. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - base_account - - external_computing_service - - authorized_resource - - connected_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ConfiguredComputingAddonResponse' - description: '' - tags: - - configured-computing-addons - patch: - description: viewset allowing create, retrieve, update, delete - operationId: configured_computing_addons_partial_update - parameters: - - description: A UUID string identifying this Configured Computing Addon. - in: path - name: id - required: true - schema: - format: uuid - type: string - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/PatchedConfiguredComputingAddonRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedConfiguredComputingAddonRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedConfiguredComputingAddonRequest' - required: true - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ConfiguredComputingAddonResponse' - description: '' - tags: - - configured-computing-addons - /v1/configured-computing-addons/{id}/authorized_resource: - get: - description: Fetch all related ResourceReference to this ConfiguredComputingAddon - operationId: configured_computing_addons_retrieve_2_related_authorized_resource - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[resource-references] - schema: - items: - enum: - - url - - resource_uri - - configured_storage_addons - - configured_link_addons - - configured_citation_addons - - configured_computing_addons - type: string - type: array - - description: A UUID string identifying this Resource Reference. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - configured_storage_addons - - configured_citation_addons - - configured_link_addons - - configured_computing_addons - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ResourceReferenceResponse' - description: '' - tags: &id007 - - configured-computing-addons - /v1/configured-computing-addons/{id}/base_account: - get: - description: Fetch all related AuthorizedComputingAccount to this ConfiguredComputingAddon - operationId: configured_computing_addons_retrieve_2_related_base_account - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[authorized-computing-accounts] - schema: - items: - enum: - - id - - url - - display_name - - account_owner - - api_base_url - - auth_url - - authorized_capabilities - - authorized_operations - - authorized_operation_names - - configured_computing_addons - - credentials - - external_computing_service - - initiate_oauth - - credentials_available - type: string - type: array - - description: A UUID string identifying this Authorized Computing Account. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - account_owner - - external_computing_service - - configured_computing_addons - - authorized_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AuthorizedComputingAccountResponse' - description: '' - tags: *id007 - /v1/configured-computing-addons/{id}/connected_operations: - get: - description: Fetch all related AddonOperation to this ConfiguredComputingAddon - operationId: configured_computing_addons_retrieve_2_related_connected_operations - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[addon-operations] - schema: - items: - enum: - - url - - name - - docstring - - capability - - kwargs_jsonschema - - result_jsonschema - - implemented_by - type: string - type: array - - in: path - name: id - required: true - schema: - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - implemented_by - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AddonOperationResponse' - description: '' - security: - - {} - tags: *id007 - /v1/configured-computing-addons/{id}/external_computing_service: - get: - description: Fetch all related ExternalComputingService to this ConfiguredComputingAddon - operationId: configured_computing_addons_retrieve_2_related_external_computing_service - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[external-computing-services] - schema: - items: - enum: - - id - - addon_imp - - auth_uri - - credentials_format - - display_name - - url - - configurable_api_root - - supported_features - - icon_url - - wb_key - - api_base_url_options - type: string - type: array - - description: A UUID string identifying this External Computing Service. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - addon_imp - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ExternalComputingServiceResponse' - description: '' - security: - - {} - tags: *id007 - /v1/configured-link-addons/: - post: - description: "Create new configured link addon for given authorized link account,\ - \ linking it to desired project.\n To configure it properly, you must specify\ - \ `root_folder` on the provider's side.\n Note that everything under this\ - \ folder is going to be accessible to everyone who has access to this project" - operationId: configured_link_addons_create - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ConfiguredLinkAddonRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ConfiguredLinkAddonRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/ConfiguredLinkAddonRequest' - required: true - responses: - '201': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ConfiguredLinkAddonResponse' - description: '' - tags: - - configured-link-addons - /v1/configured-link-addons/{id}/: - delete: - description: viewset allowing create, retrieve, update, delete - operationId: configured_link_addons_destroy - parameters: - - description: A UUID string identifying this Configured Link Addon. - in: path - name: id - required: true - schema: - format: uuid - type: string - responses: - '204': - description: No response body - tags: - - configured-link-addons - get: - description: viewset allowing create, retrieve, update, delete - operationId: configured_link_addons_retrieve - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[configured-link-addons] - schema: - items: - enum: - - id - - display_name - - target_url - - base_account - - authorized_resource - - authorized_resource_uri - - connected_capabilities - - connected_operations - - connected_operation_names - - external_link_service - - current_user_is_owner - - external_service_name - - resource_type - - target_id - type: string - type: array - - description: A UUID string identifying this Configured Link Addon. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - base_account - - external_link_service - - authorized_resource - - connected_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ConfiguredLinkAddonResponse' - description: '' - tags: - - configured-link-addons - patch: - description: viewset allowing create, retrieve, update, delete - operationId: configured_link_addons_partial_update - parameters: - - description: A UUID string identifying this Configured Link Addon. - in: path - name: id - required: true - schema: - format: uuid - type: string - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/PatchedConfiguredLinkAddonRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedConfiguredLinkAddonRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedConfiguredLinkAddonRequest' - required: true - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ConfiguredLinkAddonResponse' - description: '' - tags: - - configured-link-addons - /v1/configured-link-addons/{id}/authorized_resource: - get: - description: Fetch all related ResourceReference to this ConfiguredLinkAddon - operationId: configured_link_addons_retrieve_2_related_authorized_resource - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[resource-references] - schema: - items: - enum: - - url - - resource_uri - - configured_storage_addons - - configured_link_addons - - configured_citation_addons - - configured_computing_addons - type: string - type: array - - description: A UUID string identifying this Resource Reference. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - configured_storage_addons - - configured_citation_addons - - configured_link_addons - - configured_computing_addons - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ResourceReferenceResponse' - description: '' - tags: &id008 - - configured-link-addons - /v1/configured-link-addons/{id}/base_account: - get: - description: Fetch all related AuthorizedLinkAccount to this ConfiguredLinkAddon - operationId: configured_link_addons_retrieve_2_related_base_account - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[authorized-link-accounts] - schema: - items: - enum: - - id - - url - - display_name - - account_owner - - api_base_url - - auth_url - - authorized_capabilities - - authorized_operations - - authorized_operation_names - - configured_link_addons - - credentials - - external_link_service - - initiate_oauth - - credentials_available - type: string - type: array - - description: A UUID string identifying this Authorized Link Account. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - account_owner - - external_link_service - - configured_link_addons - - authorized_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AuthorizedLinkAccountResponse' - description: '' - tags: *id008 - /v1/configured-link-addons/{id}/connected_operations: - get: - description: Fetch all related AddonOperation to this ConfiguredLinkAddon - operationId: configured_link_addons_retrieve_2_related_connected_operations - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[addon-operations] - schema: - items: - enum: - - url - - name - - docstring - - capability - - kwargs_jsonschema - - result_jsonschema - - implemented_by - type: string - type: array - - in: path - name: id - required: true - schema: - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - implemented_by - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AddonOperationResponse' - description: '' - security: - - {} - tags: *id008 - /v1/configured-link-addons/{id}/external_link_service: - get: - description: Fetch all related ExternalLinkService to this ConfiguredLinkAddon - operationId: configured_link_addons_retrieve_2_related_external_link_service - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[external-link-services] - schema: - items: - enum: - - id - - addon_imp - - auth_uri - - credentials_format - - display_name - - url - - wb_key - - external_service_name - - configurable_api_root - - supported_resource_types - - supported_features - - icon_url - - api_base_url_options - type: string - type: array - - description: A UUID string identifying this External Link Service. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - addon_imp - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ExternalLinkServiceResponse' - description: '' - security: - - {} - tags: *id008 - /v1/configured-link-addons/{id}/verified-links/: - get: - description: viewset allowing create, retrieve, update, delete - operationId: configured_link_addons_verified_links_retrieve - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[configured-link-addons] - schema: - items: - enum: - - id - - display_name - - target_url - - base_account - - authorized_resource - - authorized_resource_uri - - connected_capabilities - - connected_operations - - connected_operation_names - - external_link_service - - current_user_is_owner - - external_service_name - - resource_type - - target_id - type: string - type: array - - description: A UUID string identifying this Configured Link Addon. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - base_account - - external_link_service - - authorized_resource - - connected_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ConfiguredLinkAddonResponse' - description: '' - tags: - - configured-link-addons - /v1/configured-storage-addons/: - post: - description: "Create new configured storage addon for given authorized storage\ - \ account, linking it to desired project.\n To configure it properly, you\ - \ must specify `root_folder` on the provider's side.\n Note that everything\ - \ under this folder is going to be accessible to everyone who has access to\ - \ this project" - operationId: configured_storage_addons_create - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ConfiguredStorageAddonRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/ConfiguredStorageAddonRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/ConfiguredStorageAddonRequest' - required: true - responses: - '201': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ConfiguredStorageAddonResponse' - description: '' - tags: - - configured-storage-addons - /v1/configured-storage-addons/{id}/: - delete: - description: viewset allowing create, retrieve, update, delete - operationId: configured_storage_addons_destroy - parameters: - - description: A UUID string identifying this Configured Storage Addon. - in: path - name: id - required: true - schema: - format: uuid - type: string - responses: - '204': - description: No response body - tags: - - configured-storage-addons - get: - description: viewset allowing create, retrieve, update, delete - operationId: configured_storage_addons_retrieve - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[configured-storage-addons] - schema: - items: - enum: - - id - - url - - display_name - - root_folder - - base_account - - authorized_resource - - authorized_resource_uri - - connected_capabilities - - connected_operations - - connected_operation_names - - external_storage_service - - current_user_is_owner - - external_service_name - type: string - type: array - - description: A UUID string identifying this Configured Storage Addon. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - base_account - - external_storage_service - - authorized_resource - - connected_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ConfiguredStorageAddonResponse' - description: '' - tags: - - configured-storage-addons - patch: - description: viewset allowing create, retrieve, update, delete - operationId: configured_storage_addons_partial_update - parameters: - - description: A UUID string identifying this Configured Storage Addon. - in: path - name: id - required: true - schema: - format: uuid - type: string - requestBody: - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/PatchedConfiguredStorageAddonRequest' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/PatchedConfiguredStorageAddonRequest' - multipart/form-data: - schema: - $ref: '#/components/schemas/PatchedConfiguredStorageAddonRequest' - required: true - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ConfiguredStorageAddonResponse' - description: '' - tags: - - configured-storage-addons - /v1/configured-storage-addons/{id}/authorized_resource: - get: - description: Fetch all related ResourceReference to this ConfiguredStorageAddon - operationId: configured_storage_addons_retrieve_2_related_authorized_resource - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[resource-references] - schema: - items: - enum: - - url - - resource_uri - - configured_storage_addons - - configured_link_addons - - configured_citation_addons - - configured_computing_addons - type: string - type: array - - description: A UUID string identifying this Resource Reference. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - configured_storage_addons - - configured_citation_addons - - configured_link_addons - - configured_computing_addons - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ResourceReferenceResponse' - description: '' - tags: &id009 - - configured-storage-addons - /v1/configured-storage-addons/{id}/base_account: - get: - description: Fetch all related AuthorizedStorageAccount to this ConfiguredStorageAddon - operationId: configured_storage_addons_retrieve_2_related_base_account - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[authorized-storage-accounts] - schema: - items: - enum: - - id - - url - - display_name - - account_owner - - api_base_url - - auth_url - - authorized_capabilities - - authorized_operations - - authorized_operation_names - - configured_storage_addons - - credentials - - default_root_folder - - external_storage_service - - initiate_oauth - - credentials_available - type: string - type: array - - description: A UUID string identifying this Authorized Storage Account. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - account_owner - - external_storage_service - - configured_storage_addons - - authorized_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AuthorizedStorageAccountResponse' - description: '' - tags: *id009 - /v1/configured-storage-addons/{id}/connected_operations: - get: - description: Fetch all related AddonOperation to this ConfiguredStorageAddon - operationId: configured_storage_addons_retrieve_2_related_connected_operations - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[addon-operations] - schema: - items: - enum: - - url - - name - - docstring - - capability - - kwargs_jsonschema - - result_jsonschema - - implemented_by - type: string - type: array - - in: path - name: id - required: true - schema: - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - implemented_by - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AddonOperationResponse' - description: '' - security: - - {} - tags: *id009 - /v1/configured-storage-addons/{id}/external_storage_service: - get: - description: Fetch all related ExternalStorageService to this ConfiguredStorageAddon - operationId: configured_storage_addons_retrieve_2_related_external_storage_service - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[external-storage-services] - schema: - items: - enum: - - id - - addon_imp - - auth_uri - - credentials_format - - max_concurrent_downloads - - max_upload_mb - - display_name - - url - - wb_key - - external_service_name - - configurable_api_root - - supported_features - - icon_url - - api_base_url_options - type: string - type: array - - description: A UUID string identifying this External Storage Service. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - addon_imp - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ExternalStorageServiceResponse' - description: '' - security: - - {} - tags: *id009 - /v1/external-citation-services/: - get: - description: Get the list of all available external citation services - operationId: external_citation_services_list - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[external-citation-services] - schema: - items: - enum: - - id - - addon_imp - - auth_uri - - credentials_format - - display_name - - url - - configurable_api_root - - wb_key - - external_service_name - - supported_features - - icon_url - - api_base_url_options - type: string - type: array - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - addon_imp - type: string - type: array - - description: A page number within the paginated result set. - in: query - name: page[number] - required: false - schema: - type: integer - - description: Number of results to return per page. - in: query - name: page[size] - required: false - schema: - type: integer - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/PaginatedExternalCitationServiceList' - description: '' - security: - - {} - tags: - - external-citation-services - /v1/external-citation-services/{id}/: - get: - description: "This mixin provides a helper attributes to select or prefetch\ - \ related models\nbased on the include specified in the URL.\n\n__all__ can\ - \ be used to specify a prefetch which should be done regardless of the include\n\ - \n\n.. code:: python\n\n # When MyViewSet is called with ?include=author\ - \ it will prefetch author and authorbio\n class MyViewSet(viewsets.ModelViewSet):\n\ - \ queryset = Book.objects.all()\n prefetch_for_includes = {\n\ - \ '__all__': [],\n 'category.section': ['category']\n\ - \ }\n select_for_includes = {\n '__all__': [],\n\ - \ 'author': ['author', 'author__authorbio'],\n }" - operationId: external_citation_services_retrieve - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[external-citation-services] - schema: - items: - enum: - - id - - addon_imp - - auth_uri - - credentials_format - - display_name - - url - - configurable_api_root - - wb_key - - external_service_name - - supported_features - - icon_url - - api_base_url_options - type: string - type: array - - description: A UUID string identifying this External Citation Service. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - addon_imp - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ExternalCitationServiceResponse' - description: '' - security: - - {} - tags: - - external-citation-services - /v1/external-citation-services/{id}/addon_imp: - get: - description: Fetch all related AddonImp to this ExternalCitationService - operationId: external_citation_services_retrieve_2_related_addon_imp - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[addon-imps] - schema: - items: - enum: - - url - - name - - docstring - - interface_docstring - - implemented_operations - type: string - type: array - - in: path - name: id - required: true - schema: - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - implemented_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AddonImpResponse' - description: '' - security: - - {} - tags: - - external-citation-services - /v1/external-computing-services/: - get: - description: Get the list of all available external computing services - operationId: external_computing_services_list - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[external-computing-services] - schema: - items: - enum: - - id - - addon_imp - - auth_uri - - credentials_format - - display_name - - url - - configurable_api_root - - supported_features - - icon_url - - wb_key - - api_base_url_options - type: string - type: array - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - addon_imp - type: string - type: array - - description: A page number within the paginated result set. - in: query - name: page[number] - required: false - schema: - type: integer - - description: Number of results to return per page. - in: query - name: page[size] - required: false - schema: - type: integer - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/PaginatedExternalComputingServiceList' - description: '' - security: - - {} - tags: - - external-computing-services - /v1/external-computing-services/{id}/: - get: - description: "This mixin provides a helper attributes to select or prefetch\ - \ related models\nbased on the include specified in the URL.\n\n__all__ can\ - \ be used to specify a prefetch which should be done regardless of the include\n\ - \n\n.. code:: python\n\n # When MyViewSet is called with ?include=author\ - \ it will prefetch author and authorbio\n class MyViewSet(viewsets.ModelViewSet):\n\ - \ queryset = Book.objects.all()\n prefetch_for_includes = {\n\ - \ '__all__': [],\n 'category.section': ['category']\n\ - \ }\n select_for_includes = {\n '__all__': [],\n\ - \ 'author': ['author', 'author__authorbio'],\n }" - operationId: external_computing_services_retrieve - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[external-computing-services] - schema: - items: - enum: - - id - - addon_imp - - auth_uri - - credentials_format - - display_name - - url - - configurable_api_root - - supported_features - - icon_url - - wb_key - - api_base_url_options - type: string - type: array - - description: A UUID string identifying this External Computing Service. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - addon_imp - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ExternalComputingServiceResponse' - description: '' - security: - - {} - tags: - - external-computing-services - /v1/external-computing-services/{id}/addon_imp: - get: - description: Fetch all related AddonImp to this ExternalComputingService - operationId: external_computing_services_retrieve_2_related_addon_imp - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[addon-imps] - schema: - items: - enum: - - url - - name - - docstring - - interface_docstring - - implemented_operations - type: string - type: array - - in: path - name: id - required: true - schema: - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - implemented_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AddonImpResponse' - description: '' - security: - - {} - tags: - - external-computing-services - /v1/external-link-services/: - get: - description: Get the list of all available external link services - operationId: external_link_services_list - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[external-link-services] - schema: - items: - enum: - - id - - addon_imp - - auth_uri - - credentials_format - - display_name - - url - - wb_key - - external_service_name - - configurable_api_root - - supported_resource_types - - supported_features - - icon_url - - api_base_url_options - type: string - type: array - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - addon_imp - type: string - type: array - - description: A page number within the paginated result set. - in: query - name: page[number] - required: false - schema: - type: integer - - description: Number of results to return per page. - in: query - name: page[size] - required: false - schema: - type: integer - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/PaginatedExternalLinkServiceList' - description: '' - security: - - {} - tags: - - external-link-services - /v1/external-link-services/{id}/: - get: - description: "This mixin provides a helper attributes to select or prefetch\ - \ related models\nbased on the include specified in the URL.\n\n__all__ can\ - \ be used to specify a prefetch which should be done regardless of the include\n\ - \n\n.. code:: python\n\n # When MyViewSet is called with ?include=author\ - \ it will prefetch author and authorbio\n class MyViewSet(viewsets.ModelViewSet):\n\ - \ queryset = Book.objects.all()\n prefetch_for_includes = {\n\ - \ '__all__': [],\n 'category.section': ['category']\n\ - \ }\n select_for_includes = {\n '__all__': [],\n\ - \ 'author': ['author', 'author__authorbio'],\n }" - operationId: external_link_services_retrieve - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[external-link-services] - schema: - items: - enum: - - id - - addon_imp - - auth_uri - - credentials_format - - display_name - - url - - wb_key - - external_service_name - - configurable_api_root - - supported_resource_types - - supported_features - - icon_url - - api_base_url_options - type: string - type: array - - description: A UUID string identifying this External Link Service. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - addon_imp - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ExternalLinkServiceResponse' - description: '' - security: - - {} - tags: - - external-link-services - /v1/external-link-services/{id}/addon_imp: - get: - description: Fetch all related AddonImp to this ExternalLinkService - operationId: external_link_services_retrieve_2_related_addon_imp - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[addon-imps] - schema: - items: - enum: - - url - - name - - docstring - - interface_docstring - - implemented_operations - type: string - type: array - - in: path - name: id - required: true - schema: - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - implemented_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AddonImpResponse' - description: '' - security: - - {} - tags: - - external-link-services - /v1/external-storage-services/: - get: - description: Get the list of all available external storage services - operationId: external_storage_services_list - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[external-storage-services] - schema: - items: - enum: - - id - - addon_imp - - auth_uri - - credentials_format - - max_concurrent_downloads - - max_upload_mb - - display_name - - url - - wb_key - - external_service_name - - configurable_api_root - - supported_features - - icon_url - - api_base_url_options - type: string - type: array - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - addon_imp - type: string - type: array - - description: A page number within the paginated result set. - in: query - name: page[number] - required: false - schema: - type: integer - - description: Number of results to return per page. - in: query - name: page[size] - required: false - schema: - type: integer - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/PaginatedExternalStorageServiceList' - description: '' - security: - - {} - tags: - - external-storage-services - /v1/external-storage-services/{id}/: - get: - description: "This mixin provides a helper attributes to select or prefetch\ - \ related models\nbased on the include specified in the URL.\n\n__all__ can\ - \ be used to specify a prefetch which should be done regardless of the include\n\ - \n\n.. code:: python\n\n # When MyViewSet is called with ?include=author\ - \ it will prefetch author and authorbio\n class MyViewSet(viewsets.ModelViewSet):\n\ - \ queryset = Book.objects.all()\n prefetch_for_includes = {\n\ - \ '__all__': [],\n 'category.section': ['category']\n\ - \ }\n select_for_includes = {\n '__all__': [],\n\ - \ 'author': ['author', 'author__authorbio'],\n }" - operationId: external_storage_services_retrieve - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[external-storage-services] - schema: - items: - enum: - - id - - addon_imp - - auth_uri - - credentials_format - - max_concurrent_downloads - - max_upload_mb - - display_name - - url - - wb_key - - external_service_name - - configurable_api_root - - supported_features - - icon_url - - api_base_url_options - type: string - type: array - - description: A UUID string identifying this External Storage Service. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - addon_imp - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ExternalStorageServiceResponse' - description: '' - security: - - {} - tags: - - external-storage-services - /v1/external-storage-services/{id}/addon_imp: - get: - description: Fetch all related AddonImp to this ExternalStorageService - operationId: external_storage_services_retrieve_2_related_addon_imp - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[addon-imps] - schema: - items: - enum: - - url - - name - - docstring - - interface_docstring - - implemented_operations - type: string - type: array - - in: path - name: id - required: true - schema: - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - implemented_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AddonImpResponse' - description: '' - security: - - {} - tags: - - external-storage-services - /v1/resource-references/: - get: - description: Get resource reference by resource_uri. Even through this is a - list method, this endpoint returns only one entity - operationId: resource_references_list - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[resource-references] - schema: - items: - enum: - - url - - resource_uri - - configured_storage_addons - - configured_link_addons - - configured_citation_addons - - configured_computing_addons - type: string - type: array - - description: Filter by resource_uri. This filter must be uniquely identifying. - in: query - name: filter[resource_uri] - required: true - schema: - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - configured_storage_addons - - configured_citation_addons - - configured_link_addons - - configured_computing_addons - type: string - type: array - - description: A page number within the paginated result set. - in: query - name: page[number] - required: false - schema: - type: integer - - description: Number of results to return per page. - in: query - name: page[size] - required: false - schema: - type: integer - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/PaginatedResourceReferenceList' - description: '' - tags: - - resource-references - /v1/resource-references/{id}/: - get: - description: Get resource reference by it's pk - operationId: resource_references_retrieve - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[resource-references] - schema: - items: - enum: - - url - - resource_uri - - configured_storage_addons - - configured_link_addons - - configured_citation_addons - - configured_computing_addons - type: string - type: array - - description: A UUID string identifying this Resource Reference. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - configured_storage_addons - - configured_citation_addons - - configured_link_addons - - configured_computing_addons - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ResourceReferenceResponse' - description: '' - tags: - - resource-references - /v1/resource-references/{id}/configured_citation_addons: - get: - description: Fetch all related ConfiguredCitationAddon to this ResourceReference - operationId: resource_references_retrieve_2_related_configured_citation_addons - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[configured-citation-addons] - schema: - items: - enum: - - id - - url - - display_name - - root_folder - - base_account - - authorized_resource - - authorized_resource_uri - - connected_capabilities - - connected_operations - - connected_operation_names - - external_service_name - - external_citation_service - - current_user_is_owner - type: string - type: array - - description: A UUID string identifying this Configured Citation Addon. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - base_account - - external_citation_service - - authorized_resource - - connected_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ConfiguredCitationAddonResponse' - description: '' - tags: &id010 - - resource-references - /v1/resource-references/{id}/configured_computing_addons: - get: - description: Fetch all related ConfiguredComputingAddon to this ResourceReference - operationId: resource_references_retrieve_2_related_configured_computing_addons - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[configured-computing-addons] - schema: - items: - enum: - - id - - url - - display_name - - base_account - - authorized_resource - - authorized_resource_uri - - connected_capabilities - - connected_operations - - connected_operation_names - - external_service_name - - external_computing_service - - current_user_is_owner - type: string - type: array - - description: A UUID string identifying this Configured Computing Addon. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - base_account - - external_computing_service - - authorized_resource - - connected_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ConfiguredComputingAddonResponse' - description: '' - tags: *id010 - /v1/resource-references/{id}/configured_link_addons: - get: - description: Fetch all related ConfiguredLinkAddon to this ResourceReference - operationId: resource_references_retrieve_2_related_configured_link_addons - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[configured-link-addons] - schema: - items: - enum: - - id - - display_name - - target_url - - base_account - - authorized_resource - - authorized_resource_uri - - connected_capabilities - - connected_operations - - connected_operation_names - - external_link_service - - current_user_is_owner - - external_service_name - - resource_type - - target_id - type: string - type: array - - description: A UUID string identifying this Configured Link Addon. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - base_account - - external_link_service - - authorized_resource - - connected_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ConfiguredLinkAddonResponse' - description: '' - tags: *id010 - /v1/resource-references/{id}/configured_storage_addons: - get: - description: Fetch all related ConfiguredStorageAddon to this ResourceReference - operationId: resource_references_retrieve_2_related_configured_storage_addons - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[configured-storage-addons] - schema: - items: - enum: - - id - - url - - display_name - - root_folder - - base_account - - authorized_resource - - authorized_resource_uri - - connected_capabilities - - connected_operations - - connected_operation_names - - external_storage_service - - current_user_is_owner - - external_service_name - type: string - type: array - - description: A UUID string identifying this Configured Storage Addon. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - base_account - - external_storage_service - - authorized_resource - - connected_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ConfiguredStorageAddonResponse' - description: '' - tags: *id010 - /v1/user-references/: - get: - description: Get user reference by user_uri. Even through this is a list method, - this endpoint returns only one entity - operationId: user_references_list - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[user-references] - schema: - items: - enum: - - url - - user_uri - - authorized_storage_accounts - - authorized_citation_accounts - - authorized_computing_accounts - - authorized_link_accounts - - configured_resources - type: string - type: array - - description: Filter by user_uri. This filter must be uniquely identifying. - in: query - name: filter[user_uri] - required: true - schema: - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - authorized_storage_accounts - - authorized_citation_accounts - - authorized_computing_accounts - - authorized_link_accounts - - configured_resources - type: string - type: array - - description: A page number within the paginated result set. - in: query - name: page[number] - required: false - schema: - type: integer - - description: Number of results to return per page. - in: query - name: page[size] - required: false - schema: - type: integer - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/PaginatedUserReferenceList' - description: '' - tags: - - user-references - /v1/user-references/{id}/: - get: - description: Get user reference by it's pk - operationId: user_references_retrieve - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[user-references] - schema: - items: - enum: - - url - - user_uri - - authorized_storage_accounts - - authorized_citation_accounts - - authorized_computing_accounts - - authorized_link_accounts - - configured_resources - type: string - type: array - - description: A UUID string identifying this User Reference. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - authorized_storage_accounts - - authorized_citation_accounts - - authorized_computing_accounts - - authorized_link_accounts - - configured_resources - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/UserReferenceResponse' - description: '' - tags: - - user-references - /v1/user-references/{id}/authorized_citation_accounts: - get: - description: Fetch all related AuthorizedCitationAccount to this UserReference - operationId: user_references_retrieve_2_related_authorized_citation_accounts - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[authorized-citation-accounts] - schema: - items: - enum: - - id - - url - - display_name - - account_owner - - api_base_url - - auth_url - - authorized_capabilities - - authorized_operations - - authorized_operation_names - - configured_citation_addons - - credentials - - default_root_folder - - external_citation_service - - initiate_oauth - - credentials_available - type: string - type: array - - description: A UUID string identifying this Authorized Citation Account. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - account_owner - - external_citation_service - - configured_citation_addons - - authorized_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AuthorizedCitationAccountResponse' - description: '' - tags: &id011 - - user-references - /v1/user-references/{id}/authorized_computing_accounts: - get: - description: Fetch all related AuthorizedComputingAccount to this UserReference - operationId: user_references_retrieve_2_related_authorized_computing_accounts - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[authorized-computing-accounts] - schema: - items: - enum: - - id - - url - - display_name - - account_owner - - api_base_url - - auth_url - - authorized_capabilities - - authorized_operations - - authorized_operation_names - - configured_computing_addons - - credentials - - external_computing_service - - initiate_oauth - - credentials_available - type: string - type: array - - description: A UUID string identifying this Authorized Computing Account. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - account_owner - - external_computing_service - - configured_computing_addons - - authorized_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AuthorizedComputingAccountResponse' - description: '' - tags: *id011 - /v1/user-references/{id}/authorized_link_accounts: - get: - description: Fetch all related AuthorizedCitationAccount to this UserReference - operationId: user_references_retrieve_2_related_authorized_link_accounts - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[authorized-citation-accounts] - schema: - items: - enum: - - id - - url - - display_name - - account_owner - - api_base_url - - auth_url - - authorized_capabilities - - authorized_operations - - authorized_operation_names - - configured_citation_addons - - credentials - - default_root_folder - - external_citation_service - - initiate_oauth - - credentials_available - type: string - type: array - - description: A UUID string identifying this Authorized Citation Account. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - account_owner - - external_citation_service - - configured_citation_addons - - authorized_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AuthorizedCitationAccountResponse' - description: '' - tags: *id011 - /v1/user-references/{id}/authorized_storage_accounts: - get: - description: Fetch all related AuthorizedStorageAccount to this UserReference - operationId: user_references_retrieve_2_related_authorized_storage_accounts - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[authorized-storage-accounts] - schema: - items: - enum: - - id - - url - - display_name - - account_owner - - api_base_url - - auth_url - - authorized_capabilities - - authorized_operations - - authorized_operation_names - - configured_storage_addons - - credentials - - default_root_folder - - external_storage_service - - initiate_oauth - - credentials_available - type: string - type: array - - description: A UUID string identifying this Authorized Storage Account. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - account_owner - - external_storage_service - - configured_storage_addons - - authorized_operations - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/AuthorizedStorageAccountResponse' - description: '' - tags: *id011 - /v1/user-references/{id}/configured_resources: - get: - description: Fetch all related ResourceReference to this UserReference - operationId: user_references_retrieve_2_related_configured_resources - parameters: - - description: endpoint return only specific fields in the response on a per-type - basis by including a fields[TYPE] query parameter. - explode: false - in: query - name: fields[resource-references] - schema: - items: - enum: - - url - - resource_uri - - configured_storage_addons - - configured_link_addons - - configured_citation_addons - - configured_computing_addons - type: string - type: array - - description: A UUID string identifying this Resource Reference. - in: path - name: id - required: true - schema: - format: uuid - type: string - - description: include query parameter to allow the client to customize which - related resources should be returned. - explode: false - in: query - name: include - schema: - items: - enum: - - configured_storage_addons - - configured_citation_addons - - configured_link_addons - - configured_computing_addons - type: string - type: array - responses: - '200': - content: - application/vnd.api+json: - schema: - $ref: '#/components/schemas/ResourceReferenceResponse' - description: '' - tags: *id011 From 3311a29eab13e5c0a56ef8405dd72dea81281b8a Mon Sep 17 00:00:00 2001 From: Oleh Paduchak Date: Wed, 2 Jul 2025 16:51:57 +0300 Subject: [PATCH 12/13] pr fixes --- .../addon_operation_invocation/views.py | 4 -- .../authorized_account/citation/views.py | 4 +- .../authorized_account/computing/views.py | 4 +- .../authorized_account/link/views.py | 4 +- .../authorized_account/storage/views.py | 4 +- addon_service/common/schemas.py | 47 ------------------- addon_service/oauth1/views.py | 1 + addon_service/oauth2/views.py | 1 + 8 files changed, 14 insertions(+), 55 deletions(-) delete mode 100644 addon_service/common/schemas.py diff --git a/addon_service/addon_operation_invocation/views.py b/addon_service/addon_operation_invocation/views.py index 2faaae8d..300a4bb5 100644 --- a/addon_service/addon_operation_invocation/views.py +++ b/addon_service/addon_operation_invocation/views.py @@ -6,7 +6,6 @@ from addon_service.common.permissions import ( IsAuthenticated, - SessionUserIsOwner, SessionUserMayAccessInvocation, SessionUserMayPerformInvocation, ) @@ -52,9 +51,6 @@ def get_permissions(self): match self.action: case "retrieve" | "retrieve_related": return [IsAuthenticated(), SessionUserMayAccessInvocation()] - case "partial_update" | "update" | "destroy": - # prohibit this? Maybe allow only to delete invocation from action log, but definitely not update - return [IsAuthenticated(), SessionUserIsOwner()] case "create": return [SessionUserMayPerformInvocation()] case None: diff --git a/addon_service/authorized_account/citation/views.py b/addon_service/authorized_account/citation/views.py index 452b9b1b..c9671861 100644 --- a/addon_service/authorized_account/citation/views.py +++ b/addon_service/authorized_account/citation/views.py @@ -11,7 +11,9 @@ @extend_schema_view( create=extend_schema( - description='Create new authorized citation account for given external citation service.\n For OAuth services it\'s required to create account with `"initiate_oauth"=true` in order to proceed with OAuth flow' + description="Create new authorized citation account for given external citation service. " + 'For OAuth services it\'s required to create account with `"initiate_oauth"=true` ' + "in order to proceed with OAuth flow" ), ) class AuthorizedCitationAccountViewSet(AuthorizedAccountViewSet): diff --git a/addon_service/authorized_account/computing/views.py b/addon_service/authorized_account/computing/views.py index d986cd2f..fbadb0c9 100644 --- a/addon_service/authorized_account/computing/views.py +++ b/addon_service/authorized_account/computing/views.py @@ -11,7 +11,9 @@ @extend_schema_view( create=extend_schema( - description='Create new authorized computing account for given external computing service.\n For OAuth services it\'s required to create account with `"initiate_oauth"=true` in order to proceed with OAuth flow' + description="Create new authorized computing account for given external computing service.\n " + 'For OAuth services it\'s required to create account with `"initiate_oauth"=true` ' + "in order to proceed with OAuth flow" ), ) class AuthorizedComputingAccountViewSet(AuthorizedAccountViewSet): diff --git a/addon_service/authorized_account/link/views.py b/addon_service/authorized_account/link/views.py index 3f0440cb..c943ab06 100644 --- a/addon_service/authorized_account/link/views.py +++ b/addon_service/authorized_account/link/views.py @@ -11,7 +11,9 @@ @extend_schema_view( create=extend_schema( - description='Create new authorized link account for given external link service.\n For OAuth services it\'s required to create account with `"initiate_oauth"=true` in order to proceed with OAuth flow' + description="Create new authorized link account for given external link service.\n " + 'For OAuth services it\'s required to create account with `"initiate_oauth"=true` ' + "in order to proceed with OAuth flow" ), ) class AuthorizedLinkAccountViewSet(AuthorizedAccountViewSet): diff --git a/addon_service/authorized_account/storage/views.py b/addon_service/authorized_account/storage/views.py index fb66fe73..9c058047 100644 --- a/addon_service/authorized_account/storage/views.py +++ b/addon_service/authorized_account/storage/views.py @@ -15,7 +15,9 @@ @extend_schema_view( create=extend_schema( - description='Create new authorized storage account for given external storage service.\n For OAuth services it\'s required to create account with `"initiate_oauth"=true` in order to proceed with OAuth flow' + description="Create new authorized storage account for given external storage service." + '\n For OAuth services it\'s required to create account with `"initiate_oauth"=true` ' + "in order to proceed with OAuth flow" ), ) class AuthorizedStorageAccountViewSet(AuthorizedAccountViewSet): diff --git a/addon_service/common/schemas.py b/addon_service/common/schemas.py deleted file mode 100644 index 4d7ab6d7..00000000 --- a/addon_service/common/schemas.py +++ /dev/null @@ -1,47 +0,0 @@ -from rest_framework.decorators import action -from rest_framework_json_api.relations import ResourceRelatedField - - -def auto_related_actions(cls): - """ - A class decorator that automatically adds a DRF @action for each - relationship on a ViewSet's serializer_class. - """ - # Find the serializer - serializer_class = getattr(cls, "serializer_class", None) - if not serializer_class: - return cls - - # Find all relationship fields - relationship_fields = { - field_name: field - for field_name, field in serializer_class().get_fields().items() - if isinstance(field, ResourceRelatedField) - } - - for field_name, field in relationship_fields.items(): - # This is the handler that will be used for our action. - # It's a bridge to the existing `retrieve_related` method. - def related_field_handler(self, request, *args, **kwargs): - # We pass the field_name explicitly to retrieve_related - kwargs["related_field"] = field_name - return self.retrieve_related(request, *args, **kwargs) - - # Set docstrings for better schema descriptions - related_field_handler.__doc__ = ( - f"Retrieve the related {field_name} for this resource." - ) - related_field_handler.__name__ = f"{field_name}_related_action" - - # Decorate our handler with @action. This is what the router looks for. - # The `url_path` will be the same as the field name. - decorated_handler = action( - detail=True, - methods=["get"], - url_path=field_name, - )(related_field_handler) - - # Attach the brand new, decorated method to the ViewSet class - setattr(cls, f"{field_name}_related_action", decorated_handler) - - return cls diff --git a/addon_service/oauth1/views.py b/addon_service/oauth1/views.py index 423338d4..227b25d9 100644 --- a/addon_service/oauth1/views.py +++ b/addon_service/oauth1/views.py @@ -11,6 +11,7 @@ from addon_service.osf_models.fields import decrypt_string +# Exclude oAuth views from openapi schema as they are from internal use only @extend_schema(exclude=True) def oauth1_callback_view(request): oauth_token = request.GET["oauth_token"] diff --git a/addon_service/oauth2/views.py b/addon_service/oauth2/views.py index 8dc6623d..4c6d30ff 100644 --- a/addon_service/oauth2/views.py +++ b/addon_service/oauth2/views.py @@ -13,6 +13,7 @@ from addon_service.oauth2.utils import get_initial_access_token +# Exclude oAuth views from openapi schema as they are from internal use only @extend_schema(exclude=True) @transaction.non_atomic_requests # async views and ATOMIC_REQUESTS do not mix async def oauth2_callback_view(request): From a6ae60ca9f33d0eaea97088d031aa2beaa40379e Mon Sep 17 00:00:00 2001 From: Oleh Paduchak Date: Mon, 7 Jul 2025 15:48:57 +0300 Subject: [PATCH 13/13] fixed filling link dataverse --- addon_service/management/commands/providers/providers.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addon_service/management/commands/providers/providers.csv b/addon_service/management/commands/providers/providers.csv index 62594c38..d986e48f 100644 --- a/addon_service/management/commands/providers/providers.csv +++ b/addon_service/management/commands/providers/providers.csv @@ -13,4 +13,4 @@ b670cf7a-752f-49ed-8367-8238cf8a24d1,Figshare,1,1,1007,{all},https://api.figshar 2acd3e09-5e27-4e5b-a3d1-579f16663cfc,Bitbucket,1,1,1012,{account repository team},https://api.bitbucket.org/2.0/,bitbucket,,1b2d71cc-425e-4aa6-886c-e2ff247c4f2c,bitbucket.svg,,10,10,511,,,storage 102c6356-e31a-4316-a9fe-8b2bcb20fdd6,Google Drive,1,1,1005,{https://www.googleapis.com/auth/drive},https://www.googleapis.com/,googledrive,,5cf93c06-c27f-4446-b8ac-ffac209ba465,google_drive.svg,,10,10,511,,,storage 5bc440c8-a03a-4aa6-bd9e-856aee9883e9,Owncloud,3,2,1009,{},,owncloud,,,owncloud.svg,,10,10,511,,,storage -edf57d0c-ae0a-4c85-b759-017fc8b009f0,Link dataverse,6,2,1030,{},https://demo.dataverse.org,,,,dataverse.svg,{},link,,,4294967295,,link +edf57d0c-ae0a-4c85-b759-017fc8b009f0,Link dataverse,6,2,1030,{},https://demo.dataverse.org,,,,dataverse.svg,{},,,104,4294967295,,link