{ "swagger": "2.0", "info": { "description": "APIs for reCoreD-UI", "title": "reCoreD-UI API", "contact": {}, "version": "1.0" }, "basePath": "/api/v1", "paths": { "/domains/": { "get": { "description": "List all domains", "consumes": [ "application/json" ], "tags": [ "domains" ], "summary": "List all domains", "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/models.Domain" } } } } ] } }, "401": { "description": "Unauthorized", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } }, "500": { "description": "Internal Server Error", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } } } }, "put": { "description": "Update a domain", "consumes": [ "application/json" ], "tags": [ "domains" ], "summary": "Update a domain", "parameters": [ { "description": "content", "name": "object", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.Domain" } } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Domain" } } } ] } }, "400": { "description": "Bad Request", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } }, "401": { "description": "Unauthorized", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } }, "404": { "description": "Not Found", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } }, "500": { "description": "Internal Server Error", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } } } }, "post": { "description": "Create a domain", "tags": [ "domains" ], "summary": "Create a domain", "parameters": [ { "description": "content", "name": "object", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.Domain" } } ], "responses": { "201": { "description": "Created", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Domain" } } } ] } }, "400": { "description": "Bad Request", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } }, "401": { "description": "Unauthorized", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } }, "500": { "description": "Internal Server Error", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } } } } }, "/domains/{id}": { "delete": { "description": "Delete a domain", "tags": [ "domains" ], "summary": "Delete a domain", "parameters": [ { "type": "integer", "description": "Domain ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "description": "No Content", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } }, "401": { "description": "Unauthorized", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } }, "404": { "description": "Not Found", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } }, "500": { "description": "Internal Server Error", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } } } } }, "/records/{domain}": { "get": { "description": "List all records of a domain", "tags": [ "records" ], "summary": "List all records of a domain", "parameters": [ { "type": "string", "description": "domain", "name": "domain", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/models.Record-models_RecordContentDefault" } } } } ] } }, "401": { "description": "Unauthorized", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } }, "404": { "description": "Not Found", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } }, "500": { "description": "Internal Server Error", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } } } }, "put": { "description": "Update a record of a domain", "consumes": [ "application/json" ], "tags": [ "records" ], "summary": "Update a record of a domain", "parameters": [ { "type": "string", "description": "domain", "name": "domain", "in": "path", "required": true }, { "description": "content", "name": "object", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.Record-models_RecordContentDefault" } } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Record-models_RecordContentDefault" } } } ] } }, "400": { "description": "Bad Request", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } }, "401": { "description": "Unauthorized", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } }, "404": { "description": "Not Found", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } }, "500": { "description": "Internal Server Error", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } } } }, "post": { "description": "Create a record of a domain", "consumes": [ "application/json" ], "tags": [ "records" ], "summary": "Create a record of a domain", "parameters": [ { "type": "string", "description": "domain", "name": "domain", "in": "path", "required": true }, { "description": "content", "name": "object", "in": "body", "required": true, "schema": { "$ref": "#/definitions/models.Record-models_RecordContentDefault" } } ], "responses": { "201": { "description": "Created", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Record-models_RecordContentDefault" } } } ] } }, "400": { "description": "Bad Request", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } }, "401": { "description": "Unauthorized", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } }, "404": { "description": "Not Found", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } }, "500": { "description": "Internal Server Error", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } } } } }, "/records/{domain}/bulk": { "post": { "description": "Create some records of a domain", "consumes": [ "application/json" ], "tags": [ "records" ], "summary": "Create some records of a domain", "parameters": [ { "type": "string", "description": "domain", "name": "domain", "in": "path", "required": true }, { "description": "content", "name": "object", "in": "body", "required": true, "schema": { "type": "array", "items": { "$ref": "#/definitions/models.Record-models_RecordContentDefault" } } } ], "responses": { "201": { "description": "Created", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/models.Record-models_RecordContentDefault" } } } ] } }, "400": { "description": "Bad Request", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } }, "401": { "description": "Unauthorized", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } }, "404": { "description": "Not Found", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } }, "500": { "description": "Internal Server Error", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } } } } }, "/records/{domain}/{id}": { "delete": { "description": "Delete a record of a domain, except SOA record.", "tags": [ "records" ], "summary": "Delete a record of a domain", "parameters": [ { "type": "string", "description": "domain", "name": "domain", "in": "path", "required": true }, { "type": "integer", "description": "Record ID", "name": "id", "in": "path", "required": true } ], "responses": { "204": { "description": "No Content", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } }, "400": { "description": "Bad Request", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } }, "401": { "description": "Unauthorized", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } }, "404": { "description": "Not Found", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } }, "500": { "description": "Internal Server Error", "schema": { "allOf": [ { "$ref": "#/definitions/server.Response" }, { "type": "object", "properties": { "data": { "type": "object" } } } ] } } } } } }, "definitions": { "models.Domain": { "type": "object", "properties": { "admin_email": { "type": "string" }, "domain_name": { "type": "string" }, "expiry_period": { "type": "integer" }, "id": { "type": "integer" }, "main_dns": { "type": "string" }, "negative_ttl": { "type": "integer" }, "refresh_interval": { "type": "integer" }, "retry_interval": { "type": "integer" }, "serial_number": { "type": "integer" } } }, "models.Record-models_RecordContentDefault": { "type": "object", "properties": { "content": { "description": "see https://github.com/cloud66-oss/coredns_mysql/blob/main/types.go for content", "allOf": [ { "$ref": "#/definitions/models.RecordContentDefault" } ] }, "id": { "type": "integer" }, "name": { "type": "string" }, "record_type": { "type": "string" }, "ttl": { "type": "integer" }, "zone": { "type": "string" } } }, "models.RecordContentDefault": { "type": "object", "additionalProperties": {} }, "server.Response": { "type": "object", "properties": { "data": { "description": "payload here" }, "message": { "description": "error message", "type": "string" }, "succeed": { "description": "`true` for 2xx, else `false`", "type": "boolean" } } } }, "securityDefinitions": { "BasicAuth": { "type": "basic" } } }