{
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "schemes": [
    "https"
  ],
  "swagger": "2.0",
  "info": {
    "description": "Documentation of Vertica Node Management Agent API",
    "title": "Node Management Agent API.",
    "version": "1.0.0"
  },
  "basePath": "/v1",
  "paths": {
    "/catalog/bootstrap": {
      "post": {
        "summary": "Bootstrap catalog",
        "operationId": "bootstrapCatalog",
        "parameters": [
          {
            "name": "BootstrapCatalogParams",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/bootstrapCatalogParams"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/genericMapResponse"
          },
          "400": {
            "$ref": "#/responses/rfc7807Error"
          },
          "405": {
            "$ref": "#/responses/rfc7807Error"
          },
          "500": {
            "$ref": "#/responses/rfc7807Error"
          }
        }
      }
    },
    "/catalog/database": {
      "get": {
        "summary": "Get database information from catalog editor.",
        "operationId": "catalogEditorRead",
        "parameters": [
          {
            "type": "string",
            "x-go-name": "CatalogPath",
            "name": "catalog_path",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/genericJSONResponse"
          },
          "405": {
            "$ref": "#/responses/rfc7807Error"
          },
          "500": {
            "$ref": "#/responses/rfc7807Error"
          }
        }
      }
    },
    "/catalog/re-ip": {
      "put": {
        "summary": "Update IP addresses of nodes using catalog editor.",
        "operationId": "catalogEditorReIP",
        "parameters": [
          {
            "name": "ReIPParams",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/reIPParams"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/genericJSONResponse"
          },
          "405": {
            "$ref": "#/responses/rfc7807Error"
          },
          "500": {
            "$ref": "#/responses/rfc7807Error"
          }
        }
      }
    },
    "/catalog/revive": {
      "post": {
        "description": "Download catalog from communal storage and write the catalog on the local host.",
        "summary": "Get a description of load remote catalog.",
        "operationId": "loadRemoteCatalog",
        "parameters": [
          {
            "name": "LoadRemoteCatalogParams",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/loadRemoteCatalogParams"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/genericMapResponse"
          },
          "400": {
            "$ref": "#/responses/rfc7807Error"
          },
          "405": {
            "$ref": "#/responses/rfc7807Error"
          },
          "500": {
            "$ref": "#/responses/rfc7807Error"
          }
        }
      }
    },
    "/catalog/rollback": {
      "put": {
        "summary": "Rollback the catalog",
        "operationId": "catalogRollback",
        "parameters": [
          {
            "name": "RollbackParams",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/rollbackParams"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/genericJSONResponse"
          },
          "405": {
            "$ref": "#/responses/rfc7807Error"
          },
          "500": {
            "$ref": "#/responses/rfc7807Error"
          }
        }
      }
    },
    "/catalog/spread-security": {
      "post": {
        "summary": "Persist spread encryption key into spread.conf.",
        "operationId": "spreadSecurity",
        "parameters": [
          {
            "name": "SpreadSecurityParams",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/spreadSecurityParams"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/genericMapResponse"
          },
          "400": {
            "$ref": "#/responses/rfc7807Error"
          },
          "405": {
            "$ref": "#/responses/rfc7807Error"
          },
          "500": {
            "$ref": "#/responses/rfc7807Error"
          }
        }
      }
    },
    "/config/spread": {
      "get": {
        "summary": "Get spread.conf file from the local host.",
        "operationId": "downloadSpreadConf",
        "parameters": [
          {
            "type": "string",
            "x-go-name": "CatalogPath",
            "name": "catalog_path",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/genericStringResponse"
          },
          "500": {
            "$ref": "#/responses/genericError"
          }
        }
      },
      "post": {
        "summary": "Write spread.conf file to the local host.",
        "operationId": "uploadSpreadConf",
        "parameters": [
          {
            "name": "UploadParams",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/uploadParams"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/genericMapResponse"
          },
          "500": {
            "$ref": "#/responses/genericError"
          }
        }
      }
    },
    "/config/vertica": {
      "get": {
        "summary": "Get vertica.conf file from the local host.",
        "operationId": "downloadVerticaConf",
        "parameters": [
          {
            "type": "string",
            "x-go-name": "CatalogPath",
            "name": "catalog_path",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/genericStringResponse"
          },
          "500": {
            "$ref": "#/responses/genericError"
          }
        }
      },
      "post": {
        "summary": "Write vertica.conf file to the local host.",
        "operationId": "uploadVerticaConf",
        "parameters": [
          {
            "name": "UploadParams",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/uploadParams"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/genericMapResponse"
          },
          "500": {
            "$ref": "#/responses/genericError"
          }
        }
      }
    },
    "/directories/delete": {
      "post": {
        "summary": "Delete directories.",
        "operationId": "deleteDirectories",
        "parameters": [
          {
            "name": "DeleteDirectoriesParams",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/deleteDirParams"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/genericMapResponse"
          },
          "405": {
            "$ref": "#/responses/rfc7807Error"
          },
          "500": {
            "$ref": "#/responses/genericError"
          }
        }
      }
    },
    "/directories/prepare": {
      "post": {
        "summary": "Create directories.",
        "operationId": "createDirectories",
        "parameters": [
          {
            "name": "CreateDirParams",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/createDirParams"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/genericMapResponse"
          },
          "400": {
            "$ref": "#/responses/rfc7807Error"
          },
          "405": {
            "$ref": "#/responses/rfc7807Error"
          },
          "500": {
            "$ref": "#/responses/rfc7807Error"
          }
        }
      }
    },
    "/health": {
      "get": {
        "summary": "Verify the status of the node management agent on the local host.",
        "operationId": "healthCheck",
        "responses": {
          "200": {
            "$ref": "#/responses/genericMapResponse"
          }
        }
      }
    },
    "/network-profiles": {
      "get": {
        "description": "Get network interface information for data and control networking.",
        "summary": "Get a description of a network interface.",
        "operationId": "getNetworkProfile",
        "parameters": [
          {
            "type": "string",
            "x-go-name": "BroadcastHint",
            "name": "broadcast-hint",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/genericJSONResponse"
          },
          "400": {
            "$ref": "#/responses/rfc7807Error"
          },
          "405": {
            "$ref": "#/responses/rfc7807Error"
          },
          "500": {
            "$ref": "#/responses/genericError"
          }
        }
      }
    },
    "/nma/shutdown": {
      "put": {
        "summary": "Shut down the node management agent.",
        "operationId": "shutdownNMA",
        "responses": {
          "200": {
            "$ref": "#/responses/genericMapResponse"
          },
          "405": {
            "$ref": "#/responses/genericError"
          },
          "500": {
            "$ref": "#/responses/genericError"
          }
        }
      }
    },
    "/nodes": {
      "get": {
        "summary": "Get node info",
        "operationId": "getNodeInfo",
        "parameters": [
          {
            "$ref": "#/definitions/nodeInfoParams",
            "name": "NodeInfoParams",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/genericMapResponse"
          },
          "400": {
            "$ref": "#/responses/rfc7807Error"
          },
          "405": {
            "$ref": "#/responses/rfc7807Error"
          },
          "500": {
            "$ref": "#/responses/rfc7807Error"
          }
        }
      }
    },
    "/nodes/start": {
      "post": {
        "summary": "Start a Vertica node or write a node start command to file.",
        "operationId": "startNode",
        "parameters": [
          {
            "name": "StartNodeParams",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/startNodeParams"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/interfaceMapResponse"
          },
          "400": {
            "$ref": "#/responses/genericError"
          },
          "405": {
            "$ref": "#/responses/genericError"
          },
          "500": {
            "$ref": "#/responses/genericError"
          }
        }
      }
    },
    "/restore-points": {
      "get": {
        "description": "List existing restore points in a database.",
        "summary": "Get a description of show restore points.",
        "operationId": "showRestorePoints",
        "parameters": [
          {
            "name": "ShowRestorePointsParams",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/showRestorePointsParams"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/genericMapResponse"
          },
          "400": {
            "$ref": "#/responses/rfc7807Error"
          },
          "405": {
            "$ref": "#/responses/rfc7807Error"
          },
          "500": {
            "$ref": "#/responses/rfc7807Error"
          }
        }
      }
    },
    "/scrutinize/{ID}/{Node}/{Batch}": {
      "get": {
        "summary": "package and return staged scrutinize files specified by ID, Node, and Batch.",
        "operationId": "packageScrutinizeTarball",
        "parameters": [
          {
            "type": "string",
            "description": "scrutinize run ID, specifying the staging directory under /tmp/scrutinize",
            "name": "ID",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "Vertica node name, specifying the subdirectory under the run ID dir",
            "name": "Node",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "batch name, specifying the subdirectory under the node dir where files will be found",
            "name": "Batch",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/genericBytesResponse"
          },
          "400": {
            "$ref": "#/responses/rfc7807Error"
          },
          "405": {
            "$ref": "#/responses/rfc7807Error"
          },
          "500": {
            "$ref": "#/responses/rfc7807Error"
          }
        }
      }
    },
    "/scrutinize/{ID}/{Node}/{Batch}/commands": {
      "post": {
        "description": "Run commands and stage the output to a directory specified by ID, Node, and Batch. The set of\ncommands run is dependent on the batch. Batches without associated commands will return 200 and\nstage nothing.",
        "operationId": "stageCommands",
        "parameters": [
          {
            "type": "string",
            "description": "scrutinize run ID, specifying the staging directory under /tmp/scrutinize",
            "name": "ID",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "Vertica node name, specifying the subdirectory under the run ID dir",
            "name": "Node",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "batch name, specifying the subdirectory under the node dir where files will be staged",
            "name": "Batch",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/stageCommandsResponse"
          },
          "400": {
            "$ref": "#/responses/rfc7807Error"
          },
          "405": {
            "$ref": "#/responses/rfc7807Error"
          },
          "500": {
            "$ref": "#/responses/rfc7807Error"
          }
        }
      }
    },
    "/scrutinize/{ID}/{Node}/{Batch}/data_collector": {
      "post": {
        "summary": "Stage DC table dumps to a directory specified by ID, Node, and Batch.",
        "operationId": "stageDcTables",
        "parameters": [
          {
            "name": "StageDcTableParams",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/stageDcTableParams"
            }
          },
          {
            "type": "string",
            "description": "scrutinize run ID, specifying the staging directory under /tmp/scrutinize",
            "name": "ID",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "Vertica node name, specifying the subdirectory under the run ID dir",
            "name": "Node",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "batch name, specifying the subdirectory under the node dir where files will be staged",
            "name": "Batch",
            "in": "path",
            "required": true
          },
          {
            "description": "catalog path on the given node",
            "name": "catalog_path",
            "in": "body",
            "required": true,
            "schema": {
              "description": "catalog path on the given node",
              "type": "string"
            }
          },
          {
            "description": "regex for any component to be excluded (eg: \"Plan.*\")",
            "name": "exclude_component_regex",
            "in": "body",
            "schema": {
              "description": "regex for any component to be excluded (eg: \"Plan.*\")",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/stageDcTableResponse"
          },
          "400": {
            "$ref": "#/responses/rfc7807Error"
          },
          "405": {
            "$ref": "#/responses/rfc7807Error"
          },
          "500": {
            "$ref": "#/responses/rfc7807Error"
          }
        }
      }
    },
    "/scrutinize/{ID}/{Node}/{Batch}/directory": {
      "post": {
        "summary": "Create directories for scrutinize.",
        "operationId": "createScrutinizerDirectories",
        "parameters": [
          {
            "name": "CreateScrutinizerDirBodyParams",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/createScrutinizerDirParams"
            }
          },
          {
            "type": "string",
            "description": "scrutinize run ID, specifying the staging directory under /tmp/scrutinize",
            "name": "ID",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "Vertica node name, specifying the subdirectory under the run ID dir",
            "name": "Node",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "batch name, specifying the subdirectory under the node dir where files will be staged",
            "name": "Batch",
            "in": "path",
            "required": true
          },
          {
            "description": "Suffix for specific scrutinize sub directory",
            "name": "Suffix",
            "in": "body",
            "schema": {
              "description": "Suffix for specific scrutinize sub directory",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/emptyResponse"
          },
          "400": {
            "$ref": "#/responses/rfc7807Error"
          },
          "405": {
            "$ref": "#/responses/rfc7807Error"
          },
          "500": {
            "$ref": "#/responses/rfc7807Error"
          }
        }
      }
    },
    "/scrutinize/{ID}/{Node}/{Batch}/files": {
      "post": {
        "description": "This means most files scrutinize gathers, except vertica.log files and archives. The set of\nfiles staged is dependent on the batch. Batches without associated files will return 200 and\nstage nothing.",
        "summary": "Stage files needing no special processing to a directory specified by ID, Node, and Batch.",
        "operationId": "stageFiles",
        "parameters": [
          {
            "type": "string",
            "description": "scrutinize run ID, specifying the staging directory under /tmp/scrutinize",
            "name": "ID",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "Vertica node name, specifying the subdirectory under the run ID dir",
            "name": "Node",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "batch name, specifying the subdirectory under the node dir where files will be staged",
            "name": "Batch",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/stageFilesResponse"
          },
          "400": {
            "$ref": "#/responses/rfc7807Error"
          },
          "405": {
            "$ref": "#/responses/rfc7807Error"
          },
          "500": {
            "$ref": "#/responses/rfc7807Error"
          }
        }
      }
    },
    "/scrutinize/{ID}/{Node}/{Batch}/vertica.log": {
      "post": {
        "summary": "Stage current and archived vertica logs to a directory specified by ID, Node, and Batch.",
        "operationId": "stageVerticaLogs",
        "parameters": [
          {
            "name": "StageVerticaLogParams",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/stageVerticaLogParams"
            }
          },
          {
            "type": "string",
            "description": "scrutinize run ID, specifying the staging directory under /tmp/scrutinize",
            "name": "ID",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "Vertica node name, specifying the subdirectory under the run ID dir",
            "name": "Node",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "batch name, specifying the subdirectory under the node dir where files will be staged",
            "name": "Batch",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/stageVerticaLogResponse"
          },
          "400": {
            "$ref": "#/responses/rfc7807Error"
          },
          "405": {
            "$ref": "#/responses/rfc7807Error"
          },
          "500": {
            "$ref": "#/responses/rfc7807Error"
          }
        }
      }
    },
    "/scrutinize/{ID}/{Node}/{Batch}/vs": {
      "post": {
        "summary": "Stage system table dumps to a directory specified by ID, Node, and Batch.",
        "operationId": "stageSystemTables",
        "parameters": [
          {
            "name": "StageSystemTableParams",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/stageSystemTableParams"
            }
          },
          {
            "type": "string",
            "description": "scrutinize run ID, specifying the staging directory under /tmp/scrutinize",
            "name": "ID",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "Vertica node name, specifying the subdirectory under the run ID dir",
            "name": "Node",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "batch name, specifying the subdirectory under the node dir where files will be staged",
            "name": "Batch",
            "in": "path",
            "required": true
          },
          {
            "description": "Username of the db user",
            "name": "Username",
            "in": "body",
            "required": true,
            "schema": {
              "description": "Username of the db user",
              "type": "string"
            }
          },
          {
            "description": "Password of the db user, if any.",
            "name": "Password",
            "in": "body",
            "schema": {
              "description": "Password of the db user, if any.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/emptyResponse"
          },
          "400": {
            "$ref": "#/responses/rfc7807Error"
          },
          "405": {
            "$ref": "#/responses/rfc7807Error"
          },
          "500": {
            "$ref": "#/responses/rfc7807Error"
          }
        }
      }
    },
    "/scrutinize/{ID}/{Node}/{Batch}/vs-status": {
      "post": {
        "summary": "Stage system table dumps to a directory specified by ID, Node, and Batch.",
        "operationId": "stageSysTableStatus",
        "parameters": [
          {
            "type": "string",
            "description": "scrutinize run ID, specifying the staging directory under /tmp/scrutinize",
            "name": "ID",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "Vertica node name, specifying the subdirectory under the run ID dir",
            "name": "Node",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "batch name, specifying the subdirectory under the node dir where files will be staged",
            "name": "Batch",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/stageSystemTableResponse"
          },
          "202": {
            "$ref": "#/responses/emptyAcceptResponse"
          },
          "405": {
            "$ref": "#/responses/genericError"
          },
          "500": {
            "$ref": "#/responses/genericError"
          }
        }
      }
    },
    "/vertica-processes/signal": {
      "post": {
        "summary": "Send a KILL or TERM signal to the Vertica process.",
        "operationId": "signalVertica",
        "parameters": [
          {
            "type": "string",
            "x-go-name": "SignalType",
            "name": "signal_type",
            "in": "query"
          },
          {
            "type": "string",
            "x-go-name": "CatalogPath",
            "name": "catalog_path",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/genericMapResponse"
          },
          "400": {
            "$ref": "#/responses/rfc7807Error"
          },
          "500": {
            "$ref": "#/responses/genericError"
          }
        }
      }
    },
    "/vertica/download-file": {
      "post": {
        "summary": "Vertica download file",
        "operationId": "verticaDownloadFile",
        "parameters": [
          {
            "name": "VerticaDownloadFileParams",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/verticaDownloadFileParams"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/genericJSONResponse"
          },
          "400": {
            "$ref": "#/responses/rfc7807Error"
          },
          "405": {
            "$ref": "#/responses/rfc7807Error"
          },
          "500": {
            "$ref": "#/responses/rfc7807Error"
          }
        }
      }
    },
    "/vertica/license-check": {
      "post": {
        "summary": "Check License File",
        "operationId": "licenseFileCheck",
        "parameters": [
          {
            "name": "LicenseFileParams",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/licenseFileParams"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/responses/genericMapResponse"
          },
          "400": {
            "$ref": "#/responses/rfc7807Error"
          },
          "405": {
            "$ref": "#/responses/rfc7807Error"
          },
          "500": {
            "$ref": "#/responses/rfc7807Error"
          }
        }
      }
    },
    "/vertica/version": {
      "get": {
        "summary": "Get the version of Vertica on the local host.",
        "operationId": "getVersion",
        "responses": {
          "200": {
            "$ref": "#/responses/genericMapResponse"
          }
        }
      }
    }
  },
  "definitions": {
    "bootstrapCatalogParams": {
      "description": "Parameters for bootstrapping the catalog\nAll values in the request but not in this struct are silently ignored.",
      "type": "object",
      "title": "A bootstrapCatalogParams model.",
      "properties": {
        "aws_access_key_id": {
          "type": "string",
          "x-go-name": "AWSAccessKeyID"
        },
        "aws_secret_access_key": {
          "type": "string",
          "x-go-name": "AWSSecretAccessKey"
        },
        "broadcast_addr": {
          "type": "string",
          "x-go-name": "BroadcastAddr"
        },
        "catalog_path": {
          "type": "string",
          "x-go-name": "CatalogPath"
        },
        "communal_storage": {
          "type": "string",
          "x-go-name": "CommunalStorageURL"
        },
        "control_addr": {
          "type": "string",
          "x-go-name": "ControlAddr"
        },
        "db_name": {
          "type": "string",
          "x-go-name": "DBName"
        },
        "db_password": {
          "type": "string",
          "x-go-name": "DBPassword"
        },
        "generate_http_certs": {
          "type": "boolean",
          "x-go-name": "GenerateHTTPCerts"
        },
        "host": {
          "type": "string",
          "x-go-name": "Host"
        },
        "ipv6": {
          "type": "boolean",
          "x-go-name": "Ipv6"
        },
        "large_cluster": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "LargeCluster"
        },
        "license_key": {
          "type": "string",
          "x-go-name": "LicenseKey"
        },
        "networking_mode": {
          "type": "string",
          "x-go-name": "NetworkingMode"
        },
        "node_name": {
          "type": "string",
          "x-go-name": "NodeName"
        },
        "num_shards": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "NumShards"
        },
        "parameters": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "x-go-name": "Parameters"
        },
        "port_number": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "PortNumber"
        },
        "spread_logging": {
          "type": "boolean",
          "x-go-name": "SpreadLogging"
        },
        "spread_logging_level": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "SpreadLoggingLevel"
        },
        "spread_port": {
          "type": "string",
          "x-go-name": "ControlPort"
        },
        "storage_location": {
          "type": "string",
          "x-go-name": "StorageLocation"
        },
        "superuser_name": {
          "type": "string",
          "x-go-name": "SuperuserName"
        }
      },
      "x-go-package": "vertica.com/node_management_agent/endpoints"
    },
    "createDirParams": {
      "description": "Parameters for creating directories on the local host.",
      "type": "object",
      "title": "A createDirParams model.",
      "properties": {
        "catalog_path": {
          "type": "string",
          "x-go-name": "CatalogPath"
        },
        "depot_path": {
          "type": "string",
          "x-go-name": "DepotPath"
        },
        "for_revive": {
          "type": "boolean",
          "x-go-name": "ForRevive"
        },
        "force_cleanup": {
          "type": "boolean",
          "x-go-name": "ForceCleanup"
        },
        "ignore_parent": {
          "type": "boolean",
          "x-go-name": "IgnoreParent"
        },
        "storage_locations": {
          "description": "storage_locations should not contain any user storage locations",
          "type": "array",
          "items": {
            "type": "string"
          },
          "x-go-name": "StorageLocations"
        },
        "user_storage_locations": {
          "description": "user_storage_locations will not be forcibly cleaned during database revive",
          "type": "array",
          "items": {
            "type": "string"
          },
          "x-go-name": "UserStorageLocations"
        }
      },
      "x-go-package": "vertica.com/node_management_agent/endpoints"
    },
    "createScrutinizerDirParams": {
      "description": "Parameters for creating directories specifically for scrutinizer on the local host.",
      "type": "object",
      "title": "A createScrutinizerDirParams model.",
      "properties": {
        "suffix": {
          "type": "string",
          "x-go-name": "Suffix"
        }
      },
      "x-go-package": "vertica.com/node_management_agent/endpoints"
    },
    "deleteDirParams": {
      "description": "Parameters for deleting directories on the local host.",
      "type": "object",
      "title": "A deleteDirParams model.",
      "properties": {
        "directories": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "x-go-name": "Directories"
        },
        "force_delete": {
          "type": "boolean",
          "x-go-name": "ForceDelete"
        },
        "sandbox": {
          "type": "boolean",
          "x-go-name": "Sandbox"
        }
      },
      "x-go-package": "vertica.com/node_management_agent/endpoints"
    },
    "licenseFileParams": {
      "description": "Parameters for license file check on the local host.",
      "type": "object",
      "title": "A licenseFileCheckParams model.",
      "properties": {
        "license_file": {
          "type": "string",
          "x-go-name": "LicenseFileContent"
        }
      },
      "x-go-package": "vertica.com/node_management_agent/endpoints"
    },
    "loadRemoteCatalogParams": {
      "description": "Parameters for loading remote catalog.\nAll values in the request but not in this struct are silently ignored.",
      "type": "object",
      "title": "A loadRemoteCatalogParams model.",
      "properties": {
        "branch": {
          "type": "string",
          "x-go-name": "Branch"
        },
        "catalog_path": {
          "type": "string",
          "x-go-name": "CatalogPath"
        },
        "communal_location": {
          "type": "string",
          "x-go-name": "CommunalLocation"
        },
        "db_name": {
          "type": "string",
          "x-go-name": "DBName"
        },
        "db_password": {
          "type": "string",
          "x-go-name": "DBPassword"
        },
        "host": {
          "type": "string",
          "x-go-name": "Host"
        },
        "networking_mode": {
          "type": "string",
          "x-go-name": "NetworkingMode"
        },
        "node_addresses": {
          "type": "object",
          "additionalProperties": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "x-go-name": "NodeAddresses"
        },
        "node_name": {
          "type": "string",
          "x-go-name": "NodeName"
        },
        "parameters": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "x-go-name": "Parameters"
        },
        "restore_point_archive": {
          "type": "string",
          "x-go-name": "RestorePointArchive"
        },
        "restore_point_id": {
          "type": "string",
          "x-go-name": "RestorePointID"
        },
        "restore_point_index": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "RestorePointIndex"
        },
        "storage_locations": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "x-go-name": "StorageLocations"
        }
      },
      "x-go-package": "vertica.com/node_management_agent/endpoints"
    },
    "nodeInfoParams": {
      "description": "This is used for get node name and catalog path information.",
      "type": "object",
      "title": "A nodeInfoParams model.",
      "properties": {
        "catalog_prefix": {
          "type": "string",
          "x-go-name": "CatalogPrefix"
        },
        "db_name": {
          "type": "string",
          "x-go-name": "DBName"
        }
      },
      "x-go-package": "vertica.com/node_management_agent/endpoints"
    },
    "reIPInfo": {
      "type": "object",
      "properties": {
        "address": {
          "type": "string",
          "x-go-name": "TargetAddress"
        },
        "control_address": {
          "type": "string",
          "x-go-name": "TargetControlAddress"
        },
        "control_broadcast": {
          "type": "string",
          "x-go-name": "TargetControlBroadcast"
        },
        "node_name": {
          "type": "string",
          "x-go-name": "NodeName"
        }
      },
      "x-go-package": "vertica.com/node_management_agent/endpoints"
    },
    "reIPParams": {
      "type": "object",
      "properties": {
        "catalog_path": {
          "type": "string",
          "x-go-name": "CatalogPath"
        },
        "re_ip_list": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/reIPInfo"
          },
          "x-go-name": "ReIPInfoList"
        }
      },
      "x-go-package": "vertica.com/node_management_agent/endpoints"
    },
    "rollbackParams": {
      "type": "object",
      "properties": {
        "catalog_path": {
          "type": "string",
          "x-go-name": "CatalogPath"
        },
        "two_phase_id": {
          "type": "string",
          "x-go-name": "TwoPhaseID"
        }
      },
      "x-go-package": "vertica.com/node_management_agent/endpoints"
    },
    "showRestorePointsParams": {
      "description": "Parameters for show restore points.",
      "type": "object",
      "title": "A showRestorePointsParams model.",
      "properties": {
        "archive_id": {
          "type": "string",
          "x-go-name": "ArchiveID"
        },
        "archive_index": {
          "type": "string",
          "x-go-name": "ArchiveIndex"
        },
        "archive_name": {
          "type": "string",
          "x-go-name": "ArchiveName"
        },
        "communal_location": {
          "type": "string",
          "x-go-name": "CommunalLocation"
        },
        "db_name": {
          "type": "string",
          "x-go-name": "DBName"
        },
        "end_timestamp": {
          "type": "string",
          "x-go-name": "EndTimestamp"
        },
        "parameters": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "x-go-name": "Parameters"
        },
        "start_timestamp": {
          "type": "string",
          "x-go-name": "StartTimestamp"
        }
      },
      "x-go-package": "vertica.com/node_management_agent/endpoints"
    },
    "spreadSecurityParams": {
      "description": "Parameters for configurating Spread security.",
      "type": "object",
      "title": "A spreadSecurity model.",
      "properties": {
        "catalog_path": {
          "type": "string",
          "x-go-name": "CatalogPath"
        },
        "spread_security_details": {
          "type": "string",
          "x-go-name": "SpreadSecurityDetails"
        }
      },
      "x-go-package": "vertica.com/node_management_agent/endpoints"
    },
    "stageCommandsParams": {
      "description": "This is used for running diagnostics commands and staging the output.",
      "type": "object",
      "title": "A stageCommands model.",
      "properties": {
        "catalog_path": {
          "type": "string",
          "x-go-name": "CatalogPath"
        }
      },
      "x-go-package": "vertica.com/node_management_agent/endpoints"
    },
    "stageCommandsResponse": {
      "description": "An array of these returns information on staged command output as part of a scrutinize run.",
      "type": "object",
      "title": "A stageCommandsResponse model",
      "properties": {
        "name": {
          "type": "string",
          "x-go-name": "Name"
        }
      },
      "x-go-package": "vertica.com/node_management_agent/endpoints"
    },
    "stageDcTableParams": {
      "description": "This is used for staging DC tables as a part of a scrutinize run.",
      "type": "object",
      "title": "A stageDcTableParams model.",
      "properties": {
        "catalog_path": {
          "type": "string",
          "x-go-name": "CatalogPath"
        },
        "exclude_component_regex": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "x-go-name": "ExcludeRegex"
        }
      },
      "x-go-package": "vertica.com/node_management_agent/endpoints"
    },
    "stageDcTableResponse": {
      "description": "An array of these returns file name of staged DC tables as part of a scrutinize run.",
      "type": "object",
      "title": "A stageDcTableResponse model",
      "properties": {
        "name": {
          "type": "string",
          "x-go-name": "Name"
        }
      },
      "x-go-package": "vertica.com/node_management_agent/endpoints"
    },
    "stageFilesParams": {
      "description": "This is used for staging files needing no special processing as part of a scrutinize run.",
      "type": "object",
      "title": "A stageFiles model.",
      "properties": {
        "catalog_path": {
          "type": "string",
          "x-go-name": "CatalogPath"
        },
        "log_size_limit_bytes": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "LogSizeLimitBytes"
        }
      },
      "x-go-package": "vertica.com/node_management_agent/endpoints"
    },
    "stageFilesResponse": {
      "description": "An array of these returns information on staged files as part of a scrutinize run.",
      "type": "object",
      "title": "A stageFilesResponse model",
      "properties": {
        "mod_time": {
          "type": "string",
          "x-go-name": "ModTime"
        },
        "name": {
          "type": "string",
          "x-go-name": "Name"
        },
        "size_bytes": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "SizeBytes"
        }
      },
      "x-go-package": "vertica.com/node_management_agent/endpoints"
    },
    "stageSystemTableParams": {
      "description": "This is used for staging system tables as a part of a scrutinize run.",
      "type": "object",
      "title": "A stageSystemTableParams model.",
      "properties": {
        "password": {
          "type": "string",
          "x-go-name": "Password"
        },
        "username": {
          "type": "string",
          "x-go-name": "Username"
        }
      },
      "x-go-package": "vertica.com/node_management_agent/endpoints"
    },
    "stageSystemTableResponse": {
      "description": "An array of these returns file name of staged system tables as part of a scrutinize run.",
      "type": "object",
      "title": "A stageSystemTableResponse model",
      "properties": {
        "name": {
          "type": "string",
          "x-go-name": "Name"
        }
      },
      "x-go-package": "vertica.com/node_management_agent/endpoints"
    },
    "stageVerticaLogParams": {
      "description": "This is used for staging Vertica logs as part of a scrutinize run.",
      "type": "object",
      "title": "A stageVerticaLogParams model.",
      "properties": {
        "catalog_path": {
          "type": "string",
          "x-go-name": "CatalogPath"
        },
        "log_max_age_hours": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "LogMaxAgeHours"
        },
        "log_min_age_hours": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "LogMinAgeHours"
        },
        "log_size_limit_bytes": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "LogSizeLimitBytes"
        }
      },
      "x-go-package": "vertica.com/node_management_agent/endpoints"
    },
    "stageVerticaLogResponse": {
      "description": "An array of these returns information on staged Vertica logs as part of a scrutinize run.",
      "type": "object",
      "title": "A stageVerticaLogResponse model",
      "properties": {
        "mod_time": {
          "type": "string",
          "x-go-name": "ModTime"
        },
        "name": {
          "type": "string",
          "x-go-name": "Name"
        },
        "size_bytes": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "SizeBytes"
        }
      },
      "x-go-package": "vertica.com/node_management_agent/endpoints"
    },
    "startNodeParams": {
      "description": "Parameters for starting the local Vertica node.",
      "type": "object",
      "title": "A startNodeParams model.",
      "properties": {
        "delete_corrupted_data": {
          "type": "boolean",
          "x-go-name": "DeleteCorruptedData"
        },
        "last_epoch": {
          "type": "integer",
          "format": "int64",
          "x-go-name": "LastEpoch"
        },
        "special_environment": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "x-go-name": "Environment"
        },
        "start_command": {
          "description": "The start command for a Vertica node.",
          "type": "array",
          "items": {
            "type": "string"
          },
          "x-go-name": "Command",
          "example": "/opt/vertica/bin/vertica -D CATALOG_PATH -C DB_NAME -n NODE_NAME -h 192.168.1.102 -p 5433 -P 4803 -Y ipv4"
        },
        "startup_conf": {
          "type": "string",
          "x-go-name": "StartupConf"
        }
      },
      "x-go-package": "vertica.com/node_management_agent/endpoints"
    },
    "uploadParams": {
      "description": "Parameters for uploading vertica.conf and spread.conf.",
      "type": "object",
      "title": "An uploadParams model.",
      "properties": {
        "catalog_path": {
          "type": "string",
          "x-go-name": "CatalogPath"
        },
        "content": {
          "type": "string",
          "x-go-name": "Content"
        }
      },
      "x-go-package": "vertica.com/node_management_agent/endpoints"
    },
    "verticaDownloadFileParams": {
      "description": "This is used for downloading cluster_config.json file for Eon mode databases.",
      "type": "object",
      "title": "A verticaDownloadFile model.",
      "properties": {
        "aws_access_key_id": {
          "type": "string",
          "x-go-name": "AWSAccessKeyID"
        },
        "aws_secret_access_key": {
          "type": "string",
          "x-go-name": "AWSSecretAccessKey"
        },
        "catalog_path": {
          "type": "string",
          "x-go-name": "CatalogPath"
        },
        "destination_file_path": {
          "type": "string",
          "x-go-name": "DestFilePath"
        },
        "parameters": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "x-go-name": "Parameters"
        },
        "source_file_path": {
          "type": "string",
          "x-go-name": "SourceFilePath"
        }
      },
      "x-go-package": "vertica.com/node_management_agent/endpoints"
    }
  },
  "responses": {
    "genericBytesResponse": {
      "description": "A GenericBytesResponse is the default response that is generated,\nthe response value is of type \"[]byte\".",
      "schema": {
        "type": "array",
        "items": {
          "type": "integer",
          "format": "uint8"
        }
      }
    },
    "genericError": {
      "description": "A GenericError is the default error message that is generated.",
      "schema": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32",
            "x-go-name": "Code"
          },
          "message": {
            "type": "string",
            "x-go-name": "Message"
          }
        }
      }
    },
    "genericJSONResponse": {
      "description": "A GenericJSONResponse is the default response that is generated, the response value is of type \"string\" in JSON format."
    },
    "genericMapResponse": {
      "description": "A GenericMapResponse is the default response that is generated,\nthe response value is of type \"Map\" with both key and value of type \"string\".",
      "schema": {
        "type": "object",
        "additionalProperties": {
          "type": "string"
        }
      }
    },
    "genericStringResponse": {
      "description": "A GenericStringResponse is the default response that is generated,\nthe response value is of type \"string\"."
    },
    "interfaceMapResponse": {
      "description": "An InterfaceMapResponse is the response value of type \"Map\",\nwhere the key is of type \"string\", the value can be of any type",
      "schema": {
        "type": "object",
        "additionalProperties": {}
      }
    },
    "rfc7807Error": {
      "description": "A RFC7807Error is a generated error that follows RFC7807 specification.",
      "schema": {
        "type": "object",
        "properties": {
          "detail": {
            "type": "string",
            "x-go-name": "Detail"
          },
          "host": {
            "type": "string",
            "x-go-name": "Host"
          },
          "status": {
            "type": "integer",
            "format": "int64",
            "x-go-name": "Status"
          },
          "title": {
            "type": "string",
            "x-go-name": "Title"
          },
          "type": {
            "type": "string",
            "x-go-name": "Type"
          }
        }
      }
    },
    "stageCommandsResponse": {
      "description": "",
      "schema": {
        "type": "array",
        "items": {
          "$ref": "#/definitions/stageCommandsResponse"
        }
      }
    },
    "stageDcTableResponse": {
      "description": "",
      "schema": {
        "type": "array",
        "items": {
          "$ref": "#/definitions/stageDcTableResponse"
        }
      }
    },
    "stageFilesResponse": {
      "description": "",
      "schema": {
        "type": "array",
        "items": {
          "$ref": "#/definitions/stageFilesResponse"
        }
      }
    },
    "stageSystemTableResponse": {
      "description": "",
      "schema": {
        "type": "array",
        "items": {
          "$ref": "#/definitions/stageSystemTableResponse"
        }
      }
    },
    "stageVerticaLogResponse": {
      "description": "",
      "schema": {
        "type": "array",
        "items": {
          "$ref": "#/definitions/stageVerticaLogResponse"
        }
      }
    }
  },
  "securityDefinitions": {
    "basic": {
      "type": "basic"
    }
  }
}