{
  "swagger": "2.0",
  "info": {
    "version": "3.21.2-03",
    "title": "Nexus Repository Manager REST API"
  },
  "basePath": "/service/rest/",
  "tags": [
    {
      "name": "Security Management"
    },
    {
      "name": "Security Management: Users"
    },
    {
      "name": "Security Management: Privileges"
    },
    {
      "name": "Security Management: Realms"
    },
    {
      "name": "Security Management: Roles"
    },
    {
      "name": "tasks"
    },
    {
      "name": "Blob Store"
    },
    {
      "name": "lifecycle"
    },
    {
      "name": "read-only"
    },
    {
      "name": "Security: Certificates"
    },
    {
      "name": "Repository Management"
    },
    {
      "name": "assets"
    },
    {
      "name": "components"
    },
    {
      "name": "content-selectors"
    },
    {
      "name": "repositories"
    },
    {
      "name": "routing-rules"
    },
    {
      "name": "search"
    },
    {
      "name": "formats"
    },
    {
      "name": "script"
    },
    {
      "name": "email"
    },
    {
      "name": "status"
    },
    {
      "name": "support"
    },
    {
      "name": "Security Management: LDAP"
    },
    {
      "name": "Product Licensing"
    },
    {
      "name": "Manage IQ Server configuration"
    }
  ],
  "paths": {
    "/beta/security/user-sources": {
      "get": {
        "tags": [
          "Security Management"
        ],
        "summary": "Retrieve a list of the available user sources.",
        "description": "",
        "operationId": "getUserSources",
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ApiUserSource"
              }
            }
          },
          "403": {
            "description": "The user does not have permission to perform the operation."
          }
        }
      }
    },
    "/beta/security/users/{userId}": {
      "put": {
        "tags": [
          "Security Management: Users"
        ],
        "summary": "Update an existing user.",
        "description": "",
        "operationId": "updateUser",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "The userid the request should apply to.",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "A representation of the user to update.",
            "required": false,
            "schema": {
              "$ref": "#/definitions/ApiUser"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Password was not supplied in the body of the request"
          },
          "403": {
            "description": "The user does not have permission to perform the operation."
          },
          "404": {
            "description": "User or user source not found in the system."
          }
        }
      },
      "delete": {
        "tags": [
          "Security Management: Users"
        ],
        "summary": "Delete a user.",
        "description": "",
        "operationId": "deleteUser",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "The userid the request should apply to.",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "400": {
            "description": "Password was not supplied in the body of the request"
          },
          "403": {
            "description": "The user does not have permission to perform the operation."
          },
          "404": {
            "description": "User or user source not found in the system."
          }
        }
      }
    },
    "/beta/security/users": {
      "get": {
        "tags": [
          "Security Management: Users"
        ],
        "summary": "Retrieve a list of users. Note if the source is not 'default' the response is limited to 100 users.",
        "description": "",
        "operationId": "getUsers",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "description": "An optional term to search userids for.",
            "required": false,
            "type": "string"
          },
          {
            "name": "source",
            "in": "query",
            "description": "An optional user source to restrict the search to.",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ApiUser"
              }
            }
          },
          "400": {
            "description": "Password was not supplied in the body of the request"
          },
          "403": {
            "description": "The user does not have permission to perform the operation."
          }
        }
      },
      "post": {
        "tags": [
          "Security Management: Users"
        ],
        "summary": "Create a new user in the default source.",
        "description": "",
        "operationId": "createUser",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "A representation of the user to create.",
            "required": false,
            "schema": {
              "$ref": "#/definitions/ApiCreateUser"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/ApiUser"
            }
          },
          "400": {
            "description": "Password was not supplied in the body of the request"
          },
          "403": {
            "description": "The user does not have permission to perform the operation."
          }
        }
      }
    },
    "/beta/security/users/{userId}/change-password": {
      "put": {
        "tags": [
          "Security Management: Users"
        ],
        "summary": "Change a user's password.",
        "description": "",
        "operationId": "changePassword",
        "consumes": [
          "text/plain"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "The userid the request should apply to.",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "The new password to use.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Password was not supplied in the body of the request"
          },
          "403": {
            "description": "The user does not have permission to perform the operation."
          },
          "404": {
            "description": "User not found in the system."
          }
        }
      }
    },
    "/beta/security/privileges": {
      "get": {
        "tags": [
          "Security Management: Privileges"
        ],
        "summary": "Retrieve a list of privileges.",
        "description": "",
        "operationId": "getPrivileges",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ApiPrivilege"
              }
            }
          },
          "403": {
            "description": "The user does not have permission to perform the operation."
          }
        }
      }
    },
    "/beta/security/privileges/{privilegeId}": {
      "get": {
        "tags": [
          "Security Management: Privileges"
        ],
        "summary": "Retrieve a privilege by id.",
        "description": "",
        "operationId": "getPrivilege",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "privilegeId",
            "in": "path",
            "description": "The id of the privilege to retrieve.",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/ApiPrivilege"
            }
          },
          "403": {
            "description": "The user does not have permission to perform the operation."
          },
          "404": {
            "description": "Privilege not found in the system."
          }
        }
      },
      "delete": {
        "tags": [
          "Security Management: Privileges"
        ],
        "summary": "Delete a privilege by id.",
        "description": "",
        "operationId": "deletePrivilege",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "privilegeId",
            "in": "path",
            "description": "The id of the privilege to delete.",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "400": {
            "description": "The privilege is internal and may not be altered."
          },
          "403": {
            "description": "The user does not have permission to perform the operation."
          },
          "404": {
            "description": "Privilege not found in the system."
          }
        }
      }
    },
    "/beta/security/privileges/wildcard": {
      "post": {
        "tags": [
          "Security Management: Privileges"
        ],
        "summary": "Create a wildcard type privilege.",
        "description": "",
        "operationId": "createPrivilege",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "The privilege to create.",
            "required": false,
            "schema": {
              "$ref": "#/definitions/ApiPrivilegeWildcardRequest"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Privilege object not configured properly."
          },
          "403": {
            "description": "The user does not have permission to perform the operation."
          }
        }
      }
    },
    "/beta/security/privileges/application": {
      "post": {
        "tags": [
          "Security Management: Privileges"
        ],
        "summary": "Create an application type privilege.",
        "description": "",
        "operationId": "createPrivilege_1",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "The privilege to create.",
            "required": false,
            "schema": {
              "$ref": "#/definitions/ApiPrivilegeApplicationRequest"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Privilege object not configured properly."
          },
          "403": {
            "description": "The user does not have permission to perform the operation."
          }
        }
      }
    },
    "/beta/security/privileges/wildcard/{privilegeId}": {
      "put": {
        "tags": [
          "Security Management: Privileges"
        ],
        "summary": "Update a wildcard type privilege.",
        "description": "",
        "operationId": "updatePrivilege",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "privilegeId",
            "in": "path",
            "description": "The id of the privilege to update.",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "The privilege to update.",
            "required": false,
            "schema": {
              "$ref": "#/definitions/ApiPrivilegeWildcardRequest"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Privilege object not configured properly."
          },
          "403": {
            "description": "The user does not have permission to perform the operation."
          },
          "404": {
            "description": "Privilege not found in the system."
          }
        }
      }
    },
    "/beta/security/privileges/application/{privilegeId}": {
      "put": {
        "tags": [
          "Security Management: Privileges"
        ],
        "summary": "Update an application type privilege.",
        "description": "",
        "operationId": "updatePrivilege_1",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "privilegeId",
            "in": "path",
            "description": "The id of the privilege to update.",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "The privilege to update.",
            "required": false,
            "schema": {
              "$ref": "#/definitions/ApiPrivilegeApplicationRequest"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Privilege object not configured properly."
          },
          "403": {
            "description": "The user does not have permission to perform the operation."
          },
          "404": {
            "description": "Privilege not found in the system."
          }
        }
      }
    },
    "/beta/security/realms/available": {
      "get": {
        "tags": [
          "Security Management: Realms"
        ],
        "summary": "List the available realms",
        "description": "",
        "operationId": "getRealms",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/RealmApiXO"
              }
            }
          }
        }
      }
    },
    "/beta/security/realms/active": {
      "get": {
        "tags": [
          "Security Management: Realms"
        ],
        "summary": "List the active realm IDs in order",
        "description": "",
        "operationId": "getActiveRealms",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Security Management: Realms"
        ],
        "summary": "Set the active security realms in the order they should be used",
        "description": "",
        "operationId": "setActiveRealms",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "The realm IDs",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "default": {
            "description": "successful operation"
          }
        }
      }
    },
    "/beta/security/roles": {
      "get": {
        "tags": [
          "Security Management: Roles"
        ],
        "summary": "List roles",
        "description": "",
        "operationId": "getRoles",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "source",
            "in": "query",
            "description": "The id of the user source to filter the roles by, if supplied. Otherwise roles from all user sources will be returned.",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/RoleXOResponse"
              }
            }
          },
          "400": {
            "description": "The specified source does not exist"
          },
          "403": {
            "description": "Insufficient permissions to read roles"
          }
        }
      },
      "post": {
        "tags": [
          "Security Management: Roles"
        ],
        "summary": "Create role",
        "description": "",
        "operationId": "create",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "A role configuration",
            "required": true,
            "schema": {
              "$ref": "#/definitions/RoleXORequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/RoleXOResponse"
            }
          },
          "403": {
            "description": "Insufficient permissions to create role"
          }
        }
      }
    },
    "/beta/security/roles/{id}": {
      "get": {
        "tags": [
          "Security Management: Roles"
        ],
        "summary": "Get role",
        "description": "",
        "operationId": "getRole",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "source",
            "in": "query",
            "description": "The id of the user source to filter the roles by. Available sources can be fetched using the 'User Sources' endpoint.",
            "required": false,
            "type": "string",
            "default": "default"
          },
          {
            "name": "id",
            "in": "path",
            "description": "The id of the role to get",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/RoleXOResponse"
            }
          },
          "400": {
            "description": "The specified source does not exist"
          },
          "403": {
            "description": "Insufficient permissions to read roles"
          },
          "404": {
            "description": "Role not found"
          }
        }
      },
      "put": {
        "tags": [
          "Security Management: Roles"
        ],
        "summary": "Update role",
        "description": "",
        "operationId": "update",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the role to update",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "A role configuration",
            "required": true,
            "schema": {
              "$ref": "#/definitions/RoleXORequest"
            }
          }
        ],
        "responses": {
          "403": {
            "description": "Insufficient permissions to update role"
          },
          "404": {
            "description": "Role not found"
          }
        }
      },
      "delete": {
        "tags": [
          "Security Management: Roles"
        ],
        "summary": "Delete role",
        "description": "",
        "operationId": "delete",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the role to delete",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "403": {
            "description": "Insufficient permissions to delete role"
          },
          "404": {
            "description": "Role not found"
          }
        }
      }
    },
    "/v1/tasks/{id}": {
      "get": {
        "tags": [
          "tasks"
        ],
        "summary": "Get a single task by id",
        "description": "",
        "operationId": "getTaskById",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the task to get",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/TaskXO"
            }
          },
          "404": {
            "description": "Task not found"
          }
        }
      }
    },
    "/v1/tasks": {
      "get": {
        "tags": [
          "tasks"
        ],
        "summary": "List tasks",
        "description": "",
        "operationId": "getTasks",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "description": "Type of the tasks to get",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/PageTaskXO"
            }
          }
        }
      }
    },
    "/v1/tasks/{id}/run": {
      "post": {
        "tags": [
          "tasks"
        ],
        "summary": "Run task",
        "description": "",
        "operationId": "run",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the task to run",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Task was run"
          },
          "404": {
            "description": "Task not found"
          },
          "405": {
            "description": "Task is disabled"
          }
        }
      }
    },
    "/v1/tasks/{id}/stop": {
      "post": {
        "tags": [
          "tasks"
        ],
        "summary": "Stop task",
        "description": "",
        "operationId": "stop",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the task to stop",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Task was stopped"
          },
          "404": {
            "description": "Task not found"
          },
          "409": {
            "description": "Unable to stop task"
          }
        }
      }
    },
    "/beta/blobstores/{name}": {
      "delete": {
        "tags": [
          "Blob Store"
        ],
        "summary": "Delete a blob store by name",
        "description": "",
        "operationId": "deleteBlobStore",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "The name of the blob store to delete",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "default": {
            "description": "successful operation"
          }
        }
      }
    },
    "/beta/blobstores": {
      "get": {
        "tags": [
          "Blob Store"
        ],
        "summary": "List the blob stores",
        "description": "",
        "operationId": "listBlobStores",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/GenericBlobStoreApiResponse"
              }
            }
          }
        }
      }
    },
    "/v1/blobstores/{id}/quota-status": {
      "get": {
        "tags": [
          "Blob Store"
        ],
        "summary": "Get quota status for a given blob store",
        "description": "",
        "operationId": "quotaStatus",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/BlobStoreQuotaResultXO"
            }
          }
        }
      }
    },
    "/beta/blobstores/file": {
      "post": {
        "tags": [
          "Blob Store"
        ],
        "summary": "Create a file blob store",
        "description": "",
        "operationId": "createFileBlobStore",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/FileBlobStoreApiCreateRequest"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "successful operation"
          }
        }
      }
    },
    "/beta/blobstores/file/{name}": {
      "get": {
        "tags": [
          "Blob Store"
        ],
        "summary": "Get a file blob store configuration by name",
        "description": "",
        "operationId": "getFileBlobStoreConfiguration",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "The name of the file blob store to read",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/FileBlobStoreApiModel"
            }
          }
        }
      },
      "put": {
        "tags": [
          "Blob Store"
        ],
        "summary": "Update a file blob store configuration by name",
        "description": "",
        "operationId": "updateFileBlobStore",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "The name of the file blob store to update",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/FileBlobStoreApiUpdateRequest"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "successful operation"
          }
        }
      }
    },
    "/v1/lifecycle/phase": {
      "get": {
        "tags": [
          "lifecycle"
        ],
        "summary": "Get current lifecycle phase",
        "description": "",
        "operationId": "getPhase",
        "produces": [
          "text/plain"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "type": "string"
            }
          }
        }
      },
      "put": {
        "tags": [
          "lifecycle"
        ],
        "summary": "Move to new lifecycle phase",
        "description": "",
        "operationId": "setPhase",
        "consumes": [
          "text/plain"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "The phase to move to",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "successful operation"
          }
        }
      }
    },
    "/v1/lifecycle/bounce": {
      "put": {
        "tags": [
          "lifecycle"
        ],
        "summary": "Bounce lifecycle phase",
        "description": "Re-runs all phases from the given phase to the current phase",
        "operationId": "bounce",
        "consumes": [
          "text/plain"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "The phase to bounce",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "successful operation"
          }
        }
      }
    },
    "/v1/read-only/freeze": {
      "post": {
        "tags": [
          "read-only"
        ],
        "summary": "Enable read-only",
        "description": "",
        "operationId": "freeze",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "204": {
            "description": "System is now read-only"
          },
          "403": {
            "description": "Authentication required"
          },
          "404": {
            "description": "No change to read-only state"
          }
        }
      }
    },
    "/v1/read-only/force-release": {
      "post": {
        "tags": [
          "read-only"
        ],
        "summary": "Forcibly release read-only",
        "description": "Forcibly release read-only status, including System initiated tasks. Warning: may result in data loss.",
        "operationId": "forceRelease",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "204": {
            "description": "System is no longer read-only"
          },
          "403": {
            "description": "Authentication required"
          },
          "404": {
            "description": "No change to read-only state"
          }
        }
      }
    },
    "/v1/read-only/release": {
      "post": {
        "tags": [
          "read-only"
        ],
        "summary": "Release read-only",
        "description": "Release administrator initiated read-only status. Will not release read-only caused by system tasks.",
        "operationId": "release",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "204": {
            "description": "System is no longer read-only"
          },
          "403": {
            "description": "Authentication required"
          },
          "404": {
            "description": "No change to read-only state"
          }
        }
      }
    },
    "/v1/read-only": {
      "get": {
        "tags": [
          "read-only"
        ],
        "summary": "Get read-only state",
        "description": "",
        "operationId": "get",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/ReadOnlyState"
            }
          }
        }
      }
    },
    "/beta/security/ssl/truststore/{id}": {
      "delete": {
        "tags": [
          "Security: Certificates"
        ],
        "summary": "Remove a certificate in the trust store.",
        "description": "",
        "operationId": "removeCertificate",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the certificate that should be removed.",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "403": {
            "description": "Insufficient permissions to remove certificate from the trust store"
          }
        }
      }
    },
    "/beta/security/ssl/truststore": {
      "get": {
        "tags": [
          "Security: Certificates"
        ],
        "summary": "Retrieve a list of certificates added to the trust store.",
        "description": "",
        "operationId": "getTrustStoreCertificates",
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ApiCertificate"
              }
            }
          },
          "403": {
            "description": "Insufficient permissions to list certificates in the trust store."
          }
        }
      },
      "post": {
        "tags": [
          "Security: Certificates"
        ],
        "summary": "Add a certificate to the trust store.",
        "description": "",
        "operationId": "addCertificate",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "The certificate to add encoded in PEM format",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "The certificate was successfully added.",
            "schema": {
              "type": "object"
            }
          },
          "403": {
            "description": "Insufficient permissions to add certificate to the trust store."
          },
          "409": {
            "description": "The certificate already exists in the system."
          }
        }
      }
    },
    "/beta/security/ssl": {
      "get": {
        "tags": [
          "Security: Certificates"
        ],
        "summary": "Helper method to retrieve certificate details from a remote system.",
        "description": "",
        "operationId": "retrieveCertificate",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "host",
            "in": "query",
            "description": "The remote system's host name",
            "required": true,
            "type": "string"
          },
          {
            "name": "port",
            "in": "query",
            "description": "The port on the remote system to connect to",
            "required": false,
            "type": "integer",
            "default": 443,
            "format": "int32"
          },
          {
            "name": "protocolHint",
            "in": "query",
            "description": "An optional hint of the protocol to try for the connection",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/ApiCertificate"
            }
          },
          "400": {
            "description": "A certificate could not be retrieved, see the message for details."
          },
          "403": {
            "description": "Insufficient permissions to retrieve remote certificate."
          }
        }
      }
    },
    "/beta/repositories": {
      "get": {
        "tags": [
          "Repository Management"
        ],
        "summary": "List repositories",
        "description": "",
        "operationId": "getRepositories",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Repositories list returned"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/repositories/{repositoryName}/invalidate-cache": {
      "post": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Invalidate repository cache. Proxy or group repositories only.",
        "description": "",
        "operationId": "invalidateCache",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "repositoryName",
            "in": "path",
            "description": "Name of the repository to invalidate cache",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Repository cache invalidated"
          },
          "400": {
            "description": "Repository is not of proxy or group type"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          },
          "404": {
            "description": "Repository not found"
          }
        }
      }
    },
    "/beta/repositories/{repositoryName}": {
      "delete": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Delete repository of any format",
        "description": "",
        "operationId": "deleteRepository",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "repositoryName",
            "in": "path",
            "description": "Name of the repository to delete",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Repository deleted"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          },
          "404": {
            "description": "Repository not found"
          }
        }
      }
    },
    "/beta/repositories/{repositoryName}/rebuild-index": {
      "post": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Schedule a 'Repair - Rebuild repository search' Task. Hosted or proxy repositories only.",
        "description": "",
        "operationId": "rebuildIndex",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "repositoryName",
            "in": "path",
            "description": "Name of the repository to rebuild index",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Repository search index rebuild has been scheduled"
          },
          "400": {
            "description": "Repository is not of hosted or proxy type"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          },
          "404": {
            "description": "Repository not found"
          }
        }
      }
    },
    "/v1/assets": {
      "get": {
        "tags": [
          "assets"
        ],
        "summary": "List assets",
        "description": "",
        "operationId": "getAssets",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "continuationToken",
            "in": "query",
            "description": "A token returned by a prior request. If present, the next page of results are returned",
            "required": false,
            "type": "string"
          },
          {
            "name": "repository",
            "in": "query",
            "description": "Repository from which you would like to retrieve assets.",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/PageAssetXO"
            }
          },
          "403": {
            "description": "Insufficient permissions to list assets"
          },
          "422": {
            "description": "Parameter 'repository' is required"
          }
        }
      }
    },
    "/v1/assets/{id}": {
      "get": {
        "tags": [
          "assets"
        ],
        "summary": "Get a single asset",
        "description": "",
        "operationId": "getAssetById",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the asset to get",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/AssetXO"
            }
          },
          "403": {
            "description": "Insufficient permissions to get asset"
          },
          "404": {
            "description": "Asset not found"
          },
          "422": {
            "description": "Malformed ID"
          }
        }
      },
      "delete": {
        "tags": [
          "assets"
        ],
        "summary": "Delete a single asset",
        "description": "",
        "operationId": "deleteAsset",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the asset to delete",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Asset was successfully deleted"
          },
          "403": {
            "description": "Insufficient permissions to delete asset"
          },
          "404": {
            "description": "Asset not found"
          },
          "422": {
            "description": "Malformed ID"
          }
        }
      }
    },
    "/v1/components/{id}": {
      "get": {
        "tags": [
          "components"
        ],
        "summary": "Get a single component",
        "description": "",
        "operationId": "getComponentById",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the component to retrieve",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/ComponentXO"
            }
          },
          "403": {
            "description": "Insufficient permissions to get component"
          },
          "404": {
            "description": "Component not found"
          },
          "422": {
            "description": "Malformed ID"
          }
        }
      },
      "delete": {
        "tags": [
          "components"
        ],
        "summary": "Delete a single component",
        "description": "",
        "operationId": "deleteComponent",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the component to delete",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Component was successfully deleted"
          },
          "403": {
            "description": "Insufficient permissions to delete component"
          },
          "404": {
            "description": "Component not found"
          },
          "422": {
            "description": "Malformed ID"
          }
        }
      }
    },
    "/v1/components": {
      "get": {
        "tags": [
          "components"
        ],
        "summary": "List components",
        "description": "",
        "operationId": "getComponents",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "continuationToken",
            "in": "query",
            "description": "A token returned by a prior request. If present, the next page of results are returned",
            "required": false,
            "type": "string"
          },
          {
            "name": "repository",
            "in": "query",
            "description": "Repository from which you would like to retrieve components",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/PageComponentXO"
            }
          },
          "403": {
            "description": "Insufficient permissions to list components"
          },
          "422": {
            "description": "Parameter 'repository' is required"
          }
        }
      },
      "post": {
        "tags": [
          "components"
        ],
        "summary": "Upload a single component",
        "description": "",
        "operationId": "uploadComponent",
        "consumes": [
          "multipart/form-data"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "repository",
            "in": "query",
            "description": "Name of the repository to which you would like to upload the component",
            "required": true,
            "type": "string"
          },
          {
            "name": "yum.directory",
            "in": "formData",
            "description": "yum Directory",
            "required": false,
            "type": "string"
          },
          {
            "name": "yum.asset",
            "in": "formData",
            "description": "yum Asset ",
            "required": false,
            "type": "file"
          },
          {
            "name": "yum.asset.filename",
            "in": "formData",
            "description": "yum Asset  Filename",
            "required": false,
            "type": "string"
          },
          {
            "name": "r.asset",
            "in": "formData",
            "description": "r Asset ",
            "required": false,
            "type": "file"
          },
          {
            "name": "r.asset.pathId",
            "in": "formData",
            "description": "r Asset  Package Path",
            "required": false,
            "type": "string"
          },
          {
            "name": "pypi.asset",
            "in": "formData",
            "description": "pypi Asset ",
            "required": false,
            "type": "file"
          },
          {
            "name": "helm.asset",
            "in": "formData",
            "description": "helm Asset ",
            "required": false,
            "type": "file"
          },
          {
            "name": "apt.asset",
            "in": "formData",
            "description": "apt Asset ",
            "required": false,
            "type": "file"
          },
          {
            "name": "rubygems.asset",
            "in": "formData",
            "description": "rubygems Asset ",
            "required": false,
            "type": "file"
          },
          {
            "name": "raw.directory",
            "in": "formData",
            "description": "raw Directory",
            "required": false,
            "type": "string"
          },
          {
            "name": "raw.asset1",
            "in": "formData",
            "description": "raw Asset 1",
            "required": false,
            "type": "file"
          },
          {
            "name": "raw.asset1.filename",
            "in": "formData",
            "description": "raw Asset 1 Filename",
            "required": false,
            "type": "string"
          },
          {
            "name": "raw.asset2",
            "in": "formData",
            "description": "raw Asset 2",
            "required": false,
            "type": "file"
          },
          {
            "name": "raw.asset2.filename",
            "in": "formData",
            "description": "raw Asset 2 Filename",
            "required": false,
            "type": "string"
          },
          {
            "name": "raw.asset3",
            "in": "formData",
            "description": "raw Asset 3",
            "required": false,
            "type": "file"
          },
          {
            "name": "raw.asset3.filename",
            "in": "formData",
            "description": "raw Asset 3 Filename",
            "required": false,
            "type": "string"
          },
          {
            "name": "npm.asset",
            "in": "formData",
            "description": "npm Asset ",
            "required": false,
            "type": "file"
          },
          {
            "name": "nuget.asset",
            "in": "formData",
            "description": "nuget Asset ",
            "required": false,
            "type": "file"
          },
          {
            "name": "maven2.groupId",
            "in": "formData",
            "description": "maven2 Group ID",
            "required": false,
            "type": "string"
          },
          {
            "name": "maven2.artifactId",
            "in": "formData",
            "description": "maven2 Artifact ID",
            "required": false,
            "type": "string"
          },
          {
            "name": "maven2.version",
            "in": "formData",
            "description": "maven2 Version",
            "required": false,
            "type": "string"
          },
          {
            "name": "maven2.generate-pom",
            "in": "formData",
            "description": "maven2 Generate a POM file with these coordinates",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "maven2.packaging",
            "in": "formData",
            "description": "maven2 Packaging",
            "required": false,
            "type": "string"
          },
          {
            "name": "maven2.asset1",
            "in": "formData",
            "description": "maven2 Asset 1",
            "required": false,
            "type": "file"
          },
          {
            "name": "maven2.asset1.classifier",
            "in": "formData",
            "description": "maven2 Asset 1 Classifier",
            "required": false,
            "type": "string"
          },
          {
            "name": "maven2.asset1.extension",
            "in": "formData",
            "description": "maven2 Asset 1 Extension",
            "required": false,
            "type": "string"
          },
          {
            "name": "maven2.asset2",
            "in": "formData",
            "description": "maven2 Asset 2",
            "required": false,
            "type": "file"
          },
          {
            "name": "maven2.asset2.classifier",
            "in": "formData",
            "description": "maven2 Asset 2 Classifier",
            "required": false,
            "type": "string"
          },
          {
            "name": "maven2.asset2.extension",
            "in": "formData",
            "description": "maven2 Asset 2 Extension",
            "required": false,
            "type": "string"
          },
          {
            "name": "maven2.asset3",
            "in": "formData",
            "description": "maven2 Asset 3",
            "required": false,
            "type": "file"
          },
          {
            "name": "maven2.asset3.classifier",
            "in": "formData",
            "description": "maven2 Asset 3 Classifier",
            "required": false,
            "type": "string"
          },
          {
            "name": "maven2.asset3.extension",
            "in": "formData",
            "description": "maven2 Asset 3 Extension",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "403": {
            "description": "Insufficient permissions to upload a component"
          },
          "422": {
            "description": "Parameter 'repository' is required"
          }
        }
      }
    },
    "/beta/security/content-selectors/{name}": {
      "get": {
        "tags": [
          "content-selectors"
        ],
        "summary": "Get a content selector by id",
        "description": "",
        "operationId": "getContentSelector",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "The content selector name",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          },
          "403": {
            "description": "Insufficient permissions to read the content selector"
          }
        }
      },
      "put": {
        "tags": [
          "content-selectors"
        ],
        "summary": "Update a content selector",
        "description": "",
        "operationId": "updateContentSelector",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "The content selector name",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/ContentSelectorApiUpdateRequest"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Content selector updated successfully"
          },
          "400": {
            "description": "Invalid request"
          },
          "403": {
            "description": "Insufficient permissions to update the content selector"
          }
        }
      },
      "delete": {
        "tags": [
          "content-selectors"
        ],
        "summary": "Delete a content selector",
        "description": "",
        "operationId": "deleteContentSelector",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Content selector deleted successfully"
          },
          "400": {
            "description": "Invalid request"
          },
          "403": {
            "description": "Insufficient permissions to delete the content selector"
          }
        }
      }
    },
    "/beta/security/content-selectors": {
      "get": {
        "tags": [
          "content-selectors"
        ],
        "summary": "List Content Selectors",
        "description": "",
        "operationId": "getContentSelectors",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "successful operation"
          },
          "403": {
            "description": "Insufficient permissions to read content selectors"
          }
        }
      },
      "post": {
        "tags": [
          "content-selectors"
        ],
        "summary": "Create a new content selector",
        "description": "",
        "operationId": "createContentSelector",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/ContentSelectorApiCreateRequest"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Content selector successfully created"
          },
          "400": {
            "description": "Invalid request"
          },
          "403": {
            "description": "Insufficient permissions to create content selectors"
          }
        }
      }
    },
    "/v1/repositories": {
      "get": {
        "tags": [
          "repositories"
        ],
        "summary": "List repositories",
        "description": "",
        "operationId": "getRepositories_1",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/RepositoryXO"
              }
            }
          }
        }
      }
    },
    "/beta/routing-rules": {
      "get": {
        "tags": [
          "routing-rules"
        ],
        "summary": "List routing rules",
        "description": "",
        "operationId": "getRoutingRules",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/RoutingRuleXO"
              }
            }
          },
          "403": {
            "description": "Insufficient permissions to read routing rules"
          }
        }
      },
      "post": {
        "tags": [
          "routing-rules"
        ],
        "summary": "Create a single routing rule",
        "description": "",
        "operationId": "createRoutingRule",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "A routing rule configuration",
            "required": true,
            "schema": {
              "$ref": "#/definitions/RoutingRuleXO"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Routing rule was successfully created"
          },
          "400": {
            "description": "A routing rule with the same name already exists or required parameters missing"
          },
          "403": {
            "description": "Insufficient permissions to create routing rule"
          }
        }
      }
    },
    "/beta/routing-rules/{name}": {
      "get": {
        "tags": [
          "routing-rules"
        ],
        "summary": "Get a single routing rule",
        "description": "",
        "operationId": "getRoutingRule",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "The name of the routing rule to get",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/RoutingRuleXO"
            }
          },
          "403": {
            "description": "Insufficient permissions to read routing rules"
          },
          "404": {
            "description": "Routing rule not found"
          }
        }
      },
      "put": {
        "tags": [
          "routing-rules"
        ],
        "summary": "Update a single routing rule",
        "description": "",
        "operationId": "updateRoutingRule",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "The name of the routing rule to update",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "A routing rule configuration",
            "required": true,
            "schema": {
              "$ref": "#/definitions/RoutingRuleXO"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Routing rule was successfully updated"
          },
          "400": {
            "description": "Another routing rule with the same name already exists or required parameters missing"
          },
          "403": {
            "description": "Insufficient permissions to edit routing rules"
          },
          "404": {
            "description": "Routing rule not found"
          }
        }
      },
      "delete": {
        "tags": [
          "routing-rules"
        ],
        "summary": "Delete a single routing rule",
        "description": "",
        "operationId": "deleteRoutingRule",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "The name of the routing rule to delete",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Routing rule was successfully deleted"
          },
          "403": {
            "description": "Insufficient permissions to delete routing rules"
          },
          "404": {
            "description": "Routing rule not found"
          }
        }
      }
    },
    "/v1/search/assets": {
      "get": {
        "tags": [
          "search"
        ],
        "summary": "Search assets",
        "description": "",
        "operationId": "searchAssets",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "continuationToken",
            "in": "query",
            "description": "A token returned by a prior request. If present, the next page of results are returned",
            "required": false,
            "type": "string"
          },
          {
            "name": "sort",
            "in": "query",
            "description": "The field to sort the results against, if left empty, a sort based on match weight will be used.",
            "required": false,
            "type": "string",
            "allowEmptyValue": true,
            "enum": [
              "group",
              "name",
              "version",
              "repository"
            ]
          },
          {
            "name": "direction",
            "in": "query",
            "description": "The direction to sort records in, defaults to ascending ('asc') for all sort fields, except version, which defaults to descending ('desc')",
            "required": false,
            "type": "string",
            "allowEmptyValue": true,
            "enum": [
              "asc",
              "desc"
            ]
          },
          {
            "name": "timeout",
            "in": "query",
            "description": "How long to wait for search results in seconds. If this value is not provided, the system default timeout will be used.",
            "required": false,
            "type": "integer",
            "format": "int32",
            "allowEmptyValue": true
          },
          {
            "name": "q",
            "in": "query",
            "description": "Query by keyword",
            "required": false,
            "type": "string"
          },
          {
            "name": "repository",
            "in": "query",
            "description": "Repository name",
            "required": false,
            "type": "string"
          },
          {
            "name": "format",
            "in": "query",
            "description": "Query by format",
            "required": false,
            "type": "string"
          },
          {
            "name": "group",
            "in": "query",
            "description": "Component group",
            "required": false,
            "type": "string"
          },
          {
            "name": "name",
            "in": "query",
            "description": "Component name",
            "required": false,
            "type": "string"
          },
          {
            "name": "version",
            "in": "query",
            "description": "Component version",
            "required": false,
            "type": "string"
          },
          {
            "name": "md5",
            "in": "query",
            "description": "Specific MD5 hash of component's asset",
            "required": false,
            "type": "string"
          },
          {
            "name": "sha1",
            "in": "query",
            "description": "Specific SHA-1 hash of component's asset",
            "required": false,
            "type": "string"
          },
          {
            "name": "sha256",
            "in": "query",
            "description": "Specific SHA-256 hash of component's asset",
            "required": false,
            "type": "string"
          },
          {
            "name": "sha512",
            "in": "query",
            "description": "Specific SHA-512 hash of component's asset",
            "required": false,
            "type": "string"
          },
          {
            "name": "prerelease",
            "in": "query",
            "description": "Prerelease version flag",
            "required": false,
            "type": "string"
          },
          {
            "name": "docker.imageName",
            "in": "query",
            "description": "Docker image name",
            "required": false,
            "type": "string"
          },
          {
            "name": "docker.imageTag",
            "in": "query",
            "description": "Docker image tag",
            "required": false,
            "type": "string"
          },
          {
            "name": "docker.layerId",
            "in": "query",
            "description": "Docker layer ID",
            "required": false,
            "type": "string"
          },
          {
            "name": "docker.contentDigest",
            "in": "query",
            "description": "Docker content digest",
            "required": false,
            "type": "string"
          },
          {
            "name": "maven.groupId",
            "in": "query",
            "description": "Maven groupId",
            "required": false,
            "type": "string"
          },
          {
            "name": "maven.artifactId",
            "in": "query",
            "description": "Maven artifactId",
            "required": false,
            "type": "string"
          },
          {
            "name": "maven.baseVersion",
            "in": "query",
            "description": "Maven base version",
            "required": false,
            "type": "string"
          },
          {
            "name": "maven.extension",
            "in": "query",
            "description": "Maven extension of component's asset",
            "required": false,
            "type": "string"
          },
          {
            "name": "maven.classifier",
            "in": "query",
            "description": "Maven classifier of component's asset",
            "required": false,
            "type": "string"
          },
          {
            "name": "npm.scope",
            "in": "query",
            "description": "NPM scope",
            "required": false,
            "type": "string"
          },
          {
            "name": "nuget.id",
            "in": "query",
            "description": "Nuget id",
            "required": false,
            "type": "string"
          },
          {
            "name": "nuget.tags",
            "in": "query",
            "description": "Nuget tags",
            "required": false,
            "type": "string"
          },
          {
            "name": "p2.pluginName",
            "in": "query",
            "description": "p2 plugin name",
            "required": false,
            "type": "string"
          },
          {
            "name": "pypi.classifiers",
            "in": "query",
            "description": "PyPi classifiers",
            "required": false,
            "type": "string"
          },
          {
            "name": "pypi.description",
            "in": "query",
            "description": "PyPi description",
            "required": false,
            "type": "string"
          },
          {
            "name": "pypi.keywords",
            "in": "query",
            "description": "PyPi keywords",
            "required": false,
            "type": "string"
          },
          {
            "name": "pypi.summary",
            "in": "query",
            "description": "PyPi summary",
            "required": false,
            "type": "string"
          },
          {
            "name": "rubygems.description",
            "in": "query",
            "description": "RubyGems description",
            "required": false,
            "type": "string"
          },
          {
            "name": "rubygems.platform",
            "in": "query",
            "description": "RubyGems platform",
            "required": false,
            "type": "string"
          },
          {
            "name": "rubygems.summary",
            "in": "query",
            "description": "RubyGems summary",
            "required": false,
            "type": "string"
          },
          {
            "name": "yum.architecture",
            "in": "query",
            "description": "Yum architecture",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/PageAssetXO"
            }
          }
        }
      }
    },
    "/v1/search/assets/download": {
      "get": {
        "tags": [
          "search"
        ],
        "summary": "Search and download asset",
        "description": "Returns a 302 Found with location header field set to download URL. Unless a sort parameter is supplied, the search must return a single asset to receive download URL.",
        "operationId": "searchAndDownloadAssets",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "sort",
            "in": "query",
            "description": "The field to sort the results against, if left empty and more than 1 result is returned, the request will fail.",
            "required": false,
            "type": "string",
            "allowEmptyValue": true,
            "enum": [
              "group",
              "name",
              "version",
              "repository"
            ]
          },
          {
            "name": "direction",
            "in": "query",
            "description": "The direction to sort records in, defaults to ascending ('asc') for all sort fields, except version, which defaults to descending ('desc')",
            "required": false,
            "type": "string",
            "allowEmptyValue": true,
            "enum": [
              "asc",
              "desc"
            ]
          },
          {
            "name": "timeout",
            "in": "query",
            "description": "How long to wait for search results in seconds. If this value is not provided, the system default timeout will be used.",
            "required": false,
            "type": "integer",
            "format": "int32",
            "allowEmptyValue": true
          },
          {
            "name": "q",
            "in": "query",
            "description": "Query by keyword",
            "required": false,
            "type": "string"
          },
          {
            "name": "repository",
            "in": "query",
            "description": "Repository name",
            "required": false,
            "type": "string"
          },
          {
            "name": "format",
            "in": "query",
            "description": "Query by format",
            "required": false,
            "type": "string"
          },
          {
            "name": "group",
            "in": "query",
            "description": "Component group",
            "required": false,
            "type": "string"
          },
          {
            "name": "name",
            "in": "query",
            "description": "Component name",
            "required": false,
            "type": "string"
          },
          {
            "name": "version",
            "in": "query",
            "description": "Component version",
            "required": false,
            "type": "string"
          },
          {
            "name": "md5",
            "in": "query",
            "description": "Specific MD5 hash of component's asset",
            "required": false,
            "type": "string"
          },
          {
            "name": "sha1",
            "in": "query",
            "description": "Specific SHA-1 hash of component's asset",
            "required": false,
            "type": "string"
          },
          {
            "name": "sha256",
            "in": "query",
            "description": "Specific SHA-256 hash of component's asset",
            "required": false,
            "type": "string"
          },
          {
            "name": "sha512",
            "in": "query",
            "description": "Specific SHA-512 hash of component's asset",
            "required": false,
            "type": "string"
          },
          {
            "name": "prerelease",
            "in": "query",
            "description": "Prerelease version flag",
            "required": false,
            "type": "string"
          },
          {
            "name": "docker.imageName",
            "in": "query",
            "description": "Docker image name",
            "required": false,
            "type": "string"
          },
          {
            "name": "docker.imageTag",
            "in": "query",
            "description": "Docker image tag",
            "required": false,
            "type": "string"
          },
          {
            "name": "docker.layerId",
            "in": "query",
            "description": "Docker layer ID",
            "required": false,
            "type": "string"
          },
          {
            "name": "docker.contentDigest",
            "in": "query",
            "description": "Docker content digest",
            "required": false,
            "type": "string"
          },
          {
            "name": "maven.groupId",
            "in": "query",
            "description": "Maven groupId",
            "required": false,
            "type": "string"
          },
          {
            "name": "maven.artifactId",
            "in": "query",
            "description": "Maven artifactId",
            "required": false,
            "type": "string"
          },
          {
            "name": "maven.baseVersion",
            "in": "query",
            "description": "Maven base version",
            "required": false,
            "type": "string"
          },
          {
            "name": "maven.extension",
            "in": "query",
            "description": "Maven extension of component's asset",
            "required": false,
            "type": "string"
          },
          {
            "name": "maven.classifier",
            "in": "query",
            "description": "Maven classifier of component's asset",
            "required": false,
            "type": "string"
          },
          {
            "name": "npm.scope",
            "in": "query",
            "description": "NPM scope",
            "required": false,
            "type": "string"
          },
          {
            "name": "nuget.id",
            "in": "query",
            "description": "Nuget id",
            "required": false,
            "type": "string"
          },
          {
            "name": "nuget.tags",
            "in": "query",
            "description": "Nuget tags",
            "required": false,
            "type": "string"
          },
          {
            "name": "p2.pluginName",
            "in": "query",
            "description": "p2 plugin name",
            "required": false,
            "type": "string"
          },
          {
            "name": "pypi.classifiers",
            "in": "query",
            "description": "PyPi classifiers",
            "required": false,
            "type": "string"
          },
          {
            "name": "pypi.description",
            "in": "query",
            "description": "PyPi description",
            "required": false,
            "type": "string"
          },
          {
            "name": "pypi.keywords",
            "in": "query",
            "description": "PyPi keywords",
            "required": false,
            "type": "string"
          },
          {
            "name": "pypi.summary",
            "in": "query",
            "description": "PyPi summary",
            "required": false,
            "type": "string"
          },
          {
            "name": "rubygems.description",
            "in": "query",
            "description": "RubyGems description",
            "required": false,
            "type": "string"
          },
          {
            "name": "rubygems.platform",
            "in": "query",
            "description": "RubyGems platform",
            "required": false,
            "type": "string"
          },
          {
            "name": "rubygems.summary",
            "in": "query",
            "description": "RubyGems summary",
            "required": false,
            "type": "string"
          },
          {
            "name": "yum.architecture",
            "in": "query",
            "description": "Yum architecture",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "400": {
            "description": "Search returned multiple assets, please refine search criteria to find a single asset or use the sort query parameter to retrieve the first result."
          },
          "404": {
            "description": "Asset search returned no results"
          }
        }
      }
    },
    "/v1/search": {
      "get": {
        "tags": [
          "search"
        ],
        "summary": "Search components",
        "description": "",
        "operationId": "search",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "continuationToken",
            "in": "query",
            "description": "A token returned by a prior request. If present, the next page of results are returned",
            "required": false,
            "type": "string",
            "allowEmptyValue": true
          },
          {
            "name": "sort",
            "in": "query",
            "description": "The field to sort the results against, if left empty, a sort based on match weight will be used.",
            "required": false,
            "type": "string",
            "allowEmptyValue": true,
            "enum": [
              "group",
              "name",
              "version",
              "repository"
            ]
          },
          {
            "name": "direction",
            "in": "query",
            "description": "The direction to sort records in, defaults to ascending ('asc') for all sort fields, except version, which defaults to descending ('desc')",
            "required": false,
            "type": "string",
            "allowEmptyValue": true,
            "enum": [
              "asc",
              "desc"
            ]
          },
          {
            "name": "timeout",
            "in": "query",
            "description": "How long to wait for search results in seconds. If this value is not provided, the system default timeout will be used.",
            "required": false,
            "type": "integer",
            "format": "int32",
            "allowEmptyValue": true
          },
          {
            "name": "q",
            "in": "query",
            "description": "Query by keyword",
            "required": false,
            "type": "string"
          },
          {
            "name": "repository",
            "in": "query",
            "description": "Repository name",
            "required": false,
            "type": "string"
          },
          {
            "name": "format",
            "in": "query",
            "description": "Query by format",
            "required": false,
            "type": "string"
          },
          {
            "name": "group",
            "in": "query",
            "description": "Component group",
            "required": false,
            "type": "string"
          },
          {
            "name": "name",
            "in": "query",
            "description": "Component name",
            "required": false,
            "type": "string"
          },
          {
            "name": "version",
            "in": "query",
            "description": "Component version",
            "required": false,
            "type": "string"
          },
          {
            "name": "md5",
            "in": "query",
            "description": "Specific MD5 hash of component's asset",
            "required": false,
            "type": "string"
          },
          {
            "name": "sha1",
            "in": "query",
            "description": "Specific SHA-1 hash of component's asset",
            "required": false,
            "type": "string"
          },
          {
            "name": "sha256",
            "in": "query",
            "description": "Specific SHA-256 hash of component's asset",
            "required": false,
            "type": "string"
          },
          {
            "name": "sha512",
            "in": "query",
            "description": "Specific SHA-512 hash of component's asset",
            "required": false,
            "type": "string"
          },
          {
            "name": "prerelease",
            "in": "query",
            "description": "Prerelease version flag",
            "required": false,
            "type": "string"
          },
          {
            "name": "docker.imageName",
            "in": "query",
            "description": "Docker image name",
            "required": false,
            "type": "string"
          },
          {
            "name": "docker.imageTag",
            "in": "query",
            "description": "Docker image tag",
            "required": false,
            "type": "string"
          },
          {
            "name": "docker.layerId",
            "in": "query",
            "description": "Docker layer ID",
            "required": false,
            "type": "string"
          },
          {
            "name": "docker.contentDigest",
            "in": "query",
            "description": "Docker content digest",
            "required": false,
            "type": "string"
          },
          {
            "name": "maven.groupId",
            "in": "query",
            "description": "Maven groupId",
            "required": false,
            "type": "string"
          },
          {
            "name": "maven.artifactId",
            "in": "query",
            "description": "Maven artifactId",
            "required": false,
            "type": "string"
          },
          {
            "name": "maven.baseVersion",
            "in": "query",
            "description": "Maven base version",
            "required": false,
            "type": "string"
          },
          {
            "name": "maven.extension",
            "in": "query",
            "description": "Maven extension of component's asset",
            "required": false,
            "type": "string"
          },
          {
            "name": "maven.classifier",
            "in": "query",
            "description": "Maven classifier of component's asset",
            "required": false,
            "type": "string"
          },
          {
            "name": "npm.scope",
            "in": "query",
            "description": "NPM scope",
            "required": false,
            "type": "string"
          },
          {
            "name": "nuget.id",
            "in": "query",
            "description": "Nuget id",
            "required": false,
            "type": "string"
          },
          {
            "name": "nuget.tags",
            "in": "query",
            "description": "Nuget tags",
            "required": false,
            "type": "string"
          },
          {
            "name": "p2.pluginName",
            "in": "query",
            "description": "p2 plugin name",
            "required": false,
            "type": "string"
          },
          {
            "name": "pypi.classifiers",
            "in": "query",
            "description": "PyPi classifiers",
            "required": false,
            "type": "string"
          },
          {
            "name": "pypi.description",
            "in": "query",
            "description": "PyPi description",
            "required": false,
            "type": "string"
          },
          {
            "name": "pypi.keywords",
            "in": "query",
            "description": "PyPi keywords",
            "required": false,
            "type": "string"
          },
          {
            "name": "pypi.summary",
            "in": "query",
            "description": "PyPi summary",
            "required": false,
            "type": "string"
          },
          {
            "name": "rubygems.description",
            "in": "query",
            "description": "RubyGems description",
            "required": false,
            "type": "string"
          },
          {
            "name": "rubygems.platform",
            "in": "query",
            "description": "RubyGems platform",
            "required": false,
            "type": "string"
          },
          {
            "name": "rubygems.summary",
            "in": "query",
            "description": "RubyGems summary",
            "required": false,
            "type": "string"
          },
          {
            "name": "yum.architecture",
            "in": "query",
            "description": "Yum architecture",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/PageComponentXO"
            }
          }
        }
      }
    },
    "/v1/formats/{format}/upload-specs": {
      "get": {
        "tags": [
          "formats"
        ],
        "summary": "Get upload field requirements for the desired format",
        "description": "",
        "operationId": "get_1",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "path",
            "description": "The desired repository format",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/UploadDefinitionXO"
            }
          }
        }
      }
    },
    "/v1/formats/upload-specs": {
      "get": {
        "tags": [
          "formats"
        ],
        "summary": "Get upload field requirements for each supported format",
        "description": "",
        "operationId": "get_2",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/UploadDefinitionXO"
              }
            }
          }
        }
      }
    },
    "/beta/security/privileges/repository-content-selector": {
      "post": {
        "tags": [
          "Security Management: Privileges"
        ],
        "summary": "Create a repository content selector type privilege.",
        "description": "",
        "operationId": "createPrivilege_2",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "The privilege to create.",
            "required": false,
            "schema": {
              "$ref": "#/definitions/ApiPrivilegeRepositoryContentSelectorRequest"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Privilege object not configured properly."
          },
          "403": {
            "description": "The user does not have permission to perform the operation."
          }
        }
      }
    },
    "/beta/security/privileges/repository-admin": {
      "post": {
        "tags": [
          "Security Management: Privileges"
        ],
        "summary": "Create a repository admin type privilege.",
        "description": "",
        "operationId": "createPrivilege_3",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "The privilege to create.",
            "required": false,
            "schema": {
              "$ref": "#/definitions/ApiPrivilegeRepositoryAdminRequest"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Privilege object not configured properly."
          },
          "403": {
            "description": "The user does not have permission to perform the operation."
          }
        }
      }
    },
    "/beta/security/privileges/repository-view": {
      "post": {
        "tags": [
          "Security Management: Privileges"
        ],
        "summary": "Create a repository view type privilege.",
        "description": "",
        "operationId": "createPrivilege_4",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "The privilege to create.",
            "required": false,
            "schema": {
              "$ref": "#/definitions/ApiPrivilegeRepositoryViewRequest"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Privilege object not configured properly."
          },
          "403": {
            "description": "The user does not have permission to perform the operation."
          }
        }
      }
    },
    "/beta/security/privileges/repository-view/{privilegeId}": {
      "put": {
        "tags": [
          "Security Management: Privileges"
        ],
        "summary": "Update a repository view type privilege.",
        "description": "",
        "operationId": "updatePrivilege_2",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "privilegeId",
            "in": "path",
            "description": "The id of the privilege to update.",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "The privilege to update.",
            "required": false,
            "schema": {
              "$ref": "#/definitions/ApiPrivilegeRepositoryViewRequest"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Privilege object not configured properly."
          },
          "403": {
            "description": "The user does not have permission to perform the operation."
          },
          "404": {
            "description": "Privilege not found in the system."
          }
        }
      }
    },
    "/beta/security/privileges/repository-content-selector/{privilegeId}": {
      "put": {
        "tags": [
          "Security Management: Privileges"
        ],
        "summary": "Update a repository content selector type privilege.",
        "description": "",
        "operationId": "updatePrivilege_3",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "privilegeId",
            "in": "path",
            "description": "The id of the privilege to update.",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "The privilege to update.",
            "required": false,
            "schema": {
              "$ref": "#/definitions/ApiPrivilegeRepositoryContentSelectorRequest"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Privilege object not configured properly."
          },
          "403": {
            "description": "The user does not have permission to perform the operation."
          },
          "404": {
            "description": "Privilege not found in the system."
          }
        }
      }
    },
    "/beta/security/privileges/repository-admin/{privilegeId}": {
      "put": {
        "tags": [
          "Security Management: Privileges"
        ],
        "summary": "Update a repository admin type privilege.",
        "description": "",
        "operationId": "updatePrivilege_4",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "privilegeId",
            "in": "path",
            "description": "The id of the privilege to update.",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "The privilege to update.",
            "required": false,
            "schema": {
              "$ref": "#/definitions/ApiPrivilegeRepositoryAdminRequest"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Privilege object not configured properly."
          },
          "403": {
            "description": "The user does not have permission to perform the operation."
          },
          "404": {
            "description": "Privilege not found in the system."
          }
        }
      }
    },
    "/beta/repositories/maven/hosted": {
      "post": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Create Maven hosted repository",
        "description": "",
        "operationId": "createRepository",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/MavenHostedRepositoryApiRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Repository created"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/repositories/maven/hosted/{repositoryName}": {
      "put": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Update Maven hosted repository",
        "description": "",
        "operationId": "updateRepository",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/MavenHostedRepositoryApiRequest"
            }
          },
          {
            "name": "repositoryName",
            "in": "path",
            "description": "Name of the repository to update",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Repository updated"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/repositories/maven/proxy": {
      "post": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Create Maven proxy repository",
        "description": "",
        "operationId": "createRepository_1",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/MavenProxyRepositoryApiRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Repository created"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/repositories/maven/proxy/{repositoryName}": {
      "put": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Update Maven proxy repository",
        "description": "",
        "operationId": "updateRepository_1",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/MavenProxyRepositoryApiRequest"
            }
          },
          {
            "name": "repositoryName",
            "in": "path",
            "description": "Name of the repository to update",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Repository updated"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/security/privileges/script": {
      "post": {
        "tags": [
          "Security Management: Privileges"
        ],
        "summary": "Create a script type privilege.",
        "description": "",
        "operationId": "createPrivilege_5",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "The privilege to create.",
            "required": false,
            "schema": {
              "$ref": "#/definitions/ApiPrivilegeScriptRequest"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Privilege object not configured properly."
          },
          "403": {
            "description": "The user does not have permission to perform the operation."
          }
        }
      }
    },
    "/beta/security/privileges/script/{privilegeId}": {
      "put": {
        "tags": [
          "Security Management: Privileges"
        ],
        "summary": "Update a script type privilege.",
        "description": "",
        "operationId": "updatePrivilege_5",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "privilegeId",
            "in": "path",
            "description": "The id of the privilege to update.",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "The privilege to update.",
            "required": false,
            "schema": {
              "$ref": "#/definitions/ApiPrivilegeScriptRequest"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Privilege object not configured properly."
          },
          "403": {
            "description": "The user does not have permission to perform the operation."
          },
          "404": {
            "description": "Privilege not found in the system."
          }
        }
      }
    },
    "/v1/script/{name}": {
      "get": {
        "tags": [
          "script"
        ],
        "summary": "Read stored script by name",
        "description": "",
        "operationId": "read",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/ScriptXO"
            }
          },
          "404": {
            "description": "No script with the specified name"
          }
        }
      },
      "put": {
        "tags": [
          "script"
        ],
        "summary": "Update stored script by name",
        "description": "",
        "operationId": "edit",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/ScriptXO"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Script was updated"
          },
          "404": {
            "description": "No script with the specified name"
          },
          "410": {
            "description": "Script updating is disabled"
          }
        }
      },
      "delete": {
        "tags": [
          "script"
        ],
        "summary": "Delete stored script by name",
        "description": "",
        "operationId": "delete_1",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Script was deleted"
          },
          "404": {
            "description": "No script with the specified name"
          }
        }
      }
    },
    "/v1/script": {
      "get": {
        "tags": [
          "script"
        ],
        "summary": "List all stored scripts",
        "description": "",
        "operationId": "browse",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ScriptXO"
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "script"
        ],
        "summary": "Add a new script",
        "description": "",
        "operationId": "add",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/ScriptXO"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Script was added"
          },
          "410": {
            "description": "Script creation is disabled"
          }
        }
      }
    },
    "/v1/script/{name}/run": {
      "post": {
        "tags": [
          "script"
        ],
        "summary": "Run stored script by name",
        "description": "",
        "operationId": "run_1",
        "consumes": [
          "text/plain",
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/ScriptResultXO"
            }
          },
          "404": {
            "description": "No script with the specified name"
          },
          "500": {
            "description": "Script execution failed with exception"
          }
        }
      }
    },
    "/beta/blobstores/s3/{name}": {
      "get": {
        "tags": [
          "Blob Store"
        ],
        "summary": "Fetch a S3 blob store configuration",
        "description": "",
        "operationId": "getBlobStore",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Name of the blob store configuration to fetch",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Specified S3 blob store doesn't exist"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      },
      "put": {
        "tags": [
          "Blob Store"
        ],
        "summary": "Update an S3 blob store configuration",
        "description": "",
        "operationId": "updateBlobStore",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/S3BlobStoreApiModel"
            }
          },
          {
            "name": "name",
            "in": "path",
            "description": "Name of the blob store to update",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "S3 blob store updated"
          },
          "400": {
            "description": "Specified S3 blob store doesn't exist"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/blobstores/s3": {
      "post": {
        "tags": [
          "Blob Store"
        ],
        "summary": "Create an S3 blob store",
        "description": "",
        "operationId": "createBlobStore",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/S3BlobStoreApiModel"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "S3 blob store created"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/email": {
      "get": {
        "tags": [
          "email"
        ],
        "summary": "Retrieve the current email configuration",
        "description": "",
        "operationId": "getEmailConfiguration",
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/ApiEmailConfiguration"
            }
          },
          "403": {
            "description": "Insufficient permissions to retrieve the email configuration"
          }
        }
      },
      "put": {
        "tags": [
          "email"
        ],
        "summary": "Set the current email configuration",
        "description": "",
        "operationId": "setEmailConfiguration",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ApiEmailConfiguration"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Email configuration was successfully updated"
          },
          "400": {
            "description": "Invalid request"
          },
          "403": {
            "description": "Insufficient permissions to update the email configuration"
          }
        }
      },
      "delete": {
        "tags": [
          "email"
        ],
        "summary": "Disable and clear the email configuration",
        "description": "",
        "operationId": "deleteEmailConfiguration",
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "204": {
            "description": "Email configuration was successfully cleared"
          }
        }
      }
    },
    "/beta/email/verify": {
      "post": {
        "tags": [
          "email"
        ],
        "summary": "Send a test email to the email address provided in the request body",
        "description": "",
        "operationId": "testEmailConfiguration",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "An email address to send a test email to",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Validation was complete, look at the body to determine success"
          },
          "403": {
            "description": "Insufficient permissions to verify the email configuration"
          }
        }
      }
    },
    "/v1/status": {
      "get": {
        "tags": [
          "status"
        ],
        "summary": "Health check endpoint that validates server can respond to read requests",
        "description": "",
        "operationId": "isAvailable",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Available to service requests"
          },
          "503": {
            "description": "Unavailable to service requests"
          }
        }
      }
    },
    "/v1/status/check": {
      "get": {
        "tags": [
          "status"
        ],
        "summary": "Health check endpoint that returns the results of the system status checks",
        "description": "",
        "operationId": "getSystemStatusChecks",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "The system status check results"
          }
        }
      }
    },
    "/v1/status/writable": {
      "get": {
        "tags": [
          "status"
        ],
        "summary": "Health check endpoint that validates server can respond to read and write requests",
        "description": "",
        "operationId": "isWritable",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Available to service requests"
          },
          "503": {
            "description": "Unavailable to service requests"
          }
        }
      }
    },
    "/v1/support/supportzip": {
      "post": {
        "tags": [
          "support"
        ],
        "summary": "Creates and downloads a support zip",
        "description": "",
        "operationId": "supportzip",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/octet-stream"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/Request"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "successful operation"
          }
        }
      }
    },
    "/beta/security/ldap": {
      "get": {
        "tags": [
          "Security Management: LDAP"
        ],
        "summary": "List LDAP servers",
        "description": "",
        "operationId": "getLdapServers",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "LDAP server list returned"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      },
      "post": {
        "tags": [
          "Security Management: LDAP"
        ],
        "summary": "Create LDAP server",
        "description": "",
        "operationId": "createLdapServer",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/CreateLdapServerXo"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "LDAP server created"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/security/ldap/{name}": {
      "get": {
        "tags": [
          "Security Management: LDAP"
        ],
        "summary": "Get LDAP server",
        "description": "",
        "operationId": "getLdapServer",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Name of the LDAP server to retrieve",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "LDAP server returned"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          },
          "404": {
            "description": "LDAP server not found"
          }
        }
      },
      "put": {
        "tags": [
          "Security Management: LDAP"
        ],
        "summary": "Update LDAP server",
        "description": "",
        "operationId": "updateLdapServer",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Name of the LDAP server to update",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "body",
            "description": "Updated values of LDAP server",
            "required": false,
            "schema": {
              "$ref": "#/definitions/UpdateLdapServerXo"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "LDAP server updated"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          },
          "404": {
            "description": "LDAP server not found"
          }
        }
      },
      "delete": {
        "tags": [
          "Security Management: LDAP"
        ],
        "summary": "Delete LDAP server",
        "description": "",
        "operationId": "deleteLdapServer",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Name of the LDAP server to delete",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "LDAP server deleted"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          },
          "404": {
            "description": "LDAP server not found"
          }
        }
      }
    },
    "/beta/security/ldap/change-order": {
      "post": {
        "tags": [
          "Security Management: LDAP"
        ],
        "summary": "Change LDAP server order",
        "description": "",
        "operationId": "changeOrder",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "Ordered list of LDAP server names",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "204": {
            "description": "LDAP server order changed"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/system/license": {
      "get": {
        "tags": [
          "Product Licensing"
        ],
        "summary": "Get the current license status.",
        "description": "",
        "operationId": "getLicenseStatus",
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/ApiLicenseDetailsXO"
            }
          }
        }
      },
      "post": {
        "tags": [
          "Product Licensing"
        ],
        "summary": "Upload a new license file.",
        "description": "Server must be restarted to take effect",
        "operationId": "setLicense",
        "consumes": [
          "application/octet-stream"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/InputStream"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/ApiLicenseDetailsXO"
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Product Licensing"
        ],
        "summary": "Uninstall license if present.",
        "description": "",
        "operationId": "removeLicense",
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "default": {
            "description": "successful operation"
          }
        }
      }
    },
    "/beta/iq": {
      "get": {
        "tags": [
          "Manage IQ Server configuration"
        ],
        "summary": "Get IQ Server configuration",
        "description": "",
        "operationId": "getConfiguration",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "IQ Server configuration returned"
          }
        }
      },
      "put": {
        "tags": [
          "Manage IQ Server configuration"
        ],
        "summary": "Update IQ Server configuration",
        "description": "",
        "operationId": "updateConfiguration",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/IqConnectionXo"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "IQ Server configuration has been updated"
          }
        }
      }
    },
    "/beta/iq/verify-connection": {
      "post": {
        "tags": [
          "Manage IQ Server configuration"
        ],
        "summary": "Verify IQ Server connection",
        "description": "",
        "operationId": "verifyConnection",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Connection verification complete, check response body for result"
          }
        }
      }
    },
    "/beta/iq/enable": {
      "post": {
        "tags": [
          "Manage IQ Server configuration"
        ],
        "summary": "Enable IQ Server",
        "description": "",
        "operationId": "enableIq",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "204": {
            "description": "IQ Server has been enabled"
          },
          "400": {
            "description": "IQ Server connection not configured"
          }
        }
      }
    },
    "/beta/iq/disable": {
      "post": {
        "tags": [
          "Manage IQ Server configuration"
        ],
        "summary": "Disable IQ Server",
        "description": "",
        "operationId": "disableIq",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "204": {
            "description": "IQ Server has been disabled"
          },
          "400": {
            "description": "IQ Server connection not configured"
          }
        }
      }
    },
    "/beta/repositories/{repositoryName}/health-check": {
      "post": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Enable Repository Health Check. Proxy repositories only.",
        "description": "",
        "operationId": "enableRepositoryHealthCheck",
        "parameters": [
          {
            "name": "repositoryName",
            "in": "path",
            "description": "Name of the repository to enable Repository Health Check for",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Repository Health Check enabled"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          },
          "404": {
            "description": "Repository not found"
          },
          "409": {
            "description": "EULA not accepted or Repository Health Check capability not active"
          }
        }
      },
      "delete": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Disable Repository Health Check. Proxy repositories only.",
        "description": "",
        "operationId": "disableRepositoryHealthCheck",
        "parameters": [
          {
            "name": "repositoryName",
            "in": "path",
            "description": "Name of the repository to disable Repository Health Check for",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Repository Health Check disabled"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          },
          "404": {
            "description": "Repository not found"
          }
        }
      }
    },
    "/beta/repositories/apt/hosted": {
      "post": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Create APT hosted repository",
        "description": "",
        "operationId": "createRepository_2",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/AptHostedRepositoryApiRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Repository created"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/repositories/apt/hosted/{repositoryName}": {
      "put": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Update APT hosted repository",
        "description": "",
        "operationId": "updateRepository_2",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/AptHostedRepositoryApiRequest"
            }
          },
          {
            "name": "repositoryName",
            "in": "path",
            "description": "Name of the repository to update",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Repository updated"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          },
          "404": {
            "description": "Repository not found"
          }
        }
      }
    },
    "/beta/repositories/apt/proxy": {
      "post": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Create APT proxy repository",
        "description": "",
        "operationId": "createRepository_3",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/AptProxyRepositoryApiRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Repository created"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/repositories/apt/proxy/{repositoryName}": {
      "put": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Update APT proxy repository",
        "description": "",
        "operationId": "updateRepository_3",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/AptProxyRepositoryApiRequest"
            }
          },
          {
            "name": "repositoryName",
            "in": "path",
            "description": "Name of the repository to update",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Repository updated"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          },
          "404": {
            "description": "Repository not found"
          }
        }
      }
    },
    "/beta/repositories/go/group": {
      "post": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Create a Go group repository",
        "description": "",
        "operationId": "createRepository_4",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/GolangGroupRepositoryApiRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Repository created"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/repositories/go/group/{repositoryName}": {
      "put": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Update a Go group repository",
        "description": "",
        "operationId": "updateRepository_4",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/GolangGroupRepositoryApiRequest"
            }
          },
          {
            "name": "repositoryName",
            "in": "path",
            "description": "Name of the repository to update",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Repository updated"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          },
          "404": {
            "description": "Repository not found"
          }
        }
      }
    },
    "/beta/repositories/go/proxy": {
      "post": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Create a Go proxy repository",
        "description": "",
        "operationId": "createRepository_5",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/GolangProxyRepositoryApiRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Repository created"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/repositories/go/proxy/{repositoryName}": {
      "put": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Update a Go proxy repository",
        "description": "",
        "operationId": "updateRepository_5",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/GolangProxyRepositoryApiRequest"
            }
          },
          {
            "name": "repositoryName",
            "in": "path",
            "description": "Name of the repository to update",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Repository updated"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          },
          "404": {
            "description": "Repository not found"
          }
        }
      }
    },
    "/beta/repositories/helm/hosted": {
      "post": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Create Helm hosted repository",
        "description": "",
        "operationId": "createRepository_6",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/HelmHostedRepositoryApiRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Repository created"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/repositories/helm/hosted/{repositoryName}": {
      "put": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Update Helm hosted repository",
        "description": "",
        "operationId": "updateRepository_6",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/HelmHostedRepositoryApiRequest"
            }
          },
          {
            "name": "repositoryName",
            "in": "path",
            "description": "Name of the repository to update",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Repository updated"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/repositories/helm/proxy": {
      "post": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Create Helm proxy repository",
        "description": "",
        "operationId": "createRepository_7",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/HelmProxyRepositoryApiRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Repository created"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/repositories/helm/proxy/{repositoryName}": {
      "put": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Update Helm proxy repository",
        "description": "",
        "operationId": "updateRepository_7",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/HelmProxyRepositoryApiRequest"
            }
          },
          {
            "name": "repositoryName",
            "in": "path",
            "description": "Name of the repository to update",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Repository updated"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/repositories/p2/proxy": {
      "post": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Create P2 proxy repository",
        "description": "",
        "operationId": "createRepository_8",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/P2ProxyRepositoryApiRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Repository created"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/repositories/p2/proxy/{repositoryName}": {
      "put": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Update P2 proxy repository",
        "description": "",
        "operationId": "updateRepository_8",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/P2ProxyRepositoryApiRequest"
            }
          },
          {
            "name": "repositoryName",
            "in": "path",
            "description": "Name of the repository to update",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Repository updated"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/repositories/bower/group": {
      "post": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Create Bower group repository",
        "description": "",
        "operationId": "createRepository_9",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/BowerGroupRepositoryApiRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Repository created"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/repositories/bower/group/{repositoryName}": {
      "put": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Update Bower group repository",
        "description": "",
        "operationId": "updateRepository_9",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/BowerGroupRepositoryApiRequest"
            }
          },
          {
            "name": "repositoryName",
            "in": "path",
            "description": "Name of the repository to update",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Repository updated"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/repositories/bower/hosted": {
      "post": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Create Bower hosted repository",
        "description": "",
        "operationId": "createRepository_10",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/BowerHostedRepositoryApiRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Repository created"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/repositories/bower/hosted/{repositoryName}": {
      "put": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Update Bower hosted repository",
        "description": "",
        "operationId": "updateRepository_10",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/BowerHostedRepositoryApiRequest"
            }
          },
          {
            "name": "repositoryName",
            "in": "path",
            "description": "Name of the repository to update",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Repository updated"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/repositories/bower/proxy": {
      "post": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Create Bower proxy repository",
        "description": "",
        "operationId": "createRepository_11",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/BowerProxyRepositoryApiRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Repository created"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/repositories/bower/proxy/{repositoryName}": {
      "put": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Update Bower proxy repository",
        "description": "",
        "operationId": "updateRepository_11",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/BowerProxyRepositoryApiRequest"
            }
          },
          {
            "name": "repositoryName",
            "in": "path",
            "description": "Name of the repository to update",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Repository updated"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/repositories/docker/group": {
      "post": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Create Docker group repository",
        "description": "",
        "operationId": "createRepository_12",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/DockerGroupRepositoryApiRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Repository created"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/repositories/docker/group/{repositoryName}": {
      "put": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Update Docker group repository",
        "description": "",
        "operationId": "updateRepository_12",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/DockerGroupRepositoryApiRequest"
            }
          },
          {
            "name": "repositoryName",
            "in": "path",
            "description": "Name of the repository to update",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Repository updated"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          },
          "404": {
            "description": "Repository not found"
          }
        }
      }
    },
    "/beta/repositories/docker/hosted": {
      "post": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Create Docker hosted repository",
        "description": "",
        "operationId": "createRepository_13",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/DockerHostedRepositoryApiRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Repository created"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Repository not found"
          }
        }
      }
    },
    "/beta/repositories/docker/hosted/{repositoryName}": {
      "put": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Update Docker hosted repository",
        "description": "",
        "operationId": "updateRepository_13",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/DockerHostedRepositoryApiRequest"
            }
          },
          {
            "name": "repositoryName",
            "in": "path",
            "description": "Name of the repository to update",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Repository updated"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          },
          "404": {
            "description": "Repository not found"
          }
        }
      }
    },
    "/beta/repositories/docker/proxy": {
      "post": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Create docker proxy repository",
        "description": "",
        "operationId": "createRepository_14",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/DockerProxyRepositoryApiRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Repository created"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/repositories/docker/proxy/{repositoryName}": {
      "put": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Update Docker group repository",
        "description": "",
        "operationId": "updateRepository_14",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/DockerProxyRepositoryApiRequest"
            }
          },
          {
            "name": "repositoryName",
            "in": "path",
            "description": "Name of the repository to update",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Repository updated"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          },
          "404": {
            "description": "Repository not found"
          }
        }
      }
    },
    "/beta/repositories/gitlfs/hosted": {
      "post": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Create Git LFS hosted repository",
        "description": "",
        "operationId": "createRepository_15",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/GitLfsHostedRepositoryApiRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Repository created"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/repositories/gitlfs/hosted/{repositoryName}": {
      "put": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Update Git LFS hosted repository",
        "description": "",
        "operationId": "updateRepository_15",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/GitLfsHostedRepositoryApiRequest"
            }
          },
          {
            "name": "repositoryName",
            "in": "path",
            "description": "Name of the repository to update",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Repository updated"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/repositories/yum/hosted": {
      "post": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Create Yum hosted repository",
        "description": "",
        "operationId": "createRepository_16",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/YumHostedRepositoryApiRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Repository created"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    },
    "/beta/repositories/yum/hosted/{repositoryName}": {
      "put": {
        "tags": [
          "Repository Management"
        ],
        "summary": "Update Yum hosted repository",
        "description": "",
        "operationId": "updateRepository_16",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/YumHostedRepositoryApiRequest"
            }
          },
          {
            "name": "repositoryName",
            "in": "path",
            "description": "Name of the repository to update",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Repository updated"
          },
          "401": {
            "description": "Authentication required"
          },
          "403": {
            "description": "Insufficient permissions"
          }
        }
      }
    }
  },
  "definitions": {
    "ApiUserSource": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "ApiUser": {
      "type": "object",
      "required": [
        "status"
      ],
      "properties": {
        "userId": {
          "type": "string",
          "description": "The userid which is required for login. This value cannot be changed."
        },
        "firstName": {
          "type": "string",
          "description": "The first name of the user."
        },
        "lastName": {
          "type": "string",
          "description": "The last name of the user."
        },
        "emailAddress": {
          "type": "string",
          "description": "The email address associated with the user."
        },
        "source": {
          "type": "string",
          "description": "The user source which is the origin of this user. This value cannot be changed."
        },
        "status": {
          "type": "string",
          "description": "The user's status, e.g. active or disabled.",
          "enum": [
            "active",
            "locked",
            "disabled",
            "changepassword"
          ]
        },
        "readOnly": {
          "type": "boolean",
          "description": "Indicates whether the user's properties could be modified by Nexus. When false only roles are considered during update."
        },
        "roles": {
          "type": "array",
          "description": "The roles which the user has been assigned within Nexus.",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        },
        "externalRoles": {
          "type": "array",
          "description": "The roles which the user has been assigned in an external source, e.g. LDAP group. These cannot be changed within Nexus.",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        }
      }
    },
    "ApiCreateUser": {
      "type": "object",
      "required": [
        "status"
      ],
      "properties": {
        "userId": {
          "type": "string",
          "description": "The userid which is required for login. This value cannot be changed."
        },
        "firstName": {
          "type": "string",
          "description": "The first name of the user."
        },
        "lastName": {
          "type": "string",
          "description": "The last name of the user."
        },
        "emailAddress": {
          "type": "string",
          "description": "The email address associated with the user."
        },
        "password": {
          "type": "string",
          "description": "The password for the new user."
        },
        "status": {
          "type": "string",
          "description": "The user's status, e.g. active or disabled.",
          "enum": [
            "active",
            "locked",
            "disabled",
            "changepassword"
          ]
        },
        "roles": {
          "type": "array",
          "description": "The roles which the user has been assigned within Nexus.",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        }
      }
    },
    "ApiPrivilege": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "The type of privilege, each type covers different portions of the system. External values supplied to this will be ignored by the system."
        },
        "name": {
          "type": "string",
          "description": "The name of the privilege.  This value cannot be changed.",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "description": {
          "type": "string"
        },
        "readOnly": {
          "type": "boolean",
          "description": "Indicates whether the privilege can be changed. External values supplied to this will be ignored by the system."
        }
      }
    },
    "ApiPrivilegeWildcardRequest": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the privilege.  This value cannot be changed.",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "description": {
          "type": "string"
        },
        "pattern": {
          "type": "string",
          "description": "A colon separated list of parts that create a permission string."
        }
      }
    },
    "ApiPrivilegeApplicationRequest": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the privilege.  This value cannot be changed.",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "description": {
          "type": "string"
        },
        "actions": {
          "type": "array",
          "description": "A collection of actions to associate with the privilege, using BREAD syntax (browse,read,edit,add,delete,all) as well as 'run' for script privileges.",
          "items": {
            "type": "string",
            "enum": [
              "READ",
              "BROWSE",
              "EDIT",
              "ADD",
              "DELETE",
              "RUN",
              "ASSOCIATE",
              "DISASSOCIATE",
              "ALL"
            ]
          }
        },
        "domain": {
          "type": "string",
          "description": "The domain (i.e. 'blobstores', 'capabilities' or even '*' for all) that this privilege is granting access to.  Note that creating new privileges with a domain is only necessary when using plugins that define their own domain(s)."
        }
      }
    },
    "RealmApiXO": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "RoleXOResponse": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The id of the role."
        },
        "source": {
          "type": "string",
          "description": "The user source which is the origin of this role."
        },
        "name": {
          "type": "string",
          "description": "The name of the role."
        },
        "description": {
          "type": "string",
          "description": "The description of this role."
        },
        "privileges": {
          "type": "array",
          "description": "The list of privileges assigned to this role.",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        },
        "roles": {
          "type": "array",
          "description": "The list of roles assigned to this role.",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        }
      }
    },
    "RoleXORequest": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The id of the role."
        },
        "name": {
          "type": "string",
          "description": "The name of the role."
        },
        "description": {
          "type": "string",
          "description": "The description of this role."
        },
        "privileges": {
          "type": "array",
          "description": "The list of privileges assigned to this role.",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        },
        "roles": {
          "type": "array",
          "description": "The list of roles assigned to this role.",
          "uniqueItems": true,
          "items": {
            "type": "string"
          }
        }
      }
    },
    "TaskXO": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "currentState": {
          "type": "string"
        },
        "lastRunResult": {
          "type": "string"
        },
        "nextRun": {
          "type": "string",
          "format": "date-time"
        },
        "lastRun": {
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "Page": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "continuationToken": {
          "type": "string"
        }
      }
    },
    "PageTaskXO": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/TaskXO"
          }
        },
        "continuationToken": {
          "type": "string"
        }
      }
    },
    "BlobStoreApiSoftQuota": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "The type to use such as spaceRemainingQuota, or spaceUsedQuota"
        },
        "limit": {
          "type": "integer",
          "format": "int64",
          "description": "The limit in MB."
        }
      }
    },
    "GenericBlobStoreApiResponse": {
      "type": "object",
      "properties": {
        "softQuota": {
          "description": "Settings to control the soft quota",
          "$ref": "#/definitions/BlobStoreApiSoftQuota"
        },
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "blobCount": {
          "type": "integer",
          "format": "int64"
        },
        "totalSizeInBytes": {
          "type": "integer",
          "format": "int64"
        },
        "availableSpaceInBytes": {
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "BlobStoreQuotaResultXO": {
      "type": "object",
      "properties": {
        "isViolation": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "blobStoreName": {
          "type": "string"
        }
      }
    },
    "FileBlobStoreApiCreateRequest": {
      "type": "object",
      "properties": {
        "softQuota": {
          "description": "Settings to control the soft quota",
          "$ref": "#/definitions/BlobStoreApiSoftQuota"
        },
        "path": {
          "type": "string",
          "description": "The path to the blobstore contents. This can be an absolute path to anywhere on the system nxrm has access to or it can be a path relative to the sonatype-work directory."
        },
        "name": {
          "type": "string"
        }
      }
    },
    "FileBlobStoreApiUpdateRequest": {
      "type": "object",
      "properties": {
        "softQuota": {
          "description": "Settings to control the soft quota",
          "$ref": "#/definitions/BlobStoreApiSoftQuota"
        },
        "path": {
          "type": "string",
          "description": "The path to the blobstore contents. This can be an absolute path to anywhere on the system nxrm has access to or it can be a path relative to the sonatype-work directory."
        }
      }
    },
    "FileBlobStoreApiModel": {
      "type": "object",
      "properties": {
        "softQuota": {
          "description": "Settings to control the soft quota",
          "$ref": "#/definitions/BlobStoreApiSoftQuota"
        },
        "path": {
          "type": "string",
          "description": "The path to the blobstore contents. This can be an absolute path to anywhere on the system nxrm has access to or it can be a path relative to the sonatype-work directory."
        }
      }
    },
    "ReadOnlyState": {
      "type": "object",
      "properties": {
        "summaryReason": {
          "type": "string"
        },
        "systemInitiated": {
          "type": "boolean"
        },
        "frozen": {
          "type": "boolean"
        }
      }
    },
    "ApiCertificate": {
      "type": "object",
      "properties": {
        "expiresOn": {
          "type": "integer",
          "format": "int64"
        },
        "fingerprint": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "issuedOn": {
          "type": "integer",
          "format": "int64"
        },
        "issuerCommonName": {
          "type": "string"
        },
        "issuerOrganization": {
          "type": "string"
        },
        "issuerOrganizationalUnit": {
          "type": "string"
        },
        "pem": {
          "type": "string"
        },
        "serialNumber": {
          "type": "string"
        },
        "subjectCommonName": {
          "type": "string"
        },
        "subjectOrganization": {
          "type": "string"
        },
        "subjectOrganizationalUnit": {
          "type": "string"
        }
      }
    },
    "AbstractApiRepository": {
      "type": "object",
      "required": [
        "online"
      ],
      "properties": {
        "name": {
          "type": "string",
          "example": "internal",
          "description": "A unique identifier for this repository",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "format": {
          "type": "string",
          "example": "npm",
          "description": "Component format held in this repository"
        },
        "type": {
          "type": "string",
          "example": "hosted",
          "description": "Controls if deployments of and updates to artifacts are allowed",
          "enum": [
            "hosted",
            "proxy",
            "group"
          ]
        },
        "url": {
          "type": "string",
          "description": "URL to the repository"
        },
        "online": {
          "type": "boolean",
          "example": true,
          "description": "Whether this repository accepts incoming requests"
        }
      }
    },
    "AssetXO": {
      "type": "object",
      "properties": {
        "downloadUrl": {
          "type": "string"
        },
        "path": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "repository": {
          "type": "string"
        },
        "format": {
          "type": "string"
        },
        "checksum": {
          "type": "object",
          "additionalProperties": {
            "type": "object"
          }
        }
      }
    },
    "PageAssetXO": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AssetXO"
          }
        },
        "continuationToken": {
          "type": "string"
        }
      }
    },
    "ComponentXO": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "repository": {
          "type": "string"
        },
        "format": {
          "type": "string"
        },
        "group": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "assets": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AssetXO"
          }
        }
      }
    },
    "PageComponentXO": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ComponentXO"
          }
        },
        "continuationToken": {
          "type": "string"
        }
      }
    },
    "ContentSelectorApiResponse": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "The content selector name cannot be changed after creation"
        },
        "type": {
          "type": "string",
          "description": "The type of content selector the backend is using",
          "enum": [
            "csel",
            "jexl"
          ]
        },
        "description": {
          "type": "string",
          "description": "A human-readable description"
        },
        "expression": {
          "type": "string",
          "example": "format == \"maven2\" and path =^ \"/org/sonatype/nexus\"",
          "description": "The expression used to identify content"
        }
      }
    },
    "ContentSelectorApiCreateRequest": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "The content selector name cannot be changed after creation",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "description": {
          "type": "string",
          "description": "A human-readable description"
        },
        "expression": {
          "type": "string",
          "example": "format == \"maven2\" and path =^ \"/org/sonatype/nexus\"",
          "description": "The expression used to identify content"
        }
      }
    },
    "ContentSelectorApiUpdateRequest": {
      "type": "object",
      "properties": {
        "description": {
          "type": "string",
          "description": "An optional description of this content selector"
        },
        "expression": {
          "type": "string",
          "example": "format == \"maven2\" and path =^ \"/org/sonatype/nexus\"",
          "description": "The expression used to identify content"
        }
      }
    },
    "RepositoryXO": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "format": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "attributes": {
          "type": "object",
          "additionalProperties": {
            "type": "object"
          }
        }
      }
    },
    "RoutingRuleXO": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "description": {
          "type": "string"
        },
        "mode": {
          "type": "string",
          "description": "Determines what should be done with requests when their path matches any of the matchers",
          "enum": [
            "BLOCK",
            "ALLOW"
          ]
        },
        "matchers": {
          "type": "array",
          "description": "Regular expressions used to identify request paths that are allowed or blocked (depending on mode)",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "UploadDefinitionXO": {
      "type": "object",
      "properties": {
        "format": {
          "type": "string"
        },
        "multipleUpload": {
          "type": "boolean"
        },
        "componentFields": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/UploadFieldDefinitionXO"
          }
        },
        "assetFields": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/UploadFieldDefinitionXO"
          }
        }
      }
    },
    "UploadFieldDefinitionXO": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "optional": {
          "type": "boolean"
        },
        "group": {
          "type": "string"
        }
      }
    },
    "ApiPrivilegeRepositoryContentSelectorRequest": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the privilege.  This value cannot be changed.",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "description": {
          "type": "string"
        },
        "actions": {
          "type": "array",
          "description": "A collection of actions to associate with the privilege, using BREAD syntax (browse,read,edit,add,delete,all) as well as 'run' for script privileges.",
          "items": {
            "type": "string",
            "enum": [
              "READ",
              "BROWSE",
              "EDIT",
              "ADD",
              "DELETE",
              "RUN",
              "ASSOCIATE",
              "DISASSOCIATE",
              "ALL"
            ]
          }
        },
        "format": {
          "type": "string",
          "description": "The repository format (i.e 'nuget', 'npm') this privilege will grant access to (or * for all)."
        },
        "repository": {
          "type": "string",
          "description": "The name of the repository this privilege will grant access to (or * for all)."
        },
        "contentSelector": {
          "type": "string",
          "description": "The name of a content selector that will be used to grant access to content via this privilege."
        }
      }
    },
    "ApiPrivilegeRepositoryAdminRequest": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the privilege.  This value cannot be changed.",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "description": {
          "type": "string"
        },
        "actions": {
          "type": "array",
          "description": "A collection of actions to associate with the privilege, using BREAD syntax (browse,read,edit,add,delete,all) as well as 'run' for script privileges.",
          "items": {
            "type": "string",
            "enum": [
              "READ",
              "BROWSE",
              "EDIT",
              "ADD",
              "DELETE",
              "RUN",
              "ASSOCIATE",
              "DISASSOCIATE",
              "ALL"
            ]
          }
        },
        "format": {
          "type": "string",
          "description": "The repository format (i.e 'nuget', 'npm') this privilege will grant access to (or * for all)."
        },
        "repository": {
          "type": "string",
          "description": "The name of the repository this privilege will grant access to (or * for all)."
        }
      }
    },
    "ApiPrivilegeRepositoryViewRequest": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the privilege.  This value cannot be changed.",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "description": {
          "type": "string"
        },
        "actions": {
          "type": "array",
          "description": "A collection of actions to associate with the privilege, using BREAD syntax (browse,read,edit,add,delete,all) as well as 'run' for script privileges.",
          "items": {
            "type": "string",
            "enum": [
              "READ",
              "BROWSE",
              "EDIT",
              "ADD",
              "DELETE",
              "RUN",
              "ASSOCIATE",
              "DISASSOCIATE",
              "ALL"
            ]
          }
        },
        "format": {
          "type": "string",
          "description": "The repository format (i.e 'nuget', 'npm') this privilege will grant access to (or * for all)."
        },
        "repository": {
          "type": "string",
          "description": "The name of the repository this privilege will grant access to (or * for all)."
        }
      }
    },
    "CleanupPolicyAttributes": {
      "type": "object",
      "properties": {
        "policyNames": {
          "type": "array",
          "example": "weekly-cleanup",
          "description": "Components that match any of the applied policies will be deleted",
          "items": {
            "type": "object"
          }
        }
      }
    },
    "HostedStorageAttributes": {
      "type": "object",
      "required": [
        "strictContentTypeValidation",
        "writePolicy"
      ],
      "properties": {
        "blobStoreName": {
          "type": "string",
          "example": "default",
          "description": "Blob store used to store repository contents"
        },
        "strictContentTypeValidation": {
          "type": "boolean",
          "example": true,
          "description": "Whether to validate uploaded content's MIME type appropriate for the repository format"
        },
        "writePolicy": {
          "type": "string",
          "example": "allow_once",
          "description": "Controls if deployments of and updates to assets are allowed",
          "enum": [
            "allow",
            "allow_once",
            "deny"
          ]
        }
      }
    },
    "MavenAttributes": {
      "type": "object",
      "properties": {
        "versionPolicy": {
          "type": "string",
          "example": "mixed",
          "description": "What type of artifacts does this repository store?",
          "enum": [
            "release",
            "snapshot",
            "mixed"
          ]
        },
        "layoutPolicy": {
          "type": "string",
          "example": "strict",
          "description": "Validate that all paths are maven artifact or metadata paths",
          "enum": [
            "strict",
            "permissive"
          ]
        }
      }
    },
    "MavenHostedRepositoryApiRequest": {
      "type": "object",
      "required": [
        "maven",
        "name",
        "online",
        "storage"
      ],
      "properties": {
        "name": {
          "type": "string",
          "example": "internal",
          "description": "A unique identifier for this repository",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "online": {
          "type": "boolean",
          "example": true,
          "description": "Whether this repository accepts incoming requests"
        },
        "storage": {
          "$ref": "#/definitions/HostedStorageAttributes"
        },
        "cleanup": {
          "$ref": "#/definitions/CleanupPolicyAttributes"
        },
        "maven": {
          "$ref": "#/definitions/MavenAttributes"
        }
      }
    },
    "HttpClientAttributes": {
      "type": "object",
      "required": [
        "autoBlock",
        "blocked"
      ],
      "properties": {
        "blocked": {
          "type": "boolean",
          "example": false,
          "description": "Whether to block outbound connections on the repository"
        },
        "autoBlock": {
          "type": "boolean",
          "example": false,
          "description": "Whether to auto-block outbound connections if remote peer is detected as unreachable/unresponsive"
        },
        "connection": {
          "$ref": "#/definitions/HttpClientConnectionAttributes"
        },
        "authentication": {
          "$ref": "#/definitions/HttpClientConnectionAuthenticationAttributes"
        }
      }
    },
    "HttpClientConnectionAttributes": {
      "type": "object",
      "properties": {
        "retries": {
          "type": "integer",
          "format": "int32",
          "example": 0,
          "description": "Total retries if the initial connection attempt suffers a timeout",
          "minimum": 0,
          "maximum": 10
        },
        "userAgentSuffix": {
          "type": "string",
          "description": "Custom fragment to append to User-Agent header in HTTP requests"
        },
        "timeout": {
          "type": "integer",
          "format": "int32",
          "example": 60,
          "description": "Seconds to wait for activity before stopping and retrying the connection",
          "minimum": 1,
          "maximum": 3600
        },
        "enableCircularRedirects": {
          "type": "boolean",
          "example": false,
          "description": "Whether to enable redirects to the same location (may be required by some servers)"
        },
        "enableCookies": {
          "type": "boolean",
          "example": false,
          "description": "Whether to allow cookies to be stored and used"
        }
      }
    },
    "HttpClientConnectionAuthenticationAttributes": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Authentication type",
          "enum": [
            "username",
            "ntlm"
          ]
        },
        "username": {
          "type": "string"
        },
        "ntlmHost": {
          "type": "string"
        },
        "ntlmDomain": {
          "type": "string"
        }
      }
    },
    "MavenProxyRepositoryApiRequest": {
      "type": "object",
      "required": [
        "httpClient",
        "maven",
        "name",
        "negativeCache",
        "online",
        "proxy",
        "storage"
      ],
      "properties": {
        "name": {
          "type": "string",
          "example": "internal",
          "description": "A unique identifier for this repository",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "online": {
          "type": "boolean",
          "example": true,
          "description": "Whether this repository accepts incoming requests"
        },
        "storage": {
          "$ref": "#/definitions/StorageAttributes"
        },
        "cleanup": {
          "$ref": "#/definitions/CleanupPolicyAttributes"
        },
        "proxy": {
          "$ref": "#/definitions/ProxyAttributes"
        },
        "negativeCache": {
          "$ref": "#/definitions/NegativeCacheAttributes"
        },
        "httpClient": {
          "$ref": "#/definitions/HttpClientAttributes"
        },
        "routingRule": {
          "type": "string"
        },
        "maven": {
          "$ref": "#/definitions/MavenAttributes"
        }
      }
    },
    "NegativeCacheAttributes": {
      "type": "object",
      "required": [
        "enabled",
        "timeToLive"
      ],
      "properties": {
        "enabled": {
          "type": "boolean",
          "example": false,
          "description": "Whether to cache responses for content not present in the proxied repository"
        },
        "timeToLive": {
          "type": "integer",
          "format": "int32",
          "example": 1440,
          "description": "How long to cache the fact that a file was not found in the repository (in minutes)"
        }
      }
    },
    "ProxyAttributes": {
      "type": "object",
      "required": [
        "contentMaxAge",
        "metadataMaxAge"
      ],
      "properties": {
        "remoteUrl": {
          "type": "string",
          "example": "https://registry.npmjs.org",
          "description": "Location of the remote repository being proxied"
        },
        "contentMaxAge": {
          "type": "integer",
          "format": "int32",
          "example": 1440,
          "description": "How long to cache artifacts before rechecking the remote repository (in minutes)"
        },
        "metadataMaxAge": {
          "type": "integer",
          "format": "int32",
          "example": 1440,
          "description": "How long to cache metadata before rechecking the remote repository (in minutes)"
        }
      }
    },
    "StorageAttributes": {
      "type": "object",
      "required": [
        "strictContentTypeValidation"
      ],
      "properties": {
        "blobStoreName": {
          "type": "string",
          "example": "default",
          "description": "Blob store used to store repository contents"
        },
        "strictContentTypeValidation": {
          "type": "boolean",
          "example": true,
          "description": "Whether to validate uploaded content's MIME type appropriate for the repository format"
        }
      }
    },
    "ApiPrivilegeScriptRequest": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the privilege.  This value cannot be changed.",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "description": {
          "type": "string"
        },
        "actions": {
          "type": "array",
          "description": "A collection of actions to associate with the privilege, using BREAD syntax (browse,read,edit,add,delete,all) as well as 'run' for script privileges.",
          "items": {
            "type": "string",
            "enum": [
              "READ",
              "BROWSE",
              "EDIT",
              "ADD",
              "DELETE",
              "RUN",
              "ASSOCIATE",
              "DISASSOCIATE",
              "ALL"
            ]
          }
        },
        "scriptName": {
          "type": "string",
          "description": "The name of a script to give access to."
        }
      }
    },
    "ScriptXO": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "content": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      }
    },
    "ScriptResultXO": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "result": {
          "type": "string"
        }
      }
    },
    "S3BlobStoreApiAdvancedBucketConnection": {
      "type": "object",
      "properties": {
        "endpoint": {
          "type": "string",
          "description": "A custom endpoint URL for third party object stores using the S3 API."
        },
        "signerType": {
          "type": "string",
          "description": "An API signature version which may be required for third party object stores using the S3 API."
        },
        "forcePathStyle": {
          "type": "boolean",
          "description": "Setting this flag will result in path-style access being used for all requests."
        }
      }
    },
    "S3BlobStoreApiBucket": {
      "type": "object",
      "required": [
        "expiration",
        "name",
        "region"
      ],
      "properties": {
        "region": {
          "type": "string",
          "description": "The AWS region to create a new S3 bucket in or an existing S3 bucket's region"
        },
        "name": {
          "type": "string",
          "description": "The name of the S3 bucket"
        },
        "prefix": {
          "type": "string",
          "description": "The S3 blob store (i.e S3 object) key prefix"
        },
        "expiration": {
          "type": "integer",
          "format": "int32",
          "description": "How many days until deleted blobs are finally removed from the S3 bucket (-1 to disable)"
        }
      }
    },
    "S3BlobStoreApiBucketConfiguration": {
      "type": "object",
      "properties": {
        "bucket": {
          "description": "Details of the S3 bucket such as name and region",
          "readOnly": true,
          "$ref": "#/definitions/S3BlobStoreApiBucket"
        },
        "encryption": {
          "description": "The type of encryption to use if any",
          "readOnly": true,
          "$ref": "#/definitions/S3BlobStoreApiEncryption"
        },
        "bucketSecurity": {
          "description": "Security details for granting access the S3 API",
          "$ref": "#/definitions/S3BlobStoreApiBucketSecurity"
        },
        "advancedBucketConnection": {
          "description": "A custom endpoint URL, signer type and whether path style access is enabled",
          "$ref": "#/definitions/S3BlobStoreApiAdvancedBucketConnection"
        }
      }
    },
    "S3BlobStoreApiBucketSecurity": {
      "type": "object",
      "properties": {
        "accessKeyId": {
          "type": "string",
          "description": "An IAM access key ID for granting access to the S3 bucket"
        },
        "secretAccessKey": {
          "type": "string",
          "description": "The secret access key associated with the specified IAM access key ID"
        },
        "role": {
          "type": "string",
          "description": "An IAM role to assume in order to access the S3 bucket"
        },
        "sessionToken": {
          "type": "string",
          "description": "An AWS STS session token associated with temporary security credentials which grant access to the S3 bucket"
        }
      }
    },
    "S3BlobStoreApiEncryption": {
      "type": "object",
      "properties": {
        "encryptionType": {
          "type": "string",
          "description": "The type of S3 server side encryption to use.",
          "enum": [
            "s3ManagedEncryption",
            "kmsManagedEncryption"
          ]
        },
        "encryptionKey": {
          "type": "string",
          "description": "The encryption key."
        }
      }
    },
    "S3BlobStoreApiModel": {
      "type": "object",
      "required": [
        "bucketConfiguration",
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the S3 blob store."
        },
        "softQuota": {
          "description": "Settings to control the soft quota.",
          "$ref": "#/definitions/BlobStoreApiSoftQuota"
        },
        "bucketConfiguration": {
          "description": "The S3 specific configuration details for the S3 object that'll contain the blob store.",
          "$ref": "#/definitions/S3BlobStoreApiBucketConfiguration"
        }
      }
    },
    "ApiEmailConfiguration": {
      "type": "object",
      "required": [
        "port"
      ],
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "host": {
          "type": "string"
        },
        "port": {
          "type": "integer",
          "format": "int32"
        },
        "username": {
          "type": "string"
        },
        "password": {
          "type": "string"
        },
        "fromAddress": {
          "type": "string",
          "example": "nexus@example.org"
        },
        "subjectPrefix": {
          "type": "string",
          "description": "A prefix to add to all email subjects to aid in identifying automated emails"
        },
        "startTlsEnabled": {
          "type": "boolean",
          "description": "Enable STARTTLS Support for Insecure Connections"
        },
        "startTlsRequired": {
          "type": "boolean",
          "description": "Require STARTTLS Support"
        },
        "sslOnConnectEnabled": {
          "type": "boolean",
          "description": "Enable SSL/TLS Encryption upon Connection"
        },
        "sslServerIdentityCheckEnabled": {
          "type": "boolean",
          "description": "Verify the server certificate when using TLS or SSL"
        },
        "nexusTrustStoreEnabled": {
          "type": "boolean",
          "description": "Use the Nexus Repository Manager's certificate truststore"
        }
      }
    },
    "ApiEmailValidation": {
      "type": "object",
      "properties": {
        "success": {
          "type": "boolean"
        },
        "reason": {
          "type": "string"
        }
      }
    },
    "Result": {
      "type": "object",
      "properties": {
        "healthy": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "error": {
          "$ref": "#/definitions/Throwable"
        },
        "details": {
          "type": "object",
          "additionalProperties": {
            "type": "object"
          }
        },
        "time": {
          "type": "integer",
          "format": "int64"
        },
        "duration": {
          "type": "integer",
          "format": "int64"
        },
        "timestamp": {
          "type": "string"
        }
      }
    },
    "StackTraceElement": {
      "type": "object",
      "properties": {
        "methodName": {
          "type": "string"
        },
        "fileName": {
          "type": "string"
        },
        "lineNumber": {
          "type": "integer",
          "format": "int32"
        },
        "className": {
          "type": "string"
        },
        "nativeMethod": {
          "type": "boolean"
        }
      }
    },
    "Throwable": {
      "type": "object",
      "properties": {
        "cause": {
          "$ref": "#/definitions/Throwable"
        },
        "stackTrace": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/StackTraceElement"
          }
        },
        "message": {
          "type": "string"
        },
        "localizedMessage": {
          "type": "string"
        },
        "suppressed": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Throwable"
          }
        }
      }
    },
    "Request": {
      "type": "object",
      "properties": {
        "systemInformation": {
          "type": "boolean"
        },
        "threadDump": {
          "type": "boolean"
        },
        "metrics": {
          "type": "boolean"
        },
        "configuration": {
          "type": "boolean"
        },
        "security": {
          "type": "boolean"
        },
        "log": {
          "type": "boolean"
        },
        "taskLog": {
          "type": "boolean"
        },
        "auditLog": {
          "type": "boolean"
        },
        "jmx": {
          "type": "boolean"
        },
        "limitFileSizes": {
          "type": "boolean"
        },
        "limitZipSize": {
          "type": "boolean"
        }
      }
    },
    "CreateLdapServerXo": {
      "type": "object",
      "required": [
        "authPassword",
        "authScheme",
        "connectionRetryDelaySeconds",
        "connectionTimeoutSeconds",
        "groupType",
        "host",
        "maxIncidentsCount",
        "name",
        "port",
        "protocol",
        "searchBase"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "LDAP server name"
        },
        "protocol": {
          "type": "string",
          "description": "LDAP server connection Protocol to use",
          "enum": [
            "ldap",
            "ldaps"
          ]
        },
        "useTrustStore": {
          "type": "boolean",
          "description": "Whether to use certificates stored in NXRM's truststore"
        },
        "host": {
          "type": "string",
          "description": "LDAP server connection hostname"
        },
        "port": {
          "type": "integer",
          "format": "int32",
          "example": 636,
          "description": "LDAP server connection port to use"
        },
        "searchBase": {
          "type": "string",
          "example": "dc=example,dc=com",
          "description": "LDAP location to be added to the connection URL"
        },
        "authScheme": {
          "type": "string",
          "description": "Authentication scheme used for connecting to LDAP server",
          "enum": [
            "NONE",
            "SIMPLE",
            "DIGEST_MD5",
            "CRAM_MD5"
          ]
        },
        "authRealm": {
          "type": "string",
          "example": "example.com",
          "description": "The SASL realm to bind to. Required if authScheme is CRAM_MD5 or DIGEST_MD5"
        },
        "authUsername": {
          "type": "string",
          "description": "This must be a fully qualified username if simple authentication is used. Required if authScheme other than none."
        },
        "connectionTimeoutSeconds": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "How long to wait before timeout",
          "minimum": 1,
          "maximum": 3600
        },
        "connectionRetryDelaySeconds": {
          "type": "integer",
          "format": "int32",
          "description": "How long to wait before retrying",
          "minimum": 0
        },
        "maxIncidentsCount": {
          "type": "integer",
          "format": "int32",
          "description": "How many retry attempts",
          "minimum": 0
        },
        "userBaseDn": {
          "type": "string",
          "example": "ou=people",
          "description": "The relative DN where user objects are found (e.g. ou=people). This value will have the Search base DN value appended to form the full User search base DN."
        },
        "userSubtree": {
          "type": "boolean",
          "description": "Are users located in structures below the user base DN?"
        },
        "userObjectClass": {
          "type": "string",
          "example": "inetOrgPerson",
          "description": "LDAP class for user objects"
        },
        "userLdapFilter": {
          "type": "string",
          "example": "(|(mail=*@example.com)(uid=dom*))",
          "description": "LDAP search filter to limit user search"
        },
        "userIdAttribute": {
          "type": "string",
          "example": "uid",
          "description": "This is used to find a user given its user ID"
        },
        "userRealNameAttribute": {
          "type": "string",
          "example": "cn",
          "description": "This is used to find a real name given the user ID"
        },
        "userEmailAddressAttribute": {
          "type": "string",
          "example": "mail",
          "description": "This is used to find an email address given the user ID"
        },
        "userPasswordAttribute": {
          "type": "string",
          "description": "If this field is blank the user will be authenticated against a bind with the LDAP server"
        },
        "ldapGroupsAsRoles": {
          "type": "boolean",
          "description": "Denotes whether LDAP assigned roles are used as NXRM roles"
        },
        "groupType": {
          "type": "string",
          "description": "Defines a type of groups used: static (a group contains a list of users) or dynamic (a user contains a list of groups). Required if ldapGroupsAsRoles is true.",
          "enum": [
            "static",
            "dynamic"
          ]
        },
        "groupBaseDn": {
          "type": "string",
          "example": "ou=Group",
          "description": "The relative DN where group objects are found (e.g. ou=Group). This value will have the Search base DN value appended to form the full Group search base DN."
        },
        "groupSubtree": {
          "type": "boolean",
          "description": "Are groups located in structures below the group base DN"
        },
        "groupObjectClass": {
          "type": "string",
          "example": "posixGroup",
          "description": "LDAP class for group objects. Required if groupType is static",
          "minLength": 0,
          "maxLength": 0
        },
        "groupIdAttribute": {
          "type": "string",
          "example": "cn",
          "description": "This field specifies the attribute of the Object class that defines the Group ID. Required if groupType is static",
          "minLength": 0,
          "maxLength": 0
        },
        "groupMemberAttribute": {
          "type": "string",
          "example": "memberUid",
          "description": "LDAP attribute containing the usernames for the group. Required if groupType is static",
          "minLength": 0,
          "maxLength": 0
        },
        "groupMemberFormat": {
          "type": "string",
          "example": "uid=${username},ou=people,dc=example,dc=com",
          "description": "The format of user ID stored in the group member attribute. Required if groupType is static",
          "minLength": 0,
          "maxLength": 0
        },
        "userMemberOfAttribute": {
          "type": "string",
          "example": "memberOf",
          "description": "Set this to the attribute used to store the attribute which holds groups DN in the user object. Required if groupType is dynamic",
          "minLength": 0,
          "maxLength": 0
        },
        "authPassword": {
          "type": "string",
          "description": "The password to bind with. Required if authScheme other than none."
        }
      }
    },
    "ReadLdapServerXo": {
      "type": "object",
      "required": [
        "authScheme",
        "connectionRetryDelaySeconds",
        "connectionTimeoutSeconds",
        "groupType",
        "host",
        "maxIncidentsCount",
        "name",
        "port",
        "protocol",
        "searchBase"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "LDAP server name"
        },
        "protocol": {
          "type": "string",
          "description": "LDAP server connection Protocol to use",
          "enum": [
            "ldap",
            "ldaps"
          ]
        },
        "useTrustStore": {
          "type": "boolean",
          "description": "Whether to use certificates stored in NXRM's truststore"
        },
        "host": {
          "type": "string",
          "description": "LDAP server connection hostname"
        },
        "port": {
          "type": "integer",
          "format": "int32",
          "example": 636,
          "description": "LDAP server connection port to use"
        },
        "searchBase": {
          "type": "string",
          "example": "dc=example,dc=com",
          "description": "LDAP location to be added to the connection URL"
        },
        "authScheme": {
          "type": "string",
          "description": "Authentication scheme used for connecting to LDAP server",
          "enum": [
            "NONE",
            "SIMPLE",
            "DIGEST_MD5",
            "CRAM_MD5"
          ]
        },
        "authRealm": {
          "type": "string",
          "example": "example.com",
          "description": "The SASL realm to bind to. Required if authScheme is CRAM_MD5 or DIGEST_MD5"
        },
        "authUsername": {
          "type": "string",
          "description": "This must be a fully qualified username if simple authentication is used. Required if authScheme other than none."
        },
        "connectionTimeoutSeconds": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "How long to wait before timeout",
          "minimum": 1,
          "maximum": 3600
        },
        "connectionRetryDelaySeconds": {
          "type": "integer",
          "format": "int32",
          "description": "How long to wait before retrying",
          "minimum": 0
        },
        "maxIncidentsCount": {
          "type": "integer",
          "format": "int32",
          "description": "How many retry attempts",
          "minimum": 0
        },
        "userBaseDn": {
          "type": "string",
          "example": "ou=people",
          "description": "The relative DN where user objects are found (e.g. ou=people). This value will have the Search base DN value appended to form the full User search base DN."
        },
        "userSubtree": {
          "type": "boolean",
          "description": "Are users located in structures below the user base DN?"
        },
        "userObjectClass": {
          "type": "string",
          "example": "inetOrgPerson",
          "description": "LDAP class for user objects"
        },
        "userLdapFilter": {
          "type": "string",
          "example": "(|(mail=*@example.com)(uid=dom*))",
          "description": "LDAP search filter to limit user search"
        },
        "userIdAttribute": {
          "type": "string",
          "example": "uid",
          "description": "This is used to find a user given its user ID"
        },
        "userRealNameAttribute": {
          "type": "string",
          "example": "cn",
          "description": "This is used to find a real name given the user ID"
        },
        "userEmailAddressAttribute": {
          "type": "string",
          "example": "mail",
          "description": "This is used to find an email address given the user ID"
        },
        "userPasswordAttribute": {
          "type": "string",
          "description": "If this field is blank the user will be authenticated against a bind with the LDAP server"
        },
        "ldapGroupsAsRoles": {
          "type": "boolean",
          "description": "Denotes whether LDAP assigned roles are used as NXRM roles"
        },
        "groupType": {
          "type": "string",
          "description": "Defines a type of groups used: static (a group contains a list of users) or dynamic (a user contains a list of groups). Required if ldapGroupsAsRoles is true.",
          "enum": [
            "static",
            "dynamic"
          ]
        },
        "groupBaseDn": {
          "type": "string",
          "example": "ou=Group",
          "description": "The relative DN where group objects are found (e.g. ou=Group). This value will have the Search base DN value appended to form the full Group search base DN."
        },
        "groupSubtree": {
          "type": "boolean",
          "description": "Are groups located in structures below the group base DN"
        },
        "groupObjectClass": {
          "type": "string",
          "example": "posixGroup",
          "description": "LDAP class for group objects. Required if groupType is static",
          "minLength": 0,
          "maxLength": 0
        },
        "groupIdAttribute": {
          "type": "string",
          "example": "cn",
          "description": "This field specifies the attribute of the Object class that defines the Group ID. Required if groupType is static",
          "minLength": 0,
          "maxLength": 0
        },
        "groupMemberAttribute": {
          "type": "string",
          "example": "memberUid",
          "description": "LDAP attribute containing the usernames for the group. Required if groupType is static",
          "minLength": 0,
          "maxLength": 0
        },
        "groupMemberFormat": {
          "type": "string",
          "example": "uid=${username},ou=people,dc=example,dc=com",
          "description": "The format of user ID stored in the group member attribute. Required if groupType is static",
          "minLength": 0,
          "maxLength": 0
        },
        "userMemberOfAttribute": {
          "type": "string",
          "example": "memberOf",
          "description": "Set this to the attribute used to store the attribute which holds groups DN in the user object. Required if groupType is dynamic",
          "minLength": 0,
          "maxLength": 0
        },
        "id": {
          "type": "string",
          "description": "LDAP server ID"
        },
        "order": {
          "type": "integer",
          "format": "int32",
          "description": "Order number in which the server is being used when looking for a user"
        }
      }
    },
    "UpdateLdapServerXo": {
      "type": "object",
      "required": [
        "authPassword",
        "authScheme",
        "connectionRetryDelaySeconds",
        "connectionTimeoutSeconds",
        "groupType",
        "host",
        "maxIncidentsCount",
        "name",
        "port",
        "protocol",
        "searchBase"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "LDAP server name"
        },
        "protocol": {
          "type": "string",
          "description": "LDAP server connection Protocol to use",
          "enum": [
            "ldap",
            "ldaps"
          ]
        },
        "useTrustStore": {
          "type": "boolean",
          "description": "Whether to use certificates stored in NXRM's truststore"
        },
        "host": {
          "type": "string",
          "description": "LDAP server connection hostname"
        },
        "port": {
          "type": "integer",
          "format": "int32",
          "example": 636,
          "description": "LDAP server connection port to use"
        },
        "searchBase": {
          "type": "string",
          "example": "dc=example,dc=com",
          "description": "LDAP location to be added to the connection URL"
        },
        "authScheme": {
          "type": "string",
          "description": "Authentication scheme used for connecting to LDAP server",
          "enum": [
            "NONE",
            "SIMPLE",
            "DIGEST_MD5",
            "CRAM_MD5"
          ]
        },
        "authRealm": {
          "type": "string",
          "example": "example.com",
          "description": "The SASL realm to bind to. Required if authScheme is CRAM_MD5 or DIGEST_MD5"
        },
        "authUsername": {
          "type": "string",
          "description": "This must be a fully qualified username if simple authentication is used. Required if authScheme other than none."
        },
        "connectionTimeoutSeconds": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "How long to wait before timeout",
          "minimum": 1,
          "maximum": 3600
        },
        "connectionRetryDelaySeconds": {
          "type": "integer",
          "format": "int32",
          "description": "How long to wait before retrying",
          "minimum": 0
        },
        "maxIncidentsCount": {
          "type": "integer",
          "format": "int32",
          "description": "How many retry attempts",
          "minimum": 0
        },
        "userBaseDn": {
          "type": "string",
          "example": "ou=people",
          "description": "The relative DN where user objects are found (e.g. ou=people). This value will have the Search base DN value appended to form the full User search base DN."
        },
        "userSubtree": {
          "type": "boolean",
          "description": "Are users located in structures below the user base DN?"
        },
        "userObjectClass": {
          "type": "string",
          "example": "inetOrgPerson",
          "description": "LDAP class for user objects"
        },
        "userLdapFilter": {
          "type": "string",
          "example": "(|(mail=*@example.com)(uid=dom*))",
          "description": "LDAP search filter to limit user search"
        },
        "userIdAttribute": {
          "type": "string",
          "example": "uid",
          "description": "This is used to find a user given its user ID"
        },
        "userRealNameAttribute": {
          "type": "string",
          "example": "cn",
          "description": "This is used to find a real name given the user ID"
        },
        "userEmailAddressAttribute": {
          "type": "string",
          "example": "mail",
          "description": "This is used to find an email address given the user ID"
        },
        "userPasswordAttribute": {
          "type": "string",
          "description": "If this field is blank the user will be authenticated against a bind with the LDAP server"
        },
        "ldapGroupsAsRoles": {
          "type": "boolean",
          "description": "Denotes whether LDAP assigned roles are used as NXRM roles"
        },
        "groupType": {
          "type": "string",
          "description": "Defines a type of groups used: static (a group contains a list of users) or dynamic (a user contains a list of groups). Required if ldapGroupsAsRoles is true.",
          "enum": [
            "static",
            "dynamic"
          ]
        },
        "groupBaseDn": {
          "type": "string",
          "example": "ou=Group",
          "description": "The relative DN where group objects are found (e.g. ou=Group). This value will have the Search base DN value appended to form the full Group search base DN."
        },
        "groupSubtree": {
          "type": "boolean",
          "description": "Are groups located in structures below the group base DN"
        },
        "groupObjectClass": {
          "type": "string",
          "example": "posixGroup",
          "description": "LDAP class for group objects. Required if groupType is static",
          "minLength": 0,
          "maxLength": 0
        },
        "groupIdAttribute": {
          "type": "string",
          "example": "cn",
          "description": "This field specifies the attribute of the Object class that defines the Group ID. Required if groupType is static",
          "minLength": 0,
          "maxLength": 0
        },
        "groupMemberAttribute": {
          "type": "string",
          "example": "memberUid",
          "description": "LDAP attribute containing the usernames for the group. Required if groupType is static",
          "minLength": 0,
          "maxLength": 0
        },
        "groupMemberFormat": {
          "type": "string",
          "example": "uid=${username},ou=people,dc=example,dc=com",
          "description": "The format of user ID stored in the group member attribute. Required if groupType is static",
          "minLength": 0,
          "maxLength": 0
        },
        "userMemberOfAttribute": {
          "type": "string",
          "example": "memberOf",
          "description": "Set this to the attribute used to store the attribute which holds groups DN in the user object. Required if groupType is dynamic",
          "minLength": 0,
          "maxLength": 0
        },
        "authPassword": {
          "type": "string",
          "description": "The password to bind with. Required if authScheme other than none."
        },
        "id": {
          "type": "string",
          "description": "LDAP server ID"
        }
      }
    },
    "ApiLicenseDetailsXO": {
      "type": "object",
      "properties": {
        "contactEmail": {
          "type": "string"
        },
        "contactCompany": {
          "type": "string"
        },
        "contactName": {
          "type": "string"
        },
        "effectiveDate": {
          "type": "string",
          "format": "date-time"
        },
        "expirationDate": {
          "type": "string",
          "format": "date-time"
        },
        "licenseType": {
          "type": "string"
        },
        "licensedUsers": {
          "type": "string"
        },
        "fingerprint": {
          "type": "string"
        },
        "features": {
          "type": "string"
        }
      }
    },
    "InputStream": {
      "type": "object"
    },
    "IqConnectionXo": {
      "type": "object",
      "required": [
        "authenticationType"
      ],
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Whether to use IQ Server"
        },
        "showLink": {
          "type": "boolean",
          "description": "Show IQ Server link in Browse menu when server is enabled"
        },
        "url": {
          "type": "string",
          "description": "The address of your IQ Server"
        },
        "authenticationType": {
          "type": "string",
          "description": "Authentication method",
          "enum": [
            "USER",
            "PKI"
          ]
        },
        "username": {
          "type": "string",
          "description": "User with access to IQ Server"
        },
        "password": {
          "type": "string",
          "description": "Credentials for the IQ Server User"
        },
        "useTrustStoreForUrl": {
          "type": "boolean",
          "description": "Use certificates stored in the Nexus truststore to connect to IQ Server"
        },
        "timeoutSeconds": {
          "type": "integer",
          "format": "int32",
          "description": "Seconds to wait for activity before stopping and retrying the connection. Leave blank to use the globally defined HTTP timeout.",
          "minimum": 1,
          "maximum": 3600
        },
        "properties": {
          "type": "string",
          "description": "Additional properties to configure for IQ Server"
        }
      }
    },
    "IqConnectionVerificationXo": {
      "type": "object",
      "properties": {
        "success": {
          "type": "boolean"
        },
        "reason": {
          "type": "string"
        }
      }
    },
    "AptHostedRepositoriesAttributes": {
      "type": "object",
      "properties": {
        "distribution": {
          "type": "string",
          "example": "bionic",
          "description": "Distribution to fetch"
        }
      }
    },
    "AptHostedRepositoryApiRequest": {
      "type": "object",
      "required": [
        "apt",
        "aptSigning",
        "name",
        "online",
        "storage"
      ],
      "properties": {
        "name": {
          "type": "string",
          "example": "internal",
          "description": "A unique identifier for this repository",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "online": {
          "type": "boolean",
          "example": true,
          "description": "Whether this repository accepts incoming requests"
        },
        "storage": {
          "$ref": "#/definitions/HostedStorageAttributes"
        },
        "cleanup": {
          "$ref": "#/definitions/CleanupPolicyAttributes"
        },
        "apt": {
          "$ref": "#/definitions/AptHostedRepositoriesAttributes"
        },
        "aptSigning": {
          "$ref": "#/definitions/AptSigningRepositoriesAttributes"
        }
      }
    },
    "AptSigningRepositoriesAttributes": {
      "type": "object",
      "properties": {
        "keypair": {
          "type": "string",
          "description": "PGP signing key pair (armored private key e.g. gpg --export-secret-key --armor)"
        },
        "passphrase": {
          "type": "string",
          "description": "Passphrase to access PGP signing key"
        }
      }
    },
    "AptProxyRepositoriesAttributes": {
      "type": "object",
      "required": [
        "flat"
      ],
      "properties": {
        "distribution": {
          "type": "string",
          "example": "bionic",
          "description": "Distribution to fetch"
        },
        "flat": {
          "type": "boolean",
          "example": false,
          "description": "Whether this repository is flat"
        }
      }
    },
    "AptProxyRepositoryApiRequest": {
      "type": "object",
      "required": [
        "apt",
        "httpClient",
        "name",
        "negativeCache",
        "online",
        "proxy",
        "storage"
      ],
      "properties": {
        "name": {
          "type": "string",
          "example": "internal",
          "description": "A unique identifier for this repository",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "online": {
          "type": "boolean",
          "example": true,
          "description": "Whether this repository accepts incoming requests"
        },
        "storage": {
          "$ref": "#/definitions/StorageAttributes"
        },
        "cleanup": {
          "$ref": "#/definitions/CleanupPolicyAttributes"
        },
        "proxy": {
          "$ref": "#/definitions/ProxyAttributes"
        },
        "negativeCache": {
          "$ref": "#/definitions/NegativeCacheAttributes"
        },
        "httpClient": {
          "$ref": "#/definitions/HttpClientAttributes"
        },
        "routingRule": {
          "type": "string"
        },
        "apt": {
          "$ref": "#/definitions/AptProxyRepositoriesAttributes"
        }
      }
    },
    "GolangGroupRepositoryApiRequest": {
      "type": "object",
      "required": [
        "group",
        "name",
        "online",
        "storage"
      ],
      "properties": {
        "name": {
          "type": "string",
          "example": "internal",
          "description": "A unique identifier for this repository",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "online": {
          "type": "boolean",
          "example": true,
          "description": "Whether this repository accepts incoming requests"
        },
        "storage": {
          "$ref": "#/definitions/StorageAttributes"
        },
        "group": {
          "$ref": "#/definitions/GroupAttributes"
        }
      }
    },
    "GroupAttributes": {
      "type": "object",
      "properties": {
        "memberNames": {
          "type": "array",
          "example": "maven-public",
          "description": "Member repositories' names",
          "items": {
            "type": "object"
          }
        }
      }
    },
    "GolangProxyRepositoryApiRequest": {
      "type": "object",
      "required": [
        "httpClient",
        "name",
        "negativeCache",
        "online",
        "proxy",
        "storage"
      ],
      "properties": {
        "name": {
          "type": "string",
          "example": "internal",
          "description": "A unique identifier for this repository",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "online": {
          "type": "boolean",
          "example": true,
          "description": "Whether this repository accepts incoming requests"
        },
        "storage": {
          "$ref": "#/definitions/StorageAttributes"
        },
        "cleanup": {
          "$ref": "#/definitions/CleanupPolicyAttributes"
        },
        "proxy": {
          "$ref": "#/definitions/ProxyAttributes"
        },
        "negativeCache": {
          "$ref": "#/definitions/NegativeCacheAttributes"
        },
        "httpClient": {
          "$ref": "#/definitions/HttpClientAttributes"
        },
        "routingRule": {
          "type": "string"
        }
      }
    },
    "HelmHostedRepositoryApiRequest": {
      "type": "object",
      "required": [
        "name",
        "online",
        "storage"
      ],
      "properties": {
        "name": {
          "type": "string",
          "example": "internal",
          "description": "A unique identifier for this repository",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "online": {
          "type": "boolean",
          "example": true,
          "description": "Whether this repository accepts incoming requests"
        },
        "storage": {
          "$ref": "#/definitions/HostedStorageAttributes"
        },
        "cleanup": {
          "$ref": "#/definitions/CleanupPolicyAttributes"
        }
      }
    },
    "HelmProxyRepositoryApiRequest": {
      "type": "object",
      "required": [
        "httpClient",
        "name",
        "negativeCache",
        "online",
        "proxy",
        "storage"
      ],
      "properties": {
        "name": {
          "type": "string",
          "example": "internal",
          "description": "A unique identifier for this repository",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "online": {
          "type": "boolean",
          "example": true,
          "description": "Whether this repository accepts incoming requests"
        },
        "storage": {
          "$ref": "#/definitions/StorageAttributes"
        },
        "cleanup": {
          "$ref": "#/definitions/CleanupPolicyAttributes"
        },
        "proxy": {
          "$ref": "#/definitions/ProxyAttributes"
        },
        "negativeCache": {
          "$ref": "#/definitions/NegativeCacheAttributes"
        },
        "httpClient": {
          "$ref": "#/definitions/HttpClientAttributes"
        },
        "routingRule": {
          "type": "string"
        }
      }
    },
    "P2ProxyRepositoryApiRequest": {
      "type": "object",
      "required": [
        "httpClient",
        "name",
        "negativeCache",
        "online",
        "proxy",
        "storage"
      ],
      "properties": {
        "name": {
          "type": "string",
          "example": "internal",
          "description": "A unique identifier for this repository",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "online": {
          "type": "boolean",
          "example": true,
          "description": "Whether this repository accepts incoming requests"
        },
        "storage": {
          "$ref": "#/definitions/StorageAttributes"
        },
        "cleanup": {
          "$ref": "#/definitions/CleanupPolicyAttributes"
        },
        "proxy": {
          "$ref": "#/definitions/ProxyAttributes"
        },
        "negativeCache": {
          "$ref": "#/definitions/NegativeCacheAttributes"
        },
        "httpClient": {
          "$ref": "#/definitions/HttpClientAttributes"
        },
        "routingRule": {
          "type": "string"
        }
      }
    },
    "BowerGroupRepositoryApiRequest": {
      "type": "object",
      "required": [
        "group",
        "name",
        "online",
        "storage"
      ],
      "properties": {
        "name": {
          "type": "string",
          "example": "internal",
          "description": "A unique identifier for this repository",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "online": {
          "type": "boolean",
          "example": true,
          "description": "Whether this repository accepts incoming requests"
        },
        "storage": {
          "$ref": "#/definitions/StorageAttributes"
        },
        "group": {
          "$ref": "#/definitions/GroupAttributes"
        }
      }
    },
    "BowerHostedRepositoryApiRequest": {
      "type": "object",
      "required": [
        "name",
        "online",
        "storage"
      ],
      "properties": {
        "name": {
          "type": "string",
          "example": "internal",
          "description": "A unique identifier for this repository",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "online": {
          "type": "boolean",
          "example": true,
          "description": "Whether this repository accepts incoming requests"
        },
        "storage": {
          "$ref": "#/definitions/HostedStorageAttributes"
        },
        "cleanup": {
          "$ref": "#/definitions/CleanupPolicyAttributes"
        }
      }
    },
    "BowerAttributes": {
      "type": "object",
      "required": [
        "rewritePackageUrls"
      ],
      "properties": {
        "rewritePackageUrls": {
          "type": "boolean",
          "example": true,
          "description": "Whether to force Bower to retrieve packages through this proxy repository"
        }
      }
    },
    "BowerProxyRepositoryApiRequest": {
      "type": "object",
      "required": [
        "httpClient",
        "name",
        "negativeCache",
        "online",
        "proxy",
        "storage"
      ],
      "properties": {
        "name": {
          "type": "string",
          "example": "internal",
          "description": "A unique identifier for this repository",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "online": {
          "type": "boolean",
          "example": true,
          "description": "Whether this repository accepts incoming requests"
        },
        "storage": {
          "$ref": "#/definitions/StorageAttributes"
        },
        "cleanup": {
          "$ref": "#/definitions/CleanupPolicyAttributes"
        },
        "proxy": {
          "$ref": "#/definitions/ProxyAttributes"
        },
        "negativeCache": {
          "$ref": "#/definitions/NegativeCacheAttributes"
        },
        "httpClient": {
          "$ref": "#/definitions/HttpClientAttributes"
        },
        "routingRule": {
          "type": "string"
        },
        "bower": {
          "$ref": "#/definitions/BowerAttributes"
        }
      }
    },
    "DockerAttributes": {
      "type": "object",
      "required": [
        "forceBasicAuth",
        "v1Enabled"
      ],
      "properties": {
        "v1Enabled": {
          "type": "boolean",
          "example": false,
          "description": "Whether to allow clients to use the V1 API to interact with this repository"
        },
        "forceBasicAuth": {
          "type": "boolean",
          "example": true,
          "description": "Whether to force authentication (Docker Bearer Token Realm required if false)"
        },
        "httpPort": {
          "type": "integer",
          "format": "int32",
          "example": 8082,
          "description": "Create an HTTP connector at specified port"
        },
        "httpsPort": {
          "type": "integer",
          "format": "int32",
          "example": 8083,
          "description": "Create an HTTPS connector at specified port"
        }
      }
    },
    "DockerGroupRepositoryApiRequest": {
      "type": "object",
      "required": [
        "docker",
        "group",
        "name",
        "online",
        "storage"
      ],
      "properties": {
        "name": {
          "type": "string",
          "example": "internal",
          "description": "A unique identifier for this repository",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "online": {
          "type": "boolean",
          "example": true,
          "description": "Whether this repository accepts incoming requests"
        },
        "storage": {
          "$ref": "#/definitions/StorageAttributes"
        },
        "group": {
          "$ref": "#/definitions/GroupAttributes"
        },
        "docker": {
          "$ref": "#/definitions/DockerAttributes"
        }
      }
    },
    "DockerHostedRepositoryApiRequest": {
      "type": "object",
      "required": [
        "docker",
        "name",
        "online",
        "storage"
      ],
      "properties": {
        "name": {
          "type": "string",
          "example": "internal",
          "description": "A unique identifier for this repository",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "online": {
          "type": "boolean",
          "example": true,
          "description": "Whether this repository accepts incoming requests"
        },
        "storage": {
          "$ref": "#/definitions/HostedStorageAttributes"
        },
        "cleanup": {
          "$ref": "#/definitions/CleanupPolicyAttributes"
        },
        "docker": {
          "$ref": "#/definitions/DockerAttributes"
        }
      }
    },
    "DockerProxyAttributes": {
      "type": "object",
      "properties": {
        "indexType": {
          "type": "string",
          "example": "HUB",
          "description": "Type of Docker Index",
          "enum": [
            "HUB",
            "REGISTRY",
            "CUSTOM"
          ]
        },
        "indexUrl": {
          "type": "string",
          "description": "Url of Docker Index to use"
        }
      }
    },
    "DockerProxyRepositoryApiRequest": {
      "type": "object",
      "required": [
        "docker",
        "dockerProxy",
        "httpClient",
        "name",
        "negativeCache",
        "online",
        "proxy",
        "storage"
      ],
      "properties": {
        "name": {
          "type": "string",
          "example": "internal",
          "description": "A unique identifier for this repository",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "online": {
          "type": "boolean",
          "example": true,
          "description": "Whether this repository accepts incoming requests"
        },
        "storage": {
          "$ref": "#/definitions/StorageAttributes"
        },
        "cleanup": {
          "$ref": "#/definitions/CleanupPolicyAttributes"
        },
        "proxy": {
          "$ref": "#/definitions/ProxyAttributes"
        },
        "negativeCache": {
          "$ref": "#/definitions/NegativeCacheAttributes"
        },
        "httpClient": {
          "$ref": "#/definitions/HttpClientAttributes"
        },
        "routingRule": {
          "type": "string"
        },
        "docker": {
          "$ref": "#/definitions/DockerAttributes"
        },
        "dockerProxy": {
          "$ref": "#/definitions/DockerProxyAttributes"
        }
      }
    },
    "GitLfsHostedRepositoryApiRequest": {
      "type": "object",
      "required": [
        "name",
        "online",
        "storage"
      ],
      "properties": {
        "name": {
          "type": "string",
          "example": "internal",
          "description": "A unique identifier for this repository",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "online": {
          "type": "boolean",
          "example": true,
          "description": "Whether this repository accepts incoming requests"
        },
        "storage": {
          "$ref": "#/definitions/HostedStorageAttributes"
        },
        "cleanup": {
          "$ref": "#/definitions/CleanupPolicyAttributes"
        }
      }
    },
    "YumAttributes": {
      "type": "object",
      "required": [
        "repodataDepth"
      ],
      "properties": {
        "repodataDepth": {
          "type": "integer",
          "format": "int32",
          "example": 5,
          "description": "Specifies the repository depth where repodata folder(s) are created"
        },
        "deployPolicy": {
          "type": "string",
          "example": "STRICT",
          "description": "Validate that all paths are RPMs or yum metadata",
          "enum": [
            "PERMISSIVE",
            "STRICT"
          ]
        }
      }
    },
    "YumHostedRepositoryApiRequest": {
      "type": "object",
      "required": [
        "name",
        "online",
        "storage",
        "yum"
      ],
      "properties": {
        "name": {
          "type": "string",
          "example": "internal",
          "description": "A unique identifier for this repository",
          "pattern": "^[a-zA-Z0-9\\-]{1}[a-zA-Z0-9_\\-\\.]*$"
        },
        "online": {
          "type": "boolean",
          "example": true,
          "description": "Whether this repository accepts incoming requests"
        },
        "storage": {
          "$ref": "#/definitions/HostedStorageAttributes"
        },
        "cleanup": {
          "$ref": "#/definitions/CleanupPolicyAttributes"
        },
        "yum": {
          "$ref": "#/definitions/YumAttributes"
        }
      }
    }
  }
}