From cf7aa62e7d0828862b506573549fcb584e7f8207 Mon Sep 17 00:00:00 2001 From: David Davis Date: Fri, 15 Nov 2019 11:48:53 -0500 Subject: [PATCH 01/16] Remove certguard dependency due to circular dependency We can't release pulp-certguard without pulp_file being released, and we can't release pulp_file without pulp-cerguard being released. [noissue] (cherry picked from commit ba9653cbf1eab20502ec0f2082c46d01be9cbcac) --- .travis/install.sh | 8 -------- template_config.yml | 5 ++--- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/.travis/install.sh b/.travis/install.sh index feb9a124..8a93f128 100755 --- a/.travis/install.sh +++ b/.travis/install.sh @@ -52,12 +52,6 @@ PLUGIN=pulp_file # For pulpcore, and any other repo that might check out some plugin PR - -if [ -e $TRAVIS_BUILD_DIR/../pulp-certguard ]; then - PULP_CERTGUARD=./pulp-certguard -else - PULP_CERTGUARD=git+https://github.com/pulp/pulp-certguard.git -fi if [ -n "$TRAVIS_TAG" ]; then # Install the plugin only and use published PyPI packages for the rest cat > vars/vars.yaml << VARSYAML @@ -68,7 +62,6 @@ images: tag: $TAG plugins: - ./$PLUGIN - - pulp-certguard VARSYAML else cat > vars/vars.yaml << VARSYAML @@ -80,7 +73,6 @@ images: pulpcore: ./pulpcore plugins: - ./$PLUGIN - - $PULP_CERTGUARD VARSYAML fi ansible-playbook build.yaml diff --git a/template_config.yml b/template_config.yml index 54f43ffc..5941d8d4 100644 --- a/template_config.yml +++ b/template_config.yml @@ -1,8 +1,7 @@ # This config represents the latest values used when running the plugin-template. Any settings that # were not present before running plugin-template have been added with their default values. -additional_plugins: -- pulp-certguard +additional_plugins: [] all: false black: true bootstrap: false @@ -25,7 +24,7 @@ plugin_dash_short: file plugin_name: pulp_file plugin_snake: pulp_file plugin_snake_short: file -pulp_settings: +pulp_settings: null pydocstyle: true pypi_username: pulp test: false From 853d0e0447e297a0c684ef80231ce9c7910ee8e5 Mon Sep 17 00:00:00 2001 From: Brian Bouterse Date: Thu, 14 Nov 2019 13:54:23 -0500 Subject: [PATCH 02/16] Generate 0.1.0rc1 Changelog [noissue] --- CHANGES.rst | 34 ++++++++++++++++++++++++++++++++++ CHANGES/3308.misc | 1 - CHANGES/3541.feature | 2 -- CHANGES/4544.feature | 1 - CHANGES/5086.feature | 1 - CHANGES/5458.misc | 1 - CHANGES/5580.misc | 2 -- CHANGES/5625.removal | 3 --- CHANGES/5629.misc | 1 - 9 files changed, 34 insertions(+), 12 deletions(-) delete mode 100644 CHANGES/3308.misc delete mode 100644 CHANGES/3541.feature delete mode 100644 CHANGES/4544.feature delete mode 100644 CHANGES/5086.feature delete mode 100644 CHANGES/5458.misc delete mode 100644 CHANGES/5580.misc delete mode 100644 CHANGES/5625.removal delete mode 100644 CHANGES/5629.misc diff --git a/CHANGES.rst b/CHANGES.rst index 77d21dbd..eb6b907b 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -13,6 +13,40 @@ Changelog .. towncrier release notes start +0.1.0rc1 (2019-11-14) +===================== + + +Features +-------- + +- Sync, Upload, and Modify now have added content with the same `relative_path` as existing content + will remove the existing content. + `#3541 `_ +- Change `relative_path` from `CharField` to `TextField` + `#4544 `_ +- Added support for exporting file publications to the filesystem. + `#5086 `_ + + +Deprecations and Removals +------------------------- + +- Sync is no longer available at the {remote_href}/sync/ repository={repo_href} endpoint. Instead, use POST {repo_href}/sync/ remote={remote_href}. + + Creating / listing / editing / deleting file repositories is now performed on /pulp/api/v3/file/file/ instead of /pulp/api/v3/repositories/. Only file content can be present in a file repository, and only a file repository can hold file content. + `#5625 `_ + + +Misc +---- + +- `#3308 `_, `#5458 `_, `#5580 `_, `#5629 `_ + + +---- + + 0.1.0b4 (2019-10-15) ==================== diff --git a/CHANGES/3308.misc b/CHANGES/3308.misc deleted file mode 100644 index afa99e9e..00000000 --- a/CHANGES/3308.misc +++ /dev/null @@ -1 +0,0 @@ -Updated tests to support repository version not incrementing when content hasn't changed. diff --git a/CHANGES/3541.feature b/CHANGES/3541.feature deleted file mode 100644 index e4c1accf..00000000 --- a/CHANGES/3541.feature +++ /dev/null @@ -1,2 +0,0 @@ -Sync, Upload, and Modify now have added content with the same `relative_path` as existing content -will remove the existing content. diff --git a/CHANGES/4544.feature b/CHANGES/4544.feature deleted file mode 100644 index 30052138..00000000 --- a/CHANGES/4544.feature +++ /dev/null @@ -1 +0,0 @@ -Change `relative_path` from `CharField` to `TextField` diff --git a/CHANGES/5086.feature b/CHANGES/5086.feature deleted file mode 100644 index 7968ac30..00000000 --- a/CHANGES/5086.feature +++ /dev/null @@ -1 +0,0 @@ -Added support for exporting file publications to the filesystem. diff --git a/CHANGES/5458.misc b/CHANGES/5458.misc deleted file mode 100644 index a230194e..00000000 --- a/CHANGES/5458.misc +++ /dev/null @@ -1 +0,0 @@ -Port performance tests to pulp_file diff --git a/CHANGES/5580.misc b/CHANGES/5580.misc deleted file mode 100644 index c53f440c..00000000 --- a/CHANGES/5580.misc +++ /dev/null @@ -1,2 +0,0 @@ -Depend on pulpcore, directly, instead of pulpcore-plugin. - diff --git a/CHANGES/5625.removal b/CHANGES/5625.removal deleted file mode 100644 index 5f4a2af7..00000000 --- a/CHANGES/5625.removal +++ /dev/null @@ -1,3 +0,0 @@ -Sync is no longer available at the {remote_href}/sync/ repository={repo_href} endpoint. Instead, use POST {repo_href}/sync/ remote={remote_href}. - -Creating / listing / editing / deleting file repositories is now performed on /pulp/api/v3/file/file/ instead of /pulp/api/v3/repositories/. Only file content can be present in a file repository, and only a file repository can hold file content. diff --git a/CHANGES/5629.misc b/CHANGES/5629.misc deleted file mode 100644 index ba84d2ca..00000000 --- a/CHANGES/5629.misc +++ /dev/null @@ -1 +0,0 @@ -Set `content_origin` in Travis settings and update tests to match. From 111b5b0739071216d63db74b7924ac9312f54728 Mon Sep 17 00:00:00 2001 From: Brian Bouterse Date: Thu, 14 Nov 2019 13:57:54 -0500 Subject: [PATCH 03/16] Version bump to 0.1.0rc1 [noissue] --- docs/_static/api.json | 2 +- pulp_file/__init__.py | 2 +- setup.py | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/_static/api.json b/docs/_static/api.json index 7711768e..41e6365e 100644 --- a/docs/_static/api.json +++ b/docs/_static/api.json @@ -1 +1 @@ -{"swagger": "2.0", "info": {"title": "Pulp 3 API", "logo": {"url": "https://pulp.plan.io/attachments/download/517478/pulp_logo_word_rectangle.svg"}, "version": "v3"}, "host": "localhost:24817", "schemes": ["http"], "basePath": "/", "consumes": ["application/json"], "produces": ["application/json"], "securityDefinitions": {"Basic": {"type": "basic"}}, "security": [{"Basic": []}], "paths": {"/pulp/api/v3/content/file/files/": {"get": {"operationId": "content_file_files_list", "summary": "List file contents", "description": "\nFileContent represents a single file and its metadata, which can be added and removed from\nrepositories.", "parameters": [{"name": "relative_path", "in": "query", "description": "Filter results where relative_path matches value", "required": false, "type": "string"}, {"name": "digest", "in": "query", "description": "Filter results where digest matches value", "required": false, "type": "string"}, {"name": "repository_version", "in": "query", "description": "Repository Version referenced by HREF", "required": false, "type": "string"}, {"name": "repository_version_added", "in": "query", "description": "Repository Version referenced by HREF", "required": false, "type": "string"}, {"name": "repository_version_removed", "in": "query", "description": "Repository Version referenced by HREF", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/file.FileContent"}}}}}}, "tags": ["content: files"]}, "post": {"operationId": "content_file_files_create", "summary": "Create a file content", "description": "Trigger an asynchronous task to create content,optionally create new repository version.", "parameters": [{"name": "artifact", "in": "formData", "description": "Artifact file representing the physical content", "required": false, "type": "string", "format": "uri"}, {"name": "relative_path", "in": "formData", "description": "Path where the artifact is located relative to distributions base_path", "required": true, "type": "string", "minLength": 1}, {"name": "file", "in": "formData", "description": "An uploaded file that should be turned into the artifact of the content unit.", "required": false, "type": "file"}, {"name": "repository", "in": "formData", "description": "A URI of a repository the new content unit should be associated with.", "required": false, "type": "string", "format": "uri"}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "consumes": ["multipart/form-data", "application/x-www-form-urlencoded"], "tags": ["content: files"]}, "parameters": []}, "{file_content_href}": {"get": {"operationId": "content_file_files_read", "summary": "Inspect a file content", "description": "\nFileContent represents a single file and its metadata, which can be added and removed from\nrepositories.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileContent"}}}, "tags": ["content: files"]}, "parameters": [{"name": "file_content_href", "in": "path", "description": "URI of File Content. e.g.: /pulp/api/v3/content/file/files/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/distributions/file/file/": {"get": {"operationId": "distributions_file_file_list", "summary": "List file distributions", "description": "\nFileDistributions host File\nPublications which makes the metadata and the referenced File Content available to HTTP\nclients. Additionally, a FileDistribution with an associated FilePublication can be the target\nurl of a File Remote , allowing\nanother instance of Pulp to sync the content.", "parameters": [{"name": "name", "in": "query", "description": "", "required": false, "type": "string"}, {"name": "name__in", "in": "query", "description": "Filter results where name is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "base_path", "in": "query", "description": "", "required": false, "type": "string"}, {"name": "base_path__contains", "in": "query", "description": "Filter results where base_path contains value", "required": false, "type": "string"}, {"name": "base_path__icontains", "in": "query", "description": "Filter results where base_path contains value", "required": false, "type": "string"}, {"name": "base_path__in", "in": "query", "description": "Filter results where base_path is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/file.FileDistribution"}}}}}}, "tags": ["distributions: file"]}, "post": {"operationId": "distributions_file_file_create", "summary": "Create a file distribution", "description": "Trigger an asynchronous create task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileDistribution"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["distributions: file"]}, "parameters": []}, "{file_distribution_href}": {"get": {"operationId": "distributions_file_file_read", "summary": "Inspect a file distribution", "description": "\nFileDistributions host File\nPublications which makes the metadata and the referenced File Content available to HTTP\nclients. Additionally, a FileDistribution with an associated FilePublication can be the target\nurl of a File Remote , allowing\nanother instance of Pulp to sync the content.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileDistribution"}}}, "tags": ["distributions: file"]}, "put": {"operationId": "distributions_file_file_update", "summary": "Update a file distribution", "description": "Trigger an asynchronous update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileDistribution"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["distributions: file"]}, "patch": {"operationId": "distributions_file_file_partial_update", "summary": "Partially update a file distribution", "description": "Trigger an asynchronous partial update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileDistribution"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["distributions: file"]}, "delete": {"operationId": "distributions_file_file_delete", "summary": "Delete a file distribution", "description": "Trigger an asynchronous delete task", "parameters": [], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["distributions: file"]}, "parameters": [{"name": "file_distribution_href", "in": "path", "description": "URI of File Distribution. e.g.: /pulp/api/v3/distributions/file/file/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/file_exporters/file/file/": {"get": {"operationId": "file_exporters_file_file_list", "summary": "List file file system exporters", "description": "FileSystemExporters export content from a publication to a path on the file system.", "parameters": [{"name": "name", "in": "query", "description": "", "required": false, "type": "string"}, {"name": "name__in", "in": "query", "description": "Filter results where name is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/file.FileFileSystemExporter"}}}}}}, "tags": ["file_exporters: file"]}, "post": {"operationId": "file_exporters_file_file_create", "summary": "Create a file file system exporter", "description": "FileSystemExporters export content from a publication to a path on the file system.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}], "responses": {"201": {"description": "", "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}}, "tags": ["file_exporters: file"]}, "parameters": []}, "{file_file_system_exporter_href}": {"get": {"operationId": "file_exporters_file_file_read", "summary": "Inspect a file file system exporter", "description": "FileSystemExporters export content from a publication to a path on the file system.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}}, "tags": ["file_exporters: file"]}, "put": {"operationId": "file_exporters_file_file_update", "summary": "Update a file file system exporter", "description": "FileSystemExporters export content from a publication to a path on the file system.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}}, "tags": ["file_exporters: file"]}, "patch": {"operationId": "file_exporters_file_file_partial_update", "summary": "Partially update a file file system exporter", "description": "FileSystemExporters export content from a publication to a path on the file system.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}}, "tags": ["file_exporters: file"]}, "delete": {"operationId": "file_exporters_file_file_delete", "summary": "Delete a file file system exporter", "description": "FileSystemExporters export content from a publication to a path on the file system.", "parameters": [], "responses": {"204": {"description": ""}}, "tags": ["file_exporters: file"]}, "parameters": [{"name": "file_file_system_exporter_href", "in": "path", "description": "URI of File File System Exporter. e.g.: /pulp/api/v3/file_exporters/file/file/1/", "required": true, "type": "string"}]}, "{file_file_system_exporter_href}export/": {"post": {"operationId": "file_exporters_file_file_export", "description": "Trigger an asynchronous task to export a file publication.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/PublicationExport"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["file_exporters: file"]}, "parameters": [{"name": "file_file_system_exporter_href", "in": "path", "description": "URI of File File System Exporter. e.g.: /pulp/api/v3/file_exporters/file/file/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/publications/file/file/": {"get": {"operationId": "publications_file_file_list", "summary": "List file publications", "description": "\nA FilePublication contains metadata about all the File Content in a particular Repository\nVersion. Once a FilePublication has been created, it can be hosted using the File Distribution API.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/file.FilePublication"}}}}}}, "tags": ["publications: file"]}, "post": {"operationId": "publications_file_file_create", "summary": "Create a file publication", "description": "Trigger an asynchronous task to publish file content.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FilePublication"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["publications: file"]}, "parameters": []}, "{file_publication_href}": {"get": {"operationId": "publications_file_file_read", "summary": "Inspect a file publication", "description": "\nA FilePublication contains metadata about all the File Content in a particular Repository\nVersion. Once a FilePublication has been created, it can be hosted using the File Distribution API.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FilePublication"}}}, "tags": ["publications: file"]}, "delete": {"operationId": "publications_file_file_delete", "summary": "Delete a file publication", "description": "\nA FilePublication contains metadata about all the File Content in a particular Repository\nVersion. Once a FilePublication has been created, it can be hosted using the File Distribution API.", "parameters": [], "responses": {"204": {"description": ""}}, "tags": ["publications: file"]}, "parameters": [{"name": "file_publication_href", "in": "path", "description": "URI of File Publication. e.g.: /pulp/api/v3/publications/file/file/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/remotes/file/file/": {"get": {"operationId": "remotes_file_file_list", "summary": "List file remotes", "description": "\nFileRemote represents an external source of File\nContent. The target url of a FileRemote must contain a file manifest, which contains the\nmetadata for all files at the source.", "parameters": [{"name": "name", "in": "query", "description": "", "required": false, "type": "string"}, {"name": "name__in", "in": "query", "description": "Filter results where name is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "pulp_last_updated__lt", "in": "query", "description": "Filter results where pulp_last_updated is less than value", "required": false, "type": "string"}, {"name": "pulp_last_updated__lte", "in": "query", "description": "Filter results where pulp_last_updated is less than or equal to value", "required": false, "type": "string"}, {"name": "pulp_last_updated__gt", "in": "query", "description": "Filter results where pulp_last_updated is greater than value", "required": false, "type": "string"}, {"name": "pulp_last_updated__gte", "in": "query", "description": "Filter results where pulp_last_updated is greater than or equal to value", "required": false, "type": "string"}, {"name": "pulp_last_updated__range", "in": "query", "description": "Filter results where pulp_last_updated is between two comma separated values", "required": false, "type": "string"}, {"name": "pulp_last_updated", "in": "query", "description": "ISO 8601 formatted dates are supported", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/file.FileRemote"}}}}}}, "tags": ["remotes: file"]}, "post": {"operationId": "remotes_file_file_create", "summary": "Create a file remote", "description": "\nFileRemote represents an external source of File\nContent. The target url of a FileRemote must contain a file manifest, which contains the\nmetadata for all files at the source.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileRemote"}}], "responses": {"201": {"description": "", "schema": {"$ref": "#/definitions/file.FileRemote"}}}, "tags": ["remotes: file"]}, "parameters": []}, "{file_remote_href}": {"get": {"operationId": "remotes_file_file_read", "summary": "Inspect a file remote", "description": "\nFileRemote represents an external source of File\nContent. The target url of a FileRemote must contain a file manifest, which contains the\nmetadata for all files at the source.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileRemote"}}}, "tags": ["remotes: file"]}, "put": {"operationId": "remotes_file_file_update", "summary": "Update a file remote", "description": "Trigger an asynchronous update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileRemote"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["remotes: file"]}, "patch": {"operationId": "remotes_file_file_partial_update", "summary": "Partially update a file remote", "description": "Trigger an asynchronous partial update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileRemote"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["remotes: file"]}, "delete": {"operationId": "remotes_file_file_delete", "summary": "Delete a file remote", "description": "Trigger an asynchronous delete task", "parameters": [], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["remotes: file"]}, "parameters": [{"name": "file_remote_href", "in": "path", "description": "URI of File Remote. e.g.: /pulp/api/v3/remotes/file/file/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/repositories/file/file/": {"get": {"operationId": "repositories_file_file_list", "summary": "List file repositorys", "description": "\nFileRepository represents a single file repository, to which content can be synced, added,\nor removed.", "parameters": [{"name": "name", "in": "query", "description": "", "required": false, "type": "string"}, {"name": "name__in", "in": "query", "description": "Filter results where name is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/file.FileRepository"}}}}}}, "tags": ["repositories: file"]}, "post": {"operationId": "repositories_file_file_create", "summary": "Create a file repository", "description": "\nFileRepository represents a single file repository, to which content can be synced, added,\nor removed.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileRepository"}}], "responses": {"201": {"description": "", "schema": {"$ref": "#/definitions/file.FileRepository"}}}, "tags": ["repositories: file"]}, "parameters": []}, "{file_repository_href}": {"get": {"operationId": "repositories_file_file_read", "summary": "Inspect a file repository", "description": "\nFileRepository represents a single file repository, to which content can be synced, added,\nor removed.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileRepository"}}}, "tags": ["repositories: file"]}, "put": {"operationId": "repositories_file_file_update", "summary": "Update a file repository", "description": "Trigger an asynchronous task to update a repository.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileRepository"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: file"]}, "patch": {"operationId": "repositories_file_file_partial_update", "summary": "Partially update a file repository", "description": "\nFileRepository represents a single file repository, to which content can be synced, added,\nor removed.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileRepository"}}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileRepository"}}}, "tags": ["repositories: file"]}, "delete": {"operationId": "repositories_file_file_delete", "summary": "Delete a file repository", "description": "Trigger an asynchronous task to delete a repository.", "parameters": [], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: file"]}, "parameters": [{"name": "file_repository_href", "in": "path", "description": "URI of File Repository. e.g.: /pulp/api/v3/repositories/file/file/1/", "required": true, "type": "string"}]}, "{file_repository_href}modify/": {"post": {"operationId": "repositories_file_file_modify", "description": "Trigger an asynchronous task to create a new repository version.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/RepositoryAddRemoveContent"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: file"]}, "parameters": [{"name": "file_repository_href", "in": "path", "description": "URI of File Repository. e.g.: /pulp/api/v3/repositories/file/file/1/", "required": true, "type": "string"}]}, "{file_repository_href}sync/": {"post": {"operationId": "repositories_file_file_sync", "description": "Trigger an asynchronous task to sync file content.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/RepositorySyncURL"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: file"]}, "parameters": [{"name": "file_repository_href", "in": "path", "description": "URI of File Repository. e.g.: /pulp/api/v3/repositories/file/file/1/", "required": true, "type": "string"}]}, "{file_repository_href}versions/": {"get": {"operationId": "repositories_file_file_versions_list", "summary": "List repository versions", "description": "\nFileRepositoryVersion represents a single file repository version.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "required": false, "type": "string"}, {"name": "number", "in": "query", "description": "", "required": false, "type": "number"}, {"name": "number__lt", "in": "query", "description": "Filter results where number is less than value", "required": false, "type": "number"}, {"name": "number__lte", "in": "query", "description": "Filter results where number is less than or equal to value", "required": false, "type": "number"}, {"name": "number__gt", "in": "query", "description": "Filter results where number is greater than value", "required": false, "type": "number"}, {"name": "number__gte", "in": "query", "description": "Filter results where number is greater than or equal to value", "required": false, "type": "number"}, {"name": "number__range", "in": "query", "description": "Filter results where number is between two comma separated values", "required": false, "type": "number"}, {"name": "pulp_created__lt", "in": "query", "description": "Filter results where pulp_created is less than value", "required": false, "type": "string"}, {"name": "pulp_created__lte", "in": "query", "description": "Filter results where pulp_created is less than or equal to value", "required": false, "type": "string"}, {"name": "pulp_created__gt", "in": "query", "description": "Filter results where pulp_created is greater than value", "required": false, "type": "string"}, {"name": "pulp_created__gte", "in": "query", "description": "Filter results where pulp_created is greater than or equal to value", "required": false, "type": "string"}, {"name": "pulp_created__range", "in": "query", "description": "Filter results where pulp_created is between two comma separated values", "required": false, "type": "string"}, {"name": "content", "in": "query", "description": "Content Unit referenced by HREF", "required": false, "type": "string"}, {"name": "pulp_created", "in": "query", "description": "ISO 8601 formatted dates are supported", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/RepositoryVersion"}}}}}}, "tags": ["repositories: file versions"]}, "parameters": [{"name": "file_file_repository_href", "in": "path", "description": "URI of File Repository. e.g.: /pulp/api/v3/repositories/file/file/1/", "required": true, "type": "string"}]}, "{file_repository_version_href}": {"get": {"operationId": "repositories_file_file_versions_read", "summary": "Inspect a repository version", "description": "\nFileRepositoryVersion represents a single file repository version.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/RepositoryVersion"}}}, "tags": ["repositories: file versions"]}, "delete": {"operationId": "repositories_file_file_versions_delete", "summary": "Delete a repository version", "description": "Trigger an asynchronous task to delete a repositroy version.", "parameters": [], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: file versions"]}, "parameters": [{"name": "file_repository_version_href", "in": "path", "description": "URI of Repository Version. e.g.: /pulp/api/v3/repositories/file/file/1/versions/1/", "required": true, "type": "string"}]}}, "definitions": {"file.FileContent": {"required": ["relative_path"], "type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "artifact": {"title": "Artifact", "description": "Artifact file representing the physical content", "type": "string", "format": "uri"}, "relative_path": {"title": "Relative path", "description": "Path where the artifact is located relative to distributions base_path", "type": "string", "minLength": 1}, "md5": {"title": "Md5", "description": "The MD5 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}, "sha1": {"title": "Sha1", "description": "The SHA-1 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}, "sha224": {"title": "Sha224", "description": "The SHA-224 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}, "sha256": {"title": "Sha256", "description": "The SHA-256 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}, "sha384": {"title": "Sha384", "description": "The SHA-384 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}, "sha512": {"title": "Sha512", "description": "The SHA-512 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}}}, "AsyncOperationResponse": {"required": ["task"], "type": "object", "properties": {"task": {"title": "Task", "description": "The href of the task.", "type": "string", "format": "uri"}}}, "file.FileDistribution": {"required": ["base_path", "name"], "type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "base_path": {"title": "Base path", "description": "The base (relative) path component of the published url. Avoid paths that overlap with other distribution base paths (e.g. \"foo\" and \"foo/bar\")", "type": "string", "maxLength": 255, "minLength": 1}, "base_url": {"title": "Base url", "description": "The URL for accessing the publication as defined by this distribution.", "type": "string", "readOnly": true, "minLength": 1}, "content_guard": {"title": "Content guard", "description": "An optional content-guard.", "type": "string", "format": "uri", "x-nullable": true}, "name": {"title": "Name", "description": "A unique name. Ex, `rawhide` and `stable`.", "type": "string", "maxLength": 255, "minLength": 1}, "publication": {"title": "Publication", "description": "Publication to be served", "type": "string", "format": "uri", "x-nullable": true}}}, "file.FileFileSystemExporter": {"required": ["path", "name"], "type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "path": {"title": "Path", "description": "File system location to export to.", "type": "string", "minLength": 1}, "name": {"title": "Name", "description": "Unique name of the file system exporter.", "type": "string", "maxLength": 255, "minLength": 1}}}, "PublicationExport": {"required": ["publication"], "type": "object", "properties": {"publication": {"title": "Publication", "description": "A URI of the publication to be exported.", "type": "string", "format": "uri"}}}, "file.FilePublication": {"type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "publisher": {"title": "Publisher", "type": "string", "format": "uri", "x-nullable": true}, "repository_version": {"title": "Repository version", "type": "string", "format": "uri"}, "repository": {"title": "Repository", "description": "A URI of the repository to be published.", "type": "string", "format": "uri"}, "distributions": {"description": "This publication is currently hosted as defined by these distributions.", "type": "array", "items": {"description": "This publication is currently hosted as defined by these distributions.", "type": "string", "format": "uri"}, "readOnly": true, "uniqueItems": true}, "manifest": {"title": "Manifest", "description": "Filename to use for manifest file containing metadata for all the files.", "type": "string", "default": "PULP_MANIFEST", "minLength": 1}}}, "file.FileRemote": {"required": ["name", "url"], "type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "name": {"title": "Name", "description": "A unique name for this remote.", "type": "string", "minLength": 1}, "url": {"title": "Url", "description": "The URL of an external content source.", "type": "string", "minLength": 1}, "ssl_ca_certificate": {"title": "Ssl ca certificate", "description": "A string containing the PEM encoded CA certificate used to validate the server certificate presented by the remote server. All new line characters must be escaped. Returns SHA256 sum on GET.", "type": "string", "minLength": 1, "x-nullable": true}, "ssl_client_certificate": {"title": "Ssl client certificate", "description": "A string containing the PEM encoded client certificate used for authentication. All new line characters must be escaped. Returns SHA256 sum on GET.", "type": "string", "minLength": 1, "x-nullable": true}, "ssl_client_key": {"title": "Ssl client key", "description": "A PEM encoded private key used for authentication. Returns SHA256 sum on GET.", "type": "string", "minLength": 1, "x-nullable": true}, "ssl_validation": {"title": "Ssl validation", "description": "If True, SSL peer validation must be performed.", "type": "boolean"}, "proxy_url": {"title": "Proxy url", "description": "The proxy URL. Format: scheme://user:password@host:port", "type": "string", "minLength": 1, "x-nullable": true}, "pulp_last_updated": {"title": "Pulp last updated", "description": "Timestamp of the most recent update of the remote.", "type": "string", "format": "date-time", "readOnly": true}, "download_concurrency": {"title": "Download concurrency", "description": "Total number of simultaneous connections.", "type": "integer", "minimum": 1}, "policy": {"title": "Policy", "description": "The policy to use when downloading content. The possible values include: 'immediate', 'on_demand', and 'streamed'. 'immediate' is the default.", "type": "string", "enum": ["immediate", "on_demand", "streamed"], "default": "immediate"}}}, "file.FileRepository": {"required": ["name"], "type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "versions_href": {"title": "Versions href", "type": "string", "format": "uri", "readOnly": true}, "latest_version_href": {"title": "Latest version href", "type": "string", "format": "uri", "readOnly": true}, "name": {"title": "Name", "description": "A unique name for this repository.", "type": "string", "minLength": 1}, "plugin_managed": {"title": "Plugin managed", "description": "True if the plugin manages this repository, users typically do not interact with it.", "type": "boolean", "readOnly": true}, "description": {"title": "Description", "description": "An optional description.", "type": "string", "minLength": 1, "x-nullable": true}}}, "RepositoryAddRemoveContent": {"type": "object", "properties": {"add_content_units": {"description": "A list of content units to add to a new repository version. This content is added after remove_content_units are removed.", "type": "array", "items": {"type": "string"}}, "remove_content_units": {"description": "A list of content units to remove from the latest repository version. You may also specify '*' as an entry to remove all content. This content is removed before add_content_units are added.", "type": "array", "items": {"type": "string"}}, "base_version": {"title": "Base version", "description": "A repository version whose content will be used as the initial set of content for the new repository version", "type": "string", "format": "uri"}}}, "RepositorySyncURL": {"required": ["remote"], "type": "object", "properties": {"remote": {"title": "Remote", "description": "A URI of the repository to be synchronized.", "type": "string", "format": "uri"}, "mirror": {"title": "Mirror", "description": "If ``True``, synchronization will remove all content that is not present in the remote repository. If ``False``, sync will be additive only.", "type": "boolean", "default": false}}}, "ContentSummary": {"title": "Content summary", "description": "Various count summaries of the content in the version and the HREF to view them.", "required": ["added", "removed", "present"], "type": "object", "properties": {"added": {"title": "Added", "type": "object", "additionalProperties": {"type": "object", "additionalProperties": {"type": "string"}}}, "removed": {"title": "Removed", "type": "object", "additionalProperties": {"type": "object", "additionalProperties": {"type": "string"}}}, "present": {"title": "Present", "type": "object", "additionalProperties": {"type": "object", "additionalProperties": {"type": "string"}}}}}, "RepositoryVersion": {"type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "number": {"title": "Number", "type": "integer", "readOnly": true}, "base_version": {"title": "Base version", "description": "A repository version whose content was used as the initial set of content for this repository version", "type": "string", "format": "uri"}, "content_summary": {"$ref": "#/definitions/ContentSummary"}}}}, "tags": [{"name": "content: files", "x-displayName": "Content: Files"}, {"name": "distributions: file", "x-displayName": "Distributions: File"}, {"name": "file_exporters: file", "x-displayName": "File_Exporters: File"}, {"name": "publications: file", "x-displayName": "Publications: File"}, {"name": "remotes: file", "x-displayName": "Remotes: File"}, {"name": "repositories: file", "x-displayName": "Repositories: File"}, {"name": "repositories: file versions", "x-displayName": "Repositories: File Versions"}]} \ No newline at end of file +{"swagger": "2.0", "info": {"title": "Pulp 3 API", "logo": {"url": "https://pulp.plan.io/attachments/download/517478/pulp_logo_word_rectangle.svg"}, "version": "v3"}, "host": "localhost:24817", "schemes": ["http"], "basePath": "/", "consumes": ["application/json"], "produces": ["application/json"], "securityDefinitions": {"Basic": {"type": "basic"}}, "security": [{"Basic": []}], "paths": {"/pulp/api/v3/content/file/files/": {"get": {"operationId": "content_file_files_list", "summary": "List file contents", "description": "\nFileContent represents a single file and its metadata, which can be added and removed from\nrepositories.", "parameters": [{"name": "relative_path", "in": "query", "description": "Filter results where relative_path matches value", "required": false, "type": "string"}, {"name": "digest", "in": "query", "description": "Filter results where digest matches value", "required": false, "type": "string"}, {"name": "repository_version", "in": "query", "description": "Repository Version referenced by HREF", "required": false, "type": "string"}, {"name": "repository_version_added", "in": "query", "description": "Repository Version referenced by HREF", "required": false, "type": "string"}, {"name": "repository_version_removed", "in": "query", "description": "Repository Version referenced by HREF", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/file.FileContent"}}}}}}, "tags": ["content: files"]}, "post": {"operationId": "content_file_files_create", "summary": "Create a file content", "description": "Trigger an asynchronous task to create content,optionally create new repository version.", "parameters": [{"name": "artifact", "in": "formData", "description": "Artifact file representing the physical content", "required": false, "type": "string", "format": "uri"}, {"name": "relative_path", "in": "formData", "description": "Path where the artifact is located relative to distributions base_path", "required": true, "type": "string", "minLength": 1}, {"name": "file", "in": "formData", "description": "An uploaded file that should be turned into the artifact of the content unit.", "required": false, "type": "file"}, {"name": "repository", "in": "formData", "description": "A URI of a repository the new content unit should be associated with.", "required": false, "type": "string", "format": "uri"}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "consumes": ["multipart/form-data", "application/x-www-form-urlencoded"], "tags": ["content: files"]}, "parameters": []}, "{file_content_href}": {"get": {"operationId": "content_file_files_read", "summary": "Inspect a file content", "description": "\nFileContent represents a single file and its metadata, which can be added and removed from\nrepositories.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileContent"}}}, "tags": ["content: files"]}, "parameters": [{"name": "file_content_href", "in": "path", "description": "URI of File Content. e.g.: /pulp/api/v3/content/file/files/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/distributions/file/file/": {"get": {"operationId": "distributions_file_file_list", "summary": "List file distributions", "description": "\nFileDistributions host File\nPublications which makes the metadata and the referenced File Content available to HTTP\nclients. Additionally, a FileDistribution with an associated FilePublication can be the target\nurl of a File Remote , allowing\nanother instance of Pulp to sync the content.", "parameters": [{"name": "name", "in": "query", "description": "", "required": false, "type": "string"}, {"name": "name__in", "in": "query", "description": "Filter results where name is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "base_path", "in": "query", "description": "", "required": false, "type": "string"}, {"name": "base_path__contains", "in": "query", "description": "Filter results where base_path contains value", "required": false, "type": "string"}, {"name": "base_path__icontains", "in": "query", "description": "Filter results where base_path contains value", "required": false, "type": "string"}, {"name": "base_path__in", "in": "query", "description": "Filter results where base_path is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/file.FileDistribution"}}}}}}, "tags": ["distributions: file"]}, "post": {"operationId": "distributions_file_file_create", "summary": "Create a file distribution", "description": "Trigger an asynchronous create task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileDistribution"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["distributions: file"]}, "parameters": []}, "{file_distribution_href}": {"get": {"operationId": "distributions_file_file_read", "summary": "Inspect a file distribution", "description": "\nFileDistributions host File\nPublications which makes the metadata and the referenced File Content available to HTTP\nclients. Additionally, a FileDistribution with an associated FilePublication can be the target\nurl of a File Remote , allowing\nanother instance of Pulp to sync the content.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileDistribution"}}}, "tags": ["distributions: file"]}, "put": {"operationId": "distributions_file_file_update", "summary": "Update a file distribution", "description": "Trigger an asynchronous update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileDistribution"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["distributions: file"]}, "patch": {"operationId": "distributions_file_file_partial_update", "summary": "Partially update a file distribution", "description": "Trigger an asynchronous partial update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileDistribution"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["distributions: file"]}, "delete": {"operationId": "distributions_file_file_delete", "summary": "Delete a file distribution", "description": "Trigger an asynchronous delete task", "parameters": [], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["distributions: file"]}, "parameters": [{"name": "file_distribution_href", "in": "path", "description": "URI of File Distribution. e.g.: /pulp/api/v3/distributions/file/file/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/file_exporters/file/file/": {"get": {"operationId": "file_exporters_file_file_list", "summary": "List file file system exporters", "description": "FileSystemExporters export content from a publication to a path on the file system.", "parameters": [{"name": "name", "in": "query", "description": "", "required": false, "type": "string"}, {"name": "name__in", "in": "query", "description": "Filter results where name is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/file.FileFileSystemExporter"}}}}}}, "tags": ["file_exporters: file"]}, "post": {"operationId": "file_exporters_file_file_create", "summary": "Create a file file system exporter", "description": "FileSystemExporters export content from a publication to a path on the file system.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}], "responses": {"201": {"description": "", "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}}, "tags": ["file_exporters: file"]}, "parameters": []}, "{file_file_system_exporter_href}": {"get": {"operationId": "file_exporters_file_file_read", "summary": "Inspect a file file system exporter", "description": "FileSystemExporters export content from a publication to a path on the file system.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}}, "tags": ["file_exporters: file"]}, "put": {"operationId": "file_exporters_file_file_update", "summary": "Update a file file system exporter", "description": "FileSystemExporters export content from a publication to a path on the file system.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}}, "tags": ["file_exporters: file"]}, "patch": {"operationId": "file_exporters_file_file_partial_update", "summary": "Partially update a file file system exporter", "description": "FileSystemExporters export content from a publication to a path on the file system.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}}, "tags": ["file_exporters: file"]}, "delete": {"operationId": "file_exporters_file_file_delete", "summary": "Delete a file file system exporter", "description": "FileSystemExporters export content from a publication to a path on the file system.", "parameters": [], "responses": {"204": {"description": ""}}, "tags": ["file_exporters: file"]}, "parameters": [{"name": "file_file_system_exporter_href", "in": "path", "description": "URI of File File System Exporter. e.g.: /pulp/api/v3/file_exporters/file/file/1/", "required": true, "type": "string"}]}, "{file_file_system_exporter_href}export/": {"post": {"operationId": "file_exporters_file_file_export", "description": "Trigger an asynchronous task to export a file publication.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/PublicationExport"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["file_exporters: file"]}, "parameters": [{"name": "file_file_system_exporter_href", "in": "path", "description": "URI of File File System Exporter. e.g.: /pulp/api/v3/file_exporters/file/file/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/publications/file/file/": {"get": {"operationId": "publications_file_file_list", "summary": "List file publications", "description": "\nA FilePublication contains metadata about all the File Content in a particular File Repository Version.\nOnce a FilePublication has been created, it can be hosted using the\nFile Distribution API.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/file.FilePublication"}}}}}}, "tags": ["publications: file"]}, "post": {"operationId": "publications_file_file_create", "summary": "Create a file publication", "description": "Trigger an asynchronous task to publish file content.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FilePublication"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["publications: file"]}, "parameters": []}, "{file_publication_href}": {"get": {"operationId": "publications_file_file_read", "summary": "Inspect a file publication", "description": "\nA FilePublication contains metadata about all the File Content in a particular File Repository Version.\nOnce a FilePublication has been created, it can be hosted using the\nFile Distribution API.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FilePublication"}}}, "tags": ["publications: file"]}, "delete": {"operationId": "publications_file_file_delete", "summary": "Delete a file publication", "description": "\nA FilePublication contains metadata about all the File Content in a particular File Repository Version.\nOnce a FilePublication has been created, it can be hosted using the\nFile Distribution API.", "parameters": [], "responses": {"204": {"description": ""}}, "tags": ["publications: file"]}, "parameters": [{"name": "file_publication_href", "in": "path", "description": "URI of File Publication. e.g.: /pulp/api/v3/publications/file/file/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/remotes/file/file/": {"get": {"operationId": "remotes_file_file_list", "summary": "List file remotes", "description": "\nFileRemote represents an external source of File\nContent. The target url of a FileRemote must contain a file manifest, which contains the\nmetadata for all files at the source.", "parameters": [{"name": "name", "in": "query", "description": "", "required": false, "type": "string"}, {"name": "name__in", "in": "query", "description": "Filter results where name is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "pulp_last_updated__lt", "in": "query", "description": "Filter results where pulp_last_updated is less than value", "required": false, "type": "string"}, {"name": "pulp_last_updated__lte", "in": "query", "description": "Filter results where pulp_last_updated is less than or equal to value", "required": false, "type": "string"}, {"name": "pulp_last_updated__gt", "in": "query", "description": "Filter results where pulp_last_updated is greater than value", "required": false, "type": "string"}, {"name": "pulp_last_updated__gte", "in": "query", "description": "Filter results where pulp_last_updated is greater than or equal to value", "required": false, "type": "string"}, {"name": "pulp_last_updated__range", "in": "query", "description": "Filter results where pulp_last_updated is between two comma separated values", "required": false, "type": "string"}, {"name": "pulp_last_updated", "in": "query", "description": "ISO 8601 formatted dates are supported", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/file.FileRemote"}}}}}}, "tags": ["remotes: file"]}, "post": {"operationId": "remotes_file_file_create", "summary": "Create a file remote", "description": "\nFileRemote represents an external source of File\nContent. The target url of a FileRemote must contain a file manifest, which contains the\nmetadata for all files at the source.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileRemote"}}], "responses": {"201": {"description": "", "schema": {"$ref": "#/definitions/file.FileRemote"}}}, "tags": ["remotes: file"]}, "parameters": []}, "{file_remote_href}": {"get": {"operationId": "remotes_file_file_read", "summary": "Inspect a file remote", "description": "\nFileRemote represents an external source of File\nContent. The target url of a FileRemote must contain a file manifest, which contains the\nmetadata for all files at the source.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileRemote"}}}, "tags": ["remotes: file"]}, "put": {"operationId": "remotes_file_file_update", "summary": "Update a file remote", "description": "Trigger an asynchronous update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileRemote"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["remotes: file"]}, "patch": {"operationId": "remotes_file_file_partial_update", "summary": "Partially update a file remote", "description": "Trigger an asynchronous partial update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileRemote"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["remotes: file"]}, "delete": {"operationId": "remotes_file_file_delete", "summary": "Delete a file remote", "description": "Trigger an asynchronous delete task", "parameters": [], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["remotes: file"]}, "parameters": [{"name": "file_remote_href", "in": "path", "description": "URI of File Remote. e.g.: /pulp/api/v3/remotes/file/file/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/repositories/file/file/": {"get": {"operationId": "repositories_file_file_list", "summary": "List file repositorys", "description": "\nFileRepository represents a single file repository, to which content can be synced, added,\nor removed.", "parameters": [{"name": "name", "in": "query", "description": "", "required": false, "type": "string"}, {"name": "name__in", "in": "query", "description": "Filter results where name is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/file.FileRepository"}}}}}}, "tags": ["repositories: file"]}, "post": {"operationId": "repositories_file_file_create", "summary": "Create a file repository", "description": "\nFileRepository represents a single file repository, to which content can be synced, added,\nor removed.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileRepository"}}], "responses": {"201": {"description": "", "schema": {"$ref": "#/definitions/file.FileRepository"}}}, "tags": ["repositories: file"]}, "parameters": []}, "{file_repository_href}": {"get": {"operationId": "repositories_file_file_read", "summary": "Inspect a file repository", "description": "\nFileRepository represents a single file repository, to which content can be synced, added,\nor removed.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileRepository"}}}, "tags": ["repositories: file"]}, "put": {"operationId": "repositories_file_file_update", "summary": "Update a file repository", "description": "Trigger an asynchronous task to update a repository.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileRepository"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: file"]}, "patch": {"operationId": "repositories_file_file_partial_update", "summary": "Partially update a file repository", "description": "\nFileRepository represents a single file repository, to which content can be synced, added,\nor removed.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileRepository"}}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileRepository"}}}, "tags": ["repositories: file"]}, "delete": {"operationId": "repositories_file_file_delete", "summary": "Delete a file repository", "description": "Trigger an asynchronous task to delete a repository.", "parameters": [], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: file"]}, "parameters": [{"name": "file_repository_href", "in": "path", "description": "URI of File Repository. e.g.: /pulp/api/v3/repositories/file/file/1/", "required": true, "type": "string"}]}, "{file_repository_href}modify/": {"post": {"operationId": "repositories_file_file_modify", "description": "Trigger an asynchronous task to create a new repository version.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/RepositoryAddRemoveContent"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: file"]}, "parameters": [{"name": "file_repository_href", "in": "path", "description": "URI of File Repository. e.g.: /pulp/api/v3/repositories/file/file/1/", "required": true, "type": "string"}]}, "{file_repository_href}sync/": {"post": {"operationId": "repositories_file_file_sync", "description": "Trigger an asynchronous task to sync file content.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/RepositorySyncURL"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: file"]}, "parameters": [{"name": "file_repository_href", "in": "path", "description": "URI of File Repository. e.g.: /pulp/api/v3/repositories/file/file/1/", "required": true, "type": "string"}]}, "{file_repository_href}versions/": {"get": {"operationId": "repositories_file_file_versions_list", "summary": "List repository versions", "description": "\nFileRepositoryVersion represents a single file repository version.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "required": false, "type": "string"}, {"name": "number", "in": "query", "description": "", "required": false, "type": "number"}, {"name": "number__lt", "in": "query", "description": "Filter results where number is less than value", "required": false, "type": "number"}, {"name": "number__lte", "in": "query", "description": "Filter results where number is less than or equal to value", "required": false, "type": "number"}, {"name": "number__gt", "in": "query", "description": "Filter results where number is greater than value", "required": false, "type": "number"}, {"name": "number__gte", "in": "query", "description": "Filter results where number is greater than or equal to value", "required": false, "type": "number"}, {"name": "number__range", "in": "query", "description": "Filter results where number is between two comma separated values", "required": false, "type": "number"}, {"name": "pulp_created__lt", "in": "query", "description": "Filter results where pulp_created is less than value", "required": false, "type": "string"}, {"name": "pulp_created__lte", "in": "query", "description": "Filter results where pulp_created is less than or equal to value", "required": false, "type": "string"}, {"name": "pulp_created__gt", "in": "query", "description": "Filter results where pulp_created is greater than value", "required": false, "type": "string"}, {"name": "pulp_created__gte", "in": "query", "description": "Filter results where pulp_created is greater than or equal to value", "required": false, "type": "string"}, {"name": "pulp_created__range", "in": "query", "description": "Filter results where pulp_created is between two comma separated values", "required": false, "type": "string"}, {"name": "content", "in": "query", "description": "Content Unit referenced by HREF", "required": false, "type": "string"}, {"name": "pulp_created", "in": "query", "description": "ISO 8601 formatted dates are supported", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/RepositoryVersion"}}}}}}, "tags": ["repositories: file versions"]}, "parameters": [{"name": "file_file_repository_href", "in": "path", "description": "URI of File Repository. e.g.: /pulp/api/v3/repositories/file/file/1/", "required": true, "type": "string"}]}, "{file_repository_version_href}": {"get": {"operationId": "repositories_file_file_versions_read", "summary": "Inspect a repository version", "description": "\nFileRepositoryVersion represents a single file repository version.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/RepositoryVersion"}}}, "tags": ["repositories: file versions"]}, "delete": {"operationId": "repositories_file_file_versions_delete", "summary": "Delete a repository version", "description": "Trigger an asynchronous task to delete a repositroy version.", "parameters": [], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: file versions"]}, "parameters": [{"name": "file_repository_version_href", "in": "path", "description": "URI of Repository Version. e.g.: /pulp/api/v3/repositories/file/file/1/versions/1/", "required": true, "type": "string"}]}}, "definitions": {"file.FileContent": {"required": ["relative_path"], "type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "artifact": {"title": "Artifact", "description": "Artifact file representing the physical content", "type": "string", "format": "uri"}, "relative_path": {"title": "Relative path", "description": "Path where the artifact is located relative to distributions base_path", "type": "string", "minLength": 1}, "md5": {"title": "Md5", "description": "The MD5 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}, "sha1": {"title": "Sha1", "description": "The SHA-1 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}, "sha224": {"title": "Sha224", "description": "The SHA-224 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}, "sha256": {"title": "Sha256", "description": "The SHA-256 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}, "sha384": {"title": "Sha384", "description": "The SHA-384 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}, "sha512": {"title": "Sha512", "description": "The SHA-512 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}}}, "AsyncOperationResponse": {"required": ["task"], "type": "object", "properties": {"task": {"title": "Task", "description": "The href of the task.", "type": "string", "format": "uri"}}}, "file.FileDistribution": {"required": ["base_path", "name"], "type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "base_path": {"title": "Base path", "description": "The base (relative) path component of the published url. Avoid paths that overlap with other distribution base paths (e.g. \"foo\" and \"foo/bar\")", "type": "string", "minLength": 1}, "base_url": {"title": "Base url", "description": "The URL for accessing the publication as defined by this distribution.", "type": "string", "readOnly": true, "minLength": 1}, "content_guard": {"title": "Content guard", "description": "An optional content-guard.", "type": "string", "format": "uri", "x-nullable": true}, "name": {"title": "Name", "description": "A unique name. Ex, `rawhide` and `stable`.", "type": "string", "minLength": 1}, "publication": {"title": "Publication", "description": "Publication to be served", "type": "string", "format": "uri", "x-nullable": true}}}, "file.FileFileSystemExporter": {"required": ["path", "name"], "type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "path": {"title": "Path", "description": "File system location to export to.", "type": "string", "minLength": 1}, "name": {"title": "Name", "description": "Unique name of the file system exporter.", "type": "string", "minLength": 1}}}, "PublicationExport": {"required": ["publication"], "type": "object", "properties": {"publication": {"title": "Publication", "description": "A URI of the publication to be exported.", "type": "string", "format": "uri"}}}, "file.FilePublication": {"type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "publisher": {"title": "Publisher", "type": "string", "format": "uri", "x-nullable": true}, "repository_version": {"title": "Repository version", "type": "string", "format": "uri"}, "repository": {"title": "Repository", "description": "A URI of the repository to be published.", "type": "string", "format": "uri"}, "distributions": {"description": "This publication is currently hosted as defined by these distributions.", "type": "array", "items": {"description": "This publication is currently hosted as defined by these distributions.", "type": "string", "format": "uri"}, "readOnly": true, "uniqueItems": true}, "manifest": {"title": "Manifest", "description": "Filename to use for manifest file containing metadata for all the files.", "type": "string", "default": "PULP_MANIFEST", "minLength": 1}}}, "file.FileRemote": {"required": ["name", "url"], "type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "name": {"title": "Name", "description": "A unique name for this remote.", "type": "string", "minLength": 1}, "url": {"title": "Url", "description": "The URL of an external content source.", "type": "string", "minLength": 1}, "ca_cert": {"title": "Ca cert", "description": "A string containing the PEM encoded CA certificate used to validate the server certificate presented by the remote server. All new line characters must be escaped. Returns SHA256 sum on GET.", "type": "string", "minLength": 1, "x-nullable": true}, "client_cert": {"title": "Client cert", "description": "A string containing the PEM encoded client certificate used for authentication. All new line characters must be escaped. Returns SHA256 sum on GET.", "type": "string", "minLength": 1, "x-nullable": true}, "client_key": {"title": "Client key", "description": "A PEM encoded private key used for authentication. Returns SHA256 sum on GET.", "type": "string", "minLength": 1, "x-nullable": true}, "tls_validation": {"title": "Tls validation", "description": "If True, TLS peer validation must be performed.", "type": "boolean"}, "proxy_url": {"title": "Proxy url", "description": "The proxy URL. Format: scheme://user:password@host:port", "type": "string", "minLength": 1, "x-nullable": true}, "pulp_last_updated": {"title": "Pulp last updated", "description": "Timestamp of the most recent update of the remote.", "type": "string", "format": "date-time", "readOnly": true}, "download_concurrency": {"title": "Download concurrency", "description": "Total number of simultaneous connections.", "type": "integer", "minimum": 1}, "policy": {"title": "Policy", "description": "The policy to use when downloading content. The possible values include: 'immediate', 'on_demand', and 'streamed'. 'immediate' is the default.", "type": "string", "enum": ["immediate", "on_demand", "streamed"], "default": "immediate"}}}, "file.FileRepository": {"required": ["name"], "type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "versions_href": {"title": "Versions href", "type": "string", "format": "uri", "readOnly": true}, "latest_version_href": {"title": "Latest version href", "type": "string", "format": "uri", "readOnly": true}, "name": {"title": "Name", "description": "A unique name for this repository.", "type": "string", "minLength": 1}, "description": {"title": "Description", "description": "An optional description.", "type": "string", "minLength": 1, "x-nullable": true}}}, "RepositoryAddRemoveContent": {"type": "object", "properties": {"add_content_units": {"description": "A list of content units to add to a new repository version. This content is added after remove_content_units are removed.", "type": "array", "items": {"type": "string"}}, "remove_content_units": {"description": "A list of content units to remove from the latest repository version. You may also specify '*' as an entry to remove all content. This content is removed before add_content_units are added.", "type": "array", "items": {"type": "string"}}, "base_version": {"title": "Base version", "description": "A repository version whose content will be used as the initial set of content for the new repository version", "type": "string", "format": "uri"}}}, "RepositorySyncURL": {"required": ["remote"], "type": "object", "properties": {"remote": {"title": "Remote", "description": "A URI of the repository to be synchronized.", "type": "string", "format": "uri"}, "mirror": {"title": "Mirror", "description": "If ``True``, synchronization will remove all content that is not present in the remote repository. If ``False``, sync will be additive only.", "type": "boolean", "default": false}}}, "ContentSummary": {"title": "Content summary", "description": "Various count summaries of the content in the version and the HREF to view them.", "required": ["added", "removed", "present"], "type": "object", "properties": {"added": {"title": "Added", "type": "object", "additionalProperties": {"type": "object", "additionalProperties": {"type": "string"}}}, "removed": {"title": "Removed", "type": "object", "additionalProperties": {"type": "object", "additionalProperties": {"type": "string"}}}, "present": {"title": "Present", "type": "object", "additionalProperties": {"type": "object", "additionalProperties": {"type": "string"}}}}}, "RepositoryVersion": {"type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "number": {"title": "Number", "type": "integer", "readOnly": true}, "base_version": {"title": "Base version", "description": "A repository version whose content was used as the initial set of content for this repository version", "type": "string", "format": "uri"}, "content_summary": {"$ref": "#/definitions/ContentSummary"}}}}, "tags": [{"name": "content: files", "x-displayName": "Content: Files"}, {"name": "distributions: file", "x-displayName": "Distributions: File"}, {"name": "file_exporters: file", "x-displayName": "File_Exporters: File"}, {"name": "publications: file", "x-displayName": "Publications: File"}, {"name": "remotes: file", "x-displayName": "Remotes: File"}, {"name": "repositories: file", "x-displayName": "Repositories: File"}, {"name": "repositories: file versions", "x-displayName": "Repositories: File Versions"}]} \ No newline at end of file diff --git a/pulp_file/__init__.py b/pulp_file/__init__.py index c5e6db3c..8b623d0d 100644 --- a/pulp_file/__init__.py +++ b/pulp_file/__init__.py @@ -1,3 +1,3 @@ -__version__ = "0.1.0b5.dev" +__version__ = "0.1.0rc1" default_app_config = "pulp_file.app.PulpFilePluginAppConfig" diff --git a/setup.py b/setup.py index 31cee550..b4c2d36a 100644 --- a/setup.py +++ b/setup.py @@ -2,14 +2,14 @@ from setuptools import setup, find_packages -requirements = ["pulpcore>=3.0rc7"] +requirements = ["pulpcore>=3.0rc8,<3.1"] with open("README.rst") as f: long_description = f.read() setup( name="pulp-file", - version="0.1.0b5.dev", + version="0.1.0rc1", description="File plugin for the Pulp Project", long_description=long_description, license="GPLv2+", From 04030e788988b0c15b99f52a4db92ec8be5a59ef Mon Sep 17 00:00:00 2001 From: Brian Bouterse Date: Tue, 19 Nov 2019 16:04:43 -0500 Subject: [PATCH 04/16] Version bump to 0.1.0rc2.dev [noissue] --- pulp_file/__init__.py | 2 +- setup.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pulp_file/__init__.py b/pulp_file/__init__.py index 8b623d0d..efd30402 100644 --- a/pulp_file/__init__.py +++ b/pulp_file/__init__.py @@ -1,3 +1,3 @@ -__version__ = "0.1.0rc1" +__version__ = "0.1.0rc2.dev" default_app_config = "pulp_file.app.PulpFilePluginAppConfig" diff --git a/setup.py b/setup.py index b4c2d36a..95e168aa 100644 --- a/setup.py +++ b/setup.py @@ -2,14 +2,14 @@ from setuptools import setup, find_packages -requirements = ["pulpcore>=3.0rc8,<3.1"] +requirements = ["pulpcore>=3.0.0rc8,<3.1"] with open("README.rst") as f: long_description = f.read() setup( name="pulp-file", - version="0.1.0rc1", + version="0.1.0rc2.dev", description="File plugin for the Pulp Project", long_description=long_description, license="GPLv2+", From 4ae532f73405b2c00167a3ac749cd5f613f97f8c Mon Sep 17 00:00:00 2001 From: David Davis Date: Thu, 21 Nov 2019 11:57:35 -0500 Subject: [PATCH 05/16] Update travis config [noissue] (cherry picked from commit 2321fe07bf28a3b00b387b2dc137af644978062a) --- .travis/publish_client_pypi.sh | 1 + .travis/publish_plugin_pypi.sh | 1 + .travis/validate_commit_message.py | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.travis/publish_client_pypi.sh b/.travis/publish_client_pypi.sh index 90558a05..3d0574ca 100755 --- a/.travis/publish_client_pypi.sh +++ b/.travis/publish_client_pypi.sh @@ -40,5 +40,6 @@ cd pulp-openapi-generator ./generate.sh pulp_file python $VERSION cd pulp_file-client python setup.py sdist bdist_wheel --python-tag py3 +twine check dist/* || exit 1 twine upload dist/* -u pulp -p $PYPI_PASSWORD exit $? diff --git a/.travis/publish_plugin_pypi.sh b/.travis/publish_plugin_pypi.sh index 1c603dfe..50cbd1a6 100755 --- a/.travis/publish_plugin_pypi.sh +++ b/.travis/publish_plugin_pypi.sh @@ -12,4 +12,5 @@ set -euv pip install twine python setup.py sdist bdist_wheel --python-tag py3 +twine check dist/* || exit 1 twine upload dist/* -u pulp -p $PYPI_PASSWORD diff --git a/.travis/validate_commit_message.py b/.travis/validate_commit_message.py index a949d314..a29b7879 100644 --- a/.travis/validate_commit_message.py +++ b/.travis/validate_commit_message.py @@ -13,7 +13,7 @@ KEYWORDS = ["fixes", "closes", "re", "ref"] NO_ISSUE = "[noissue]" -STATUSES = ["NEW", "ASSIGNED", "POST"] +STATUSES = ["NEW", "ASSIGNED", "POST", "MODIFIED"] sha = sys.argv[1] message = subprocess.check_output(["git", "log", "--format=%B", "-n 1", sha]).decode("utf-8") From 562cdf65766392ed1dd022e5121348776894edf6 Mon Sep 17 00:00:00 2001 From: David Davis Date: Thu, 21 Nov 2019 13:28:54 -0500 Subject: [PATCH 06/16] Fix tests for new initial repo version change ref #5757 https://pulp.plan.io/issues/5757 Required PR: https://github.com/pulp/pulpcore/pull/400 (cherry picked from commit 7d9c9668b1e999c2478c2c9ba2e0ff201d591041) --- CHANGES/5757.misc | 1 + pulp_file/tests/functional/api/test_download_policies.py | 4 ++-- pulp_file/tests/functional/api/test_sync.py | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 CHANGES/5757.misc diff --git a/CHANGES/5757.misc b/CHANGES/5757.misc new file mode 100644 index 00000000..898036b1 --- /dev/null +++ b/CHANGES/5757.misc @@ -0,0 +1 @@ +Fix tests for new initial repo version change diff --git a/pulp_file/tests/functional/api/test_download_policies.py b/pulp_file/tests/functional/api/test_download_policies.py index a6dbf4ce..ae735ae9 100644 --- a/pulp_file/tests/functional/api/test_download_policies.py +++ b/pulp_file/tests/functional/api/test_download_policies.py @@ -86,7 +86,7 @@ def do_sync(self, download_policy): self.addCleanup(self.client.delete, remote["pulp_href"]) # Sync the repository. - self.assertIsNone(repo["latest_version_href"]) + self.assertEqual(repo["latest_version_href"], f"{repo['pulp_href']}versions/0/") sync(self.cfg, remote, repo) repo = self.client.get(repo["pulp_href"]) @@ -157,7 +157,7 @@ def do_test(self, policy): self.addCleanup(self.client.delete, remote["pulp_href"]) # Sync the repository. - self.assertIsNone(repo["latest_version_href"]) + self.assertEqual(repo["latest_version_href"], f"{repo['pulp_href']}versions/0/") sync(self.cfg, remote, repo) repo = self.client.get(repo["pulp_href"]) self.assertIsNotNone(repo["latest_version_href"]) diff --git a/pulp_file/tests/functional/api/test_sync.py b/pulp_file/tests/functional/api/test_sync.py index 2fd64437..4428f4b6 100644 --- a/pulp_file/tests/functional/api/test_sync.py +++ b/pulp_file/tests/functional/api/test_sync.py @@ -55,7 +55,7 @@ def test_sync(self): self.addCleanup(self.client.delete, remote["pulp_href"]) # Sync the repository. - self.assertIsNone(repo["latest_version_href"]) + self.assertEqual(repo["latest_version_href"], f"{repo['pulp_href']}versions/0/") sync(self.cfg, remote, repo) repo = self.client.get(repo["pulp_href"]) From 1cc161afe125594abfdfda561a450e3a0a1142b5 Mon Sep 17 00:00:00 2001 From: Evgeni Golov Date: Tue, 19 Nov 2019 09:22:59 +0100 Subject: [PATCH 07/16] use HTTPS for url in setup.py also drop www, as it redirects anyways [noissue] (cherry picked from commit 3b8367ce407939e2c619529469f2e704148d5e4c) --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 95e168aa..e1dc019e 100644 --- a/setup.py +++ b/setup.py @@ -15,7 +15,7 @@ license="GPLv2+", author="Pulp Project Developers", author_email="pulp-dev@redhat.com", - url="http://www.pulpproject.org/", + url="https://pulpproject.org/", python_requires=">=3.6", install_requires=requirements, include_package_data=True, From f827d3258d415d141d15e65b4483537bfd215437 Mon Sep 17 00:00:00 2001 From: David Davis Date: Tue, 26 Nov 2019 15:41:18 -0500 Subject: [PATCH 08/16] Call new functions for checking file path overlaps ref #5559 Required PR: https://github.com/pulp/pulpcore/pull/431 (cherry picked from commit dc7d79c7a9b627ed94a2167353b14bf785a8d5a5) --- CHANGES/5559.feature | 1 + pulp_file/app/models.py | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 CHANGES/5559.feature diff --git a/CHANGES/5559.feature b/CHANGES/5559.feature new file mode 100644 index 00000000..6befc8f3 --- /dev/null +++ b/CHANGES/5559.feature @@ -0,0 +1 @@ +Add checking for path overlapping for RepositoryVersions and Publications. diff --git a/pulp_file/app/models.py b/pulp_file/app/models.py index 075774ed..09f32c85 100644 --- a/pulp_file/app/models.py +++ b/pulp_file/app/models.py @@ -10,7 +10,8 @@ Remote, Repository, ) -from pulpcore.plugin.repo_version_utils import remove_duplicates +from pulpcore.plugin.publication_utils import validate_publication_paths +from pulpcore.plugin.repo_version_utils import remove_duplicates, validate_version_paths log = getLogger(__name__) @@ -51,7 +52,10 @@ class Meta: def finalize_new_version(self, new_version): """ - Ensure no added content contains the same `relative_path` as other content. + Finalize and validate the new repository version. + + Ensure no added content contains the same `relative_path` as other content and relative + paths don't overlap. Args: new_version (pulpcore.app.models.RepositoryVersion): The incomplete RepositoryVersion to @@ -59,6 +63,7 @@ def finalize_new_version(self, new_version): """ remove_duplicates(new_version) + validate_version_paths(new_version) class FileRemote(Remote): @@ -82,6 +87,12 @@ class FilePublication(Publication): class Meta: default_related_name = "%(app_label)s_%(model_name)s" + def finalize_new_publication(self): + """ + Validate that artifact paths don't overlap. + """ + validate_publication_paths(self) + class FileDistribution(PublicationDistribution): """ From 62725413d96191a0f6934cc117ae1c10c31b09dd Mon Sep 17 00:00:00 2001 From: Brian Bouterse Date: Tue, 3 Dec 2019 17:44:10 -0500 Subject: [PATCH 09/16] Version bump to 0.1.0rc2 [noissue] --- pulp_file/__init__.py | 2 +- setup.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pulp_file/__init__.py b/pulp_file/__init__.py index efd30402..27b6cd27 100644 --- a/pulp_file/__init__.py +++ b/pulp_file/__init__.py @@ -1,3 +1,3 @@ -__version__ = "0.1.0rc2.dev" +__version__ = "0.1.0rc2" default_app_config = "pulp_file.app.PulpFilePluginAppConfig" diff --git a/setup.py b/setup.py index e1dc019e..a888bd94 100644 --- a/setup.py +++ b/setup.py @@ -2,14 +2,14 @@ from setuptools import setup, find_packages -requirements = ["pulpcore>=3.0.0rc8,<3.1"] +requirements = ["pulpcore>=3.0.0rc9,<3.1"] with open("README.rst") as f: long_description = f.read() setup( name="pulp-file", - version="0.1.0rc2.dev", + version="0.1.0rc2", description="File plugin for the Pulp Project", long_description=long_description, license="GPLv2+", From 892f69ce0810402dfc2d948932a34f00841ba619 Mon Sep 17 00:00:00 2001 From: Brian Bouterse Date: Tue, 3 Dec 2019 17:46:18 -0500 Subject: [PATCH 10/16] Generate 0.1.0rc2 changelog [noissue] --- CHANGES.rst | 20 ++++++++++++++++++++ CHANGES/5559.feature | 1 - CHANGES/5757.misc | 1 - docs/_static/api.json | 2 +- 4 files changed, 21 insertions(+), 3 deletions(-) delete mode 100644 CHANGES/5559.feature delete mode 100644 CHANGES/5757.misc diff --git a/CHANGES.rst b/CHANGES.rst index eb6b907b..b24a8573 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -13,6 +13,26 @@ Changelog .. towncrier release notes start +0.1.0rc2 (2019-12-03) +===================== + + +Features +-------- + +- Add checking for path overlapping for RepositoryVersions and Publications. + `#5559 `_ + + +Misc +---- + +- `#5757 `_ + + +---- + + 0.1.0rc1 (2019-11-14) ===================== diff --git a/CHANGES/5559.feature b/CHANGES/5559.feature deleted file mode 100644 index 6befc8f3..00000000 --- a/CHANGES/5559.feature +++ /dev/null @@ -1 +0,0 @@ -Add checking for path overlapping for RepositoryVersions and Publications. diff --git a/CHANGES/5757.misc b/CHANGES/5757.misc deleted file mode 100644 index 898036b1..00000000 --- a/CHANGES/5757.misc +++ /dev/null @@ -1 +0,0 @@ -Fix tests for new initial repo version change diff --git a/docs/_static/api.json b/docs/_static/api.json index 41e6365e..6b757854 100644 --- a/docs/_static/api.json +++ b/docs/_static/api.json @@ -1 +1 @@ -{"swagger": "2.0", "info": {"title": "Pulp 3 API", "logo": {"url": "https://pulp.plan.io/attachments/download/517478/pulp_logo_word_rectangle.svg"}, "version": "v3"}, "host": "localhost:24817", "schemes": ["http"], "basePath": "/", "consumes": ["application/json"], "produces": ["application/json"], "securityDefinitions": {"Basic": {"type": "basic"}}, "security": [{"Basic": []}], "paths": {"/pulp/api/v3/content/file/files/": {"get": {"operationId": "content_file_files_list", "summary": "List file contents", "description": "\nFileContent represents a single file and its metadata, which can be added and removed from\nrepositories.", "parameters": [{"name": "relative_path", "in": "query", "description": "Filter results where relative_path matches value", "required": false, "type": "string"}, {"name": "digest", "in": "query", "description": "Filter results where digest matches value", "required": false, "type": "string"}, {"name": "repository_version", "in": "query", "description": "Repository Version referenced by HREF", "required": false, "type": "string"}, {"name": "repository_version_added", "in": "query", "description": "Repository Version referenced by HREF", "required": false, "type": "string"}, {"name": "repository_version_removed", "in": "query", "description": "Repository Version referenced by HREF", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/file.FileContent"}}}}}}, "tags": ["content: files"]}, "post": {"operationId": "content_file_files_create", "summary": "Create a file content", "description": "Trigger an asynchronous task to create content,optionally create new repository version.", "parameters": [{"name": "artifact", "in": "formData", "description": "Artifact file representing the physical content", "required": false, "type": "string", "format": "uri"}, {"name": "relative_path", "in": "formData", "description": "Path where the artifact is located relative to distributions base_path", "required": true, "type": "string", "minLength": 1}, {"name": "file", "in": "formData", "description": "An uploaded file that should be turned into the artifact of the content unit.", "required": false, "type": "file"}, {"name": "repository", "in": "formData", "description": "A URI of a repository the new content unit should be associated with.", "required": false, "type": "string", "format": "uri"}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "consumes": ["multipart/form-data", "application/x-www-form-urlencoded"], "tags": ["content: files"]}, "parameters": []}, "{file_content_href}": {"get": {"operationId": "content_file_files_read", "summary": "Inspect a file content", "description": "\nFileContent represents a single file and its metadata, which can be added and removed from\nrepositories.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileContent"}}}, "tags": ["content: files"]}, "parameters": [{"name": "file_content_href", "in": "path", "description": "URI of File Content. e.g.: /pulp/api/v3/content/file/files/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/distributions/file/file/": {"get": {"operationId": "distributions_file_file_list", "summary": "List file distributions", "description": "\nFileDistributions host File\nPublications which makes the metadata and the referenced File Content available to HTTP\nclients. Additionally, a FileDistribution with an associated FilePublication can be the target\nurl of a File Remote , allowing\nanother instance of Pulp to sync the content.", "parameters": [{"name": "name", "in": "query", "description": "", "required": false, "type": "string"}, {"name": "name__in", "in": "query", "description": "Filter results where name is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "base_path", "in": "query", "description": "", "required": false, "type": "string"}, {"name": "base_path__contains", "in": "query", "description": "Filter results where base_path contains value", "required": false, "type": "string"}, {"name": "base_path__icontains", "in": "query", "description": "Filter results where base_path contains value", "required": false, "type": "string"}, {"name": "base_path__in", "in": "query", "description": "Filter results where base_path is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/file.FileDistribution"}}}}}}, "tags": ["distributions: file"]}, "post": {"operationId": "distributions_file_file_create", "summary": "Create a file distribution", "description": "Trigger an asynchronous create task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileDistribution"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["distributions: file"]}, "parameters": []}, "{file_distribution_href}": {"get": {"operationId": "distributions_file_file_read", "summary": "Inspect a file distribution", "description": "\nFileDistributions host File\nPublications which makes the metadata and the referenced File Content available to HTTP\nclients. Additionally, a FileDistribution with an associated FilePublication can be the target\nurl of a File Remote , allowing\nanother instance of Pulp to sync the content.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileDistribution"}}}, "tags": ["distributions: file"]}, "put": {"operationId": "distributions_file_file_update", "summary": "Update a file distribution", "description": "Trigger an asynchronous update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileDistribution"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["distributions: file"]}, "patch": {"operationId": "distributions_file_file_partial_update", "summary": "Partially update a file distribution", "description": "Trigger an asynchronous partial update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileDistribution"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["distributions: file"]}, "delete": {"operationId": "distributions_file_file_delete", "summary": "Delete a file distribution", "description": "Trigger an asynchronous delete task", "parameters": [], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["distributions: file"]}, "parameters": [{"name": "file_distribution_href", "in": "path", "description": "URI of File Distribution. e.g.: /pulp/api/v3/distributions/file/file/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/file_exporters/file/file/": {"get": {"operationId": "file_exporters_file_file_list", "summary": "List file file system exporters", "description": "FileSystemExporters export content from a publication to a path on the file system.", "parameters": [{"name": "name", "in": "query", "description": "", "required": false, "type": "string"}, {"name": "name__in", "in": "query", "description": "Filter results where name is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/file.FileFileSystemExporter"}}}}}}, "tags": ["file_exporters: file"]}, "post": {"operationId": "file_exporters_file_file_create", "summary": "Create a file file system exporter", "description": "FileSystemExporters export content from a publication to a path on the file system.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}], "responses": {"201": {"description": "", "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}}, "tags": ["file_exporters: file"]}, "parameters": []}, "{file_file_system_exporter_href}": {"get": {"operationId": "file_exporters_file_file_read", "summary": "Inspect a file file system exporter", "description": "FileSystemExporters export content from a publication to a path on the file system.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}}, "tags": ["file_exporters: file"]}, "put": {"operationId": "file_exporters_file_file_update", "summary": "Update a file file system exporter", "description": "FileSystemExporters export content from a publication to a path on the file system.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}}, "tags": ["file_exporters: file"]}, "patch": {"operationId": "file_exporters_file_file_partial_update", "summary": "Partially update a file file system exporter", "description": "FileSystemExporters export content from a publication to a path on the file system.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}}, "tags": ["file_exporters: file"]}, "delete": {"operationId": "file_exporters_file_file_delete", "summary": "Delete a file file system exporter", "description": "FileSystemExporters export content from a publication to a path on the file system.", "parameters": [], "responses": {"204": {"description": ""}}, "tags": ["file_exporters: file"]}, "parameters": [{"name": "file_file_system_exporter_href", "in": "path", "description": "URI of File File System Exporter. e.g.: /pulp/api/v3/file_exporters/file/file/1/", "required": true, "type": "string"}]}, "{file_file_system_exporter_href}export/": {"post": {"operationId": "file_exporters_file_file_export", "description": "Trigger an asynchronous task to export a file publication.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/PublicationExport"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["file_exporters: file"]}, "parameters": [{"name": "file_file_system_exporter_href", "in": "path", "description": "URI of File File System Exporter. e.g.: /pulp/api/v3/file_exporters/file/file/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/publications/file/file/": {"get": {"operationId": "publications_file_file_list", "summary": "List file publications", "description": "\nA FilePublication contains metadata about all the File Content in a particular File Repository Version.\nOnce a FilePublication has been created, it can be hosted using the\nFile Distribution API.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/file.FilePublication"}}}}}}, "tags": ["publications: file"]}, "post": {"operationId": "publications_file_file_create", "summary": "Create a file publication", "description": "Trigger an asynchronous task to publish file content.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FilePublication"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["publications: file"]}, "parameters": []}, "{file_publication_href}": {"get": {"operationId": "publications_file_file_read", "summary": "Inspect a file publication", "description": "\nA FilePublication contains metadata about all the File Content in a particular File Repository Version.\nOnce a FilePublication has been created, it can be hosted using the\nFile Distribution API.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FilePublication"}}}, "tags": ["publications: file"]}, "delete": {"operationId": "publications_file_file_delete", "summary": "Delete a file publication", "description": "\nA FilePublication contains metadata about all the File Content in a particular File Repository Version.\nOnce a FilePublication has been created, it can be hosted using the\nFile Distribution API.", "parameters": [], "responses": {"204": {"description": ""}}, "tags": ["publications: file"]}, "parameters": [{"name": "file_publication_href", "in": "path", "description": "URI of File Publication. e.g.: /pulp/api/v3/publications/file/file/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/remotes/file/file/": {"get": {"operationId": "remotes_file_file_list", "summary": "List file remotes", "description": "\nFileRemote represents an external source of File\nContent. The target url of a FileRemote must contain a file manifest, which contains the\nmetadata for all files at the source.", "parameters": [{"name": "name", "in": "query", "description": "", "required": false, "type": "string"}, {"name": "name__in", "in": "query", "description": "Filter results where name is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "pulp_last_updated__lt", "in": "query", "description": "Filter results where pulp_last_updated is less than value", "required": false, "type": "string"}, {"name": "pulp_last_updated__lte", "in": "query", "description": "Filter results where pulp_last_updated is less than or equal to value", "required": false, "type": "string"}, {"name": "pulp_last_updated__gt", "in": "query", "description": "Filter results where pulp_last_updated is greater than value", "required": false, "type": "string"}, {"name": "pulp_last_updated__gte", "in": "query", "description": "Filter results where pulp_last_updated is greater than or equal to value", "required": false, "type": "string"}, {"name": "pulp_last_updated__range", "in": "query", "description": "Filter results where pulp_last_updated is between two comma separated values", "required": false, "type": "string"}, {"name": "pulp_last_updated", "in": "query", "description": "ISO 8601 formatted dates are supported", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/file.FileRemote"}}}}}}, "tags": ["remotes: file"]}, "post": {"operationId": "remotes_file_file_create", "summary": "Create a file remote", "description": "\nFileRemote represents an external source of File\nContent. The target url of a FileRemote must contain a file manifest, which contains the\nmetadata for all files at the source.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileRemote"}}], "responses": {"201": {"description": "", "schema": {"$ref": "#/definitions/file.FileRemote"}}}, "tags": ["remotes: file"]}, "parameters": []}, "{file_remote_href}": {"get": {"operationId": "remotes_file_file_read", "summary": "Inspect a file remote", "description": "\nFileRemote represents an external source of File\nContent. The target url of a FileRemote must contain a file manifest, which contains the\nmetadata for all files at the source.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileRemote"}}}, "tags": ["remotes: file"]}, "put": {"operationId": "remotes_file_file_update", "summary": "Update a file remote", "description": "Trigger an asynchronous update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileRemote"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["remotes: file"]}, "patch": {"operationId": "remotes_file_file_partial_update", "summary": "Partially update a file remote", "description": "Trigger an asynchronous partial update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileRemote"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["remotes: file"]}, "delete": {"operationId": "remotes_file_file_delete", "summary": "Delete a file remote", "description": "Trigger an asynchronous delete task", "parameters": [], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["remotes: file"]}, "parameters": [{"name": "file_remote_href", "in": "path", "description": "URI of File Remote. e.g.: /pulp/api/v3/remotes/file/file/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/repositories/file/file/": {"get": {"operationId": "repositories_file_file_list", "summary": "List file repositorys", "description": "\nFileRepository represents a single file repository, to which content can be synced, added,\nor removed.", "parameters": [{"name": "name", "in": "query", "description": "", "required": false, "type": "string"}, {"name": "name__in", "in": "query", "description": "Filter results where name is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/file.FileRepository"}}}}}}, "tags": ["repositories: file"]}, "post": {"operationId": "repositories_file_file_create", "summary": "Create a file repository", "description": "\nFileRepository represents a single file repository, to which content can be synced, added,\nor removed.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileRepository"}}], "responses": {"201": {"description": "", "schema": {"$ref": "#/definitions/file.FileRepository"}}}, "tags": ["repositories: file"]}, "parameters": []}, "{file_repository_href}": {"get": {"operationId": "repositories_file_file_read", "summary": "Inspect a file repository", "description": "\nFileRepository represents a single file repository, to which content can be synced, added,\nor removed.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileRepository"}}}, "tags": ["repositories: file"]}, "put": {"operationId": "repositories_file_file_update", "summary": "Update a file repository", "description": "Trigger an asynchronous task to update a repository.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileRepository"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: file"]}, "patch": {"operationId": "repositories_file_file_partial_update", "summary": "Partially update a file repository", "description": "\nFileRepository represents a single file repository, to which content can be synced, added,\nor removed.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileRepository"}}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileRepository"}}}, "tags": ["repositories: file"]}, "delete": {"operationId": "repositories_file_file_delete", "summary": "Delete a file repository", "description": "Trigger an asynchronous task to delete a repository.", "parameters": [], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: file"]}, "parameters": [{"name": "file_repository_href", "in": "path", "description": "URI of File Repository. e.g.: /pulp/api/v3/repositories/file/file/1/", "required": true, "type": "string"}]}, "{file_repository_href}modify/": {"post": {"operationId": "repositories_file_file_modify", "description": "Trigger an asynchronous task to create a new repository version.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/RepositoryAddRemoveContent"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: file"]}, "parameters": [{"name": "file_repository_href", "in": "path", "description": "URI of File Repository. e.g.: /pulp/api/v3/repositories/file/file/1/", "required": true, "type": "string"}]}, "{file_repository_href}sync/": {"post": {"operationId": "repositories_file_file_sync", "description": "Trigger an asynchronous task to sync file content.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/RepositorySyncURL"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: file"]}, "parameters": [{"name": "file_repository_href", "in": "path", "description": "URI of File Repository. e.g.: /pulp/api/v3/repositories/file/file/1/", "required": true, "type": "string"}]}, "{file_repository_href}versions/": {"get": {"operationId": "repositories_file_file_versions_list", "summary": "List repository versions", "description": "\nFileRepositoryVersion represents a single file repository version.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "required": false, "type": "string"}, {"name": "number", "in": "query", "description": "", "required": false, "type": "number"}, {"name": "number__lt", "in": "query", "description": "Filter results where number is less than value", "required": false, "type": "number"}, {"name": "number__lte", "in": "query", "description": "Filter results where number is less than or equal to value", "required": false, "type": "number"}, {"name": "number__gt", "in": "query", "description": "Filter results where number is greater than value", "required": false, "type": "number"}, {"name": "number__gte", "in": "query", "description": "Filter results where number is greater than or equal to value", "required": false, "type": "number"}, {"name": "number__range", "in": "query", "description": "Filter results where number is between two comma separated values", "required": false, "type": "number"}, {"name": "pulp_created__lt", "in": "query", "description": "Filter results where pulp_created is less than value", "required": false, "type": "string"}, {"name": "pulp_created__lte", "in": "query", "description": "Filter results where pulp_created is less than or equal to value", "required": false, "type": "string"}, {"name": "pulp_created__gt", "in": "query", "description": "Filter results where pulp_created is greater than value", "required": false, "type": "string"}, {"name": "pulp_created__gte", "in": "query", "description": "Filter results where pulp_created is greater than or equal to value", "required": false, "type": "string"}, {"name": "pulp_created__range", "in": "query", "description": "Filter results where pulp_created is between two comma separated values", "required": false, "type": "string"}, {"name": "content", "in": "query", "description": "Content Unit referenced by HREF", "required": false, "type": "string"}, {"name": "pulp_created", "in": "query", "description": "ISO 8601 formatted dates are supported", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/RepositoryVersion"}}}}}}, "tags": ["repositories: file versions"]}, "parameters": [{"name": "file_file_repository_href", "in": "path", "description": "URI of File Repository. e.g.: /pulp/api/v3/repositories/file/file/1/", "required": true, "type": "string"}]}, "{file_repository_version_href}": {"get": {"operationId": "repositories_file_file_versions_read", "summary": "Inspect a repository version", "description": "\nFileRepositoryVersion represents a single file repository version.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/RepositoryVersion"}}}, "tags": ["repositories: file versions"]}, "delete": {"operationId": "repositories_file_file_versions_delete", "summary": "Delete a repository version", "description": "Trigger an asynchronous task to delete a repositroy version.", "parameters": [], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: file versions"]}, "parameters": [{"name": "file_repository_version_href", "in": "path", "description": "URI of Repository Version. e.g.: /pulp/api/v3/repositories/file/file/1/versions/1/", "required": true, "type": "string"}]}}, "definitions": {"file.FileContent": {"required": ["relative_path"], "type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "artifact": {"title": "Artifact", "description": "Artifact file representing the physical content", "type": "string", "format": "uri"}, "relative_path": {"title": "Relative path", "description": "Path where the artifact is located relative to distributions base_path", "type": "string", "minLength": 1}, "md5": {"title": "Md5", "description": "The MD5 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}, "sha1": {"title": "Sha1", "description": "The SHA-1 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}, "sha224": {"title": "Sha224", "description": "The SHA-224 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}, "sha256": {"title": "Sha256", "description": "The SHA-256 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}, "sha384": {"title": "Sha384", "description": "The SHA-384 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}, "sha512": {"title": "Sha512", "description": "The SHA-512 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}}}, "AsyncOperationResponse": {"required": ["task"], "type": "object", "properties": {"task": {"title": "Task", "description": "The href of the task.", "type": "string", "format": "uri"}}}, "file.FileDistribution": {"required": ["base_path", "name"], "type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "base_path": {"title": "Base path", "description": "The base (relative) path component of the published url. Avoid paths that overlap with other distribution base paths (e.g. \"foo\" and \"foo/bar\")", "type": "string", "minLength": 1}, "base_url": {"title": "Base url", "description": "The URL for accessing the publication as defined by this distribution.", "type": "string", "readOnly": true, "minLength": 1}, "content_guard": {"title": "Content guard", "description": "An optional content-guard.", "type": "string", "format": "uri", "x-nullable": true}, "name": {"title": "Name", "description": "A unique name. Ex, `rawhide` and `stable`.", "type": "string", "minLength": 1}, "publication": {"title": "Publication", "description": "Publication to be served", "type": "string", "format": "uri", "x-nullable": true}}}, "file.FileFileSystemExporter": {"required": ["path", "name"], "type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "path": {"title": "Path", "description": "File system location to export to.", "type": "string", "minLength": 1}, "name": {"title": "Name", "description": "Unique name of the file system exporter.", "type": "string", "minLength": 1}}}, "PublicationExport": {"required": ["publication"], "type": "object", "properties": {"publication": {"title": "Publication", "description": "A URI of the publication to be exported.", "type": "string", "format": "uri"}}}, "file.FilePublication": {"type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "publisher": {"title": "Publisher", "type": "string", "format": "uri", "x-nullable": true}, "repository_version": {"title": "Repository version", "type": "string", "format": "uri"}, "repository": {"title": "Repository", "description": "A URI of the repository to be published.", "type": "string", "format": "uri"}, "distributions": {"description": "This publication is currently hosted as defined by these distributions.", "type": "array", "items": {"description": "This publication is currently hosted as defined by these distributions.", "type": "string", "format": "uri"}, "readOnly": true, "uniqueItems": true}, "manifest": {"title": "Manifest", "description": "Filename to use for manifest file containing metadata for all the files.", "type": "string", "default": "PULP_MANIFEST", "minLength": 1}}}, "file.FileRemote": {"required": ["name", "url"], "type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "name": {"title": "Name", "description": "A unique name for this remote.", "type": "string", "minLength": 1}, "url": {"title": "Url", "description": "The URL of an external content source.", "type": "string", "minLength": 1}, "ca_cert": {"title": "Ca cert", "description": "A string containing the PEM encoded CA certificate used to validate the server certificate presented by the remote server. All new line characters must be escaped. Returns SHA256 sum on GET.", "type": "string", "minLength": 1, "x-nullable": true}, "client_cert": {"title": "Client cert", "description": "A string containing the PEM encoded client certificate used for authentication. All new line characters must be escaped. Returns SHA256 sum on GET.", "type": "string", "minLength": 1, "x-nullable": true}, "client_key": {"title": "Client key", "description": "A PEM encoded private key used for authentication. Returns SHA256 sum on GET.", "type": "string", "minLength": 1, "x-nullable": true}, "tls_validation": {"title": "Tls validation", "description": "If True, TLS peer validation must be performed.", "type": "boolean"}, "proxy_url": {"title": "Proxy url", "description": "The proxy URL. Format: scheme://user:password@host:port", "type": "string", "minLength": 1, "x-nullable": true}, "pulp_last_updated": {"title": "Pulp last updated", "description": "Timestamp of the most recent update of the remote.", "type": "string", "format": "date-time", "readOnly": true}, "download_concurrency": {"title": "Download concurrency", "description": "Total number of simultaneous connections.", "type": "integer", "minimum": 1}, "policy": {"title": "Policy", "description": "The policy to use when downloading content. The possible values include: 'immediate', 'on_demand', and 'streamed'. 'immediate' is the default.", "type": "string", "enum": ["immediate", "on_demand", "streamed"], "default": "immediate"}}}, "file.FileRepository": {"required": ["name"], "type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "versions_href": {"title": "Versions href", "type": "string", "format": "uri", "readOnly": true}, "latest_version_href": {"title": "Latest version href", "type": "string", "format": "uri", "readOnly": true}, "name": {"title": "Name", "description": "A unique name for this repository.", "type": "string", "minLength": 1}, "description": {"title": "Description", "description": "An optional description.", "type": "string", "minLength": 1, "x-nullable": true}}}, "RepositoryAddRemoveContent": {"type": "object", "properties": {"add_content_units": {"description": "A list of content units to add to a new repository version. This content is added after remove_content_units are removed.", "type": "array", "items": {"type": "string"}}, "remove_content_units": {"description": "A list of content units to remove from the latest repository version. You may also specify '*' as an entry to remove all content. This content is removed before add_content_units are added.", "type": "array", "items": {"type": "string"}}, "base_version": {"title": "Base version", "description": "A repository version whose content will be used as the initial set of content for the new repository version", "type": "string", "format": "uri"}}}, "RepositorySyncURL": {"required": ["remote"], "type": "object", "properties": {"remote": {"title": "Remote", "description": "A URI of the repository to be synchronized.", "type": "string", "format": "uri"}, "mirror": {"title": "Mirror", "description": "If ``True``, synchronization will remove all content that is not present in the remote repository. If ``False``, sync will be additive only.", "type": "boolean", "default": false}}}, "ContentSummary": {"title": "Content summary", "description": "Various count summaries of the content in the version and the HREF to view them.", "required": ["added", "removed", "present"], "type": "object", "properties": {"added": {"title": "Added", "type": "object", "additionalProperties": {"type": "object", "additionalProperties": {"type": "string"}}}, "removed": {"title": "Removed", "type": "object", "additionalProperties": {"type": "object", "additionalProperties": {"type": "string"}}}, "present": {"title": "Present", "type": "object", "additionalProperties": {"type": "object", "additionalProperties": {"type": "string"}}}}}, "RepositoryVersion": {"type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "number": {"title": "Number", "type": "integer", "readOnly": true}, "base_version": {"title": "Base version", "description": "A repository version whose content was used as the initial set of content for this repository version", "type": "string", "format": "uri"}, "content_summary": {"$ref": "#/definitions/ContentSummary"}}}}, "tags": [{"name": "content: files", "x-displayName": "Content: Files"}, {"name": "distributions: file", "x-displayName": "Distributions: File"}, {"name": "file_exporters: file", "x-displayName": "File_Exporters: File"}, {"name": "publications: file", "x-displayName": "Publications: File"}, {"name": "remotes: file", "x-displayName": "Remotes: File"}, {"name": "repositories: file", "x-displayName": "Repositories: File"}, {"name": "repositories: file versions", "x-displayName": "Repositories: File Versions"}]} \ No newline at end of file +{"swagger": "2.0", "info": {"title": "Pulp 3 API", "logo": {"url": "https://pulp.plan.io/attachments/download/517478/pulp_logo_word_rectangle.svg"}, "version": "v3"}, "host": "localhost:24817", "schemes": ["http"], "basePath": "/", "consumes": ["application/json"], "produces": ["application/json"], "securityDefinitions": {"Basic": {"type": "basic"}}, "security": [{"Basic": []}], "paths": {"/pulp/api/v3/content/file/files/": {"get": {"operationId": "content_file_files_list", "summary": "List file contents", "description": "\nFileContent represents a single file and its metadata, which can be added and removed from\nrepositories.", "parameters": [{"name": "relative_path", "in": "query", "description": "Filter results where relative_path matches value", "required": false, "type": "string"}, {"name": "digest", "in": "query", "description": "Filter results where digest matches value", "required": false, "type": "string"}, {"name": "repository_version", "in": "query", "description": "Repository Version referenced by HREF", "required": false, "type": "string"}, {"name": "repository_version_added", "in": "query", "description": "Repository Version referenced by HREF", "required": false, "type": "string"}, {"name": "repository_version_removed", "in": "query", "description": "Repository Version referenced by HREF", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/file.FileContent"}}}}}}, "tags": ["content: files"]}, "post": {"operationId": "content_file_files_create", "summary": "Create a file content", "description": "Trigger an asynchronous task to create content,optionally create new repository version.", "parameters": [{"name": "artifact", "in": "formData", "description": "Artifact file representing the physical content", "required": false, "type": "string", "format": "uri"}, {"name": "relative_path", "in": "formData", "description": "Path where the artifact is located relative to distributions base_path", "required": true, "type": "string", "minLength": 1}, {"name": "file", "in": "formData", "description": "An uploaded file that should be turned into the artifact of the content unit.", "required": false, "type": "file"}, {"name": "repository", "in": "formData", "description": "A URI of a repository the new content unit should be associated with.", "required": false, "type": "string", "format": "uri"}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "consumes": ["multipart/form-data", "application/x-www-form-urlencoded"], "tags": ["content: files"]}, "parameters": []}, "{file_content_href}": {"get": {"operationId": "content_file_files_read", "summary": "Inspect a file content", "description": "\nFileContent represents a single file and its metadata, which can be added and removed from\nrepositories.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileContent"}}}, "tags": ["content: files"]}, "parameters": [{"name": "file_content_href", "in": "path", "description": "URI of File Content. e.g.: /pulp/api/v3/content/file/files/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/distributions/file/file/": {"get": {"operationId": "distributions_file_file_list", "summary": "List file distributions", "description": "\nFileDistributions host File\nPublications which makes the metadata and the referenced File Content available to HTTP\nclients. Additionally, a FileDistribution with an associated FilePublication can be the target\nurl of a File Remote , allowing\nanother instance of Pulp to sync the content.", "parameters": [{"name": "name", "in": "query", "description": "", "required": false, "type": "string"}, {"name": "name__in", "in": "query", "description": "Filter results where name is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "base_path", "in": "query", "description": "", "required": false, "type": "string"}, {"name": "base_path__contains", "in": "query", "description": "Filter results where base_path contains value", "required": false, "type": "string"}, {"name": "base_path__icontains", "in": "query", "description": "Filter results where base_path contains value", "required": false, "type": "string"}, {"name": "base_path__in", "in": "query", "description": "Filter results where base_path is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/file.FileDistribution"}}}}}}, "tags": ["distributions: file"]}, "post": {"operationId": "distributions_file_file_create", "summary": "Create a file distribution", "description": "Trigger an asynchronous create task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileDistribution"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["distributions: file"]}, "parameters": []}, "{file_distribution_href}": {"get": {"operationId": "distributions_file_file_read", "summary": "Inspect a file distribution", "description": "\nFileDistributions host File\nPublications which makes the metadata and the referenced File Content available to HTTP\nclients. Additionally, a FileDistribution with an associated FilePublication can be the target\nurl of a File Remote , allowing\nanother instance of Pulp to sync the content.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileDistribution"}}}, "tags": ["distributions: file"]}, "put": {"operationId": "distributions_file_file_update", "summary": "Update a file distribution", "description": "Trigger an asynchronous update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileDistribution"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["distributions: file"]}, "patch": {"operationId": "distributions_file_file_partial_update", "summary": "Partially update a file distribution", "description": "Trigger an asynchronous partial update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileDistribution"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["distributions: file"]}, "delete": {"operationId": "distributions_file_file_delete", "summary": "Delete a file distribution", "description": "Trigger an asynchronous delete task", "parameters": [], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["distributions: file"]}, "parameters": [{"name": "file_distribution_href", "in": "path", "description": "URI of File Distribution. e.g.: /pulp/api/v3/distributions/file/file/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/file_exporters/file/file/": {"get": {"operationId": "file_exporters_file_file_list", "summary": "List file file system exporters", "description": "FileSystemExporters export content from a publication to a path on the file system.", "parameters": [{"name": "name", "in": "query", "description": "", "required": false, "type": "string"}, {"name": "name__in", "in": "query", "description": "Filter results where name is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/file.FileFileSystemExporter"}}}}}}, "tags": ["file_exporters: file"]}, "post": {"operationId": "file_exporters_file_file_create", "summary": "Create a file file system exporter", "description": "FileSystemExporters export content from a publication to a path on the file system.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}], "responses": {"201": {"description": "", "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}}, "tags": ["file_exporters: file"]}, "parameters": []}, "{file_file_system_exporter_href}": {"get": {"operationId": "file_exporters_file_file_read", "summary": "Inspect a file file system exporter", "description": "FileSystemExporters export content from a publication to a path on the file system.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}}, "tags": ["file_exporters: file"]}, "put": {"operationId": "file_exporters_file_file_update", "summary": "Update a file file system exporter", "description": "FileSystemExporters export content from a publication to a path on the file system.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}}, "tags": ["file_exporters: file"]}, "patch": {"operationId": "file_exporters_file_file_partial_update", "summary": "Partially update a file file system exporter", "description": "FileSystemExporters export content from a publication to a path on the file system.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileFileSystemExporter"}}}, "tags": ["file_exporters: file"]}, "delete": {"operationId": "file_exporters_file_file_delete", "summary": "Delete a file file system exporter", "description": "FileSystemExporters export content from a publication to a path on the file system.", "parameters": [], "responses": {"204": {"description": ""}}, "tags": ["file_exporters: file"]}, "parameters": [{"name": "file_file_system_exporter_href", "in": "path", "description": "URI of File File System Exporter. e.g.: /pulp/api/v3/file_exporters/file/file/1/", "required": true, "type": "string"}]}, "{file_file_system_exporter_href}export/": {"post": {"operationId": "file_exporters_file_file_export", "description": "Trigger an asynchronous task to export a file publication.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/PublicationExport"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["file_exporters: file"]}, "parameters": [{"name": "file_file_system_exporter_href", "in": "path", "description": "URI of File File System Exporter. e.g.: /pulp/api/v3/file_exporters/file/file/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/publications/file/file/": {"get": {"operationId": "publications_file_file_list", "summary": "List file publications", "description": "\nA FilePublication contains metadata about all the File Content in a particular File Repository Version.\nOnce a FilePublication has been created, it can be hosted using the\nFile Distribution API.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/file.FilePublication"}}}}}}, "tags": ["publications: file"]}, "post": {"operationId": "publications_file_file_create", "summary": "Create a file publication", "description": "Trigger an asynchronous task to publish file content.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FilePublication"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["publications: file"]}, "parameters": []}, "{file_publication_href}": {"get": {"operationId": "publications_file_file_read", "summary": "Inspect a file publication", "description": "\nA FilePublication contains metadata about all the File Content in a particular File Repository Version.\nOnce a FilePublication has been created, it can be hosted using the\nFile Distribution API.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FilePublication"}}}, "tags": ["publications: file"]}, "delete": {"operationId": "publications_file_file_delete", "summary": "Delete a file publication", "description": "\nA FilePublication contains metadata about all the File Content in a particular File Repository Version.\nOnce a FilePublication has been created, it can be hosted using the\nFile Distribution API.", "parameters": [], "responses": {"204": {"description": ""}}, "tags": ["publications: file"]}, "parameters": [{"name": "file_publication_href", "in": "path", "description": "URI of File Publication. e.g.: /pulp/api/v3/publications/file/file/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/remotes/file/file/": {"get": {"operationId": "remotes_file_file_list", "summary": "List file remotes", "description": "\nFileRemote represents an external source of File\nContent. The target url of a FileRemote must contain a file manifest, which contains the\nmetadata for all files at the source.", "parameters": [{"name": "name", "in": "query", "description": "", "required": false, "type": "string"}, {"name": "name__in", "in": "query", "description": "Filter results where name is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "pulp_last_updated__lt", "in": "query", "description": "Filter results where pulp_last_updated is less than value", "required": false, "type": "string"}, {"name": "pulp_last_updated__lte", "in": "query", "description": "Filter results where pulp_last_updated is less than or equal to value", "required": false, "type": "string"}, {"name": "pulp_last_updated__gt", "in": "query", "description": "Filter results where pulp_last_updated is greater than value", "required": false, "type": "string"}, {"name": "pulp_last_updated__gte", "in": "query", "description": "Filter results where pulp_last_updated is greater than or equal to value", "required": false, "type": "string"}, {"name": "pulp_last_updated__range", "in": "query", "description": "Filter results where pulp_last_updated is between two comma separated values", "required": false, "type": "string"}, {"name": "pulp_last_updated", "in": "query", "description": "ISO 8601 formatted dates are supported", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/file.FileRemote"}}}}}}, "tags": ["remotes: file"]}, "post": {"operationId": "remotes_file_file_create", "summary": "Create a file remote", "description": "\nFileRemote represents an external source of File\nContent. The target url of a FileRemote must contain a file manifest, which contains the\nmetadata for all files at the source.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileRemote"}}], "responses": {"201": {"description": "", "schema": {"$ref": "#/definitions/file.FileRemote"}}}, "tags": ["remotes: file"]}, "parameters": []}, "{file_remote_href}": {"get": {"operationId": "remotes_file_file_read", "summary": "Inspect a file remote", "description": "\nFileRemote represents an external source of File\nContent. The target url of a FileRemote must contain a file manifest, which contains the\nmetadata for all files at the source.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileRemote"}}}, "tags": ["remotes: file"]}, "put": {"operationId": "remotes_file_file_update", "summary": "Update a file remote", "description": "Trigger an asynchronous update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileRemote"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["remotes: file"]}, "patch": {"operationId": "remotes_file_file_partial_update", "summary": "Partially update a file remote", "description": "Trigger an asynchronous partial update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileRemote"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["remotes: file"]}, "delete": {"operationId": "remotes_file_file_delete", "summary": "Delete a file remote", "description": "Trigger an asynchronous delete task", "parameters": [], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["remotes: file"]}, "parameters": [{"name": "file_remote_href", "in": "path", "description": "URI of File Remote. e.g.: /pulp/api/v3/remotes/file/file/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/repositories/file/file/": {"get": {"operationId": "repositories_file_file_list", "summary": "List file repositorys", "description": "\nFileRepository represents a single file repository, to which content can be synced, added,\nor removed.", "parameters": [{"name": "name", "in": "query", "description": "", "required": false, "type": "string"}, {"name": "name__in", "in": "query", "description": "Filter results where name is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/file.FileRepository"}}}}}}, "tags": ["repositories: file"]}, "post": {"operationId": "repositories_file_file_create", "summary": "Create a file repository", "description": "\nFileRepository represents a single file repository, to which content can be synced, added,\nor removed.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileRepository"}}], "responses": {"201": {"description": "", "schema": {"$ref": "#/definitions/file.FileRepository"}}}, "tags": ["repositories: file"]}, "parameters": []}, "{file_repository_href}": {"get": {"operationId": "repositories_file_file_read", "summary": "Inspect a file repository", "description": "\nFileRepository represents a single file repository, to which content can be synced, added,\nor removed.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileRepository"}}}, "tags": ["repositories: file"]}, "put": {"operationId": "repositories_file_file_update", "summary": "Update a file repository", "description": "Trigger an asynchronous task to update a repository.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileRepository"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: file"]}, "patch": {"operationId": "repositories_file_file_partial_update", "summary": "Partially update a file repository", "description": "\nFileRepository represents a single file repository, to which content can be synced, added,\nor removed.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/file.FileRepository"}}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/file.FileRepository"}}}, "tags": ["repositories: file"]}, "delete": {"operationId": "repositories_file_file_delete", "summary": "Delete a file repository", "description": "Trigger an asynchronous task to delete a repository.", "parameters": [], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: file"]}, "parameters": [{"name": "file_repository_href", "in": "path", "description": "URI of File Repository. e.g.: /pulp/api/v3/repositories/file/file/1/", "required": true, "type": "string"}]}, "{file_repository_href}modify/": {"post": {"operationId": "repositories_file_file_modify", "description": "Trigger an asynchronous task to create a new repository version.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/RepositoryAddRemoveContent"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: file"]}, "parameters": [{"name": "file_repository_href", "in": "path", "description": "URI of File Repository. e.g.: /pulp/api/v3/repositories/file/file/1/", "required": true, "type": "string"}]}, "{file_repository_href}sync/": {"post": {"operationId": "repositories_file_file_sync", "description": "Trigger an asynchronous task to sync file content.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/RepositorySyncURL"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: file"]}, "parameters": [{"name": "file_repository_href", "in": "path", "description": "URI of File Repository. e.g.: /pulp/api/v3/repositories/file/file/1/", "required": true, "type": "string"}]}, "{file_repository_href}versions/": {"get": {"operationId": "repositories_file_file_versions_list", "summary": "List repository versions", "description": "\nFileRepositoryVersion represents a single file repository version.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "required": false, "type": "string"}, {"name": "number", "in": "query", "description": "", "required": false, "type": "number"}, {"name": "number__lt", "in": "query", "description": "Filter results where number is less than value", "required": false, "type": "number"}, {"name": "number__lte", "in": "query", "description": "Filter results where number is less than or equal to value", "required": false, "type": "number"}, {"name": "number__gt", "in": "query", "description": "Filter results where number is greater than value", "required": false, "type": "number"}, {"name": "number__gte", "in": "query", "description": "Filter results where number is greater than or equal to value", "required": false, "type": "number"}, {"name": "number__range", "in": "query", "description": "Filter results where number is between two comma separated values", "required": false, "type": "number"}, {"name": "pulp_created__lt", "in": "query", "description": "Filter results where pulp_created is less than value", "required": false, "type": "string"}, {"name": "pulp_created__lte", "in": "query", "description": "Filter results where pulp_created is less than or equal to value", "required": false, "type": "string"}, {"name": "pulp_created__gt", "in": "query", "description": "Filter results where pulp_created is greater than value", "required": false, "type": "string"}, {"name": "pulp_created__gte", "in": "query", "description": "Filter results where pulp_created is greater than or equal to value", "required": false, "type": "string"}, {"name": "pulp_created__range", "in": "query", "description": "Filter results where pulp_created is between two comma separated values", "required": false, "type": "string"}, {"name": "content", "in": "query", "description": "Content Unit referenced by HREF", "required": false, "type": "string"}, {"name": "pulp_created", "in": "query", "description": "ISO 8601 formatted dates are supported", "required": false, "type": "string"}, {"name": "limit", "in": "query", "description": "Number of results to return per page.", "required": false, "type": "integer"}, {"name": "offset", "in": "query", "description": "The initial index from which to return the results.", "required": false, "type": "integer"}, {"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"required": ["count", "results"], "type": "object", "properties": {"count": {"type": "integer"}, "next": {"type": "string", "format": "uri", "x-nullable": true}, "previous": {"type": "string", "format": "uri", "x-nullable": true}, "results": {"type": "array", "items": {"$ref": "#/definitions/RepositoryVersion"}}}}}}, "tags": ["repositories: file versions"]}, "parameters": [{"name": "file_repository_href", "in": "path", "description": "URI of File Repository. e.g.: /pulp/api/v3/repositories/file/file/1/", "required": true, "type": "string"}]}, "{file_repository_version_href}": {"get": {"operationId": "repositories_file_file_versions_read", "summary": "Inspect a repository version", "description": "\nFileRepositoryVersion represents a single file repository version.", "parameters": [{"name": "fields", "in": "query", "description": "A list of fields to include in the response.", "required": false, "type": "string"}, {"name": "exclude_fields", "in": "query", "description": "A list of fields to exclude from the response.", "required": false, "type": "string"}], "responses": {"200": {"description": "", "schema": {"$ref": "#/definitions/RepositoryVersion"}}}, "tags": ["repositories: file versions"]}, "delete": {"operationId": "repositories_file_file_versions_delete", "summary": "Delete a repository version", "description": "Trigger an asynchronous task to delete a repositroy version.", "parameters": [], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: file versions"]}, "parameters": [{"name": "file_repository_version_href", "in": "path", "description": "URI of Repository Version. e.g.: /pulp/api/v3/repositories/file/file/1/versions/1/", "required": true, "type": "string"}]}}, "definitions": {"file.FileContent": {"required": ["relative_path"], "type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "artifact": {"title": "Artifact", "description": "Artifact file representing the physical content", "type": "string", "format": "uri"}, "relative_path": {"title": "Relative path", "description": "Path where the artifact is located relative to distributions base_path", "type": "string", "minLength": 1}, "md5": {"title": "Md5", "description": "The MD5 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}, "sha1": {"title": "Sha1", "description": "The SHA-1 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}, "sha224": {"title": "Sha224", "description": "The SHA-224 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}, "sha256": {"title": "Sha256", "description": "The SHA-256 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}, "sha384": {"title": "Sha384", "description": "The SHA-384 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}, "sha512": {"title": "Sha512", "description": "The SHA-512 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}}}, "AsyncOperationResponse": {"required": ["task"], "type": "object", "properties": {"task": {"title": "Task", "description": "The href of the task.", "type": "string", "format": "uri"}}}, "file.FileDistribution": {"required": ["base_path", "name"], "type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "base_path": {"title": "Base path", "description": "The base (relative) path component of the published url. Avoid paths that overlap with other distribution base paths (e.g. \"foo\" and \"foo/bar\")", "type": "string", "minLength": 1}, "base_url": {"title": "Base url", "description": "The URL for accessing the publication as defined by this distribution.", "type": "string", "readOnly": true, "minLength": 1}, "content_guard": {"title": "Content guard", "description": "An optional content-guard.", "type": "string", "format": "uri", "x-nullable": true}, "name": {"title": "Name", "description": "A unique name. Ex, `rawhide` and `stable`.", "type": "string", "minLength": 1}, "publication": {"title": "Publication", "description": "Publication to be served", "type": "string", "format": "uri", "x-nullable": true}}}, "file.FileFileSystemExporter": {"required": ["path", "name"], "type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "path": {"title": "Path", "description": "File system location to export to.", "type": "string", "minLength": 1}, "name": {"title": "Name", "description": "Unique name of the file system exporter.", "type": "string", "minLength": 1}}}, "PublicationExport": {"required": ["publication"], "type": "object", "properties": {"publication": {"title": "Publication", "description": "A URI of the publication to be exported.", "type": "string", "format": "uri"}}}, "file.FilePublication": {"type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "repository_version": {"title": "Repository version", "type": "string", "format": "uri"}, "repository": {"title": "Repository", "description": "A URI of the repository to be published.", "type": "string", "format": "uri"}, "distributions": {"description": "This publication is currently hosted as defined by these distributions.", "type": "array", "items": {"description": "This publication is currently hosted as defined by these distributions.", "type": "string", "format": "uri"}, "readOnly": true, "uniqueItems": true}, "manifest": {"title": "Manifest", "description": "Filename to use for manifest file containing metadata for all the files.", "type": "string", "default": "PULP_MANIFEST", "minLength": 1}}}, "file.FileRemote": {"required": ["name", "url"], "type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "name": {"title": "Name", "description": "A unique name for this remote.", "type": "string", "minLength": 1}, "url": {"title": "Url", "description": "The URL of an external content source.", "type": "string", "minLength": 1}, "ca_cert": {"title": "Ca cert", "description": "A string containing the PEM encoded CA certificate used to validate the server certificate presented by the remote server. All new line characters must be escaped. Returns SHA256 sum on GET.", "type": "string", "minLength": 1, "x-nullable": true}, "client_cert": {"title": "Client cert", "description": "A string containing the PEM encoded client certificate used for authentication. All new line characters must be escaped. Returns SHA256 sum on GET.", "type": "string", "minLength": 1, "x-nullable": true}, "client_key": {"title": "Client key", "description": "A PEM encoded private key used for authentication. Returns SHA256 sum on GET.", "type": "string", "minLength": 1, "x-nullable": true}, "tls_validation": {"title": "Tls validation", "description": "If True, TLS peer validation must be performed.", "type": "boolean"}, "proxy_url": {"title": "Proxy url", "description": "The proxy URL. Format: scheme://user:password@host:port", "type": "string", "minLength": 1, "x-nullable": true}, "pulp_last_updated": {"title": "Pulp last updated", "description": "Timestamp of the most recent update of the remote.", "type": "string", "format": "date-time", "readOnly": true}, "download_concurrency": {"title": "Download concurrency", "description": "Total number of simultaneous connections.", "type": "integer", "minimum": 1}, "policy": {"title": "Policy", "description": "The policy to use when downloading content. The possible values include: 'immediate', 'on_demand', and 'streamed'. 'immediate' is the default.", "type": "string", "enum": ["immediate", "on_demand", "streamed"], "default": "immediate"}}}, "file.FileRepository": {"required": ["name"], "type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "versions_href": {"title": "Versions href", "type": "string", "format": "uri", "readOnly": true}, "latest_version_href": {"title": "Latest version href", "type": "string", "format": "uri", "readOnly": true}, "name": {"title": "Name", "description": "A unique name for this repository.", "type": "string", "minLength": 1}, "description": {"title": "Description", "description": "An optional description.", "type": "string", "minLength": 1, "x-nullable": true}}}, "RepositoryAddRemoveContent": {"type": "object", "properties": {"add_content_units": {"description": "A list of content units to add to a new repository version. This content is added after remove_content_units are removed.", "type": "array", "items": {"type": "string"}}, "remove_content_units": {"description": "A list of content units to remove from the latest repository version. You may also specify '*' as an entry to remove all content. This content is removed before add_content_units are added.", "type": "array", "items": {"type": "string"}}, "base_version": {"title": "Base version", "description": "A repository version whose content will be used as the initial set of content for the new repository version", "type": "string", "format": "uri"}}}, "RepositorySyncURL": {"required": ["remote"], "type": "object", "properties": {"remote": {"title": "Remote", "description": "A URI of the repository to be synchronized.", "type": "string", "format": "uri"}, "mirror": {"title": "Mirror", "description": "If ``True``, synchronization will remove all content that is not present in the remote repository. If ``False``, sync will be additive only.", "type": "boolean", "default": false}}}, "ContentSummary": {"title": "Content summary", "description": "Various count summaries of the content in the version and the HREF to view them.", "required": ["added", "removed", "present"], "type": "object", "properties": {"added": {"title": "Added", "type": "object", "additionalProperties": {"type": "object", "additionalProperties": {"type": "string"}}}, "removed": {"title": "Removed", "type": "object", "additionalProperties": {"type": "object", "additionalProperties": {"type": "string"}}}, "present": {"title": "Present", "type": "object", "additionalProperties": {"type": "object", "additionalProperties": {"type": "string"}}}}}, "RepositoryVersion": {"type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "pulp_created": {"title": "Pulp created", "description": "Timestamp of creation.", "type": "string", "format": "date-time", "readOnly": true}, "number": {"title": "Number", "type": "integer", "readOnly": true}, "base_version": {"title": "Base version", "description": "A repository version whose content was used as the initial set of content for this repository version", "type": "string", "format": "uri"}, "content_summary": {"$ref": "#/definitions/ContentSummary"}}}}, "tags": [{"name": "content: files", "x-displayName": "Content: Files"}, {"name": "distributions: file", "x-displayName": "Distributions: File"}, {"name": "file_exporters: file", "x-displayName": "File_Exporters: File"}, {"name": "publications: file", "x-displayName": "Publications: File"}, {"name": "remotes: file", "x-displayName": "Remotes: File"}, {"name": "repositories: file", "x-displayName": "Repositories: File"}, {"name": "repositories: file versions", "x-displayName": "Repositories: File Versions"}]} \ No newline at end of file From 62c8a88fc27fce150b57269461cf8f0e76976bf2 Mon Sep 17 00:00:00 2001 From: Brian Bouterse Date: Tue, 3 Dec 2019 17:47:01 -0500 Subject: [PATCH 11/16] Version bump to 0.1.0.dev [noissue] --- pulp_file/__init__.py | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pulp_file/__init__.py b/pulp_file/__init__.py index 27b6cd27..5b447b78 100644 --- a/pulp_file/__init__.py +++ b/pulp_file/__init__.py @@ -1,3 +1,3 @@ -__version__ = "0.1.0rc2" +__version__ = "0.1.0.dev" default_app_config = "pulp_file.app.PulpFilePluginAppConfig" diff --git a/setup.py b/setup.py index a888bd94..a4c88324 100644 --- a/setup.py +++ b/setup.py @@ -9,7 +9,7 @@ setup( name="pulp-file", - version="0.1.0rc2", + version="0.1.0.dev", description="File plugin for the Pulp Project", long_description=long_description, license="GPLv2+", From 32c1d08f953eeb9e7366021c73a31df67ad9a85f Mon Sep 17 00:00:00 2001 From: Daniel Alley Date: Thu, 5 Dec 2019 14:06:26 -0500 Subject: [PATCH 12/16] Add CONTENT_TYPES to repo definition Required PR: https://github.com/pulp/pulpcore/pull/441 re: #5701 https://pulp.plan.io/issues/5701 (cherry picked from commit fb3cda3c7314d0d7c5bb3e0c1e440808959be191) --- CHANGES/5701.misc | 1 + pulp_file/app/models.py | 1 + .../tests/unit/test_core/test_repo_version.py | 61 +++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 CHANGES/5701.misc create mode 100644 pulp_file/tests/unit/test_core/test_repo_version.py diff --git a/CHANGES/5701.misc b/CHANGES/5701.misc new file mode 100644 index 00000000..3eddafb6 --- /dev/null +++ b/CHANGES/5701.misc @@ -0,0 +1 @@ +Added CONTENT_TYPES to the FileRepository definition. diff --git a/pulp_file/app/models.py b/pulp_file/app/models.py index 09f32c85..a5cd9d87 100644 --- a/pulp_file/app/models.py +++ b/pulp_file/app/models.py @@ -46,6 +46,7 @@ class FileRepository(Repository): """ TYPE = "file" + CONTENT_TYPES = [FileContent] class Meta: default_related_name = "%(app_label)s_%(model_name)s" diff --git a/pulp_file/tests/unit/test_core/test_repo_version.py b/pulp_file/tests/unit/test_core/test_repo_version.py new file mode 100644 index 00000000..e7d2fd14 --- /dev/null +++ b/pulp_file/tests/unit/test_core/test_repo_version.py @@ -0,0 +1,61 @@ +from unittest.mock import patch + +from django.core.files.uploadedfile import SimpleUploadedFile +from django.test import TestCase +from pulpcore.plugin.models import Artifact, ContentArtifact, RepositoryVersion +from pulpcore.app.models.task import Task + +from pulp_file.app.models import FileContent, FileRepository + + +class RepositoryVersionCRUDTestCase(TestCase): + """Test RepositoryVersion CRUD and content association. + """ + + def setUp(self): + """Create Artifact, Content, ContentArtifact, and Repository. + """ + artifact = Artifact.objects.create( + md5="ec0df26316b1deb465d2d18af7b600f5", + sha1="cf6121b0425c2f2e3a2fcfe6f402d59730eb5661", + sha224="9a6297eb28d91fad5277c0833856031d0e940432ad807658bd2b60f4", + sha256="c8ddb3dcf8da48278d57b0b94486832c66a8835316ccf7ca39e143cbfeb9184f", + sha384=( + "53a8a0cebcb7780ed7624790c9d9a4d09ba74b47270d397f5ed7bc1c46777a0f" + "be362aaf2bbe7f0966a350a12d76e28d" + ), + # noqa + sha512=( + "a94a65f19b864d184a2a5e07fa29766f08c6d49b6f624b3dd3a36a9826" + "7b9137d9c35040b3e105448a869c23c2aec04c9e064e3555295c1b8de6515eed4da27d" + ), + # noqa + size=1024, + file=SimpleUploadedFile("test_filename", b"test content"), + ) + artifact.save() + self.content = FileContent.objects.create() + self.content.save() + self.content_artifact = ContentArtifact.objects.create( + artifact=artifact, content=self.content, relative_path=artifact.file.path + ) + self.content_artifact.save() + self.repository = FileRepository.objects.create(name="foo") + self.repository.save() + self.task = Task.objects.create(state="Completed", name="test-task") + self.task.save() + + @patch("pulpcore.app.models.task.get_current_job") + def test_create_repository_version(self, mock_task): + """Test creating a RepositoryVersion. + """ + mock_task.return_value.id = self.task.pk + with self.repository.new_version() as new_version: + new_version.add_content(FileContent.objects.filter(pk=self.content.pk)) + self.assertTrue(RepositoryVersion.objects.filter().exists()) + + def test_remove_repository_version(self): + """Test deleting a RepositoryVersion. + """ + RepositoryVersion.objects.filter().delete() + self.assertFalse(RepositoryVersion.objects.filter().exists()) From 330309ad9229d59862b7fabe916dc437b0f149bc Mon Sep 17 00:00:00 2001 From: David Davis Date: Tue, 10 Dec 2019 15:28:20 -0500 Subject: [PATCH 13/16] Label file system exporter as a tech preview ref #5563 (cherry picked from commit 19ee3858cc2f11b722e9966d7bb202bedbd5b91d) Required PR: https://github.com/pulp/pulpcore/pull/450 --- CHANGES/5563.doc | 1 + pulp_file/app/viewsets.py | 3 +++ 2 files changed, 4 insertions(+) create mode 100644 CHANGES/5563.doc diff --git a/CHANGES/5563.doc b/CHANGES/5563.doc new file mode 100644 index 00000000..c101eda1 --- /dev/null +++ b/CHANGES/5563.doc @@ -0,0 +1 @@ +Labeling Exporters as tech preview. diff --git a/pulp_file/app/viewsets.py b/pulp_file/app/viewsets.py index ceae0cc5..3233740d 100644 --- a/pulp_file/app/viewsets.py +++ b/pulp_file/app/viewsets.py @@ -178,6 +178,9 @@ class FileDistributionViewSet(BaseDistributionViewSet): class FileFileSystemExporterViewSet(FileSystemExporterViewSet): """ FileSystemExporters export content from a publication to a path on the file system. + + WARNING: This feature is provided as a tech preview and may change in the future. Backwards + compatibility is not guaranteed. """ endpoint_name = "file" From 0a0b7e0b129f90c6d9b5a914e9dd8bf638a59a48 Mon Sep 17 00:00:00 2001 From: Brian Bouterse Date: Thu, 12 Dec 2019 09:16:48 -0500 Subject: [PATCH 14/16] Version bump to 0.1.0 This also bumps the pulpcore requirement to 3.0.0 [noissue] --- pulp_file/__init__.py | 2 +- setup.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pulp_file/__init__.py b/pulp_file/__init__.py index 5b447b78..20c84436 100644 --- a/pulp_file/__init__.py +++ b/pulp_file/__init__.py @@ -1,3 +1,3 @@ -__version__ = "0.1.0.dev" +__version__ = "0.1.0" default_app_config = "pulp_file.app.PulpFilePluginAppConfig" diff --git a/setup.py b/setup.py index a4c88324..54721ea7 100644 --- a/setup.py +++ b/setup.py @@ -2,14 +2,14 @@ from setuptools import setup, find_packages -requirements = ["pulpcore>=3.0.0rc9,<3.1"] +requirements = ["pulpcore>=3.0.0,<3.1"] with open("README.rst") as f: long_description = f.read() setup( name="pulp-file", - version="0.1.0.dev", + version="0.1.0", description="File plugin for the Pulp Project", long_description=long_description, license="GPLv2+", From 99cfda2c05288dae9d08babf99b20f7f32ebdeaa Mon Sep 17 00:00:00 2001 From: Brian Bouterse Date: Thu, 12 Dec 2019 09:18:07 -0500 Subject: [PATCH 15/16] Adds 0.1.0 changelog [noissue] --- CHANGES.rst | 20 ++++++++++++++++++++ CHANGES/5563.doc | 1 - CHANGES/5701.misc | 1 - 3 files changed, 20 insertions(+), 2 deletions(-) delete mode 100644 CHANGES/5563.doc delete mode 100644 CHANGES/5701.misc diff --git a/CHANGES.rst b/CHANGES.rst index b24a8573..6f0339bb 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -13,6 +13,26 @@ Changelog .. towncrier release notes start +0.1.0 (2019-12-12) +================== + + +Improved Documentation +---------------------- + +- Labeling Exporters as tech preview. + `#5563 `_ + + +Misc +---- + +- `#5701 `_ + + +---- + + 0.1.0rc2 (2019-12-03) ===================== diff --git a/CHANGES/5563.doc b/CHANGES/5563.doc deleted file mode 100644 index c101eda1..00000000 --- a/CHANGES/5563.doc +++ /dev/null @@ -1 +0,0 @@ -Labeling Exporters as tech preview. diff --git a/CHANGES/5701.misc b/CHANGES/5701.misc deleted file mode 100644 index 3eddafb6..00000000 --- a/CHANGES/5701.misc +++ /dev/null @@ -1 +0,0 @@ -Added CONTENT_TYPES to the FileRepository definition. From cf769bd8be8fd9af30c54ae6939fb6de19305e4a Mon Sep 17 00:00:00 2001 From: Brian Bouterse Date: Thu, 12 Dec 2019 09:18:47 -0500 Subject: [PATCH 16/16] Version bump to 0.1.1.dev [noissue] --- pulp_file/__init__.py | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pulp_file/__init__.py b/pulp_file/__init__.py index 20c84436..42743215 100644 --- a/pulp_file/__init__.py +++ b/pulp_file/__init__.py @@ -1,3 +1,3 @@ -__version__ = "0.1.0" +__version__ = "0.1.1.dev" default_app_config = "pulp_file.app.PulpFilePluginAppConfig" diff --git a/setup.py b/setup.py index 54721ea7..7c844412 100644 --- a/setup.py +++ b/setup.py @@ -9,7 +9,7 @@ setup( name="pulp-file", - version="0.1.0", + version="0.1.1.dev", description="File plugin for the Pulp Project", long_description=long_description, license="GPLv2+",