openapi: 3.2.0 info: title: HAProxy Data Plane Storage API description: 'API for editing and managing haproxy instances. Provides process information, configuration management, haproxy stats and logs.' version: '3.4' contact: name: HAProxy Support url: https://my.haproxy.com/portal/cust/login email: support@haproxy.com servers: - url: /v3 security: - basic_auth: [] tags: - name: Storage paths: /services/haproxy/storage/maps: get: description: Returns a list of all managed map files operationId: getAllStorageMapFiles responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/maps' '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/DefaultError' summary: Return a list of all managed map files tags: - Storage post: description: Creates a managed storage map file with its entries. operationId: createStorageMapFile responses: '201': description: Map file created with its entries content: application/json: schema: $ref: '#/components/schemas/map' '400': $ref: '#/components/responses/BadRequest' '409': $ref: '#/components/responses/AlreadyExists' default: $ref: '#/components/responses/DefaultError' summary: Creates a managed storage map file with its entries tags: - Storage requestBody: content: multipart/form-data: schema: type: object properties: file_upload: type: string description: The map file contents format: binary /services/haproxy/storage/maps/{name}: delete: description: Deletes a managed map file from disk. operationId: deleteStorageMap parameters: - description: Map file storage_name in: path name: name required: true schema: type: string responses: '204': description: Map file deleted '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/DefaultError' summary: Deletes a managed map file from disk tags: - Storage get: description: Returns the contents of one managed map file from disk operationId: getOneStorageMap parameters: - description: Map file storage_name in: path name: name required: true schema: type: string responses: '200': description: Successful operation content: application/octet-stream: schema: type: string format: binary '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/DefaultError' summary: Return the contents of one managed map file from disk tags: - Storage put: description: Replaces the contents of a managed map file on disk operationId: replaceStorageMapFile parameters: - description: Map file storage_name in: path name: name required: true schema: type: string - $ref: '#/components/parameters/skip_reload' - $ref: '#/components/parameters/force_reload' responses: '202': description: Configuration change accepted and reload requested headers: Reload-ID: description: ID of the requested reload schema: type: string '204': description: Map file replaced '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/DefaultError' summary: Replace contents of a managed map file on disk tags: - Storage requestBody: content: text/plain: schema: type: string required: true /services/haproxy/storage/ssl_certificates: get: description: Returns all available SSL certificates on disk. operationId: getAllStorageSSLCertificates responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/ssl_certificates' '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/DefaultError' summary: Return all available SSL certificates on disk tags: - Storage post: description: Creates SSL certificate. operationId: createStorageSSLCertificate parameters: - $ref: '#/components/parameters/skip_reload' - $ref: '#/components/parameters/force_reload' responses: '201': description: SSL certificate created content: application/json: schema: $ref: '#/components/schemas/ssl_certificate' '202': description: SSL certificate created requested headers: Reload-ID: description: ID of the requested reload schema: type: string content: application/json: schema: $ref: '#/components/schemas/ssl_certificate' '400': $ref: '#/components/responses/BadRequest' '409': $ref: '#/components/responses/AlreadyExists' default: $ref: '#/components/responses/DefaultError' summary: Create SSL certificate tags: - Storage requestBody: content: multipart/form-data: schema: type: object properties: file_upload: type: string description: The SSL certificate to upload format: binary /services/haproxy/storage/ssl_certificates/{name}: delete: description: Deletes SSL certificate from disk. operationId: deleteStorageSSLCertificate parameters: - description: SSL certificate name in: path name: name required: true schema: type: string - $ref: '#/components/parameters/skip_reload' - $ref: '#/components/parameters/force_reload' responses: '202': description: SSL certificate deleted and reload requested headers: Reload-ID: description: ID of the requested reload schema: type: string '204': description: SSL certificate deleted '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/DefaultError' summary: Delete SSL certificate from disk tags: - Storage get: description: Returns one SSL certificate from disk. operationId: getOneStorageSSLCertificate parameters: - description: SSL certificate name in: path name: name required: true schema: type: string responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/ssl_certificate' '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/DefaultError' summary: Return one SSL certificate from disk tags: - Storage put: description: Replaces SSL certificate on disk. operationId: replaceStorageSSLCertificate parameters: - description: SSL certificate name in: path name: name required: true schema: type: string - $ref: '#/components/parameters/skip_reload' - $ref: '#/components/parameters/force_reload' responses: '200': description: SSL certificate replaced content: application/json: schema: $ref: '#/components/schemas/ssl_certificate' '202': description: SSL certificate replaced and reload requested headers: Reload-ID: description: ID of the requested reload schema: type: string content: application/json: schema: $ref: '#/components/schemas/ssl_certificate' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/DefaultError' summary: Replace SSL certificates on disk tags: - Storage requestBody: content: text/plain: schema: type: string required: true /services/haproxy/storage/ssl_crt_lists: get: description: Returns all available certificate lists on disk. operationId: getAllStorageSSLCrtListFiles responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/ssl_crt_list_files' '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/DefaultError' summary: Return all available certificate lists on disk tags: - Storage post: description: Creates a certificate list. operationId: createStorageSSLCrtListFile parameters: - $ref: '#/components/parameters/force_reload' responses: '201': description: Certificate list created content: application/json: schema: $ref: '#/components/schemas/ssl_crt_list_file' '202': description: Certificate list created requested headers: Reload-ID: description: ID of the requested reload schema: type: string content: application/json: schema: $ref: '#/components/schemas/ssl_crt_list_file' '400': $ref: '#/components/responses/BadRequest' '409': $ref: '#/components/responses/AlreadyExists' default: $ref: '#/components/responses/DefaultError' summary: Create a certificate list tags: - Storage requestBody: content: multipart/form-data: schema: type: object properties: file_upload: type: string description: The certificate list to upload format: binary /services/haproxy/storage/ssl_crt_lists/{name}: delete: description: Deletes a certificate list from disk. operationId: deleteStorageSSLCrtListFile parameters: - description: Certificate list name in: path name: name required: true schema: type: string - $ref: '#/components/parameters/skip_reload' - $ref: '#/components/parameters/force_reload' responses: '202': description: Certificate list deleted and reload requested headers: Reload-ID: description: ID of the requested reload schema: type: string '204': description: Certificate list deleted '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/DefaultError' summary: Delete a certificate list from disk tags: - Storage get: description: Returns one certificate list from disk. operationId: getOneStorageSSLCrtListFile parameters: - description: Certificate list name in: path name: name required: true schema: type: string responses: '200': description: Successful operation content: application/octet-stream: schema: type: string format: binary '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/DefaultError' summary: Return one certificate list from disk tags: - Storage put: description: Replaces a certificate list on disk. operationId: replaceStorageSSLCrtListFile parameters: - description: Certificate list name in: path name: name required: true schema: type: string - $ref: '#/components/parameters/skip_reload' - $ref: '#/components/parameters/force_reload' responses: '200': description: Certificate list replaced content: application/json: schema: $ref: '#/components/schemas/ssl_crt_list_file' '202': description: Certificate list replaced and reload requested headers: Reload-ID: description: ID of the requested reload schema: type: string content: application/json: schema: $ref: '#/components/schemas/ssl_crt_list_file' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/DefaultError' summary: Replace a certificate lists on disk tags: - Storage requestBody: content: text/plain: schema: type: string required: true /services/haproxy/storage/ssl_crt_lists/{name}/entries: delete: description: Deletes an entry from a certificate list. operationId: DeleteStorageSSLCrtListEntry parameters: - description: SSL crt list name in: path name: name required: true schema: type: string - description: SSL certificate filename in: query name: certificate required: true schema: type: string - description: The line number in the crt-list in: query name: line_number required: true schema: type: integer minimum: 0 - $ref: '#/components/parameters/force_reload' responses: '202': description: Configuration change accepted and reload requested headers: Reload-ID: description: ID of the requested reload schema: type: string '204': description: Successful operation '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/DefaultError' summary: Deletes an entry from CrtList file tags: - Storage get: description: Returns all the entries in a certificate list. operationId: GetStorageSSLCrtListEntries parameters: - description: SSL crt-list file in: path name: name required: true schema: type: string responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/ssl_crt_list_entries' '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/DefaultError' summary: Returns all the entries in a CrtList tags: - Storage post: description: Creates a new entry in a certificate list. operationId: CreateStorageSSLCrtListEntry parameters: - description: SSL crt-list file in: path name: name required: true schema: type: string - $ref: '#/components/parameters/force_reload' responses: '201': description: New entry added content: application/json: schema: $ref: '#/components/schemas/ssl_crt_list_entry' '202': description: Configuration change accepted and reload requested headers: Reload-ID: description: ID of the requested reload schema: type: string '400': $ref: '#/components/responses/BadRequest' '409': $ref: '#/components/responses/AlreadyExists' default: $ref: '#/components/responses/DefaultError' summary: Creates a new entry in a CrtList tags: - Storage requestBody: content: application/json: schema: $ref: '#/components/schemas/ssl_crt_list_entry' description: SSL crt-list entry required: true /services/haproxy/storage/general: get: description: Returns a list of all managed general use files operationId: getAllStorageGeneralFiles responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/general_files' '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/DefaultError' summary: Return a list of all managed general use files tags: - Storage post: description: Creates a managed storage general use file with contents. operationId: createStorageGeneralFile responses: '201': description: General use file created with its contents content: application/json: schema: $ref: '#/components/schemas/general_file' '400': $ref: '#/components/responses/BadRequest' '409': $ref: '#/components/responses/AlreadyExists' default: $ref: '#/components/responses/DefaultError' summary: Creates a managed storage general use file with contents tags: - Storage requestBody: content: multipart/form-data: schema: type: object properties: file_upload: type: string description: General use file content format: binary /services/haproxy/storage/general/{name}: delete: description: Deletes a managed general use file from disk. operationId: deleteStorageGeneralFile parameters: - description: General use file storage_name in: path name: name required: true schema: type: string responses: '204': description: General use file deleted '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/DefaultError' summary: Deletes a managed general use file from disk tags: - Storage get: description: Returns the contents of one managed general use file from disk operationId: getOneStorageGeneralFile parameters: - description: General use file storage_name in: path name: name required: true schema: type: string responses: '200': description: Successful operation content: application/octet-stream: schema: type: string format: binary '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/DefaultError' summary: Return the contents of one managed general use file from disk tags: - Storage put: description: Replaces the contents of a managed general use file on disk operationId: replaceStorageGeneralFile parameters: - description: General use file storage_name in: path name: name required: true schema: type: string - $ref: '#/components/parameters/skip_reload' - $ref: '#/components/parameters/force_reload' responses: '202': description: Configuration change accepted and reload requested headers: Reload-ID: description: ID of the requested reload schema: type: string '204': description: General use file replaced '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/DefaultError' summary: Replace contents of a managed general use file on disk tags: - Storage requestBody: content: multipart/form-data: schema: type: object properties: file_upload: type: string description: General use file content format: binary components: schemas: error: additionalProperties: type: string description: API Error properties: code: type: - integer - 'null' message: type: - string - 'null' required: - code - message title: Error type: object ssl_crt_list_file: description: A file referencing one or more certificates with their configuration. properties: description: type: string file: type: string size: description: File size in bytes. type: - integer - 'null' storage_name: type: string title: SSL CRT List File type: object ssl_certificates: title: SSL Certificate Files Array description: Array of ssl certificate files type: array items: $ref: '#/components/schemas/ssl_certificate' general_files: title: General Files Array description: Array of general use files type: array items: $ref: '#/components/schemas/general_file' map: description: Map File properties: description: type: string file: type: string id: type: string size: description: File size in bytes. type: - integer - 'null' storage_name: type: string title: Map File type: object ssl_crt_list_entries: title: SSL Crt List Entry Array description: Array of SSL Crt List Entry type: array items: $ref: '#/components/schemas/ssl_crt_list_entry' ssl_certificate: description: A file containing one or more SSL/TLS certificates and keys properties: algorithm: readOnly: true type: string authority_key_id: readOnly: true type: string chain_issuer: readOnly: true type: string x-omitempty: true chain_subject: readOnly: true type: string x-omitempty: true description: readOnly: true type: string domains: readOnly: true type: string x-omitempty: true file: readOnly: true type: string ip_addresses: readOnly: true type: string x-omitempty: true issuers: readOnly: true type: string x-omitempty: true not_after: format: date-time readOnly: true type: - string - 'null' x-go-custom-tag: gorm:"type:timestamp with time zone" not_before: format: date-time readOnly: true type: - string - 'null' x-go-custom-tag: gorm:"type:timestamp with time zone" serial: type: string sha1_finger_print: readOnly: true type: string sha256_finger_print: readOnly: true type: string size: description: File size in bytes. readOnly: true type: - integer - 'null' status: description: Only set when using the runtime API. readOnly: true type: string x-omitempty: true storage_name: readOnly: true type: string subject: readOnly: true type: string subject_alternative_names: readOnly: true type: string subject_key_id: readOnly: true type: string title: SSL File type: object general_file: description: General use file properties: description: type: string file: type: string id: type: string size: description: File size in bytes. type: - integer - 'null' storage_name: type: string title: General use file type: object maps: title: Map Files Array description: Array of runtime map files type: array items: $ref: '#/components/schemas/map' ssl_crt_list_files: title: List of SSL certificate list files description: List of SSL certificate list files (crt-list) type: array items: $ref: '#/components/schemas/ssl_crt_list_file' ssl_crt_list_entry: description: SSL Crt List Entry properties: file: type: string line_number: minimum: 0 type: integer sni_filter: items: type: string type: array x-go-name: SNIFilter x-omitempty: true ssl_bind_config: type: string x-go-name: SSLBindConfig title: SSL Crt List Entry type: object responses: DefaultError: description: General Error headers: Configuration-Version: description: Configuration file version schema: type: string content: application/json: schema: $ref: '#/components/schemas/error' BadRequest: description: Bad request headers: Configuration-Version: description: Configuration file version schema: type: string content: application/json: schema: $ref: '#/components/schemas/error' NotFound: description: The specified resource was not found headers: Configuration-Version: description: Configuration file version schema: type: string content: application/json: schema: $ref: '#/components/schemas/error' AlreadyExists: description: The specified resource already exists headers: Configuration-Version: description: Configuration file version schema: type: string content: application/json: schema: $ref: '#/components/schemas/error' parameters: skip_reload: name: skip_reload in: query description: If set, no reload will be initiated after update required: false schema: type: boolean default: false force_reload: name: force_reload in: query description: If set, do a force reload, do not wait for the configured reload-delay. Cannot be used when transaction is specified, as changes in transaction are not applied directly to configuration. required: false schema: type: boolean default: false securitySchemes: basic_auth: type: http scheme: basic externalDocs: url: https://docs.haproxy.org/ description: HAProxy Documentation