diff --git a/CHANGES/5367.feature b/CHANGES/5367.feature new file mode 100644 index 000000000..cf590f4ea --- /dev/null +++ b/CHANGES/5367.feature @@ -0,0 +1 @@ +Add a retention policy feature - when specified, the latest N versions of each package will be kept and older versions will be purged. \ No newline at end of file diff --git a/coverage.md b/coverage.md index 6d2b65976..52d7c3a3d 100644 --- a/coverage.md +++ b/coverage.md @@ -12,7 +12,7 @@ Manual Coverage | As a user, I can sync all yum content types ( NO drpm) in additive mode (default) | PART | checking counts of packages and advisories | | As a user, I can sync and skip specific type (srpm) | NO | | | As a user, I can sync opensuse repository | NO | | -| As a user, I can sync from a mirror list | YES | | +| As a user, I can sync from a mirror list | YES | | | **Duplicates** | | | | As a user, I have only one advisory with the same id in a repo version | YES | | | As a user, I have only one module with the same NSVCA in a repo version | NO | | @@ -41,3 +41,6 @@ Manual Coverage | As a user, when a module is removed, its packages are removed as well ( not referenced by other modules) | NO | | | **Consumer cases** | | | | As a user, I can use dnf to install all the content served by Pulp | PART | only covers rpm installation | +| **Retention** | | | +| As a user, I can have a repository option that retains the latest N packages of the same name | PART | No coverage of packages with differing arch in same repo (src, i686, x86_64), no coverage of non-sync repo modifications, no coverage of modular RPMs being exempted. | + diff --git a/docs/_static/api.json b/docs/_static/api.json index b17409fe2..0b630a68d 100644 --- a/docs/_static/api.json +++ b/docs/_static/api.json @@ -1 +1 @@ -{"swagger": "2.0", "info": {"title": "Pulp 3 API", "license": {"name": "GPLv2+"}, "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/rpm/advisories/": {"get": {"operationId": "content_rpm_advisories_list", "summary": "List update records", "description": "Define endpoint name which will appear in the API endpoint for this content type.\nFor example::\n http://pulp.example.com/pulp/api/v3/content/rpm/advisories/\n\nAlso specify queryset and serializer for UpdateRecord.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "required": false, "type": "string"}, {"name": "id", "in": "query", "description": "Filter results where id matches value", "required": false, "type": "string"}, {"name": "id__in", "in": "query", "description": "Filter results where id is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "status", "in": "query", "description": "Filter results where status matches value", "required": false, "type": "string"}, {"name": "status__in", "in": "query", "description": "Filter results where status is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "status__ne", "in": "query", "description": "Filter results where status not equal to value", "required": false, "type": "string"}, {"name": "severity", "in": "query", "description": "Filter results where severity matches value", "required": false, "type": "string"}, {"name": "severity__in", "in": "query", "description": "Filter results where severity is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "severity__ne", "in": "query", "description": "Filter results where severity not equal to value", "required": false, "type": "string"}, {"name": "type", "in": "query", "description": "Filter results where type matches value", "required": false, "type": "string"}, {"name": "type__in", "in": "query", "description": "Filter results where type is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "type__ne", "in": "query", "description": "Filter results where type not equal to 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/rpm.UpdateRecordRead"}}}}}}, "tags": ["content: advisories"]}, "post": {"operationId": "content_rpm_advisories_create", "summary": "Create an update record", "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 may 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: advisories"]}, "parameters": []}, "{update_record_href}": {"get": {"operationId": "content_rpm_advisories_read", "summary": "Inspect an update record", "description": "Define endpoint name which will appear in the API endpoint for this content type.\nFor example::\n http://pulp.example.com/pulp/api/v3/content/rpm/advisories/\n\nAlso specify queryset and serializer for UpdateRecord.", "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/rpm.UpdateRecordRead"}}}, "tags": ["content: advisories"]}, "parameters": [{"name": "update_record_href", "in": "path", "description": "URI of Update Record. e.g.: /pulp/api/v3/content/rpm/advisories/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/content/rpm/distribution_trees/": {"get": {"operationId": "content_rpm_distribution_trees_list", "summary": "List distribution trees", "description": "Distribution Tree Viewset.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "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/rpm.DistributionTreeRead"}}}}}}, "tags": ["content: distribution_trees"]}, "parameters": []}, "{distribution_tree_href}": {"get": {"operationId": "content_rpm_distribution_trees_read", "summary": "Inspect a distribution tree", "description": "Distribution Tree Viewset.", "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/rpm.DistributionTreeRead"}}}, "tags": ["content: distribution_trees"]}, "delete": {"operationId": "content_rpm_distribution_trees_delete", "summary": "Delete a distribution tree", "description": "Distribution Tree Viewset.", "parameters": [], "responses": {"204": {"description": ""}}, "tags": ["content: distribution_trees"]}, "parameters": [{"name": "distribution_tree_href", "in": "path", "description": "URI of Distribution Tree. e.g.: /pulp/api/v3/content/rpm/distribution_trees/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/content/rpm/modulemd_defaults/": {"get": {"operationId": "content_rpm_modulemd_defaults_list", "summary": "List modulemd defaultss", "description": "ViewSet for Modulemd.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "required": false, "type": "string"}, {"name": "module", "in": "query", "description": "Filter results where module matches value", "required": false, "type": "string"}, {"name": "module__in", "in": "query", "description": "Filter results where module is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "stream", "in": "query", "description": "Filter results where stream matches value", "required": false, "type": "string"}, {"name": "stream__in", "in": "query", "description": "Filter results where stream is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "sha256", "in": "query", "description": "", "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/rpm.ModulemdDefaultsRead"}}}}}}, "tags": ["content: modulemd_defaults"]}, "post": {"operationId": "content_rpm_modulemd_defaults_create", "summary": "Create a modulemd defaults", "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 may 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"}, {"name": "module", "in": "formData", "description": "Modulemd name.", "required": true, "type": "string", "minLength": 1}, {"name": "stream", "in": "formData", "description": "Modulemd default stream.", "required": true, "type": "string", "minLength": 1}, {"name": "profiles", "in": "formData", "description": "Default profiles for modulemd streams.", "required": true, "type": "string"}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "consumes": ["multipart/form-data", "application/x-www-form-urlencoded"], "tags": ["content: modulemd_defaults"]}, "parameters": []}, "{modulemd_defaults_href}": {"get": {"operationId": "content_rpm_modulemd_defaults_read", "summary": "Inspect a modulemd defaults", "description": "ViewSet for Modulemd.", "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/rpm.ModulemdDefaultsRead"}}}, "tags": ["content: modulemd_defaults"]}, "parameters": [{"name": "modulemd_defaults_href", "in": "path", "description": "URI of Modulemd Defaults. e.g.: /pulp/api/v3/content/rpm/modulemd_defaults/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/content/rpm/modulemds/": {"get": {"operationId": "content_rpm_modulemds_list", "summary": "List modulemds", "description": "ViewSet for Modulemd.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "required": false, "type": "string"}, {"name": "name", "in": "query", "description": "Filter results where name matches value", "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": "stream", "in": "query", "description": "Filter results where stream matches value", "required": false, "type": "string"}, {"name": "stream__in", "in": "query", "description": "Filter results where stream is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "sha256", "in": "query", "description": "", "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/rpm.ModulemdRead"}}}}}}, "tags": ["content: modulemds"]}, "post": {"operationId": "content_rpm_modulemds_create", "summary": "Create a modulemd", "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 may 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"}, {"name": "name", "in": "formData", "description": "Modulemd name.", "required": true, "type": "string", "minLength": 1}, {"name": "stream", "in": "formData", "description": "Stream name.", "required": true, "type": "string", "minLength": 1}, {"name": "version", "in": "formData", "description": "Modulemd version.", "required": true, "type": "string", "minLength": 1}, {"name": "context", "in": "formData", "description": "Modulemd context.", "required": true, "type": "string", "minLength": 1}, {"name": "arch", "in": "formData", "description": "Modulemd architecture.", "required": true, "type": "string", "minLength": 1}, {"name": "artifacts", "in": "formData", "description": "Modulemd artifacts.", "required": true, "type": "string"}, {"name": "dependencies", "in": "formData", "description": "Modulemd dependencies.", "required": true, "type": "string"}, {"name": "packages", "in": "formData", "description": "Modulemd artifacts' packages.", "required": false, "type": "array", "items": {"type": "string", "format": "uri", "x-nullable": true}, "uniqueItems": true}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "consumes": ["multipart/form-data", "application/x-www-form-urlencoded"], "tags": ["content: modulemds"]}, "parameters": []}, "{modulemd_href}": {"get": {"operationId": "content_rpm_modulemds_read", "summary": "Inspect a modulemd", "description": "ViewSet for Modulemd.", "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/rpm.ModulemdRead"}}}, "tags": ["content: modulemds"]}, "parameters": [{"name": "modulemd_href", "in": "path", "description": "URI of Modulemd. e.g.: /pulp/api/v3/content/rpm/modulemds/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/content/rpm/packagecategories/": {"get": {"operationId": "content_rpm_packagecategories_list", "summary": "List package categorys", "description": "PackageCategory ViewSet.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "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/rpm.PackageCategoryRead"}}}}}}, "tags": ["content: packagecategories"]}, "parameters": []}, "{package_category_href}": {"get": {"operationId": "content_rpm_packagecategories_read", "summary": "Inspect a package category", "description": "PackageCategory ViewSet.", "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/rpm.PackageCategoryRead"}}}, "tags": ["content: packagecategories"]}, "delete": {"operationId": "content_rpm_packagecategories_delete", "summary": "Delete a package category", "description": "PackageCategory ViewSet.", "parameters": [], "responses": {"204": {"description": ""}}, "tags": ["content: packagecategories"]}, "parameters": [{"name": "package_category_href", "in": "path", "description": "URI of Package Category. e.g.: /pulp/api/v3/content/rpm/packagecategories/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/content/rpm/packageenvironments/": {"get": {"operationId": "content_rpm_packageenvironments_list", "summary": "List package environments", "description": "PackageEnvironment ViewSet.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "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/rpm.PackageEnvironmentRead"}}}}}}, "tags": ["content: packageenvironments"]}, "parameters": []}, "{package_environment_href}": {"get": {"operationId": "content_rpm_packageenvironments_read", "summary": "Inspect a package environment", "description": "PackageEnvironment ViewSet.", "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/rpm.PackageEnvironmentRead"}}}, "tags": ["content: packageenvironments"]}, "delete": {"operationId": "content_rpm_packageenvironments_delete", "summary": "Delete a package environment", "description": "PackageEnvironment ViewSet.", "parameters": [], "responses": {"204": {"description": ""}}, "tags": ["content: packageenvironments"]}, "parameters": [{"name": "package_environment_href", "in": "path", "description": "URI of Package Environment. e.g.: /pulp/api/v3/content/rpm/packageenvironments/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/content/rpm/packagegroups/": {"get": {"operationId": "content_rpm_packagegroups_list", "summary": "List package groups", "description": "PackageGroup ViewSet.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "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/rpm.PackageGroupRead"}}}}}}, "tags": ["content: packagegroups"]}, "parameters": []}, "{package_group_href}": {"get": {"operationId": "content_rpm_packagegroups_read", "summary": "Inspect a package group", "description": "PackageGroup ViewSet.", "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/rpm.PackageGroupRead"}}}, "tags": ["content: packagegroups"]}, "delete": {"operationId": "content_rpm_packagegroups_delete", "summary": "Delete a package group", "description": "PackageGroup ViewSet.", "parameters": [], "responses": {"204": {"description": ""}}, "tags": ["content: packagegroups"]}, "parameters": [{"name": "package_group_href", "in": "path", "description": "URI of Package Group. e.g.: /pulp/api/v3/content/rpm/packagegroups/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/content/rpm/packagelangpacks/": {"get": {"operationId": "content_rpm_packagelangpacks_list", "summary": "List package langpackss", "description": "PackageLangpacks ViewSet.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "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/rpm.PackageLangpacksRead"}}}}}}, "tags": ["content: packagelangpacks"]}, "parameters": []}, "{package_langpacks_href}": {"get": {"operationId": "content_rpm_packagelangpacks_read", "summary": "Inspect a package langpacks", "description": "PackageLangpacks ViewSet.", "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/rpm.PackageLangpacksRead"}}}, "tags": ["content: packagelangpacks"]}, "delete": {"operationId": "content_rpm_packagelangpacks_delete", "summary": "Delete a package langpacks", "description": "PackageLangpacks ViewSet.", "parameters": [], "responses": {"204": {"description": ""}}, "tags": ["content: packagelangpacks"]}, "parameters": [{"name": "package_langpacks_href", "in": "path", "description": "URI of Package Langpacks. e.g.: /pulp/api/v3/content/rpm/packagelangpacks/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/content/rpm/packages/": {"get": {"operationId": "content_rpm_packages_list", "summary": "List packages", "description": "Define endpoint name which will appear in the API endpoint for this content type.\nFor example::\n http://pulp.example.com/pulp/api/v3/content/rpm/packages/\n\nAlso specify queryset and serializer for Package.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "required": false, "type": "string"}, {"name": "name", "in": "query", "description": "Filter results where name matches value", "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": "name__ne", "in": "query", "description": "Filter results where name not equal to value", "required": false, "type": "string"}, {"name": "epoch", "in": "query", "description": "Filter results where epoch matches value", "required": false, "type": "string"}, {"name": "epoch__in", "in": "query", "description": "Filter results where epoch is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "epoch__ne", "in": "query", "description": "Filter results where epoch not equal to value", "required": false, "type": "string"}, {"name": "version", "in": "query", "description": "Filter results where version matches value", "required": false, "type": "string"}, {"name": "version__in", "in": "query", "description": "Filter results where version is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "version__ne", "in": "query", "description": "Filter results where version not equal to value", "required": false, "type": "string"}, {"name": "release", "in": "query", "description": "Filter results where release matches value", "required": false, "type": "string"}, {"name": "release__in", "in": "query", "description": "Filter results where release is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "release__ne", "in": "query", "description": "Filter results where release not equal to value", "required": false, "type": "string"}, {"name": "arch", "in": "query", "description": "Filter results where arch matches value", "required": false, "type": "string"}, {"name": "arch__in", "in": "query", "description": "Filter results where arch is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "arch__ne", "in": "query", "description": "Filter results where arch not equal to value", "required": false, "type": "string"}, {"name": "pkgId", "in": "query", "description": "Filter results where pkgId matches value", "required": false, "type": "string"}, {"name": "pkgId__in", "in": "query", "description": "Filter results where pkgId is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "checksum_type", "in": "query", "description": "Filter results where checksum_type matches value", "required": false, "type": "string"}, {"name": "checksum_type__in", "in": "query", "description": "Filter results where checksum_type is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "checksum_type__ne", "in": "query", "description": "Filter results where checksum_type not equal to value", "required": false, "type": "string"}, {"name": "sha256", "in": "query", "description": "", "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/rpm.PackageRead"}}}}}}, "tags": ["content: packages"]}, "post": {"operationId": "content_rpm_packages_create", "summary": "Create a package", "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 may 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: packages"]}, "parameters": []}, "{package_href}": {"get": {"operationId": "content_rpm_packages_read", "summary": "Inspect a package", "description": "Define endpoint name which will appear in the API endpoint for this content type.\nFor example::\n http://pulp.example.com/pulp/api/v3/content/rpm/packages/\n\nAlso specify queryset and serializer for Package.", "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/rpm.PackageRead"}}}, "tags": ["content: packages"]}, "parameters": [{"name": "package_href", "in": "path", "description": "URI of Package. e.g.: /pulp/api/v3/content/rpm/packages/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/content/rpm/repo_metadata_files/": {"get": {"operationId": "content_rpm_repo_metadata_files_list", "summary": "List repo metadata files", "description": "RepoMetadataFile Viewset.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "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/rpm.RepoMetadataFileRead"}}}}}}, "tags": ["content: repo_metadata_files"]}, "parameters": []}, "{repo_metadata_file_href}": {"get": {"operationId": "content_rpm_repo_metadata_files_read", "summary": "Inspect a repo metadata file", "description": "RepoMetadataFile Viewset.", "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/rpm.RepoMetadataFileRead"}}}, "tags": ["content: repo_metadata_files"]}, "delete": {"operationId": "content_rpm_repo_metadata_files_delete", "summary": "Delete a repo metadata file", "description": "RepoMetadataFile Viewset.", "parameters": [], "responses": {"204": {"description": ""}}, "tags": ["content: repo_metadata_files"]}, "parameters": [{"name": "repo_metadata_file_href", "in": "path", "description": "URI of Repo Metadata File. e.g.: /pulp/api/v3/content/rpm/repo_metadata_files/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/distributions/rpm/rpm/": {"get": {"operationId": "distributions_rpm_rpm_list", "summary": "List rpm distributions", "description": "ViewSet for RPM Distributions.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "required": false, "type": "string"}, {"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/rpm.RpmDistributionRead"}}}}}}, "tags": ["distributions: rpm"]}, "post": {"operationId": "distributions_rpm_rpm_create", "summary": "Create a rpm distribution", "description": "Trigger an asynchronous create task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/rpm.RpmDistribution"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["distributions: rpm"]}, "parameters": []}, "{rpm_distribution_href}": {"get": {"operationId": "distributions_rpm_rpm_read", "summary": "Inspect a rpm distribution", "description": "ViewSet for RPM Distributions.", "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/rpm.RpmDistributionRead"}}}, "tags": ["distributions: rpm"]}, "put": {"operationId": "distributions_rpm_rpm_update", "summary": "Update a rpm distribution", "description": "Trigger an asynchronous update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/rpm.RpmDistribution"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["distributions: rpm"]}, "patch": {"operationId": "distributions_rpm_rpm_partial_update", "summary": "Partially update a rpm distribution", "description": "Trigger an asynchronous partial update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/rpm.RpmDistribution"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["distributions: rpm"]}, "delete": {"operationId": "distributions_rpm_rpm_delete", "summary": "Delete a rpm distribution", "description": "Trigger an asynchronous delete task", "parameters": [], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["distributions: rpm"]}, "parameters": [{"name": "rpm_distribution_href", "in": "path", "description": "URI of Rpm Distribution. e.g.: /pulp/api/v3/distributions/rpm/rpm/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/publications/rpm/rpm/": {"get": {"operationId": "publications_rpm_rpm_list", "summary": "List rpm publications", "description": "ViewSet for Rpm Publications.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "required": false, "type": "string"}, {"name": "repository_version", "in": "query", "description": "Repository Version referenced by HREF", "required": false, "type": "string"}, {"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": "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/rpm.RpmPublicationRead"}}}}}}, "tags": ["publications: rpm"]}, "post": {"operationId": "publications_rpm_rpm_create", "summary": "Create a rpm publication", "description": "Trigger an asynchronous task to create a new RPM content publication.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/rpm.RpmPublication"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["publications: rpm"]}, "parameters": []}, "{rpm_publication_href}": {"get": {"operationId": "publications_rpm_rpm_read", "summary": "Inspect a rpm publication", "description": "ViewSet for Rpm Publications.", "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/rpm.RpmPublicationRead"}}}, "tags": ["publications: rpm"]}, "delete": {"operationId": "publications_rpm_rpm_delete", "summary": "Delete a rpm publication", "description": "ViewSet for Rpm Publications.", "parameters": [], "responses": {"204": {"description": ""}}, "tags": ["publications: rpm"]}, "parameters": [{"name": "rpm_publication_href", "in": "path", "description": "URI of Rpm Publication. e.g.: /pulp/api/v3/publications/rpm/rpm/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/remotes/rpm/rpm/": {"get": {"operationId": "remotes_rpm_rpm_list", "summary": "List rpm remotes", "description": "A ViewSet for RpmRemote.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "required": false, "type": "string"}, {"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/rpm.RpmRemoteRead"}}}}}}, "tags": ["remotes: rpm"]}, "post": {"operationId": "remotes_rpm_rpm_create", "summary": "Create a rpm remote", "description": "A ViewSet for RpmRemote.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/rpm.RpmRemote"}}], "responses": {"201": {"description": "", "schema": {"$ref": "#/definitions/rpm.RpmRemoteRead"}}}, "tags": ["remotes: rpm"]}, "parameters": []}, "{rpm_remote_href}": {"get": {"operationId": "remotes_rpm_rpm_read", "summary": "Inspect a rpm remote", "description": "A ViewSet for RpmRemote.", "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/rpm.RpmRemoteRead"}}}, "tags": ["remotes: rpm"]}, "put": {"operationId": "remotes_rpm_rpm_update", "summary": "Update a rpm remote", "description": "Trigger an asynchronous update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/rpm.RpmRemote"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["remotes: rpm"]}, "patch": {"operationId": "remotes_rpm_rpm_partial_update", "summary": "Partially update a rpm remote", "description": "Trigger an asynchronous partial update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/rpm.RpmRemote"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["remotes: rpm"]}, "delete": {"operationId": "remotes_rpm_rpm_delete", "summary": "Delete a rpm remote", "description": "Trigger an asynchronous delete task", "parameters": [], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["remotes: rpm"]}, "parameters": [{"name": "rpm_remote_href", "in": "path", "description": "URI of Rpm Remote. e.g.: /pulp/api/v3/remotes/rpm/rpm/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/repositories/rpm/rpm/": {"get": {"operationId": "repositories_rpm_rpm_list", "summary": "List rpm repositorys", "description": "A ViewSet for RpmRepository.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "required": false, "type": "string"}, {"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/rpm.RpmRepositoryRead"}}}}}}, "tags": ["repositories: rpm"]}, "post": {"operationId": "repositories_rpm_rpm_create", "summary": "Create a rpm repository", "description": "A ViewSet for RpmRepository.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/rpm.RpmRepository"}}], "responses": {"201": {"description": "", "schema": {"$ref": "#/definitions/rpm.RpmRepositoryRead"}}}, "tags": ["repositories: rpm"]}, "parameters": []}, "{rpm_repository_href}": {"get": {"operationId": "repositories_rpm_rpm_read", "summary": "Inspect a rpm repository", "description": "A ViewSet for RpmRepository.", "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/rpm.RpmRepositoryRead"}}}, "tags": ["repositories: rpm"]}, "put": {"operationId": "repositories_rpm_rpm_update", "summary": "Update a rpm repository", "description": "Trigger an asynchronous update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/rpm.RpmRepository"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: rpm"]}, "patch": {"operationId": "repositories_rpm_rpm_partial_update", "summary": "Partially update a rpm repository", "description": "Trigger an asynchronous partial update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/rpm.RpmRepository"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: rpm"]}, "delete": {"operationId": "repositories_rpm_rpm_delete", "summary": "Delete a rpm repository", "description": "Trigger an asynchronous delete task", "parameters": [], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: rpm"]}, "parameters": [{"name": "rpm_repository_href", "in": "path", "description": "URI of Rpm Repository. e.g.: /pulp/api/v3/repositories/rpm/rpm/1/", "required": true, "type": "string"}]}, "{rpm_repository_href}modify/": {"post": {"operationId": "repositories_rpm_rpm_modify", "summary": "Modify Repository Content", "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: rpm"]}, "parameters": [{"name": "rpm_repository_href", "in": "path", "description": "URI of Rpm Repository. e.g.: /pulp/api/v3/repositories/rpm/rpm/1/", "required": true, "type": "string"}]}, "{rpm_repository_href}sync/": {"post": {"operationId": "repositories_rpm_rpm_sync", "summary": "Sync from remote", "description": "Trigger an asynchronous task to sync RPM content.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/RpmRepositorySyncURL"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: rpm"]}, "parameters": [{"name": "rpm_repository_href", "in": "path", "description": "URI of Rpm Repository. e.g.: /pulp/api/v3/repositories/rpm/rpm/1/", "required": true, "type": "string"}]}, "{rpm_repository_href}versions/": {"get": {"operationId": "repositories_rpm_rpm_versions_list", "summary": "List repository versions", "description": "RpmRepositoryVersion represents a single rpm 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/RepositoryVersionRead"}}}}}}, "tags": ["repositories: rpm versions"]}, "parameters": [{"name": "rpm_repository_href", "in": "path", "description": "URI of Rpm Repository. e.g.: /pulp/api/v3/repositories/rpm/rpm/1/", "required": true, "type": "string"}]}, "{rpm_repository_version_href}": {"get": {"operationId": "repositories_rpm_rpm_versions_read", "summary": "Inspect a repository version", "description": "RpmRepositoryVersion represents a single rpm 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/RepositoryVersionRead"}}}, "tags": ["repositories: rpm versions"]}, "delete": {"operationId": "repositories_rpm_rpm_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: rpm versions"]}, "parameters": [{"name": "rpm_repository_version_href", "in": "path", "description": "URI of Repository Version. e.g.: /pulp/api/v3/repositories/rpm/rpm/1/versions/1/", "required": true, "type": "string"}]}, "{rpm_repository_version_href}repair/": {"post": {"operationId": "repositories_rpm_rpm_versions_repair", "description": "Trigger an asynchronous task to repair a repositroy version.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/RepositoryVersion"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: rpm versions"]}, "parameters": [{"name": "rpm_repository_version_href", "in": "path", "description": "URI of Repository Version. e.g.: /pulp/api/v3/repositories/rpm/rpm/1/versions/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/rpm/copy/": {"post": {"operationId": "copy_content", "summary": "Copy content", "description": "Trigger an asynchronous task to copy RPM contentfrom one repository into another, creating a newrepository version.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/Copy"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["rpm: copy"]}, "parameters": []}}, "definitions": {"rpm.UpdateCollection": {"description": "List of packages", "required": ["name", "shortname"], "type": "object", "properties": {"name": {"title": "Name", "description": "Collection name.", "type": "string"}, "shortname": {"title": "Shortname", "description": "Collection short name.", "type": "string"}, "packages": {"description": "List of packages", "type": "array", "items": {"type": "object", "additionalProperties": {"type": "string"}}, "readOnly": true}}}, "rpm.UpdateRecordRead": {"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"}, "id": {"title": "Id", "description": "Update id (short update name, e.g. RHEA-2013:1777)", "type": "string", "readOnly": true, "minLength": 1}, "updated_date": {"title": "Updated date", "description": "Date when the update was updated (e.g. '2013-12-02 00:00:00')", "type": "string", "readOnly": true, "minLength": 1}, "description": {"title": "Description", "description": "Update description", "type": "string", "readOnly": true}, "issued_date": {"title": "Issued date", "description": "Date when the update was issued (e.g. '2013-12-02 00:00:00')", "type": "string", "readOnly": true, "minLength": 1}, "fromstr": {"title": "Fromstr", "description": "Source of the update (e.g. security@redhat.com)", "type": "string", "readOnly": true}, "status": {"title": "Status", "description": "Update status ('final', ...)", "type": "string", "readOnly": true}, "title": {"title": "Title", "description": "Update name", "type": "string", "readOnly": true}, "summary": {"title": "Summary", "description": "Short summary", "type": "string", "readOnly": true}, "version": {"title": "Version", "description": "Update version (probably always an integer number)", "type": "string", "readOnly": true}, "type": {"title": "Type", "description": "Update type ('enhancement', 'bugfix', ...)", "type": "string", "readOnly": true}, "severity": {"title": "Severity", "description": "Severity", "type": "string", "readOnly": true}, "solution": {"title": "Solution", "description": "Solution", "type": "string", "readOnly": true}, "release": {"title": "Release", "description": "Update release", "type": "string", "readOnly": true}, "rights": {"title": "Rights", "description": "Copyrights", "type": "string", "readOnly": true}, "pushcount": {"title": "Pushcount", "description": "Push count", "type": "string", "readOnly": true}, "pkglist": {"description": "List of packages", "type": "array", "items": {"$ref": "#/definitions/rpm.UpdateCollection"}, "readOnly": true}, "references": {"description": "List of references", "type": "array", "items": {"type": "object", "additionalProperties": {"type": "string"}}, "readOnly": true}, "reboot_suggested": {"title": "Reboot suggested", "description": "Reboot suggested", "type": "boolean", "readOnly": true}}}, "AsyncOperationResponse": {"required": ["task"], "type": "object", "properties": {"task": {"title": "Task", "description": "The href of the task.", "type": "string", "format": "uri"}}}, "Addon": {"required": ["addon_id", "uid", "name", "type", "packages"], "type": "object", "properties": {"addon_id": {"title": "Addon id", "description": "Addon id.", "type": "string", "minLength": 1}, "uid": {"title": "Uid", "description": "Addon uid.", "type": "string", "minLength": 1}, "name": {"title": "Name", "description": "Addon name.", "type": "string", "minLength": 1}, "type": {"title": "Type", "description": "Addon type.", "type": "string", "minLength": 1}, "packages": {"title": "Packages", "description": "Relative path to directory with binary RPMs.", "type": "string", "minLength": 1}}}, "Checksum": {"required": ["path", "checksum"], "type": "object", "properties": {"path": {"title": "Path", "description": "File path.", "type": "string", "minLength": 1}, "checksum": {"title": "Checksum", "description": "Checksum for the file.", "type": "string", "minLength": 1}}}, "Artifact": {"title": "Artifact", "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}, "file": {"title": "File", "description": "The stored file.", "type": "string", "readOnly": true}, "size": {"title": "Size", "description": "The size of the file in bytes.", "type": "integer"}, "md5": {"title": "Md5", "description": "The MD5 checksum of the file if available.", "type": "string", "minLength": 1, "x-nullable": true}, "sha1": {"title": "Sha1", "description": "The SHA-1 checksum of the file if available.", "type": "string", "minLength": 1, "x-nullable": true}, "sha224": {"title": "Sha224", "description": "The SHA-224 checksum of the file if available.", "type": "string", "minLength": 1, "x-nullable": true}, "sha256": {"title": "Sha256", "description": "The SHA-256 checksum of the file if available.", "type": "string", "minLength": 1, "x-nullable": true}, "sha384": {"title": "Sha384", "description": "The SHA-384 checksum of the file if available.", "type": "string", "minLength": 1, "x-nullable": true}, "sha512": {"title": "Sha512", "description": "The SHA-512 checksum of the file if available.", "type": "string", "minLength": 1, "x-nullable": true}}}, "Image": {"required": ["name", "path", "platforms", "artifact"], "type": "object", "properties": {"name": {"title": "Name", "description": "File name.", "type": "string", "minLength": 1}, "path": {"title": "Path", "description": "File path.", "type": "string", "minLength": 1}, "platforms": {"title": "Platforms", "description": "Compatible platforms.", "type": "string", "minLength": 1}, "artifact": {"$ref": "#/definitions/Artifact"}}}, "Variant": {"required": ["variant_id", "uid", "name", "type", "packages", "source_packages", "source_repository", "debug_packages", "debug_repository", "identity"], "type": "object", "properties": {"variant_id": {"title": "Variant id", "description": "Variant id.", "type": "string", "minLength": 1}, "uid": {"title": "Uid", "description": "Variant uid.", "type": "string", "minLength": 1}, "name": {"title": "Name", "description": "Variant name.", "type": "string", "minLength": 1}, "type": {"title": "Type", "description": "Variant type.", "type": "string", "minLength": 1}, "packages": {"title": "Packages", "description": "Relative path to directory with binary RPMs.", "type": "string", "minLength": 1}, "source_packages": {"title": "Source packages", "description": "Relative path to directory with source RPMs.", "type": "string", "minLength": 1}, "source_repository": {"title": "Source repository", "description": "Relative path to YUM repository with source RPMs.", "type": "string", "minLength": 1}, "debug_packages": {"title": "Debug packages", "description": "Relative path to directory with debug RPMs.", "type": "string", "minLength": 1}, "debug_repository": {"title": "Debug repository", "description": "Relative path to YUM repository with debug RPMs.", "type": "string", "minLength": 1}, "identity": {"title": "Identity", "description": "Relative path to a pem file that identifies a product.", "type": "string", "minLength": 1}}}, "rpm.DistributionTreeRead": {"required": ["header_version", "release_name", "release_short", "release_version", "release_is_layered", "base_product_name", "base_product_short", "base_product_version", "arch", "build_timestamp", "instimage", "mainimage", "discnum", "totaldiscs", "addons", "checksums", "images", "variants"], "type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "header_version": {"title": "Header version", "description": "Header Version.", "type": "string", "minLength": 1}, "release_name": {"title": "Release name", "description": "Release name.", "type": "string", "minLength": 1}, "release_short": {"title": "Release short", "description": "Release short name.", "type": "string", "minLength": 1}, "release_version": {"title": "Release version", "description": "Release version.", "type": "string", "minLength": 1}, "release_is_layered": {"title": "Release is layered", "description": "Typically False for an operating system, True otherwise.", "type": "boolean"}, "base_product_name": {"title": "Base product name", "description": "Base Product name.", "type": "string", "minLength": 1}, "base_product_short": {"title": "Base product short", "description": "Base Product short name.", "type": "string", "minLength": 1}, "base_product_version": {"title": "Base product version", "description": "Base Product version.", "type": "string", "minLength": 1}, "arch": {"title": "Arch", "description": "Tree architecturerch.", "type": "string", "minLength": 1}, "build_timestamp": {"title": "Build timestamp", "description": "Tree build time timestamp.", "type": "number"}, "instimage": {"title": "Instimage", "description": "Relative path to Anaconda instimage.", "type": "string", "minLength": 1}, "mainimage": {"title": "Mainimage", "description": "Relative path to Anaconda stage2 image.", "type": "string", "minLength": 1}, "discnum": {"title": "Discnum", "description": "Disc number.", "type": "integer"}, "totaldiscs": {"title": "Totaldiscs", "description": "Number of discs in media set.", "type": "integer"}, "addons": {"type": "array", "items": {"$ref": "#/definitions/Addon"}}, "checksums": {"type": "array", "items": {"$ref": "#/definitions/Checksum"}}, "images": {"type": "array", "items": {"$ref": "#/definitions/Image"}}, "variants": {"type": "array", "items": {"$ref": "#/definitions/Variant"}}}}, "rpm.ModulemdDefaultsRead": {"required": ["module", "stream", "profiles"], "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"}, "module": {"title": "Module", "description": "Modulemd name.", "type": "string", "minLength": 1}, "stream": {"title": "Stream", "description": "Modulemd default stream.", "type": "string", "minLength": 1}, "profiles": {"title": "Profiles", "description": "Default profiles for modulemd streams.", "type": "object"}, "sha256": {"title": "Sha256", "description": "The SHA-256 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}}}, "rpm.ModulemdRead": {"required": ["name", "stream", "version", "context", "arch", "artifacts", "dependencies"], "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"}, "name": {"title": "Name", "description": "Modulemd name.", "type": "string", "minLength": 1}, "stream": {"title": "Stream", "description": "Stream name.", "type": "string", "minLength": 1}, "version": {"title": "Version", "description": "Modulemd version.", "type": "string", "minLength": 1}, "context": {"title": "Context", "description": "Modulemd context.", "type": "string", "minLength": 1}, "arch": {"title": "Arch", "description": "Modulemd architecture.", "type": "string", "minLength": 1}, "artifacts": {"title": "Artifacts", "description": "Modulemd artifacts.", "type": "object"}, "dependencies": {"title": "Dependencies", "description": "Modulemd dependencies.", "type": "object"}, "packages": {"description": "Modulemd artifacts' packages.", "type": "array", "items": {"description": "Modulemd artifacts' packages.", "type": "string", "format": "uri", "x-nullable": true}, "uniqueItems": true}, "sha256": {"title": "Sha256", "description": "The SHA-256 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}}}, "rpm.PackageCategoryRead": {"required": ["id", "name", "description", "display_order", "group_ids", "desc_by_lang", "name_by_lang", "digest"], "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}, "id": {"title": "Id", "description": "Category id.", "type": "string", "minLength": 1}, "name": {"title": "Name", "description": "Category name.", "type": "string"}, "description": {"title": "Description", "description": "Category description.", "type": "string"}, "display_order": {"title": "Display order", "description": "Category display order.", "type": "integer"}, "group_ids": {"title": "Group ids", "description": "Category group list.", "type": "object"}, "desc_by_lang": {"title": "Desc by lang", "description": "Category description by language.", "type": "object"}, "name_by_lang": {"title": "Name by lang", "description": "Category name by language.", "type": "object"}, "digest": {"title": "Digest", "description": "Category digest.", "type": "string", "minLength": 1}, "packagegroups": {"description": "PackageGroups related to this category.", "type": "array", "items": {"description": "PackageGroups related to this category.", "type": "string", "format": "uri", "x-nullable": true}, "uniqueItems": true}}}, "rpm.PackageEnvironmentRead": {"required": ["id", "name", "description", "display_order", "group_ids", "option_ids", "desc_by_lang", "name_by_lang", "digest"], "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}, "id": {"title": "Id", "description": "Environment id.", "type": "string", "minLength": 1}, "name": {"title": "Name", "description": "Environment name.", "type": "string"}, "description": {"title": "Description", "description": "Environment description.", "type": "string"}, "display_order": {"title": "Display order", "description": "Environment display order.", "type": "integer"}, "group_ids": {"title": "Group ids", "description": "Environment group list.", "type": "object"}, "option_ids": {"title": "Option ids", "description": "Environment option ids", "type": "object"}, "desc_by_lang": {"title": "Desc by lang", "description": "Environment description by language.", "type": "object"}, "name_by_lang": {"title": "Name by lang", "description": "Environment name by language.", "type": "object"}, "digest": {"title": "Digest", "description": "Environment digest.", "type": "string", "minLength": 1}, "packagegroups": {"description": "Groups related to this Environment.", "type": "array", "items": {"description": "Groups related to this Environment.", "type": "string", "format": "uri", "x-nullable": true}, "uniqueItems": true}, "optionalgroups": {"description": "Groups optionally related to this Environment.", "type": "array", "items": {"description": "Groups optionally related to this Environment.", "type": "string", "format": "uri", "x-nullable": true}, "uniqueItems": true}}}, "rpm.PackageGroupRead": {"required": ["id", "display_order", "name", "description", "packages", "desc_by_lang", "name_by_lang", "digest"], "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}, "id": {"title": "Id", "description": "PackageGroup id.", "type": "string", "minLength": 1}, "default": {"title": "Default", "description": "PackageGroup default.", "type": "boolean"}, "user_visible": {"title": "User visible", "description": "PackageGroup user visibility.", "type": "boolean"}, "display_order": {"title": "Display order", "description": "PackageGroup display order.", "type": "integer"}, "name": {"title": "Name", "description": "PackageGroup name.", "type": "string"}, "description": {"title": "Description", "description": "PackageGroup description.", "type": "string"}, "packages": {"title": "Packages", "description": "PackageGroup package list.", "type": "object"}, "biarch_only": {"title": "Biarch only", "description": "PackageGroup biarch only.", "type": "boolean"}, "desc_by_lang": {"title": "Desc by lang", "description": "PackageGroup description by language.", "type": "object"}, "name_by_lang": {"title": "Name by lang", "description": "PackageGroup name by language.", "type": "object"}, "digest": {"title": "Digest", "description": "PackageGroup digest.", "type": "string", "minLength": 1}, "related_packages": {"description": "Packages related to this PackageGroup.", "type": "array", "items": {"description": "Packages related to this PackageGroup.", "type": "string", "format": "uri", "x-nullable": true}, "uniqueItems": true}}}, "rpm.PackageLangpacksRead": {"required": ["matches", "digest"], "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}, "matches": {"title": "Matches", "description": "Langpacks matches.", "type": "object"}, "digest": {"title": "Digest", "description": "Langpacks digest.", "type": "string", "minLength": 1}}}, "rpm.PackageRead": {"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"}, "name": {"title": "Name", "description": "Name of the package", "type": "string", "readOnly": true, "minLength": 1}, "epoch": {"title": "Epoch", "description": "The package's epoch", "type": "string", "readOnly": true}, "version": {"title": "Version", "description": "The version of the package. For example, '2.8.0'", "type": "string", "readOnly": true, "minLength": 1}, "release": {"title": "Release", "description": "The release of a particular version of the package. e.g. '1.el7' or '3.f24'", "type": "string", "readOnly": true, "minLength": 1}, "arch": {"title": "Arch", "description": "The target architecture for a package.For example, 'x86_64', 'i686', or 'noarch'", "type": "string", "readOnly": true, "minLength": 1}, "pkgId": {"title": "Pkgid", "description": "Checksum of the package file", "type": "string", "readOnly": true, "minLength": 1}, "checksum_type": {"title": "Checksum type", "description": "Type of checksum, e.g. 'sha256', 'md5'", "type": "string", "readOnly": true, "minLength": 1}, "summary": {"title": "Summary", "description": "Short description of the packaged software", "type": "string", "readOnly": true}, "description": {"title": "Description", "description": "In-depth description of the packaged software", "type": "string", "readOnly": true}, "url": {"title": "Url", "description": "URL with more information about the packaged software", "type": "string", "readOnly": true}, "changelogs": {"title": "Changelogs", "description": "Changelogs that package contains", "type": "object", "readOnly": true, "default": "[]"}, "files": {"title": "Files", "description": "Files that package contains", "type": "object", "readOnly": true, "default": "[]"}, "requires": {"title": "Requires", "description": "Capabilities the package requires", "type": "object", "readOnly": true, "default": "[]"}, "provides": {"title": "Provides", "description": "Capabilities the package provides", "type": "object", "readOnly": true, "default": "[]"}, "conflicts": {"title": "Conflicts", "description": "Capabilities the package conflicts", "type": "object", "readOnly": true, "default": "[]"}, "obsoletes": {"title": "Obsoletes", "description": "Capabilities the package obsoletes", "type": "object", "readOnly": true, "default": "[]"}, "suggests": {"title": "Suggests", "description": "Capabilities the package suggests", "type": "object", "readOnly": true, "default": "[]"}, "enhances": {"title": "Enhances", "description": "Capabilities the package enhances", "type": "object", "readOnly": true, "default": "[]"}, "recommends": {"title": "Recommends", "description": "Capabilities the package recommends", "type": "object", "readOnly": true, "default": "[]"}, "sha256": {"title": "Sha256", "description": "The SHA-256 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}, "supplements": {"title": "Supplements", "description": "Capabilities the package supplements", "type": "object", "readOnly": true, "default": "[]"}, "location_base": {"title": "Location base", "description": "Base location of this package", "type": "string", "readOnly": true}, "location_href": {"title": "Location href", "description": "Relative location of package to the repodata", "type": "string", "readOnly": true, "minLength": 1}, "rpm_buildhost": {"title": "Rpm buildhost", "description": "Hostname of the system that built the package", "type": "string", "readOnly": true}, "rpm_group": {"title": "Rpm group", "description": "RPM group (See: http://fedoraproject.org/wiki/RPMGroups)", "type": "string", "readOnly": true}, "rpm_license": {"title": "Rpm license", "description": "License term applicable to the package software (GPLv2, etc.)", "type": "string", "readOnly": true}, "rpm_packager": {"title": "Rpm packager", "description": "Person or persons responsible for creating the package", "type": "string", "readOnly": true}, "rpm_sourcerpm": {"title": "Rpm sourcerpm", "description": "Name of the source package (srpm) the package was built from", "type": "string", "readOnly": true}, "rpm_vendor": {"title": "Rpm vendor", "description": "Name of the organization that produced the package", "type": "string", "readOnly": true}, "rpm_header_start": {"title": "Rpm header start", "description": "First byte of the header", "type": "integer", "readOnly": true}, "rpm_header_end": {"title": "Rpm header end", "description": "Last byte of the header", "type": "integer", "readOnly": true}, "is_modular": {"title": "Is modular", "description": "Flag to identify if the package is modular", "type": "boolean", "readOnly": true}, "size_archive": {"title": "Size archive", "description": "Size, in bytes, of the archive portion of the original package file", "type": "integer", "readOnly": true}, "size_installed": {"title": "Size installed", "description": "Total size, in bytes, of every file installed by this package", "type": "integer", "readOnly": true}, "size_package": {"title": "Size package", "description": "Size, in bytes, of the package", "type": "integer", "readOnly": true}, "time_build": {"title": "Time build", "description": "Time the package was built in seconds since the epoch", "type": "integer", "readOnly": true}, "time_file": {"title": "Time file", "description": "The 'file' time attribute in the primary XML - file mtime in seconds since the epoch.", "type": "integer", "readOnly": true}}}, "rpm.RepoMetadataFileRead": {"required": ["data_type", "checksum_type", "checksum"], "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"}, "data_type": {"title": "Data type", "description": "Metadata type.", "type": "string", "minLength": 1}, "checksum_type": {"title": "Checksum type", "description": "Checksum type for the file.", "type": "string", "minLength": 1}, "checksum": {"title": "Checksum", "description": "Checksum for the file.", "type": "string", "minLength": 1}, "sha256": {"title": "Sha256", "description": "The SHA-256 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}}}, "rpm.RpmDistributionRead": {"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}}}, "rpm.RpmDistribution": {"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}}}, "rpm.RpmPublicationRead": {"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"}, "metadata_checksum_type": {"title": "Metadata checksum type", "description": "The checksum type for metadata.", "type": "string", "enum": ["unknown", "md5", "sha1", "sha224", "sha256", "sha384", "sha512"], "default": "sha256"}, "package_checksum_type": {"title": "Package checksum type", "description": "The checksum type for packages.", "type": "string", "enum": ["unknown", "md5", "sha1", "sha224", "sha256", "sha384", "sha512"], "default": "sha256"}}}, "rpm.RpmPublication": {"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"}, "metadata_checksum_type": {"title": "Metadata checksum type", "description": "The checksum type for metadata.", "type": "string", "enum": ["unknown", "md5", "sha1", "sha224", "sha256", "sha384", "sha512"], "default": "sha256"}, "package_checksum_type": {"title": "Package checksum type", "description": "The checksum type for packages.", "type": "string", "enum": ["unknown", "md5", "sha1", "sha224", "sha256", "sha384", "sha512"], "default": "sha256"}}}, "rpm.RpmRemoteRead": {"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.", "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.", "type": "string", "minLength": 1, "x-nullable": true}, "client_key": {"title": "Client key", "description": "A PEM encoded private key used for authentication.", "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}, "username": {"title": "Username", "description": "The username to be used for authentication when syncing.", "type": "string", "minLength": 1, "x-nullable": true}, "password": {"title": "Password", "description": "The password to be used for authentication when syncing.", "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"}, "sles_auth_token": {"title": "Sles auth token", "description": "Authentication token for SLES repositories.", "type": "string", "minLength": 1, "x-nullable": true}}}, "rpm.RpmRemote": {"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.", "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.", "type": "string", "minLength": 1, "x-nullable": true}, "client_key": {"title": "Client key", "description": "A PEM encoded private key used for authentication.", "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}, "username": {"title": "Username", "description": "The username to be used for authentication when syncing.", "type": "string", "minLength": 1, "x-nullable": true}, "password": {"title": "Password", "description": "The password to be used for authentication when syncing.", "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"}, "sles_auth_token": {"title": "Sles auth token", "description": "Authentication token for SLES repositories.", "type": "string", "minLength": 1, "x-nullable": true}}}, "rpm.RpmRepositoryRead": {"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}, "metadata_signing_service": {"title": "Metadata signing service", "description": "A reference to an associated signing service.", "type": "string", "format": "uri", "x-nullable": true}}}, "rpm.RpmRepository": {"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}, "metadata_signing_service": {"title": "Metadata signing service", "description": "A reference to an associated signing service.", "type": "string", "format": "uri", "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"}}}, "RpmRepositorySyncURL": {"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}, "skip_types": {"description": "List of content types to skip during sync.", "type": "array", "items": {"type": "string", "enum": ["srpm"]}, "default": []}, "optimize": {"title": "Optimize", "description": "Whether or not to optimize sync.", "type": "boolean", "default": true}}}, "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"}}}}}, "RepositoryVersionRead": {"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"}}}, "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"}}}, "Copy": {"required": ["config"], "type": "object", "properties": {"config": {"title": "Config", "description": "A JSON document describing sources, destinations, and content to be copied", "type": "object"}, "dependency_solving": {"title": "Dependency solving", "description": "Also copy dependencies of the content being copied.", "type": "boolean", "default": true}}}}, "tags": [{"name": "content: advisories", "x-displayName": "Content: Advisories"}, {"name": "content: distribution_trees", "x-displayName": "Content: Distribution_Trees"}, {"name": "content: modulemd_defaults", "x-displayName": "Content: Modulemd_Defaults"}, {"name": "content: modulemds", "x-displayName": "Content: Modulemds"}, {"name": "content: packagecategories", "x-displayName": "Content: Packagecategories"}, {"name": "content: packageenvironments", "x-displayName": "Content: Packageenvironments"}, {"name": "content: packagegroups", "x-displayName": "Content: Packagegroups"}, {"name": "content: packagelangpacks", "x-displayName": "Content: Packagelangpacks"}, {"name": "content: packages", "x-displayName": "Content: Packages"}, {"name": "content: repo_metadata_files", "x-displayName": "Content: Repo_Metadata_Files"}, {"name": "distributions: rpm", "x-displayName": "Distributions: Rpm"}, {"name": "publications: rpm", "x-displayName": "Publications: Rpm"}, {"name": "remotes: rpm", "x-displayName": "Remotes: Rpm"}, {"name": "repositories: rpm", "x-displayName": "Repositories: Rpm"}, {"name": "repositories: rpm versions", "x-displayName": "Repositories: Rpm Versions"}, {"name": "rpm: copy", "x-displayName": "Rpm: Copy"}]} +{"swagger": "2.0", "info": {"title": "Pulp 3 API", "license": {"name": "GPLv2+"}, "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/rpm/advisories/": {"get": {"operationId": "content_rpm_advisories_list", "summary": "List update records", "description": "Define endpoint name which will appear in the API endpoint for this content type.\nFor example::\n http://pulp.example.com/pulp/api/v3/content/rpm/advisories/\n\nAlso specify queryset and serializer for UpdateRecord.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "required": false, "type": "string"}, {"name": "id", "in": "query", "description": "Filter results where id matches value", "required": false, "type": "string"}, {"name": "id__in", "in": "query", "description": "Filter results where id is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "status", "in": "query", "description": "Filter results where status matches value", "required": false, "type": "string"}, {"name": "status__in", "in": "query", "description": "Filter results where status is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "status__ne", "in": "query", "description": "Filter results where status not equal to value", "required": false, "type": "string"}, {"name": "severity", "in": "query", "description": "Filter results where severity matches value", "required": false, "type": "string"}, {"name": "severity__in", "in": "query", "description": "Filter results where severity is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "severity__ne", "in": "query", "description": "Filter results where severity not equal to value", "required": false, "type": "string"}, {"name": "type", "in": "query", "description": "Filter results where type matches value", "required": false, "type": "string"}, {"name": "type__in", "in": "query", "description": "Filter results where type is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "type__ne", "in": "query", "description": "Filter results where type not equal to 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/rpm.UpdateRecordRead"}}}}}}, "tags": ["content: advisories"]}, "post": {"operationId": "content_rpm_advisories_create", "summary": "Create an update record", "description": "Trigger an asynchronous task to create content,optionally create new repository version.", "parameters": [{"name": "file", "in": "formData", "description": "An uploaded file that may 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: advisories"]}, "parameters": []}, "{update_record_href}": {"get": {"operationId": "content_rpm_advisories_read", "summary": "Inspect an update record", "description": "Define endpoint name which will appear in the API endpoint for this content type.\nFor example::\n http://pulp.example.com/pulp/api/v3/content/rpm/advisories/\n\nAlso specify queryset and serializer for UpdateRecord.", "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/rpm.UpdateRecordRead"}}}, "tags": ["content: advisories"]}, "parameters": [{"name": "update_record_href", "in": "path", "description": "URI of Update Record. e.g.: /pulp/api/v3/content/rpm/advisories/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/content/rpm/distribution_trees/": {"get": {"operationId": "content_rpm_distribution_trees_list", "summary": "List distribution trees", "description": "Distribution Tree Viewset.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "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/rpm.DistributionTreeRead"}}}}}}, "tags": ["content: distribution_trees"]}, "parameters": []}, "{distribution_tree_href}": {"get": {"operationId": "content_rpm_distribution_trees_read", "summary": "Inspect a distribution tree", "description": "Distribution Tree Viewset.", "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/rpm.DistributionTreeRead"}}}, "tags": ["content: distribution_trees"]}, "delete": {"operationId": "content_rpm_distribution_trees_delete", "summary": "Delete a distribution tree", "description": "Distribution Tree Viewset.", "parameters": [], "responses": {"204": {"description": ""}}, "tags": ["content: distribution_trees"]}, "parameters": [{"name": "distribution_tree_href", "in": "path", "description": "URI of Distribution Tree. e.g.: /pulp/api/v3/content/rpm/distribution_trees/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/content/rpm/modulemd_defaults/": {"get": {"operationId": "content_rpm_modulemd_defaults_list", "summary": "List modulemd defaultss", "description": "ViewSet for Modulemd.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "required": false, "type": "string"}, {"name": "module", "in": "query", "description": "Filter results where module matches value", "required": false, "type": "string"}, {"name": "module__in", "in": "query", "description": "Filter results where module is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "stream", "in": "query", "description": "Filter results where stream matches value", "required": false, "type": "string"}, {"name": "stream__in", "in": "query", "description": "Filter results where stream is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "sha256", "in": "query", "description": "", "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/rpm.ModulemdDefaultsRead"}}}}}}, "tags": ["content: modulemd_defaults"]}, "post": {"operationId": "content_rpm_modulemd_defaults_create", "summary": "Create a modulemd defaults", "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 may 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"}, {"name": "module", "in": "formData", "description": "Modulemd name.", "required": true, "type": "string", "minLength": 1}, {"name": "stream", "in": "formData", "description": "Modulemd default stream.", "required": true, "type": "string", "minLength": 1}, {"name": "profiles", "in": "formData", "description": "Default profiles for modulemd streams.", "required": true, "type": "string"}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "consumes": ["multipart/form-data", "application/x-www-form-urlencoded"], "tags": ["content: modulemd_defaults"]}, "parameters": []}, "{modulemd_defaults_href}": {"get": {"operationId": "content_rpm_modulemd_defaults_read", "summary": "Inspect a modulemd defaults", "description": "ViewSet for Modulemd.", "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/rpm.ModulemdDefaultsRead"}}}, "tags": ["content: modulemd_defaults"]}, "parameters": [{"name": "modulemd_defaults_href", "in": "path", "description": "URI of Modulemd Defaults. e.g.: /pulp/api/v3/content/rpm/modulemd_defaults/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/content/rpm/modulemds/": {"get": {"operationId": "content_rpm_modulemds_list", "summary": "List modulemds", "description": "ViewSet for Modulemd.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "required": false, "type": "string"}, {"name": "name", "in": "query", "description": "Filter results where name matches value", "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": "stream", "in": "query", "description": "Filter results where stream matches value", "required": false, "type": "string"}, {"name": "stream__in", "in": "query", "description": "Filter results where stream is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "sha256", "in": "query", "description": "", "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/rpm.ModulemdRead"}}}}}}, "tags": ["content: modulemds"]}, "post": {"operationId": "content_rpm_modulemds_create", "summary": "Create a modulemd", "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 may 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"}, {"name": "name", "in": "formData", "description": "Modulemd name.", "required": true, "type": "string", "minLength": 1}, {"name": "stream", "in": "formData", "description": "Stream name.", "required": true, "type": "string", "minLength": 1}, {"name": "version", "in": "formData", "description": "Modulemd version.", "required": true, "type": "string", "minLength": 1}, {"name": "context", "in": "formData", "description": "Modulemd context.", "required": true, "type": "string", "minLength": 1}, {"name": "arch", "in": "formData", "description": "Modulemd architecture.", "required": true, "type": "string", "minLength": 1}, {"name": "artifacts", "in": "formData", "description": "Modulemd artifacts.", "required": true, "type": "string"}, {"name": "dependencies", "in": "formData", "description": "Modulemd dependencies.", "required": true, "type": "string"}, {"name": "packages", "in": "formData", "description": "Modulemd artifacts' packages.", "required": false, "type": "array", "items": {"type": "string", "format": "uri", "x-nullable": true}, "uniqueItems": true}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "consumes": ["multipart/form-data", "application/x-www-form-urlencoded"], "tags": ["content: modulemds"]}, "parameters": []}, "{modulemd_href}": {"get": {"operationId": "content_rpm_modulemds_read", "summary": "Inspect a modulemd", "description": "ViewSet for Modulemd.", "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/rpm.ModulemdRead"}}}, "tags": ["content: modulemds"]}, "parameters": [{"name": "modulemd_href", "in": "path", "description": "URI of Modulemd. e.g.: /pulp/api/v3/content/rpm/modulemds/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/content/rpm/packagecategories/": {"get": {"operationId": "content_rpm_packagecategories_list", "summary": "List package categorys", "description": "PackageCategory ViewSet.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "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/rpm.PackageCategoryRead"}}}}}}, "tags": ["content: packagecategories"]}, "parameters": []}, "{package_category_href}": {"get": {"operationId": "content_rpm_packagecategories_read", "summary": "Inspect a package category", "description": "PackageCategory ViewSet.", "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/rpm.PackageCategoryRead"}}}, "tags": ["content: packagecategories"]}, "delete": {"operationId": "content_rpm_packagecategories_delete", "summary": "Delete a package category", "description": "PackageCategory ViewSet.", "parameters": [], "responses": {"204": {"description": ""}}, "tags": ["content: packagecategories"]}, "parameters": [{"name": "package_category_href", "in": "path", "description": "URI of Package Category. e.g.: /pulp/api/v3/content/rpm/packagecategories/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/content/rpm/packageenvironments/": {"get": {"operationId": "content_rpm_packageenvironments_list", "summary": "List package environments", "description": "PackageEnvironment ViewSet.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "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/rpm.PackageEnvironmentRead"}}}}}}, "tags": ["content: packageenvironments"]}, "parameters": []}, "{package_environment_href}": {"get": {"operationId": "content_rpm_packageenvironments_read", "summary": "Inspect a package environment", "description": "PackageEnvironment ViewSet.", "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/rpm.PackageEnvironmentRead"}}}, "tags": ["content: packageenvironments"]}, "delete": {"operationId": "content_rpm_packageenvironments_delete", "summary": "Delete a package environment", "description": "PackageEnvironment ViewSet.", "parameters": [], "responses": {"204": {"description": ""}}, "tags": ["content: packageenvironments"]}, "parameters": [{"name": "package_environment_href", "in": "path", "description": "URI of Package Environment. e.g.: /pulp/api/v3/content/rpm/packageenvironments/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/content/rpm/packagegroups/": {"get": {"operationId": "content_rpm_packagegroups_list", "summary": "List package groups", "description": "PackageGroup ViewSet.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "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/rpm.PackageGroupRead"}}}}}}, "tags": ["content: packagegroups"]}, "parameters": []}, "{package_group_href}": {"get": {"operationId": "content_rpm_packagegroups_read", "summary": "Inspect a package group", "description": "PackageGroup ViewSet.", "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/rpm.PackageGroupRead"}}}, "tags": ["content: packagegroups"]}, "delete": {"operationId": "content_rpm_packagegroups_delete", "summary": "Delete a package group", "description": "PackageGroup ViewSet.", "parameters": [], "responses": {"204": {"description": ""}}, "tags": ["content: packagegroups"]}, "parameters": [{"name": "package_group_href", "in": "path", "description": "URI of Package Group. e.g.: /pulp/api/v3/content/rpm/packagegroups/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/content/rpm/packagelangpacks/": {"get": {"operationId": "content_rpm_packagelangpacks_list", "summary": "List package langpackss", "description": "PackageLangpacks ViewSet.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "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/rpm.PackageLangpacksRead"}}}}}}, "tags": ["content: packagelangpacks"]}, "parameters": []}, "{package_langpacks_href}": {"get": {"operationId": "content_rpm_packagelangpacks_read", "summary": "Inspect a package langpacks", "description": "PackageLangpacks ViewSet.", "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/rpm.PackageLangpacksRead"}}}, "tags": ["content: packagelangpacks"]}, "delete": {"operationId": "content_rpm_packagelangpacks_delete", "summary": "Delete a package langpacks", "description": "PackageLangpacks ViewSet.", "parameters": [], "responses": {"204": {"description": ""}}, "tags": ["content: packagelangpacks"]}, "parameters": [{"name": "package_langpacks_href", "in": "path", "description": "URI of Package Langpacks. e.g.: /pulp/api/v3/content/rpm/packagelangpacks/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/content/rpm/packages/": {"get": {"operationId": "content_rpm_packages_list", "summary": "List packages", "description": "Define endpoint name which will appear in the API endpoint for this content type.\nFor example::\n http://pulp.example.com/pulp/api/v3/content/rpm/packages/\n\nAlso specify queryset and serializer for Package.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "required": false, "type": "string"}, {"name": "name", "in": "query", "description": "Filter results where name matches value", "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": "name__ne", "in": "query", "description": "Filter results where name not equal to value", "required": false, "type": "string"}, {"name": "epoch", "in": "query", "description": "Filter results where epoch matches value", "required": false, "type": "string"}, {"name": "epoch__in", "in": "query", "description": "Filter results where epoch is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "epoch__ne", "in": "query", "description": "Filter results where epoch not equal to value", "required": false, "type": "string"}, {"name": "version", "in": "query", "description": "Filter results where version matches value", "required": false, "type": "string"}, {"name": "version__in", "in": "query", "description": "Filter results where version is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "version__ne", "in": "query", "description": "Filter results where version not equal to value", "required": false, "type": "string"}, {"name": "release", "in": "query", "description": "Filter results where release matches value", "required": false, "type": "string"}, {"name": "release__in", "in": "query", "description": "Filter results where release is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "release__ne", "in": "query", "description": "Filter results where release not equal to value", "required": false, "type": "string"}, {"name": "arch", "in": "query", "description": "Filter results where arch matches value", "required": false, "type": "string"}, {"name": "arch__in", "in": "query", "description": "Filter results where arch is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "arch__ne", "in": "query", "description": "Filter results where arch not equal to value", "required": false, "type": "string"}, {"name": "pkgId", "in": "query", "description": "Filter results where pkgId matches value", "required": false, "type": "string"}, {"name": "pkgId__in", "in": "query", "description": "Filter results where pkgId is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "checksum_type", "in": "query", "description": "Filter results where checksum_type matches value", "required": false, "type": "string"}, {"name": "checksum_type__in", "in": "query", "description": "Filter results where checksum_type is in a comma-separated list of values", "required": false, "type": "string"}, {"name": "checksum_type__ne", "in": "query", "description": "Filter results where checksum_type not equal to value", "required": false, "type": "string"}, {"name": "sha256", "in": "query", "description": "", "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/rpm.PackageRead"}}}}}}, "tags": ["content: packages"]}, "post": {"operationId": "content_rpm_packages_create", "summary": "Create a package", "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 may 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: packages"]}, "parameters": []}, "{package_href}": {"get": {"operationId": "content_rpm_packages_read", "summary": "Inspect a package", "description": "Define endpoint name which will appear in the API endpoint for this content type.\nFor example::\n http://pulp.example.com/pulp/api/v3/content/rpm/packages/\n\nAlso specify queryset and serializer for Package.", "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/rpm.PackageRead"}}}, "tags": ["content: packages"]}, "parameters": [{"name": "package_href", "in": "path", "description": "URI of Package. e.g.: /pulp/api/v3/content/rpm/packages/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/content/rpm/repo_metadata_files/": {"get": {"operationId": "content_rpm_repo_metadata_files_list", "summary": "List repo metadata files", "description": "RepoMetadataFile Viewset.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "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/rpm.RepoMetadataFileRead"}}}}}}, "tags": ["content: repo_metadata_files"]}, "parameters": []}, "{repo_metadata_file_href}": {"get": {"operationId": "content_rpm_repo_metadata_files_read", "summary": "Inspect a repo metadata file", "description": "RepoMetadataFile Viewset.", "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/rpm.RepoMetadataFileRead"}}}, "tags": ["content: repo_metadata_files"]}, "delete": {"operationId": "content_rpm_repo_metadata_files_delete", "summary": "Delete a repo metadata file", "description": "RepoMetadataFile Viewset.", "parameters": [], "responses": {"204": {"description": ""}}, "tags": ["content: repo_metadata_files"]}, "parameters": [{"name": "repo_metadata_file_href", "in": "path", "description": "URI of Repo Metadata File. e.g.: /pulp/api/v3/content/rpm/repo_metadata_files/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/distributions/rpm/rpm/": {"get": {"operationId": "distributions_rpm_rpm_list", "summary": "List rpm distributions", "description": "ViewSet for RPM Distributions.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "required": false, "type": "string"}, {"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/rpm.RpmDistributionRead"}}}}}}, "tags": ["distributions: rpm"]}, "post": {"operationId": "distributions_rpm_rpm_create", "summary": "Create a rpm distribution", "description": "Trigger an asynchronous create task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/rpm.RpmDistribution"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["distributions: rpm"]}, "parameters": []}, "{rpm_distribution_href}": {"get": {"operationId": "distributions_rpm_rpm_read", "summary": "Inspect a rpm distribution", "description": "ViewSet for RPM Distributions.", "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/rpm.RpmDistributionRead"}}}, "tags": ["distributions: rpm"]}, "put": {"operationId": "distributions_rpm_rpm_update", "summary": "Update a rpm distribution", "description": "Trigger an asynchronous update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/rpm.RpmDistribution"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["distributions: rpm"]}, "patch": {"operationId": "distributions_rpm_rpm_partial_update", "summary": "Partially update a rpm distribution", "description": "Trigger an asynchronous partial update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/rpm.RpmDistribution"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["distributions: rpm"]}, "delete": {"operationId": "distributions_rpm_rpm_delete", "summary": "Delete a rpm distribution", "description": "Trigger an asynchronous delete task", "parameters": [], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["distributions: rpm"]}, "parameters": [{"name": "rpm_distribution_href", "in": "path", "description": "URI of Rpm Distribution. e.g.: /pulp/api/v3/distributions/rpm/rpm/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/publications/rpm/rpm/": {"get": {"operationId": "publications_rpm_rpm_list", "summary": "List rpm publications", "description": "ViewSet for Rpm Publications.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "required": false, "type": "string"}, {"name": "repository_version", "in": "query", "description": "Repository Version referenced by HREF", "required": false, "type": "string"}, {"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": "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/rpm.RpmPublicationRead"}}}}}}, "tags": ["publications: rpm"]}, "post": {"operationId": "publications_rpm_rpm_create", "summary": "Create a rpm publication", "description": "Trigger an asynchronous task to create a new RPM content publication.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/rpm.RpmPublication"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["publications: rpm"]}, "parameters": []}, "{rpm_publication_href}": {"get": {"operationId": "publications_rpm_rpm_read", "summary": "Inspect a rpm publication", "description": "ViewSet for Rpm Publications.", "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/rpm.RpmPublicationRead"}}}, "tags": ["publications: rpm"]}, "delete": {"operationId": "publications_rpm_rpm_delete", "summary": "Delete a rpm publication", "description": "ViewSet for Rpm Publications.", "parameters": [], "responses": {"204": {"description": ""}}, "tags": ["publications: rpm"]}, "parameters": [{"name": "rpm_publication_href", "in": "path", "description": "URI of Rpm Publication. e.g.: /pulp/api/v3/publications/rpm/rpm/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/remotes/rpm/rpm/": {"get": {"operationId": "remotes_rpm_rpm_list", "summary": "List rpm remotes", "description": "A ViewSet for RpmRemote.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "required": false, "type": "string"}, {"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/rpm.RpmRemoteRead"}}}}}}, "tags": ["remotes: rpm"]}, "post": {"operationId": "remotes_rpm_rpm_create", "summary": "Create a rpm remote", "description": "A ViewSet for RpmRemote.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/rpm.RpmRemote"}}], "responses": {"201": {"description": "", "schema": {"$ref": "#/definitions/rpm.RpmRemoteRead"}}}, "tags": ["remotes: rpm"]}, "parameters": []}, "{rpm_remote_href}": {"get": {"operationId": "remotes_rpm_rpm_read", "summary": "Inspect a rpm remote", "description": "A ViewSet for RpmRemote.", "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/rpm.RpmRemoteRead"}}}, "tags": ["remotes: rpm"]}, "put": {"operationId": "remotes_rpm_rpm_update", "summary": "Update a rpm remote", "description": "Trigger an asynchronous update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/rpm.RpmRemote"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["remotes: rpm"]}, "patch": {"operationId": "remotes_rpm_rpm_partial_update", "summary": "Partially update a rpm remote", "description": "Trigger an asynchronous partial update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/rpm.RpmRemote"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["remotes: rpm"]}, "delete": {"operationId": "remotes_rpm_rpm_delete", "summary": "Delete a rpm remote", "description": "Trigger an asynchronous delete task", "parameters": [], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["remotes: rpm"]}, "parameters": [{"name": "rpm_remote_href", "in": "path", "description": "URI of Rpm Remote. e.g.: /pulp/api/v3/remotes/rpm/rpm/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/repositories/rpm/rpm/": {"get": {"operationId": "repositories_rpm_rpm_list", "summary": "List rpm repositorys", "description": "A ViewSet for RpmRepository.", "parameters": [{"name": "ordering", "in": "query", "description": "Which field to use when ordering the results.", "required": false, "type": "string"}, {"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/rpm.RpmRepositoryRead"}}}}}}, "tags": ["repositories: rpm"]}, "post": {"operationId": "repositories_rpm_rpm_create", "summary": "Create a rpm repository", "description": "A ViewSet for RpmRepository.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/rpm.RpmRepository"}}], "responses": {"201": {"description": "", "schema": {"$ref": "#/definitions/rpm.RpmRepositoryRead"}}}, "tags": ["repositories: rpm"]}, "parameters": []}, "{rpm_repository_href}": {"get": {"operationId": "repositories_rpm_rpm_read", "summary": "Inspect a rpm repository", "description": "A ViewSet for RpmRepository.", "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/rpm.RpmRepositoryRead"}}}, "tags": ["repositories: rpm"]}, "put": {"operationId": "repositories_rpm_rpm_update", "summary": "Update a rpm repository", "description": "Trigger an asynchronous update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/rpm.RpmRepository"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: rpm"]}, "patch": {"operationId": "repositories_rpm_rpm_partial_update", "summary": "Partially update a rpm repository", "description": "Trigger an asynchronous partial update task", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/rpm.RpmRepository"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: rpm"]}, "delete": {"operationId": "repositories_rpm_rpm_delete", "summary": "Delete a rpm repository", "description": "Trigger an asynchronous delete task", "parameters": [], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: rpm"]}, "parameters": [{"name": "rpm_repository_href", "in": "path", "description": "URI of Rpm Repository. e.g.: /pulp/api/v3/repositories/rpm/rpm/1/", "required": true, "type": "string"}]}, "{rpm_repository_href}modify/": {"post": {"operationId": "repositories_rpm_rpm_modify", "summary": "Modify Repository Content", "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: rpm"]}, "parameters": [{"name": "rpm_repository_href", "in": "path", "description": "URI of Rpm Repository. e.g.: /pulp/api/v3/repositories/rpm/rpm/1/", "required": true, "type": "string"}]}, "{rpm_repository_href}sync/": {"post": {"operationId": "repositories_rpm_rpm_sync", "summary": "Sync from remote", "description": "Trigger an asynchronous task to sync RPM content.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/RpmRepositorySyncURL"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: rpm"]}, "parameters": [{"name": "rpm_repository_href", "in": "path", "description": "URI of Rpm Repository. e.g.: /pulp/api/v3/repositories/rpm/rpm/1/", "required": true, "type": "string"}]}, "{rpm_repository_href}versions/": {"get": {"operationId": "repositories_rpm_rpm_versions_list", "summary": "List repository versions", "description": "RpmRepositoryVersion represents a single rpm 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/RepositoryVersionRead"}}}}}}, "tags": ["repositories: rpm versions"]}, "parameters": [{"name": "rpm_repository_href", "in": "path", "description": "URI of Rpm Repository. e.g.: /pulp/api/v3/repositories/rpm/rpm/1/", "required": true, "type": "string"}]}, "{rpm_repository_version_href}": {"get": {"operationId": "repositories_rpm_rpm_versions_read", "summary": "Inspect a repository version", "description": "RpmRepositoryVersion represents a single rpm 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/RepositoryVersionRead"}}}, "tags": ["repositories: rpm versions"]}, "delete": {"operationId": "repositories_rpm_rpm_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: rpm versions"]}, "parameters": [{"name": "rpm_repository_version_href", "in": "path", "description": "URI of Repository Version. e.g.: /pulp/api/v3/repositories/rpm/rpm/1/versions/1/", "required": true, "type": "string"}]}, "{rpm_repository_version_href}repair/": {"post": {"operationId": "repositories_rpm_rpm_versions_repair", "description": "Trigger an asynchronous task to repair a repositroy version.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/RepositoryVersion"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["repositories: rpm versions"]}, "parameters": [{"name": "rpm_repository_version_href", "in": "path", "description": "URI of Repository Version. e.g.: /pulp/api/v3/repositories/rpm/rpm/1/versions/1/", "required": true, "type": "string"}]}, "/pulp/api/v3/rpm/copy/": {"post": {"operationId": "copy_content", "summary": "Copy content", "description": "Trigger an asynchronous task to copy RPM contentfrom one repository into another, creating a newrepository version.", "parameters": [{"name": "data", "in": "body", "required": true, "schema": {"$ref": "#/definitions/Copy"}}], "responses": {"202": {"description": "", "schema": {"$ref": "#/definitions/AsyncOperationResponse"}}}, "tags": ["rpm: copy"]}, "parameters": []}}, "definitions": {"rpm.UpdateCollection": {"description": "List of packages", "required": ["name", "shortname"], "type": "object", "properties": {"name": {"title": "Name", "description": "Collection name.", "type": "string"}, "shortname": {"title": "Shortname", "description": "Collection short name.", "type": "string"}, "packages": {"description": "List of packages", "type": "array", "items": {"type": "object", "additionalProperties": {"type": "string"}}, "readOnly": true}}}, "rpm.UpdateRecordRead": {"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}, "id": {"title": "Id", "description": "Update id (short update name, e.g. RHEA-2013:1777)", "type": "string", "readOnly": true, "minLength": 1}, "updated_date": {"title": "Updated date", "description": "Date when the update was updated (e.g. '2013-12-02 00:00:00')", "type": "string", "readOnly": true, "minLength": 1}, "description": {"title": "Description", "description": "Update description", "type": "string", "readOnly": true}, "issued_date": {"title": "Issued date", "description": "Date when the update was issued (e.g. '2013-12-02 00:00:00')", "type": "string", "readOnly": true, "minLength": 1}, "fromstr": {"title": "Fromstr", "description": "Source of the update (e.g. security@redhat.com)", "type": "string", "readOnly": true}, "status": {"title": "Status", "description": "Update status ('final', ...)", "type": "string", "readOnly": true}, "title": {"title": "Title", "description": "Update name", "type": "string", "readOnly": true}, "summary": {"title": "Summary", "description": "Short summary", "type": "string", "readOnly": true}, "version": {"title": "Version", "description": "Update version (probably always an integer number)", "type": "string", "readOnly": true}, "type": {"title": "Type", "description": "Update type ('enhancement', 'bugfix', ...)", "type": "string", "readOnly": true}, "severity": {"title": "Severity", "description": "Severity", "type": "string", "readOnly": true}, "solution": {"title": "Solution", "description": "Solution", "type": "string", "readOnly": true}, "release": {"title": "Release", "description": "Update release", "type": "string", "readOnly": true}, "rights": {"title": "Rights", "description": "Copyrights", "type": "string", "readOnly": true}, "pushcount": {"title": "Pushcount", "description": "Push count", "type": "string", "readOnly": true}, "pkglist": {"description": "List of packages", "type": "array", "items": {"$ref": "#/definitions/rpm.UpdateCollection"}, "readOnly": true}, "references": {"description": "List of references", "type": "array", "items": {"type": "object", "additionalProperties": {"type": "string"}}, "readOnly": true}, "reboot_suggested": {"title": "Reboot suggested", "description": "Reboot suggested", "type": "boolean", "readOnly": true}}}, "AsyncOperationResponse": {"required": ["task"], "type": "object", "properties": {"task": {"title": "Task", "description": "The href of the task.", "type": "string", "format": "uri"}}}, "Addon": {"required": ["addon_id", "uid", "name", "type", "packages"], "type": "object", "properties": {"addon_id": {"title": "Addon id", "description": "Addon id.", "type": "string", "minLength": 1}, "uid": {"title": "Uid", "description": "Addon uid.", "type": "string", "minLength": 1}, "name": {"title": "Name", "description": "Addon name.", "type": "string", "minLength": 1}, "type": {"title": "Type", "description": "Addon type.", "type": "string", "minLength": 1}, "packages": {"title": "Packages", "description": "Relative path to directory with binary RPMs.", "type": "string", "minLength": 1}}}, "Checksum": {"required": ["path", "checksum"], "type": "object", "properties": {"path": {"title": "Path", "description": "File path.", "type": "string", "minLength": 1}, "checksum": {"title": "Checksum", "description": "Checksum for the file.", "type": "string", "minLength": 1}}}, "Artifact": {"title": "Artifact", "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}, "file": {"title": "File", "description": "The stored file.", "type": "string", "readOnly": true}, "size": {"title": "Size", "description": "The size of the file in bytes.", "type": "integer"}, "md5": {"title": "Md5", "description": "The MD5 checksum of the file if available.", "type": "string", "minLength": 1, "x-nullable": true}, "sha1": {"title": "Sha1", "description": "The SHA-1 checksum of the file if available.", "type": "string", "minLength": 1, "x-nullable": true}, "sha224": {"title": "Sha224", "description": "The SHA-224 checksum of the file if available.", "type": "string", "minLength": 1, "x-nullable": true}, "sha256": {"title": "Sha256", "description": "The SHA-256 checksum of the file if available.", "type": "string", "minLength": 1, "x-nullable": true}, "sha384": {"title": "Sha384", "description": "The SHA-384 checksum of the file if available.", "type": "string", "minLength": 1, "x-nullable": true}, "sha512": {"title": "Sha512", "description": "The SHA-512 checksum of the file if available.", "type": "string", "minLength": 1, "x-nullable": true}}}, "Image": {"required": ["name", "path", "platforms", "artifact"], "type": "object", "properties": {"name": {"title": "Name", "description": "File name.", "type": "string", "minLength": 1}, "path": {"title": "Path", "description": "File path.", "type": "string", "minLength": 1}, "platforms": {"title": "Platforms", "description": "Compatible platforms.", "type": "string", "minLength": 1}, "artifact": {"$ref": "#/definitions/Artifact"}}}, "Variant": {"required": ["variant_id", "uid", "name", "type", "packages", "source_packages", "source_repository", "debug_packages", "debug_repository", "identity"], "type": "object", "properties": {"variant_id": {"title": "Variant id", "description": "Variant id.", "type": "string", "minLength": 1}, "uid": {"title": "Uid", "description": "Variant uid.", "type": "string", "minLength": 1}, "name": {"title": "Name", "description": "Variant name.", "type": "string", "minLength": 1}, "type": {"title": "Type", "description": "Variant type.", "type": "string", "minLength": 1}, "packages": {"title": "Packages", "description": "Relative path to directory with binary RPMs.", "type": "string", "minLength": 1}, "source_packages": {"title": "Source packages", "description": "Relative path to directory with source RPMs.", "type": "string", "minLength": 1}, "source_repository": {"title": "Source repository", "description": "Relative path to YUM repository with source RPMs.", "type": "string", "minLength": 1}, "debug_packages": {"title": "Debug packages", "description": "Relative path to directory with debug RPMs.", "type": "string", "minLength": 1}, "debug_repository": {"title": "Debug repository", "description": "Relative path to YUM repository with debug RPMs.", "type": "string", "minLength": 1}, "identity": {"title": "Identity", "description": "Relative path to a pem file that identifies a product.", "type": "string", "minLength": 1}}}, "rpm.DistributionTreeRead": {"required": ["header_version", "release_name", "release_short", "release_version", "release_is_layered", "base_product_name", "base_product_short", "base_product_version", "arch", "build_timestamp", "instimage", "mainimage", "discnum", "totaldiscs", "addons", "checksums", "images", "variants"], "type": "object", "properties": {"pulp_href": {"title": "Pulp href", "type": "string", "format": "uri", "readOnly": true}, "header_version": {"title": "Header version", "description": "Header Version.", "type": "string", "minLength": 1}, "release_name": {"title": "Release name", "description": "Release name.", "type": "string", "minLength": 1}, "release_short": {"title": "Release short", "description": "Release short name.", "type": "string", "minLength": 1}, "release_version": {"title": "Release version", "description": "Release version.", "type": "string", "minLength": 1}, "release_is_layered": {"title": "Release is layered", "description": "Typically False for an operating system, True otherwise.", "type": "boolean"}, "base_product_name": {"title": "Base product name", "description": "Base Product name.", "type": "string", "minLength": 1}, "base_product_short": {"title": "Base product short", "description": "Base Product short name.", "type": "string", "minLength": 1}, "base_product_version": {"title": "Base product version", "description": "Base Product version.", "type": "string", "minLength": 1}, "arch": {"title": "Arch", "description": "Tree architecturerch.", "type": "string", "minLength": 1}, "build_timestamp": {"title": "Build timestamp", "description": "Tree build time timestamp.", "type": "number"}, "instimage": {"title": "Instimage", "description": "Relative path to Anaconda instimage.", "type": "string", "minLength": 1}, "mainimage": {"title": "Mainimage", "description": "Relative path to Anaconda stage2 image.", "type": "string", "minLength": 1}, "discnum": {"title": "Discnum", "description": "Disc number.", "type": "integer"}, "totaldiscs": {"title": "Totaldiscs", "description": "Number of discs in media set.", "type": "integer"}, "addons": {"type": "array", "items": {"$ref": "#/definitions/Addon"}}, "checksums": {"type": "array", "items": {"$ref": "#/definitions/Checksum"}}, "images": {"type": "array", "items": {"$ref": "#/definitions/Image"}}, "variants": {"type": "array", "items": {"$ref": "#/definitions/Variant"}}}}, "rpm.ModulemdDefaultsRead": {"required": ["module", "stream", "profiles"], "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"}, "module": {"title": "Module", "description": "Modulemd name.", "type": "string", "minLength": 1}, "stream": {"title": "Stream", "description": "Modulemd default stream.", "type": "string", "minLength": 1}, "profiles": {"title": "Profiles", "description": "Default profiles for modulemd streams.", "type": "object"}, "sha256": {"title": "Sha256", "description": "The SHA-256 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}}}, "rpm.ModulemdRead": {"required": ["name", "stream", "version", "context", "arch", "artifacts", "dependencies"], "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"}, "name": {"title": "Name", "description": "Modulemd name.", "type": "string", "minLength": 1}, "stream": {"title": "Stream", "description": "Stream name.", "type": "string", "minLength": 1}, "version": {"title": "Version", "description": "Modulemd version.", "type": "string", "minLength": 1}, "context": {"title": "Context", "description": "Modulemd context.", "type": "string", "minLength": 1}, "arch": {"title": "Arch", "description": "Modulemd architecture.", "type": "string", "minLength": 1}, "artifacts": {"title": "Artifacts", "description": "Modulemd artifacts.", "type": "object"}, "dependencies": {"title": "Dependencies", "description": "Modulemd dependencies.", "type": "object"}, "packages": {"description": "Modulemd artifacts' packages.", "type": "array", "items": {"description": "Modulemd artifacts' packages.", "type": "string", "format": "uri", "x-nullable": true}, "uniqueItems": true}, "sha256": {"title": "Sha256", "description": "The SHA-256 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}}}, "rpm.PackageCategoryRead": {"required": ["id", "name", "description", "display_order", "group_ids", "desc_by_lang", "name_by_lang", "digest"], "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}, "id": {"title": "Id", "description": "Category id.", "type": "string", "minLength": 1}, "name": {"title": "Name", "description": "Category name.", "type": "string"}, "description": {"title": "Description", "description": "Category description.", "type": "string"}, "display_order": {"title": "Display order", "description": "Category display order.", "type": "integer"}, "group_ids": {"title": "Group ids", "description": "Category group list.", "type": "object"}, "desc_by_lang": {"title": "Desc by lang", "description": "Category description by language.", "type": "object"}, "name_by_lang": {"title": "Name by lang", "description": "Category name by language.", "type": "object"}, "digest": {"title": "Digest", "description": "Category digest.", "type": "string", "minLength": 1}}}, "rpm.PackageEnvironmentRead": {"required": ["id", "name", "description", "display_order", "group_ids", "option_ids", "desc_by_lang", "name_by_lang", "digest"], "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}, "id": {"title": "Id", "description": "Environment id.", "type": "string", "minLength": 1}, "name": {"title": "Name", "description": "Environment name.", "type": "string"}, "description": {"title": "Description", "description": "Environment description.", "type": "string"}, "display_order": {"title": "Display order", "description": "Environment display order.", "type": "integer"}, "group_ids": {"title": "Group ids", "description": "Environment group list.", "type": "object"}, "option_ids": {"title": "Option ids", "description": "Environment option ids", "type": "object"}, "desc_by_lang": {"title": "Desc by lang", "description": "Environment description by language.", "type": "object"}, "name_by_lang": {"title": "Name by lang", "description": "Environment name by language.", "type": "object"}, "digest": {"title": "Digest", "description": "Environment digest.", "type": "string", "minLength": 1}}}, "rpm.PackageGroupRead": {"required": ["id", "display_order", "name", "description", "packages", "desc_by_lang", "name_by_lang", "digest"], "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}, "id": {"title": "Id", "description": "PackageGroup id.", "type": "string", "minLength": 1}, "default": {"title": "Default", "description": "PackageGroup default.", "type": "boolean"}, "user_visible": {"title": "User visible", "description": "PackageGroup user visibility.", "type": "boolean"}, "display_order": {"title": "Display order", "description": "PackageGroup display order.", "type": "integer"}, "name": {"title": "Name", "description": "PackageGroup name.", "type": "string"}, "description": {"title": "Description", "description": "PackageGroup description.", "type": "string"}, "packages": {"title": "Packages", "description": "PackageGroup package list.", "type": "object"}, "biarch_only": {"title": "Biarch only", "description": "PackageGroup biarch only.", "type": "boolean"}, "desc_by_lang": {"title": "Desc by lang", "description": "PackageGroup description by language.", "type": "object"}, "name_by_lang": {"title": "Name by lang", "description": "PackageGroup name by language.", "type": "object"}, "digest": {"title": "Digest", "description": "PackageGroup digest.", "type": "string", "minLength": 1}}}, "rpm.PackageLangpacksRead": {"required": ["matches", "digest"], "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}, "matches": {"title": "Matches", "description": "Langpacks matches.", "type": "object"}, "digest": {"title": "Digest", "description": "Langpacks digest.", "type": "string", "minLength": 1}}}, "rpm.PackageRead": {"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"}, "name": {"title": "Name", "description": "Name of the package", "type": "string", "readOnly": true, "minLength": 1}, "epoch": {"title": "Epoch", "description": "The package's epoch", "type": "string", "readOnly": true}, "version": {"title": "Version", "description": "The version of the package. For example, '2.8.0'", "type": "string", "readOnly": true, "minLength": 1}, "release": {"title": "Release", "description": "The release of a particular version of the package. e.g. '1.el7' or '3.f24'", "type": "string", "readOnly": true, "minLength": 1}, "arch": {"title": "Arch", "description": "The target architecture for a package.For example, 'x86_64', 'i686', or 'noarch'", "type": "string", "readOnly": true, "minLength": 1}, "pkgId": {"title": "Pkgid", "description": "Checksum of the package file", "type": "string", "readOnly": true, "minLength": 1}, "checksum_type": {"title": "Checksum type", "description": "Type of checksum, e.g. 'sha256', 'md5'", "type": "string", "readOnly": true, "minLength": 1}, "summary": {"title": "Summary", "description": "Short description of the packaged software", "type": "string", "readOnly": true}, "description": {"title": "Description", "description": "In-depth description of the packaged software", "type": "string", "readOnly": true}, "url": {"title": "Url", "description": "URL with more information about the packaged software", "type": "string", "readOnly": true}, "changelogs": {"title": "Changelogs", "description": "Changelogs that package contains", "type": "object", "readOnly": true, "default": "[]"}, "files": {"title": "Files", "description": "Files that package contains", "type": "object", "readOnly": true, "default": "[]"}, "requires": {"title": "Requires", "description": "Capabilities the package requires", "type": "object", "readOnly": true, "default": "[]"}, "provides": {"title": "Provides", "description": "Capabilities the package provides", "type": "object", "readOnly": true, "default": "[]"}, "conflicts": {"title": "Conflicts", "description": "Capabilities the package conflicts", "type": "object", "readOnly": true, "default": "[]"}, "obsoletes": {"title": "Obsoletes", "description": "Capabilities the package obsoletes", "type": "object", "readOnly": true, "default": "[]"}, "suggests": {"title": "Suggests", "description": "Capabilities the package suggests", "type": "object", "readOnly": true, "default": "[]"}, "enhances": {"title": "Enhances", "description": "Capabilities the package enhances", "type": "object", "readOnly": true, "default": "[]"}, "recommends": {"title": "Recommends", "description": "Capabilities the package recommends", "type": "object", "readOnly": true, "default": "[]"}, "sha256": {"title": "Sha256", "description": "The SHA-256 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}, "supplements": {"title": "Supplements", "description": "Capabilities the package supplements", "type": "object", "readOnly": true, "default": "[]"}, "location_base": {"title": "Location base", "description": "Base location of this package", "type": "string", "readOnly": true}, "location_href": {"title": "Location href", "description": "Relative location of package to the repodata", "type": "string", "readOnly": true, "minLength": 1}, "rpm_buildhost": {"title": "Rpm buildhost", "description": "Hostname of the system that built the package", "type": "string", "readOnly": true}, "rpm_group": {"title": "Rpm group", "description": "RPM group (See: http://fedoraproject.org/wiki/RPMGroups)", "type": "string", "readOnly": true}, "rpm_license": {"title": "Rpm license", "description": "License term applicable to the package software (GPLv2, etc.)", "type": "string", "readOnly": true}, "rpm_packager": {"title": "Rpm packager", "description": "Person or persons responsible for creating the package", "type": "string", "readOnly": true}, "rpm_sourcerpm": {"title": "Rpm sourcerpm", "description": "Name of the source package (srpm) the package was built from", "type": "string", "readOnly": true}, "rpm_vendor": {"title": "Rpm vendor", "description": "Name of the organization that produced the package", "type": "string", "readOnly": true}, "rpm_header_start": {"title": "Rpm header start", "description": "First byte of the header", "type": "integer", "readOnly": true}, "rpm_header_end": {"title": "Rpm header end", "description": "Last byte of the header", "type": "integer", "readOnly": true}, "is_modular": {"title": "Is modular", "description": "Flag to identify if the package is modular", "type": "boolean", "readOnly": true}, "size_archive": {"title": "Size archive", "description": "Size, in bytes, of the archive portion of the original package file", "type": "integer", "readOnly": true}, "size_installed": {"title": "Size installed", "description": "Total size, in bytes, of every file installed by this package", "type": "integer", "readOnly": true}, "size_package": {"title": "Size package", "description": "Size, in bytes, of the package", "type": "integer", "readOnly": true}, "time_build": {"title": "Time build", "description": "Time the package was built in seconds since the epoch", "type": "integer", "readOnly": true}, "time_file": {"title": "Time file", "description": "The 'file' time attribute in the primary XML - file mtime in seconds since the epoch.", "type": "integer", "readOnly": true}}}, "rpm.RepoMetadataFileRead": {"required": ["data_type", "checksum_type", "checksum"], "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"}, "data_type": {"title": "Data type", "description": "Metadata type.", "type": "string", "minLength": 1}, "checksum_type": {"title": "Checksum type", "description": "Checksum type for the file.", "type": "string", "minLength": 1}, "checksum": {"title": "Checksum", "description": "Checksum for the file.", "type": "string", "minLength": 1}, "sha256": {"title": "Sha256", "description": "The SHA-256 checksum if available.", "type": "string", "readOnly": true, "minLength": 1}}}, "rpm.RpmDistributionRead": {"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}}}, "rpm.RpmDistribution": {"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}}}, "rpm.RpmPublicationRead": {"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"}, "metadata_checksum_type": {"title": "Metadata checksum type", "description": "The checksum type for metadata.", "type": "string", "enum": ["unknown", "md5", "sha1", "sha224", "sha256", "sha384", "sha512"], "default": "sha256"}, "package_checksum_type": {"title": "Package checksum type", "description": "The checksum type for packages.", "type": "string", "enum": ["unknown", "md5", "sha1", "sha224", "sha256", "sha384", "sha512"], "default": "sha256"}}}, "rpm.RpmPublication": {"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"}, "metadata_checksum_type": {"title": "Metadata checksum type", "description": "The checksum type for metadata.", "type": "string", "enum": ["unknown", "md5", "sha1", "sha224", "sha256", "sha384", "sha512"], "default": "sha256"}, "package_checksum_type": {"title": "Package checksum type", "description": "The checksum type for packages.", "type": "string", "enum": ["unknown", "md5", "sha1", "sha224", "sha256", "sha384", "sha512"], "default": "sha256"}}}, "rpm.RpmRemoteRead": {"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.", "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.", "type": "string", "minLength": 1, "x-nullable": true}, "client_key": {"title": "Client key", "description": "A PEM encoded private key used for authentication.", "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}, "username": {"title": "Username", "description": "The username to be used for authentication when syncing.", "type": "string", "minLength": 1, "x-nullable": true}, "password": {"title": "Password", "description": "The password to be used for authentication when syncing.", "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"}, "sles_auth_token": {"title": "Sles auth token", "description": "Authentication token for SLES repositories.", "type": "string", "minLength": 1, "x-nullable": true}}}, "rpm.RpmRemote": {"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.", "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.", "type": "string", "minLength": 1, "x-nullable": true}, "client_key": {"title": "Client key", "description": "A PEM encoded private key used for authentication.", "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}, "username": {"title": "Username", "description": "The username to be used for authentication when syncing.", "type": "string", "minLength": 1, "x-nullable": true}, "password": {"title": "Password", "description": "The password to be used for authentication when syncing.", "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"}, "sles_auth_token": {"title": "Sles auth token", "description": "Authentication token for SLES repositories.", "type": "string", "minLength": 1, "x-nullable": true}}}, "rpm.RpmRepositoryRead": {"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}, "metadata_signing_service": {"title": "Metadata signing service", "description": "A reference to an associated signing service.", "type": "string", "format": "uri", "x-nullable": true}, "retain_package_versions": {"title": "Retain package versions", "description": "The number of verisons of each package to keep in the repository; older versions will be purged. A value of '0' will disable thisfeature and keep all versions of the package.", "type": "integer", "minimum": 0}}}, "rpm.RpmRepository": {"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}, "metadata_signing_service": {"title": "Metadata signing service", "description": "A reference to an associated signing service.", "type": "string", "format": "uri", "x-nullable": true}, "retain_package_versions": {"title": "Retain package versions", "description": "The number of verisons of each package to keep in the repository; older versions will be purged. A value of '0' will disable thisfeature and keep all versions of the package.", "type": "integer", "minimum": 0}}}, "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"}}}, "RpmRepositorySyncURL": {"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}, "skip_types": {"description": "List of content types to skip during sync.", "type": "array", "items": {"type": "string", "enum": ["srpm"]}, "default": []}, "optimize": {"title": "Optimize", "description": "Whether or not to optimize sync.", "type": "boolean", "default": true}}}, "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"}}}}}, "RepositoryVersionRead": {"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"}}}, "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"}}}, "Copy": {"required": ["config"], "type": "object", "properties": {"config": {"title": "Config", "description": "A JSON document describing sources, destinations, and content to be copied", "type": "object"}, "dependency_solving": {"title": "Dependency solving", "description": "Also copy dependencies of the content being copied.", "type": "boolean", "default": true}}}}, "tags": [{"name": "content: advisories", "x-displayName": "Content: Advisories"}, {"name": "content: distribution_trees", "x-displayName": "Content: Distribution_Trees"}, {"name": "content: modulemd_defaults", "x-displayName": "Content: Modulemd_Defaults"}, {"name": "content: modulemds", "x-displayName": "Content: Modulemds"}, {"name": "content: packagecategories", "x-displayName": "Content: Packagecategories"}, {"name": "content: packageenvironments", "x-displayName": "Content: Packageenvironments"}, {"name": "content: packagegroups", "x-displayName": "Content: Packagegroups"}, {"name": "content: packagelangpacks", "x-displayName": "Content: Packagelangpacks"}, {"name": "content: packages", "x-displayName": "Content: Packages"}, {"name": "content: repo_metadata_files", "x-displayName": "Content: Repo_Metadata_Files"}, {"name": "distributions: rpm", "x-displayName": "Distributions: Rpm"}, {"name": "publications: rpm", "x-displayName": "Publications: Rpm"}, {"name": "remotes: rpm", "x-displayName": "Remotes: Rpm"}, {"name": "repositories: rpm", "x-displayName": "Repositories: Rpm"}, {"name": "repositories: rpm versions", "x-displayName": "Repositories: Rpm Versions"}, {"name": "rpm: copy", "x-displayName": "Rpm: Copy"}]} \ No newline at end of file diff --git a/docs/workflows/create_sync_publish.rst b/docs/workflows/create_sync_publish.rst index 71120a211..114345ecb 100644 --- a/docs/workflows/create_sync_publish.rst +++ b/docs/workflows/create_sync_publish.rst @@ -25,6 +25,12 @@ Repository GET response: "versions_href": "/pulp/api/v3/repositories/rpm/rpm/a02ace53-d490-458d-8b93-604fbcd23a9c/versions/" } +RPM Repositories support several additional options. + +- metadata_signing_service: + See :ref:`metadata_signing`. +- retain_package_versions: + The maximum number of versions of each package to keep; as new versions of packages are added by upload, sync, or copy, older versions of the same packages are automatically removed. A value of 0 means "unlimited". .. _create-remote: diff --git a/pulp_rpm/app/migrations/0012_RAW_rpm_evr_extension.py b/pulp_rpm/app/migrations/0013_RAW_rpm_evr_extension.py similarity index 98% rename from pulp_rpm/app/migrations/0012_RAW_rpm_evr_extension.py rename to pulp_rpm/app/migrations/0013_RAW_rpm_evr_extension.py index c39238f11..154329e72 100644 --- a/pulp_rpm/app/migrations/0012_RAW_rpm_evr_extension.py +++ b/pulp_rpm/app/migrations/0013_RAW_rpm_evr_extension.py @@ -166,7 +166,7 @@ class Migration(migrations.Migration): dependencies = [ - ('rpm', '0011_rpmremote_sles_auth_token'), + ('rpm', '0012_remove_pkg_group_env_cat_related_pkgs'), ] operations = [ diff --git a/pulp_rpm/app/migrations/0014_rpmrepository_package_retention_policy.py b/pulp_rpm/app/migrations/0014_rpmrepository_package_retention_policy.py new file mode 100644 index 000000000..372196cf6 --- /dev/null +++ b/pulp_rpm/app/migrations/0014_rpmrepository_package_retention_policy.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.13 on 2020-06-24 19:32 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('rpm', '0013_RAW_rpm_evr_extension'), + ] + + operations = [ + migrations.AddField( + model_name='rpmrepository', + name='retain_package_versions', + field=models.PositiveIntegerField(default=0), + ), + ] diff --git a/pulp_rpm/app/models/package.py b/pulp_rpm/app/models/package.py index 9999e86ef..a2cbb278a 100644 --- a/pulp_rpm/app/models/package.py +++ b/pulp_rpm/app/models/package.py @@ -4,6 +4,8 @@ from django.contrib.postgres.fields import JSONField from django.db import models +from django.db.models import Window, F +from django.db.models.functions import RowNumber from pulpcore.plugin.models import Content @@ -26,6 +28,31 @@ def db_type(self, connection): return 'evr_t' +class PackageManager(models.Manager): + """Custom Package object manager.""" + + def with_age(self): + """Provide an "age" score for each Package object in the queryset. + + Annotate the Package objects with an "age". Age is calculated with a postgresql + window function which partitions the Packages by name and architecture, orders the + packages in each group by 'evr', and returns the row number of each package, which + is the relative "age" within the group. The newest package gets age=1, second newest + age=2, and so on. + + A second partition by architecture is important because there can be packages with + the same name and verison numbers but they are not interchangeable because they have + differing arch, such as 'x86_64' and 'i686', or 'src' (SRPM) and any other arch. + """ + return self.annotate( + age=Window( + expression=RowNumber(), + partition_by=[F('name'), F('arch')], + order_by=F('evr').desc() + ) + ) + + class Package(Content): """ The "Package" content type. Formerly "rpm" in Pulp 2. @@ -122,6 +149,8 @@ class Package(Content): attribute in the primary XML. """ + objects = PackageManager() + TYPE = 'package' # Required metadata @@ -131,6 +160,7 @@ class Package(Content): release = models.CharField(max_length=255) arch = models.CharField(max_length=20) + # Currently filled by a database trigger - consider eventually switching to generated column evr = RpmVersionField() pkgId = models.CharField(unique=True, max_length=128) # formerly "checksum" in Pulp 2 diff --git a/pulp_rpm/app/models/repository.py b/pulp_rpm/app/models/repository.py index 1d43f6da0..b157533ed 100644 --- a/pulp_rpm/app/models/repository.py +++ b/pulp_rpm/app/models/repository.py @@ -8,10 +8,10 @@ models, transaction, ) - from pulpcore.plugin.download import DownloaderFactory from pulpcore.plugin.models import ( AsciiArmoredDetachedSigningService, + Content, CreatedResource, Remote, Repository, @@ -77,6 +77,7 @@ class RpmRepository(Repository): last_sync_remote = models.ForeignKey(Remote, null=True, on_delete=models.SET_NULL) last_sync_repo_version = models.PositiveIntegerField(default=0) original_checksum_types = JSONField(default=dict) + retain_package_versions = models.PositiveIntegerField(default=0) def new_version(self, base_version=None): """ @@ -124,8 +125,8 @@ def finalize_new_version(self, new_version): Resolve advisory conflicts when there is more than one advisory with the same id. Args: - new_version (pulpcore.app.models.RepositoryVersion): The incomplete RepositoryVersion to - finalize. + new_version (pulpcore.app.models.RepositoryVersion): The incomplete RepositoryVersion + to finalize. """ if new_version.base_version: previous_version = new_version.base_version @@ -140,10 +141,46 @@ def finalize_new_version(self, new_version): from pulp_rpm.app.modulemd import resolve_module_packages # avoid circular import resolve_module_packages(new_version, previous_version) + self._apply_retention_policy(new_version) + from pulp_rpm.app.advisory import resolve_advisories # avoid circular import resolve_advisories(new_version, previous_version) validate_repo_version(new_version) + def _apply_retention_policy(self, new_version): + """Apply the repository's "retain_package_versions" settings to the new version. + + Remove all non-modular packages that are older than the retention policy. A value of 0 + for the package retention policy represents disabled. A value of 3 would mean that the + 3 most recent versions of each package would be kept while older versions are discarded. + + Args: + new_version (models.RepositoryVersion): Repository version to filter + """ + assert not new_version.complete, \ + "Cannot apply retention policy to completed repository versions" + + if self.retain_package_versions > 0: + # It would be more ideal if, instead of annotating with an age and filtering manually, + # we could use Django to filter the particular Package content we want to delete. + # Something like ".filter(F('age') > self.retain_package_versions)" would be better + # however this is not currently possible with Django. It would be possible with raw + # SQL but the repository version content membership subquery is currently + # django-managed and would be difficult to share. + # + # Instead we have to do the filtering manually. + nonmodular_packages = Package.objects.with_age().filter( + pk__in=new_version.content.filter(pulp_type=Package.get_pulp_type()), + is_modular=False, # don't want to filter out modular RPMs + ).only('pk') + + old_packages = [] + for package in nonmodular_packages: + if package.age > self.retain_package_versions: + old_packages.append(package.pk) + + new_version.remove_content(Content.objects.filter(pk__in=old_packages)) + class RpmRemote(Remote): """ diff --git a/pulp_rpm/app/serializers.py b/pulp_rpm/app/serializers.py index 6c6faec40..7b7255b1d 100644 --- a/pulp_rpm/app/serializers.py +++ b/pulp_rpm/app/serializers.py @@ -305,16 +305,25 @@ class RpmRepositorySerializer(RepositorySerializer): """ metadata_signing_service = serializers.HyperlinkedRelatedField( - help_text="A reference to an associated signing service.", + help_text=_("A reference to an associated signing service."), view_name='signing-services-detail', queryset=AsciiArmoredDetachedSigningService.objects.all(), many=False, required=False, allow_null=True ) + retain_package_versions = serializers.IntegerField( + help_text=_("The number of versions of each package to keep in the repository; " + "older versions will be purged. The default is '0', which will disable " + "this feature and keep all versions of each package."), + min_value=0, + required=False, + ) class Meta: - fields = RepositorySerializer.Meta.fields + ('metadata_signing_service',) + fields = RepositorySerializer.Meta.fields + ( + 'metadata_signing_service', 'retain_package_versions' + ) model = RpmRepository @@ -324,13 +333,13 @@ class RpmRemoteSerializer(RemoteSerializer): """ sles_auth_token = serializers.CharField( - help_text="Authentication token for SLES repositories.", + help_text=_("Authentication token for SLES repositories."), required=False, allow_null=True ) policy = serializers.ChoiceField( - help_text="The policy to use when downloading content. The possible values include: " - "'immediate', 'on_demand', and 'streamed'. 'immediate' is the default.", + help_text=_("The policy to use when downloading content. The possible values include: " + "'immediate', 'on_demand', and 'streamed'. 'immediate' is the default."), choices=Remote.POLICY_CHOICES, default=Remote.IMMEDIATE ) diff --git a/pulp_rpm/app/viewsets.py b/pulp_rpm/app/viewsets.py index bb06b7cea..019be5915 100644 --- a/pulp_rpm/app/viewsets.py +++ b/pulp_rpm/app/viewsets.py @@ -132,6 +132,9 @@ def sync(self, request, pk): skip_types = serializer.validated_data.get('skip_types') optimize = serializer.validated_data.get('optimize') + if repository.retain_package_versions > 0 and mirror: + raise DRFValidationError("Cannot use 'retain_package_versions' with mirror-mode sync") + result = enqueue_with_reservation( tasks.synchronize, [repository, remote], diff --git a/pulp_rpm/tests/functional/api/test_retention_policy.py b/pulp_rpm/tests/functional/api/test_retention_policy.py new file mode 100644 index 000000000..4f228726e --- /dev/null +++ b/pulp_rpm/tests/functional/api/test_retention_policy.py @@ -0,0 +1,173 @@ +# coding=utf-8 +"""Tests for the retention policy feature of repositories.""" + +from collections import defaultdict + +from pulp_smash import config +from pulp_smash.pulp3.utils import ( + gen_repo, + get_added_content_summary, + get_content, + get_content_summary, + get_removed_content, + get_removed_content_summary, + delete_orphans, +) + +from pulp_rpm.tests.functional.constants import ( + PULP_TYPE_PACKAGE, + RPM_FIXTURE_SUMMARY, +) +from pulp_rpm.tests.functional.utils import ( + gen_rpm_client, + gen_rpm_remote, + monitor_task, + progress_reports, +) +from pulp_rpm.tests.functional.utils import set_up_module as setUpModule # noqa:F401 +from pulp_rpm.tests.functional.utils import PulpTestCase + +from pulpcore.client.pulp_rpm import ( + RepositoriesRpmApi, + RpmRepositorySyncURL, + RemotesRpmApi, +) +from pulpcore.client.pulp_rpm.exceptions import ApiException + + +class RetentionPolicyTestCase(PulpTestCase): + """Verify functionality of the "retain_package_versions" setting on a Repository.""" + + @classmethod + def setUpClass(cls): + """Create class-wide variables.""" + cls.cfg = config.get_config() + cls.client = gen_rpm_client() + cls.repo_api = RepositoriesRpmApi(cls.client) + cls.remote_api = RemotesRpmApi(cls.client) + delete_orphans(cls.cfg) + + def test_sync_with_retention(self): + """Verify functionality with sync. + + Do the following: + + 1. Create a repository, and a remote. + 2. Sync the remote. + 3. Assert that the correct number of units were added and are present + in the repo. + 4. Change the "retain_package_versions" on the repository to 1 (retain the latest + version only). + 5. Sync the remote one more time. + 6. Assert that repository version is different from the previous one. + 7. Assert the repository version we end with has only one version of each package. + """ + repo = self.repo_api.create(gen_repo()) + self.addCleanup(self.repo_api.delete, repo.pulp_href) + + remote = self.remote_api.create(gen_rpm_remote()) + self.addCleanup(self.remote_api.delete, remote.pulp_href) + + self.sync(repository=repo, remote=remote, optimize=False) + repo = self.repo_api.read(repo.pulp_href) + + # Test that, by default, everything is retained / nothing is tossed out. + self.assertDictEqual(get_content_summary(repo.to_dict()), RPM_FIXTURE_SUMMARY) + self.assertDictEqual(get_added_content_summary(repo.to_dict()), RPM_FIXTURE_SUMMARY) + + # Set the retention policy to retain only 1 version of each package + repo_data = repo.to_dict() + repo_data.update({'retain_package_versions': 1}) + self.repo_api.update(repo.pulp_href, data=repo_data) + repo = self.repo_api.read(repo.pulp_href) + + self.sync(repository=repo, remote=remote, optimize=False) + repo = self.repo_api.read(repo.pulp_href) + + # Test that only one version of each package is present + self.assertTrue( + self.check_retention_policy(get_content(repo.to_dict())[PULP_TYPE_PACKAGE], 1) + ) + # Test that (only) 4 RPMs were removed (no advisories etc. touched) + self.assertDictEqual( + get_removed_content_summary(repo.to_dict()), + {PULP_TYPE_PACKAGE: 4} + ) + # Test that the versions that were removed are the versions we expect. + versions_for_packages = self.versions_for_packages( + get_removed_content(repo.to_dict())[PULP_TYPE_PACKAGE] + ) + self.assertDictEqual( + versions_for_packages, + {'duck': ['0.7', '0.6'], 'kangaroo': ['0.2'], 'walrus': ['0.71']}, + versions_for_packages + ) + # TODO: Test that modular RPMs unaffected? + + def test_mirror_sync_with_retention_fails(self): + """Verify functionality with sync. + + Do the following: + + 1. Create a repository with 'retain_package_versions' set, and a remote. + 2. Sync the remote in mirror mode. + 3. Assert that the sync fails. + """ + repo_data = gen_repo() + repo_data.update({'retain_package_versions': 1}) + repo = self.repo_api.create(repo_data) + self.addCleanup(self.repo_api.delete, repo.pulp_href) + + remote = self.remote_api.create(gen_rpm_remote()) + self.addCleanup(self.remote_api.delete, remote.pulp_href) + + with self.assertRaises(ApiException) as exc: + self.sync(repository=repo, remote=remote, optimize=False, mirror=True) + self.assertEqual(exc.code, 400) + + def versions_for_packages(self, packages): + """Get a list of versions for each package present in a list of Package dicts. + + Args: + packages: List of Package info dicts + """ + packages_by_version = defaultdict(list) + + for package in packages: + packages_by_version[package['name']].append(package['version']) + + return packages_by_version + + def check_retention_policy(self, packages, retain_package_versions): + """Check that the number of versions of each package <= permitted number. + + Args: + packages: List of Package info dicts + retention_policy: Number of package versions permitted. + """ + return all([ + len(versions) <= retain_package_versions + for versions in self.versions_for_packages(packages).values() + ]) + + def sync(self, repository, remote, optimize=True, mirror=False): + """Sync a repository and return the task. + + Args: + repository (pulp_rpm.app.models.repository.RpmRepository): + object of RPM repository + remote (pulp_rpm.app.models.repository.RpmRemote): + object of RPM Remote + optimize (bool): + whether to enable optimized sync + mirror (bool): + whether to use mirror-mode sync + Returns (list): + list of the ProgressReport objects created from this sync + """ + repository_sync_data = RpmRepositorySyncURL( + remote=remote.pulp_href, optimize=optimize, mirror=mirror + ) + sync_response = self.repo_api.sync(repository.pulp_href, repository_sync_data) + monitor_task(sync_response.task) + return progress_reports(sync_response.task)