{
  "swagger": "2.0",
  "info": {
    "description": "Our HTTP [REST API](https://en.wikipedia.org/wiki/Representational_state_transfer) allows you to manage vital details of your account and services in client portal. [JSON](http://www.json.org/) is used for all API returns.\n\n## Authentication\n\n## JSON Web Token Authentication\n\n```bash\ncurl 'https://portal.dchost.com/api/login' \\\n    -d username=\"username\"\\\n    -d password=\"password\"\n\n# grab authentication token from the response and pass it in Authorization header\ncurl 'https://portal.dchost.com/api/details' \\\n    -H \"Authorization: Bearer $token\"\n```\n\n```php\n$resp = $client->post('login', [\n    'form_params' => [\n        'username' => 'username',\n        'password' => 'password'\n    ]\n]);\n\n$token = $resp->json()['token'];\n\n$resp = $client->get('details', [\n    'headers' => [\n        'Authorization' => 'Bearer ' . $token\n    ]\n]);\n\necho $resp->getBody();\n```\n\n> Make sure to replace `username` and `password` with your client area details.\n\nTo authenticate, you need to send a [JSON Web Token (JWT)](https://jwt.io/) in the authorization header of the HTTP request.\n\nTo obtain the authorization `token` you need to submit a request with your username and password to `POST https://portal.dchost.com/api/login` API method.\n\nAll API calls that require authentication expect HTTP header in the form of `Authorization: Bearer <token>`.\n\nFor example: `Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRw...`\n\n## Basic Authentication\n\n```bash\n# pass the correct header with each request (-u option)\ncurl 'https://portal.dchost.com/api/details' \\\n    -u \"username:password\"\n```\n\n```php\nuse GuzzleHttp\\Client;\n\n$client = new Client([\n    'base_uri' => 'https://portal.dchost.com/api/',\n    'auth' => ['username', 'password']\n]);\n\n$resp = $client->get('details');\n```\n\n> Make sure to replace `username` and `password` with your client area details.\n\nThis authentication method requires that you send your client area username (email address) and password with each request.\n\nAPI calls that require authentication expect a header in the form of `Authorization: Basic <credentials>`, where credentials is the Base64 encoding of username and password joined by a single colon `:`.\n\nFor example: `Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==`\n\nYou can find more info on this authentication method here: [Basic HTTP Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication)\n\n> You must replace `QWxhZGRpbjpvcGVuIHNlc2FtZQ==` with base64 encoded version of your access details.\n\n> For security, we highly recommend to issue API calls over [HTTPS](http://en.wikipedia.org/wiki/HTTP_Secure)\n\n",
    "version": "4.20260810",
    "title": "DCHost User API"
  },
  "host": "portal.dchost.com",
  "basePath": "/api",
  "tags": [
    {
      "name": "Clientarea"
    },
    {
      "name": "Billing"
    },
    {
      "name": "Support"
    },
    {
      "name": "Domains"
    },
    {
      "name": "SSL Certificates"
    },
    {
      "name": "Services"
    },
    {
      "name": "Cart"
    },
    {
      "name": "DNS"
    }
  ],
  "schemes": [
    "https"
  ],
  "paths": {
    "/login": {
      "post": {
        "tags": [
          "Clientarea"
        ],
        "summary": "Login",
        "description": "Generate new authorization token",
        "operationId": "getToken",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "username": {
                  "type": "string",
                  "description": "Your acount email address ",
                  "example": "user@example.com"
                },
                "password": {
                  "type": "string",
                  "description": "Account password ",
                  "example": "secret"
                }
              },
              "example": {
                "username": "user@example.com",
                "password": "secret"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRw(...)5lZ9T79ft9uwOkqRRmIBbtR51_w",
                "refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIzMD(...)ChwIAb3zvxBu6kvULa2AwAt9U-I"
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRw(...)5lZ9T79ft9uwOkqRRmIBbtR51_w",
                "refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIzMD(...)ChwIAb3zvxBu6kvULa2AwAt9U-I"
              }
            }
          }
        }
      }
    },
    "/mfa/challenge": {
      "post": {
        "tags": [
          "Clientarea"
        ],
        "summary": "Request MFA",
        "description": "Send code or get initialization data for a selected MFA method. For example, for Email Verification\nthis will send a new code to suer email.\n\nSet your Authorization header to `Bearer {{mfa.token}}` using data from the ` POST /login ` response",
        "operationId": "mfaChallenge",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "method": {
                  "type": "string",
                  "description": "The MFA method to use. ",
                  "example": "email_mfa"
                },
                "params": {
                  "type": "mixed",
                  "description": "Paramtters for specific MFA methods. ",
                  "example": "No error"
                }
              },
              "example": {
                "method": "email_mfa",
                "params": "No error"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "expected_payload": {
                  "type": "object",
                  "required": [
                    "code"
                  ],
                  "properties": {
                    "code": {
                      "type": "string",
                      "description": "The code to verify"
                    }
                  }
                }
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "expected_payload": {
                  "type": "object",
                  "required": [
                    "code"
                  ],
                  "properties": {
                    "code": {
                      "type": "string",
                      "description": "The code to verify"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/mfa/verify": {
      "post": {
        "tags": [
          "Clientarea"
        ],
        "summary": "Verify MFA",
        "description": "Receive authentication and refresh tokens after solving the MFA challenge with the user-provided data.\n\nSet your Authorization header to `Bearer {{mfa.token}}` using data from the ` POST /login ` response",
        "operationId": "mfaVerify",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "method": {
                  "type": "string",
                  "description": "The MFA method to use. ",
                  "example": "email_mfa"
                },
                "payload": {
                  "type": "mixed",
                  "description": "Data used for MFA method "
                }
              },
              "example": {
                "method": "email_mfa",
                "payload": {
                  "code": "123456"
                }
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJtZmFA(...)HGCeVZ0-ikvglYi8U41UPAr6G7Q",
                "expires_at": 1786125589,
                "refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodH(...)UlbKlgssysGnCZXwZ46uD7B4THk",
                "refresh_expires_at": 1793897989,
                "mfa": null
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJtZmFA(...)HGCeVZ0-ikvglYi8U41UPAr6G7Q",
                "expires_at": 1786125589,
                "refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodH(...)UlbKlgssysGnCZXwZ46uD7B4THk",
                "refresh_expires_at": 1793897989,
                "mfa": null
              }
            }
          }
        }
      }
    },
    "/logout": {
      "post": {
        "tags": [
          "Clientarea"
        ],
        "summary": "Logout",
        "description": "Invalidate authorization token",
        "operationId": "dropToken",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "status": true
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "status": true
              }
            }
          }
        }
      }
    },
    "/token": {
      "post": {
        "tags": [
          "Clientarea"
        ],
        "summary": "Refresh Token",
        "description": "Generate new authorization token using refresh token",
        "operationId": "refreshToken",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "refresh_token": {
                  "type": "string",
                  "description": "Refresh token previously obtained from `POST /login`",
                  "example": "refresh_tokenValue"
                }
              },
              "example": {
                "refresh_token": "refresh_tokenValue"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHR(...)vY2xlYiHGvauCWZD9B0VwXgHEzXDllqY",
                "refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJBQ(...)Rmivc_u3YA_kgDqOPtUuGNXOzueXYtZw"
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHR(...)vY2xlYiHGvauCWZD9B0VwXgHEzXDllqY",
                "refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJBQ(...)Rmivc_u3YA_kgDqOPtUuGNXOzueXYtZw"
              }
            }
          }
        }
      }
    },
    "/revoke": {
      "post": {
        "tags": [
          "Clientarea"
        ],
        "summary": "Revoke Token",
        "description": "Invalidate authorization and refresh token.\nPass refresh token or call this method with valid access token",
        "operationId": "revokeToken",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "refresh_token": {
                  "type": "string",
                  "example": "refresh_tokenValue"
                }
              },
              "example": {
                "refresh_token": "refresh_tokenValue"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "status": true
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "status": true
              }
            }
          }
        }
      }
    },
    "/signup": {
      "post": {
        "tags": [
          "Clientarea"
        ],
        "summary": "Sign up",
        "description": "Create new account",
        "operationId": "postSignup",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "Account Type",
                  "enum": [
                    "Private",
                    "Company"
                  ]
                },
                "firstname": {
                  "type": "string",
                  "description": "First Name"
                },
                "lastname": {
                  "type": "string",
                  "description": "Last Name"
                },
                "email": {
                  "type": "string",
                  "description": "Email Address"
                },
                "password": {
                  "type": "string",
                  "description": "Password"
                },
                "companyname": {
                  "type": "string",
                  "description": "Organization"
                },
                "address1": {
                  "type": "string",
                  "description": "Address 1"
                },
                "address2": {
                  "type": "string",
                  "description": "Address 2"
                },
                "postcode": {
                  "type": "string",
                  "description": "Post code"
                },
                "state": {
                  "type": "string",
                  "description": "State"
                },
                "city": {
                  "type": "string",
                  "description": "City"
                },
                "country": {
                  "type": "string",
                  "description": "Country"
                },
                "phonenumber": {
                  "type": "string",
                  "description": "Phone"
                },
                "currency": {
                  "type": "string",
                  "description": "Currency",
                  "enum": [
                    "USD",
                    "EUR",
                    "TRY"
                  ]
                }
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "info": [
                  "client_registered"
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "info": [
                  "client_registered"
                ]
              }
            }
          }
        }
      }
    },
    "/details": {
      "get": {
        "tags": [
          "Clientarea"
        ],
        "summary": "User Details",
        "description": "Return registration details for my account",
        "operationId": "getDetails",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "client": {
                  "id": "26",
                  "email": "api@example.com",
                  "lastlogin": "2016-12-30 12:24:28",
                  "ip": "172.100.2.1",
                  "host": "hostname",
                  "firstname": "Joe",
                  "lastname": "Doe",
                  "companyname": "",
                  "address1": "Pretty View Lane",
                  "address2": "3294",
                  "city": "Santa Rosa",
                  "state": "California",
                  "postcode": "95401",
                  "country": "US",
                  "phonenumber": "+1.24123123"
                }
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "client": {
                  "id": "26",
                  "email": "api@example.com",
                  "lastlogin": "2016-12-30 12:24:28",
                  "ip": "172.100.2.1",
                  "host": "hostname",
                  "firstname": "Joe",
                  "lastname": "Doe",
                  "companyname": "",
                  "address1": "Pretty View Lane",
                  "address2": "3294",
                  "city": "Santa Rosa",
                  "state": "California",
                  "postcode": "95401",
                  "country": "US",
                  "phonenumber": "+1.24123123"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Clientarea"
        ],
        "summary": "Update User Details",
        "description": "Update registration details under my account",
        "operationId": "postDetails",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "Account Type",
                  "enum": [
                    "Private",
                    "Company"
                  ]
                },
                "firstname": {
                  "type": "string",
                  "description": "First Name"
                },
                "lastname": {
                  "type": "string",
                  "description": "Last Name"
                },
                "email": {
                  "type": "string",
                  "description": "Email Address"
                },
                "tckno": {
                  "type": "string",
                  "description": "Turkish Identity Number"
                },
                "dateofbirth": {
                  "type": "string",
                  "description": "Date of Birth"
                },
                "companyname": {
                  "type": "string",
                  "description": "Organization"
                },
                "taxno": {
                  "type": "string",
                  "description": "Tax Number"
                },
                "taxoffice": {
                  "type": "string",
                  "description": "Tax Office"
                },
                "address1": {
                  "type": "string",
                  "description": "Address 1"
                },
                "address2": {
                  "type": "string",
                  "description": "Address 2"
                },
                "postcode": {
                  "type": "string",
                  "description": "Post code"
                },
                "state": {
                  "type": "string",
                  "description": "State"
                },
                "city": {
                  "type": "string",
                  "description": "City"
                },
                "country": {
                  "type": "string",
                  "description": "Country"
                },
                "phonenumber": {
                  "type": "string",
                  "description": "Phone"
                },
                "passport": {
                  "type": "string",
                  "description": "Passport Number"
                },
                "telegramnotifications": {
                  "type": "string",
                  "description": "Telegram",
                  "enum": [
                    "Yes"
                  ]
                }
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "client": {
                  "id": "26",
                  "email": "api@example.com",
                  "lastlogin": "2016-12-30 12:34:20",
                  "ip": "172.100.2.1",
                  "host": "hostname",
                  "firstname": "Joe",
                  "lastname": "Doe",
                  "companyname": "",
                  "address1": "Pretty View Lane",
                  "address2": "3194",
                  "city": "Santa Rosa",
                  "state": "California",
                  "postcode": "95401",
                  "country": "US",
                  "phonenumber": "+1.24123123"
                },
                "info": [
                  "client_info_updated"
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "client": {
                  "id": "26",
                  "email": "api@example.com",
                  "lastlogin": "2016-12-30 12:34:20",
                  "ip": "172.100.2.1",
                  "host": "hostname",
                  "firstname": "Joe",
                  "lastname": "Doe",
                  "companyname": "",
                  "address1": "Pretty View Lane",
                  "address2": "3194",
                  "city": "Santa Rosa",
                  "state": "California",
                  "postcode": "95401",
                  "country": "US",
                  "phonenumber": "+1.24123123"
                },
                "info": [
                  "client_info_updated"
                ]
              }
            }
          }
        }
      }
    },
    "/logs": {
      "get": {
        "tags": [
          "Clientarea"
        ],
        "summary": "User Logs",
        "description": "Returns logs from history",
        "operationId": "getLogs",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/affiliates/summary": {
      "get": {
        "tags": [
          "Clientarea"
        ],
        "summary": "Get Affiliate summary",
        "description": "",
        "operationId": "affiliates_summary",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/affiliates/campaigns": {
      "get": {
        "tags": [
          "Clientarea"
        ],
        "summary": "Get Affiliate campaigns",
        "description": "",
        "operationId": "affiliates_campaigns",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/affiliates/commissions": {
      "get": {
        "tags": [
          "Clientarea"
        ],
        "summary": "Get Affiliate commissions",
        "description": "",
        "operationId": "affiliates_commissions",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/affiliates/payouts": {
      "get": {
        "tags": [
          "Clientarea"
        ],
        "summary": "Get Affiliate payouts",
        "description": "",
        "operationId": "affiliates_payouts",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/affiliates/vouchers": {
      "get": {
        "tags": [
          "Clientarea"
        ],
        "summary": "Get Affiliate vouchers",
        "description": "",
        "operationId": "affiliates_vouchers",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/affiliates/commissionplans": {
      "get": {
        "tags": [
          "Clientarea"
        ],
        "summary": "Get Affiliate commission plans",
        "description": "",
        "operationId": "affiliates_commission_plans",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/contact": {
      "get": {
        "tags": [
          "Clientarea"
        ],
        "summary": "List contacts",
        "description": "Return a list of contacts on this account",
        "operationId": "profiles",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "contacts": [
                  {
                    "email": "mary@example.com",
                    "id": "49",
                    "firstname": "Mary",
                    "lastname": "Sue",
                    "companyname": "",
                    "company": "0",
                    "lastlogin": "0000-00-00 00:00:00"
                  }
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "contacts": [
                  {
                    "email": "mary@example.com",
                    "id": "49",
                    "firstname": "Mary",
                    "lastname": "Sue",
                    "companyname": "",
                    "company": "0",
                    "lastlogin": "0000-00-00 00:00:00"
                  }
                ]
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Clientarea"
        ],
        "summary": "Add contact",
        "description": "Create new contact account, if password is provided you\ncan use provided email addres to login as that contact.",
        "operationId": "profiles_add",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "password": {
                  "type": "string",
                  "description": "Optional, allows you to login as contact",
                  "example": "passwordValue"
                },
                "privileges": {
                  "type": "array",
                  "description": "Array with privileges that you want to enable. Formatted the same way as output from <code>GET&nbsp;/contact/privileges</code>",
                  "items": {
                    "type": "string"
                  },
                  "example": "privilegesValue"
                },
                "type": {
                  "type": "string",
                  "description": "Account Type",
                  "enum": [
                    "Private",
                    "Company"
                  ]
                },
                "firstname": {
                  "type": "string",
                  "description": "First Name"
                },
                "lastname": {
                  "type": "string",
                  "description": "Last Name"
                },
                "email": {
                  "type": "string",
                  "description": "Email Address"
                },
                "tckno": {
                  "type": "string",
                  "description": "Turkish Identity Number"
                },
                "dateofbirth": {
                  "type": "string",
                  "description": "Date of Birth"
                },
                "companyname": {
                  "type": "string",
                  "description": "Organization"
                },
                "taxno": {
                  "type": "string",
                  "description": "Tax Number"
                },
                "taxoffice": {
                  "type": "string",
                  "description": "Tax Office"
                },
                "address1": {
                  "type": "string",
                  "description": "Address 1"
                },
                "address2": {
                  "type": "string",
                  "description": "Address 2"
                },
                "postcode": {
                  "type": "string",
                  "description": "Post code"
                },
                "state": {
                  "type": "string",
                  "description": "State"
                },
                "city": {
                  "type": "string",
                  "description": "City"
                },
                "country": {
                  "type": "string",
                  "description": "Country"
                },
                "phonenumber": {
                  "type": "string",
                  "description": "Phone"
                },
                "passport": {
                  "type": "string",
                  "description": "Passport Number"
                },
                "telegramnotifications": {
                  "type": "string",
                  "description": "Telegram",
                  "enum": [
                    "Yes"
                  ]
                }
              },
              "example": {
                "password": "passwordValue",
                "privileges": "privilegesValue"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "contact_id": "1",
                "info": [
                  "profile_added"
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "contact_id": "1",
                "info": [
                  "profile_added"
                ]
              }
            }
          }
        }
      }
    },
    "/contact/privileges": {
      "get": {
        "tags": [
          "Clientarea"
        ],
        "summary": "Contact privileges",
        "description": "List possible contact privileges.\nEach domain and service may list additional privileges, depending on available features.<br />",
        "operationId": "profile_privs",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/contact/{id}": {
      "get": {
        "tags": [
          "Clientarea"
        ],
        "summary": "Get contacts details",
        "description": "Return array with contact details",
        "operationId": "profile_data",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "integer",
            "in": "path",
            "description": "Contact ID",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "contact": {
                  "id": "49",
                  "email": "mary@example.com",
                  "firstname": "Mary",
                  "lastname": "Sue",
                  "companyname": "",
                  "address1": "Pretty View Lane",
                  "address2": "3194",
                  "city": "Santa Rosa",
                  "state": "California",
                  "postcode": "95401",
                  "country": "US",
                  "phonenumber": "+1.24123123",
                  "type": "Private",
                  "privileges": {
                    "support": [
                      "tickets",
                      "newticket"
                    ]
                  }
                }
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "contact": {
                  "id": "49",
                  "email": "mary@example.com",
                  "firstname": "Mary",
                  "lastname": "Sue",
                  "companyname": "",
                  "address1": "Pretty View Lane",
                  "address2": "3194",
                  "city": "Santa Rosa",
                  "state": "California",
                  "postcode": "95401",
                  "country": "US",
                  "phonenumber": "+1.24123123",
                  "type": "Private",
                  "privileges": {
                    "support": [
                      "tickets",
                      "newticket"
                    ]
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Clientarea"
        ],
        "summary": "Edit contact",
        "description": "Change contact details`",
        "operationId": "profile_edit",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Contact ID",
                  "example": "idValue"
                },
                "privileges": {
                  "type": "array",
                  "description": "Array with privileges that you want to enable. Formatted the same way as output from <code>GET&nbsp;/contact/privileges</code>",
                  "items": {
                    "type": "string"
                  },
                  "example": "privilegesValue"
                },
                "type": {
                  "type": "string",
                  "description": "Account Type",
                  "enum": [
                    "Private",
                    "Company"
                  ]
                },
                "firstname": {
                  "type": "string",
                  "description": "First Name"
                },
                "lastname": {
                  "type": "string",
                  "description": "Last Name"
                },
                "email": {
                  "type": "string",
                  "description": "Email Address"
                },
                "tckno": {
                  "type": "string",
                  "description": "Turkish Identity Number"
                },
                "dateofbirth": {
                  "type": "string",
                  "description": "Date of Birth"
                },
                "companyname": {
                  "type": "string",
                  "description": "Organization"
                },
                "taxno": {
                  "type": "string",
                  "description": "Tax Number"
                },
                "taxoffice": {
                  "type": "string",
                  "description": "Tax Office"
                },
                "address1": {
                  "type": "string",
                  "description": "Address 1"
                },
                "address2": {
                  "type": "string",
                  "description": "Address 2"
                },
                "postcode": {
                  "type": "string",
                  "description": "Post code"
                },
                "state": {
                  "type": "string",
                  "description": "State"
                },
                "city": {
                  "type": "string",
                  "description": "City"
                },
                "country": {
                  "type": "string",
                  "description": "Country"
                },
                "phonenumber": {
                  "type": "string",
                  "description": "Phone"
                },
                "passport": {
                  "type": "string",
                  "description": "Passport Number"
                },
                "telegramnotifications": {
                  "type": "string",
                  "description": "Telegram",
                  "enum": [
                    "Yes"
                  ]
                }
              },
              "example": {
                "id": "idValue",
                "privileges": "privilegesValue"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "info": [
                  "profile_updated"
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "info": [
                  "profile_updated"
                ]
              }
            }
          }
        }
      }
    },
    "/notifications": {
      "get": {
        "tags": [
          "Clientarea"
        ],
        "summary": "List all portal notifications",
        "description": "Return a list of all portal notifications.",
        "operationId": "notifications",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "rel_type",
            "type": "string",
            "in": "query",
            "description": "Optional, return only by relation type"
          },
          {
            "name": "rel_id",
            "type": "string",
            "in": "query",
            "description": "Optional, return only by relation id"
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/notifications/new": {
      "get": {
        "tags": [
          "Clientarea"
        ],
        "summary": "List new portal notifications",
        "description": "Return only new portal notifications.",
        "operationId": "notifications_new",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "rel_type",
            "type": "string",
            "in": "query",
            "description": "Optional, return only by relation type"
          },
          {
            "name": "rel_id",
            "type": "string",
            "in": "query",
            "description": "Optional, return only by relation id"
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/notifications/{id}/ack": {
      "put": {
        "tags": [
          "Clientarea"
        ],
        "summary": "Acknowledge notification",
        "description": "Marks the notification as read",
        "operationId": "notifications_set_seen",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/balance": {
      "get": {
        "tags": [
          "Billing"
        ],
        "summary": "Account balance",
        "description": "Get current account balance(unpaid invoices total), account credit",
        "operationId": "getBalance",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/invoice": {
      "get": {
        "tags": [
          "Billing"
        ],
        "summary": "List Invoices",
        "description": "List all invoices under my account",
        "operationId": "getInvoices",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "invoices": [
                  {
                    "id": "308976",
                    "date": "2016-12-30",
                    "dateorig": "2016-12-30",
                    "duedate": "2017-01-06",
                    "paybefore": "2017-01-06",
                    "total": "19.65",
                    "datepaid": "2016-12-30 12:40:47",
                    "status": "Paid",
                    "merge_id": null,
                    "number": "2016/12/1",
                    "currency": "USD"
                  }
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "invoices": [
                  {
                    "id": "308976",
                    "date": "2016-12-30",
                    "dateorig": "2016-12-30",
                    "duedate": "2017-01-06",
                    "paybefore": "2017-01-06",
                    "total": "19.65",
                    "datepaid": "2016-12-30 12:40:47",
                    "status": "Paid",
                    "merge_id": null,
                    "number": "2016/12/1",
                    "currency": "USD"
                  }
                ]
              }
            }
          }
        }
      }
    },
    "/invoice/{id}": {
      "get": {
        "tags": [
          "Billing"
        ],
        "summary": "Invoice Details",
        "description": "Get invoice details",
        "operationId": "getInvoiceDetails",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "invoice": {
                  "id": "308976",
                  "status": "Paid",
                  "date": "2016-12-30",
                  "duedate": "2017-01-06",
                  "paybefore": "2017-01-06",
                  "datepaid": "2016-12-30 12:40:47",
                  "subtotal": 16.24,
                  "credit": 0,
                  "tax": 3.41,
                  "taxrate": 21,
                  "tax2": 0,
                  "taxrate2": 0,
                  "taxexempt": "0",
                  "total": 19.65,
                  "rate": 1,
                  "rate2": 0,
                  "rate3": 1,
                  "notes": "",
                  "items": [
                    {
                      "id": "12305",
                      "invoice_id": "308976",
                      "type": "Other",
                      "item_id": "0",
                      "description": "Example Service",
                      "amount": "15.00",
                      "taxed": "1",
                      "qty": "1.00",
                      "linetotal": "15.00"
                    },
                    {
                      "id": "12309",
                      "invoice_id": "308976",
                      "type": "Other",
                      "item_id": "-2",
                      "description": "PayPal Payment Fee",
                      "amount": "1.24",
                      "taxed": "1",
                      "qty": "1.00",
                      "linetotal": "1.24"
                    }
                  ],
                  "client": {
                    "id": "26",
                    "email": "api@example.com",
                    "firstname": "Joe",
                    "lastname": "Doe",
                    "companyname": "",
                    "address1": "Pretty View Lane",
                    "address2": "3194",
                    "city": "Santa Rosa",
                    "state": "California",
                    "postcode": "95401",
                    "country": "US",
                    "phonenumber": "+1.24123123"
                  },
                  "number": "2016/12/1",
                  "currency": "USD"
                }
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "invoice": {
                  "id": "308976",
                  "status": "Paid",
                  "date": "2016-12-30",
                  "duedate": "2017-01-06",
                  "paybefore": "2017-01-06",
                  "datepaid": "2016-12-30 12:40:47",
                  "subtotal": 16.24,
                  "credit": 0,
                  "tax": 3.41,
                  "taxrate": 21,
                  "tax2": 0,
                  "taxrate2": 0,
                  "taxexempt": "0",
                  "total": 19.65,
                  "rate": 1,
                  "rate2": 0,
                  "rate3": 1,
                  "notes": "",
                  "items": [
                    {
                      "id": "12305",
                      "invoice_id": "308976",
                      "type": "Other",
                      "item_id": "0",
                      "description": "Example Service",
                      "amount": "15.00",
                      "taxed": "1",
                      "qty": "1.00",
                      "linetotal": "15.00"
                    },
                    {
                      "id": "12309",
                      "invoice_id": "308976",
                      "type": "Other",
                      "item_id": "-2",
                      "description": "PayPal Payment Fee",
                      "amount": "1.24",
                      "taxed": "1",
                      "qty": "1.00",
                      "linetotal": "1.24"
                    }
                  ],
                  "client": {
                    "id": "26",
                    "email": "api@example.com",
                    "firstname": "Joe",
                    "lastname": "Doe",
                    "companyname": "",
                    "address1": "Pretty View Lane",
                    "address2": "3194",
                    "city": "Santa Rosa",
                    "state": "California",
                    "postcode": "95401",
                    "country": "US",
                    "phonenumber": "+1.24123123"
                  },
                  "number": "2016/12/1",
                  "currency": "USD"
                }
              }
            }
          }
        }
      }
    },
    "/invoice/{id}/credit": {
      "post": {
        "tags": [
          "Billing"
        ],
        "summary": "Apply credit",
        "description": "Apply account credit to invoice",
        "operationId": "applyCreditToInvoice",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "amount": {
                  "type": "number",
                  "description": "Optional credit amount, when no value is specified maximum amount to fully pay the invoice will be used",
                  "example": "amountValue"
                }
              },
              "example": {
                "amount": "amountValue"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "success": true,
                "invoice_status": "Paid",
                "applied": 2.1
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "success": true,
                "invoice_status": "Paid",
                "applied": 2.1
              }
            }
          }
        }
      }
    },
    "/payment": {
      "get": {
        "tags": [
          "Billing"
        ],
        "summary": "Payment Methods",
        "description": "List available payment methods",
        "operationId": "paymethod",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "payments": {
                  "9": "PayPal",
                  "10": "BankTransfer"
                }
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "payments": {
                  "9": "PayPal",
                  "10": "BankTransfer"
                }
              }
            }
          }
        }
      }
    },
    "/payment/fees": {
      "get": {
        "tags": [
          "Billing"
        ],
        "summary": "Payment Methods Fees",
        "description": "List available payment methods with fees",
        "operationId": "paymethod_fee",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/addfunds": {
      "get": {
        "tags": [
          "Billing"
        ],
        "summary": "Get Add Funds Information",
        "description": "Get add funds configuration: minimum and maximum deposit amounts and available payment gateways",
        "operationId": "getAddFundsInfo",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "min_amount": 10,
                "max_amount": 1000,
                "gateways": [
                  {
                    "id": 1,
                    "name": "Bank Transfer"
                  },
                  {
                    "id": 2,
                    "name": "PayPal"
                  }
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "min_amount": 10,
                "max_amount": 1000,
                "gateways": [
                  {
                    "id": 1,
                    "name": "Bank Transfer"
                  },
                  {
                    "id": 2,
                    "name": "PayPal"
                  }
                ]
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Billing"
        ],
        "summary": "Add Funds",
        "description": "Generate add funds invoice",
        "operationId": "createAddFunds",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "amount": {
                  "type": "number",
                  "description": "Amount to add to account ",
                  "example": "100.00"
                },
                "gateway": {
                  "type": "number",
                  "description": "Payment gateway ID, use `GET /addfunds` to list available gateways",
                  "example": "gatewayValue"
                }
              },
              "example": {
                "amount": "100.00",
                "gateway": "gatewayValue"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "success": true,
                "invoice_id": 123
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "success": true,
                "invoice_id": 123
              }
            }
          }
        }
      }
    },
    "/invoice/{id}/pdf": {
      "get": {
        "tags": [
          "Billing"
        ],
        "summary": "Invoice PDF",
        "description": "Get specific invoice PDF as base64 string",
        "operationId": "getInvoicePdf",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/tickets": {
      "get": {
        "tags": [
          "Support"
        ],
        "summary": "List Tickets",
        "description": "List support tickets under my account",
        "operationId": "getTickets",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "tickets": [
                  {
                    "client_read": "1",
                    "ticket_number": "736633",
                    "date": "2016-12-30 12:48:13",
                    "deptname": "Billing",
                    "subject": "Lore Ipsum",
                    "status": "Open",
                    "lastreply": "2020-09-12 11:10:03"
                  }
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "tickets": [
                  {
                    "client_read": "1",
                    "ticket_number": "736633",
                    "date": "2016-12-30 12:48:13",
                    "deptname": "Billing",
                    "subject": "Lore Ipsum",
                    "status": "Open",
                    "lastreply": "2020-09-12 11:10:03"
                  }
                ]
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Support"
        ],
        "summary": "Create Ticket",
        "description": "Submit new ticket",
        "operationId": "createTicket",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "dept_id": {
                  "type": "integer",
                  "description": "Department id ",
                  "example": 1
                },
                "subject": {
                  "type": "string",
                  "description": "Ticket subject ",
                  "example": "Subject"
                },
                "body": {
                  "type": "string",
                  "description": "Ticket message ",
                  "example": "Message ..."
                }
              },
              "example": {
                "dept_id": 1,
                "subject": "Subject",
                "body": "Message ..."
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "ticket": 865650
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "ticket": 865650
              }
            }
          }
        }
      }
    },
    "/tickets/{number}": {
      "get": {
        "tags": [
          "Support"
        ],
        "summary": "Ticket details",
        "description": "Get ticket details, including all replies",
        "operationId": "getTicketDetails",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "number",
            "type": "integer",
            "in": "path",
            "description": "Ticket number",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "ticket": {
                  "date": "2016-12-30 12:48:13",
                  "ticket_number": "736633",
                  "name": "Joe Doe",
                  "email": "api@example.com",
                  "subject": "Lore Ipsum",
                  "body": "Donec sollicitudin molestie malesuada. \r\nSed porttitor lectus nibh. Vivamus magna justo, \r\nlacinia eget consectetur sed, convallis at tellus.",
                  "status": "Answered",
                  "client_read": "1",
                  "deptname": "Billing"
                },
                "replies": [
                  {
                    "id": "929",
                    "name": "Suppport Staff",
                    "date": "2016-12-30 12:51:04",
                    "body": "Vestibulum ac diam sit amet quam \r\nvehicula elementum sed sit amet dui. \r\nPraesent sapien massa\r\n\r\n-- Maecenas efficitur elit est --",
                    "status": "Sent",
                    "type": "Admin"
                  }
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "ticket": {
                  "date": "2016-12-30 12:48:13",
                  "ticket_number": "736633",
                  "name": "Joe Doe",
                  "email": "api@example.com",
                  "subject": "Lore Ipsum",
                  "body": "Donec sollicitudin molestie malesuada. \r\nSed porttitor lectus nibh. Vivamus magna justo, \r\nlacinia eget consectetur sed, convallis at tellus.",
                  "status": "Answered",
                  "client_read": "1",
                  "deptname": "Billing"
                },
                "replies": [
                  {
                    "id": "929",
                    "name": "Suppport Staff",
                    "date": "2016-12-30 12:51:04",
                    "body": "Vestibulum ac diam sit amet quam \r\nvehicula elementum sed sit amet dui. \r\nPraesent sapien massa\r\n\r\n-- Maecenas efficitur elit est --",
                    "status": "Sent",
                    "type": "Admin"
                  }
                ]
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Support"
        ],
        "summary": "Create Reply",
        "description": "Reply to ticket",
        "operationId": "createTicketReply",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "number": {
                  "type": "integer",
                  "description": "Ticket number",
                  "example": "numberValue"
                },
                "body": {
                  "type": "string",
                  "description": "Reply message ",
                  "example": "reply text .."
                }
              },
              "example": {
                "number": "numberValue",
                "body": "reply text .."
              }
            }
          },
          {
            "name": "number",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "info": [
                  "reply_added"
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "info": [
                  "reply_added"
                ]
              }
            }
          }
        }
      }
    },
    "/ticket/attachment/{file}": {
      "get": {
        "tags": [
          "Support"
        ],
        "summary": "Ticket attachment",
        "description": "Get ticket attachment",
        "operationId": "getTicketAttachment",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "number",
            "type": "integer",
            "in": "query",
            "description": "Ticket number"
          },
          {
            "name": "file",
            "type": "string",
            "in": "path",
            "description": "Attachment id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/tickets/{number}/open": {
      "put": {
        "tags": [
          "Support"
        ],
        "summary": "Re-open ticket",
        "description": "Try to re-open closed ticket",
        "operationId": "reopenTicket",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "number": {
                  "type": "integer",
                  "description": "Ticket number",
                  "example": "numberValue"
                }
              },
              "example": {
                "number": "numberValue"
              }
            }
          },
          {
            "name": "number",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "status": true
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "status": true
              }
            }
          }
        }
      }
    },
    "/tickets/{number}/close": {
      "put": {
        "tags": [
          "Support"
        ],
        "summary": "Close ticket",
        "description": "Send request to close a ticket",
        "operationId": "closeTicket",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "number": {
                  "type": "integer",
                  "description": "Ticket number",
                  "example": "numberValue"
                }
              },
              "example": {
                "number": "numberValue"
              }
            }
          },
          {
            "name": "number",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "status": true
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "status": true
              }
            }
          }
        }
      }
    },
    "/ticket/departments": {
      "get": {
        "tags": [
          "Support"
        ],
        "summary": "List ticket departments",
        "description": "Get the list of ticket departments",
        "operationId": "listTicketDepartments",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/news": {
      "get": {
        "tags": [
          "Support"
        ],
        "summary": "List News",
        "description": "List News",
        "operationId": "getNews",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/news/{news_id}": {
      "get": {
        "tags": [
          "Support"
        ],
        "summary": "Get news item",
        "description": "Returns details of the news item",
        "operationId": "getNewsItem",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "news_id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/knowledgebase": {
      "get": {
        "tags": [
          "Support"
        ],
        "summary": "List all knowledgebase categories",
        "description": "Returns list all knowledgebase categories",
        "operationId": "getKnowledgebaseCategories",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/knowledgebase/{category_id}": {
      "get": {
        "tags": [
          "Support"
        ],
        "summary": "Get knowledgebase category details",
        "description": "Returns subcategories and articles of the knowledgebase category",
        "operationId": "getKnowledgebaseCategoryDetails",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "category_id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/knowledgebase/article/{article_id}": {
      "get": {
        "tags": [
          "Support"
        ],
        "summary": "Get knowledgebase article",
        "description": "Returns an article details",
        "operationId": "getKnowledgebaseArticleDetails",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "article_id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/domain": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "List Domains",
        "description": "List domains under your account",
        "operationId": "domain",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "domains": [
                  {
                    "id": "47",
                    "name": "testname.com",
                    "expires": "2017-12-30",
                    "recurring_amount": "15.00",
                    "date_created": "2016-12-30",
                    "status": "Active",
                    "period": "1",
                    "autorenew": "1",
                    "daytoexpire": "365"
                  }
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "domains": [
                  {
                    "id": "47",
                    "name": "testname.com",
                    "expires": "2017-12-30",
                    "recurring_amount": "15.00",
                    "date_created": "2016-12-30",
                    "status": "Active",
                    "period": "1",
                    "autorenew": "1",
                    "daytoexpire": "365"
                  }
                ]
              }
            }
          }
        }
      }
    },
    "/domain/{id}": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "Domain details",
        "description": "Get domain details",
        "operationId": "domainDetails",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "integer",
            "in": "path",
            "description": "Domain id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "details": {
                  "id": "47",
                  "name": "testname.com",
                  "date_created": "2016-12-30",
                  "firstpayment": "10.00",
                  "recurring_amount": "15.00",
                  "period": "1",
                  "expires": "2017-12-30",
                  "status": "Active",
                  "next_due": "2017-12-30",
                  "next_invoice": "2017-11-30",
                  "idprotection": "0",
                  "nameservers": [
                    "ns1.example.com",
                    "ns2.example.com",
                    "ns3.example.com",
                    "ns4.example.com"
                  ],
                  "autorenew": "1"
                }
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "details": {
                  "id": "47",
                  "name": "testname.com",
                  "date_created": "2016-12-30",
                  "firstpayment": "10.00",
                  "recurring_amount": "15.00",
                  "period": "1",
                  "expires": "2017-12-30",
                  "status": "Active",
                  "next_due": "2017-12-30",
                  "next_invoice": "2017-11-30",
                  "idprotection": "0",
                  "nameservers": [
                    "ns1.example.com",
                    "ns2.example.com",
                    "ns3.example.com",
                    "ns4.example.com"
                  ],
                  "autorenew": "1"
                }
              }
            }
          }
        }
      }
    },
    "/domain/name/{name}": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "Domain details by name",
        "description": "Get domain details by name",
        "operationId": "domainNameDetails",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "name",
            "type": "string",
            "in": "path",
            "description": "Domain name",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/domain/{id}/ns": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "Get domain nameservers",
        "description": "",
        "operationId": "domain_ns_get",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "integer",
            "in": "path",
            "description": "Domain id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      },
      "put": {
        "tags": [
          "Domains"
        ],
        "summary": "Update domain nameservers",
        "description": "Change domain nameservers, if `$nameservers` is left empty, default namesevers will be used",
        "operationId": "domain_ns",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Domain id",
                  "example": "idValue"
                },
                "nameservers": {
                  "type": "array",
                  "description": "List of nameservers to use",
                  "items": {
                    "type": "string"
                  },
                  "example": "nameserversValue"
                }
              },
              "example": {
                "id": "idValue",
                "nameservers": "nameserversValue"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "info": [
                  "success_changes_save"
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "info": [
                  "success_changes_save"
                ]
              }
            }
          }
        }
      }
    },
    "/domain/{id}/reg": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "Get registered nameservers",
        "description": "List registered private/glue nameservers for a domain.\nNote: Not all domain registrar modules support returning registered nameservers.\nIf the module does not support this feature, an empty list may be returned.",
        "operationId": "domain_ns_reg_get",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "integer",
            "in": "path",
            "description": "Domain id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      },
      "post": {
        "tags": [
          "Domains"
        ],
        "summary": "Register domain nameservers",
        "description": "Manage private/glue nameservers for a domain. Use the `action` parameter to select the operation:\n- `registerNameServer` – register a new glue record (requires `nameserver` + `ip`)\n- `modifyNameServer` – update the IP of an existing glue record (requires `nameserver` + `oldip` + `newip`)\n- `deleteNameServer` – remove a glue record (requires `nameserver`)",
        "operationId": "domain_ns_reg",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Domain id",
                  "example": "idValue"
                },
                "action": {
                  "type": "string",
                  "description": "Operation: registerNameServer, modifyNameServer, deleteNameServer ",
                  "example": "registerNameServer"
                },
                "nameserver": {
                  "type": "string",
                  "description": "Full nameserver hostname ",
                  "example": "ns1.yourdomain.com"
                },
                "ip": {
                  "type": "string",
                  "description": "IP address for the nameserver – required for registerNameServer ",
                  "example": "1.2.3.4"
                },
                "oldip": {
                  "type": "string",
                  "description": "Current IP address – required for modifyNameServer ",
                  "example": "1.2.3.4"
                },
                "newip": {
                  "type": "string",
                  "description": "New IP address – required for modifyNameServer ",
                  "example": "5.6.7.8"
                }
              },
              "example": {
                "id": "idValue",
                "action": "registerNameServer",
                "nameserver": "ns1.yourdomain.com",
                "ip": "1.2.3.4",
                "oldip": "1.2.3.4",
                "newip": "5.6.7.8"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/domain/{id}/dns": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "DNS Records\nDNS Records",
        "description": "List DNS records",
        "operationId": "domain_dns",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "integer",
            "in": "path",
            "description": "Domain id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "records": [
                  {
                    "id": 1,
                    "name": "test",
                    "ttl": 0,
                    "priority": 0,
                    "type": "A",
                    "content": "100.100.10.1"
                  }
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "records": [
                  {
                    "id": 1,
                    "name": "test",
                    "ttl": 0,
                    "priority": 0,
                    "type": "A",
                    "content": "100.100.10.1"
                  }
                ]
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Domains"
        ],
        "summary": "Create DNS Records",
        "description": "Add a new DNS record",
        "operationId": "domain_dns_add",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Domain id",
                  "example": "idValue"
                },
                "name": {
                  "type": "string",
                  "description": "Reord name",
                  "example": "nameValue"
                },
                "type": {
                  "type": "string",
                  "description": "Reord type",
                  "example": "typeValue"
                },
                "priority": {
                  "type": "string",
                  "description": "Reord priority",
                  "example": "priorityValue"
                },
                "content": {
                  "type": "string",
                  "description": "Reord content eg. IP addres for A records",
                  "example": "contentValue"
                }
              },
              "example": {
                "id": "idValue",
                "name": "nameValue",
                "type": "typeValue",
                "priority": "priorityValue",
                "content": "contentValue"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "info": [
                  "DNS Management updated successfully"
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "info": [
                  "DNS Management updated successfully"
                ]
              }
            }
          }
        }
      }
    },
    "/domain/{id}/dns/{index}": {
      "put": {
        "tags": [
          "Domains"
        ],
        "summary": "Update DNS Records",
        "description": "Change a DNS record",
        "operationId": "domain_dns_upd",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Domain id",
                  "example": "idValue"
                },
                "record_id": {
                  "type": "integer",
                  "description": "Recod index",
                  "example": "record_idValue"
                },
                "name": {
                  "type": "string",
                  "description": "Record name",
                  "example": "nameValue"
                },
                "type": {
                  "type": "string",
                  "description": "Record type",
                  "example": "typeValue"
                },
                "priority": {
                  "type": "string",
                  "description": "Record priority",
                  "example": "priorityValue"
                },
                "content": {
                  "type": "string",
                  "description": "Record content eg. IP address for A records",
                  "example": "contentValue"
                }
              },
              "example": {
                "id": "idValue",
                "record_id": "record_idValue",
                "name": "nameValue",
                "type": "typeValue",
                "priority": "priorityValue",
                "content": "contentValue"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          },
          {
            "name": "index",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "info": [
                  "DNS Management updated successfully"
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "info": [
                  "DNS Management updated successfully"
                ]
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Domains"
        ],
        "summary": "Remove DNS Records",
        "description": "Remove a DNS record",
        "operationId": "domain_dns_del",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "integer",
            "in": "path",
            "description": "Domain id",
            "required": true
          },
          {
            "name": "record_id",
            "type": "integer",
            "in": "query",
            "description": "Recod index"
          },
          {
            "name": "index",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "info": [
                  "DNS Management updated successfully"
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "info": [
                  "DNS Management updated successfully"
                ]
              }
            }
          }
        }
      }
    },
    "/domain/{id}/dns/types": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "DNS Records Types",
        "description": "List supported records type",
        "operationId": "domain_dns_suported",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "integer",
            "in": "path",
            "description": "Domain id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "types": [
                  "A",
                  "CNAME",
                  "URL",
                  "FRAME",
                  "MX",
                  "MXE",
                  "TXT"
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "types": [
                  "A",
                  "CNAME",
                  "URL",
                  "FRAME",
                  "MX",
                  "MXE",
                  "TXT"
                ]
              }
            }
          }
        }
      }
    },
    "/domain/{id}/epp": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "Get domain EPP Code",
        "description": "",
        "operationId": "domain_eppcode",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "integer",
            "in": "path",
            "description": "Domain id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/domain/{id}/sync": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "Synchronize domain",
        "description": "",
        "operationId": "domain_sync",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "integer",
            "in": "path",
            "description": "Domain id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/domain/{id}/reglock": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "Get domain lock",
        "description": "",
        "operationId": "domain_reglock",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "integer",
            "in": "path",
            "description": "Domain id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      },
      "put": {
        "tags": [
          "Domains"
        ],
        "summary": "Update domain lock",
        "description": "",
        "operationId": "domain_reglock_update",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Domain id",
                  "example": "idValue"
                },
                "switch": {
                  "type": "boolean",
                  "description": "Enable or disable domain lock, use true to enable. ",
                  "example": true
                }
              },
              "example": {
                "id": "idValue",
                "switch": true
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/domain/{id}/idprotection": {
      "put": {
        "tags": [
          "Domains"
        ],
        "summary": "Update domain ID Protection",
        "description": "",
        "operationId": "domain_idprotection_update",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Domain id",
                  "example": "idValue"
                },
                "switch": {
                  "type": "boolean",
                  "description": "Enable or disable ID orotection, use true to enable. ",
                  "example": true
                }
              },
              "example": {
                "id": "idValue",
                "switch": true
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/domain/{id}/contact": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "Get domain contact info",
        "description": "",
        "operationId": "domain_contact_get",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "integer",
            "in": "path",
            "description": "Domain id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "success": true,
                "domain_id": "428",
                "contact_info": {
                  "registrant": {
                    "firstname": "",
                    "lastname": "",
                    "companyname": "",
                    "email": "",
                    "phonenumber": "",
                    "address1": "",
                    "address2": "",
                    "city": "",
                    "state": "",
                    "postcode": "",
                    "country": ""
                  },
                  "tech": {
                    "firstname": "",
                    "lastname": "",
                    "companyname": "",
                    "email": "",
                    "phonenumber": "",
                    "address1": "",
                    "address2": "",
                    "city": "",
                    "state": "",
                    "postcode": "",
                    "country": ""
                  },
                  "admin": {
                    "firstname": "",
                    "lastname": "",
                    "companyname": "",
                    "email": "",
                    "phonenumber": "",
                    "address1": "",
                    "address2": "",
                    "city": "",
                    "state": "",
                    "postcode": "",
                    "country": ""
                  },
                  "billing": {
                    "firstname": "",
                    "lastname": "",
                    "companyname": "",
                    "email": "",
                    "phonenumber": "",
                    "address1": "",
                    "address2": "",
                    "city": "",
                    "state": "",
                    "postcode": "",
                    "country": ""
                  }
                }
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "success": true,
                "domain_id": "428",
                "contact_info": {
                  "registrant": {
                    "firstname": "",
                    "lastname": "",
                    "companyname": "",
                    "email": "",
                    "phonenumber": "",
                    "address1": "",
                    "address2": "",
                    "city": "",
                    "state": "",
                    "postcode": "",
                    "country": ""
                  },
                  "tech": {
                    "firstname": "",
                    "lastname": "",
                    "companyname": "",
                    "email": "",
                    "phonenumber": "",
                    "address1": "",
                    "address2": "",
                    "city": "",
                    "state": "",
                    "postcode": "",
                    "country": ""
                  },
                  "admin": {
                    "firstname": "",
                    "lastname": "",
                    "companyname": "",
                    "email": "",
                    "phonenumber": "",
                    "address1": "",
                    "address2": "",
                    "city": "",
                    "state": "",
                    "postcode": "",
                    "country": ""
                  },
                  "billing": {
                    "firstname": "",
                    "lastname": "",
                    "companyname": "",
                    "email": "",
                    "phonenumber": "",
                    "address1": "",
                    "address2": "",
                    "city": "",
                    "state": "",
                    "postcode": "",
                    "country": ""
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Domains"
        ],
        "summary": "Update domain contact info",
        "description": "",
        "operationId": "domain_contact_update",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Domain id",
                  "example": "idValue"
                },
                "contact_info": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "example": "contact_infoValue"
                }
              },
              "example": {
                "id": "idValue",
                "contact_info": "contact_infoValue"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "success": true,
                "domain_id": "428",
                "info": [
                  "request_contacts_sent"
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "success": true,
                "domain_id": "428",
                "info": [
                  "request_contacts_sent"
                ]
              }
            }
          }
        }
      }
    },
    "/domain/{id}/emforwarding": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "Get email forwarding",
        "description": "",
        "operationId": "domain_email_forwarding",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "integer",
            "in": "path",
            "description": "Domain id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      },
      "put": {
        "tags": [
          "Domains"
        ],
        "summary": "Update email forwarding",
        "description": "",
        "operationId": "domain_email_forwarding_update",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Domain id",
                  "example": "idValue"
                },
                "from": {
                  "type": "string",
                  "description": "Email address that you want to forward ",
                  "example": "info@domain.com"
                },
                "to": {
                  "type": "string",
                  "description": "Email address that will receive forwarded emails ",
                  "example": "destination@domain.com"
                },
                "records": {
                  "type": "array",
                  "description": "Multiple forwarding rules [{\"from\":\"info\",\"to\":\"dest@domain.com\"},{\"from\":\"support\",\"to\":\"help@domain.com\"}]",
                  "items": {
                    "type": "string"
                  },
                  "example": "recordsValue"
                }
              },
              "example": {
                "id": "idValue",
                "from": "info@domain.com",
                "to": "destination@domain.com",
                "records": "recordsValue"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/domain/{id}/forwarding": {
      "put": {
        "tags": [
          "Domains"
        ],
        "summary": "Update domain forwarding",
        "description": "",
        "operationId": "domain_forwarding_update",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Domain id",
                  "example": "idValue"
                }
              },
              "example": {
                "id": "idValue"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/domain/{id}/autorenew": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "Get domain autorenew",
        "description": "",
        "operationId": "domain_autorenew",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "integer",
            "in": "path",
            "description": "Domain id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "success": true,
                "autorenew": null
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "success": true,
                "autorenew": null
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Domains"
        ],
        "summary": "Enable/disable domain autorenew",
        "description": "",
        "operationId": "domain_autorenew_update",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Domain id",
                  "example": "idValue"
                },
                "autorenew": {
                  "type": "boolean",
                  "example": "autorenewValue"
                }
              },
              "example": {
                "id": "idValue",
                "autorenew": "autorenewValue"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "success": true,
                "info": [
                  "success_changes_save"
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "success": true,
                "info": [
                  "success_changes_save"
                ]
              }
            }
          }
        }
      }
    },
    "/domain/{id}/dnssec/flags": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "Returns the available flags",
        "description": "",
        "operationId": "domain_dnssec_get_flags",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "integer",
            "in": "path",
            "description": "Domain id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/domain/{id}/dnssec": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "Returns the list of DNSSEC keys",
        "description": "",
        "operationId": "domain_dnssec_get",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "integer",
            "in": "path",
            "description": "Domain id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      },
      "put": {
        "tags": [
          "Domains"
        ],
        "summary": "Adds the DNSSEC key",
        "description": "",
        "operationId": "domain_dnssec_add",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Domain id",
                  "example": "idValue"
                }
              },
              "example": {
                "id": "idValue"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/domain/{id}/dnssec/{key}": {
      "delete": {
        "tags": [
          "Domains"
        ],
        "summary": "",
        "description": "",
        "operationId": "domain_dnssec_remove",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "integer",
            "in": "path",
            "description": "Domain id",
            "required": true
          },
          {
            "name": "key",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/domain/lookup": {
      "post": {
        "tags": [
          "Domains"
        ],
        "summary": "Domain availability",
        "description": "Check if domain is available for registration. Returns status: \"ok\" if domain is available, empty response otherwise",
        "operationId": "domain_lookup",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "description": "Domain name ",
                  "example": "example.com"
                }
              },
              "example": {
                "name": "example.com"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "available": false,
                "name": "example.com",
                "premium": false,
                "periods": [
                  {
                    "id": "6",
                    "period": "1",
                    "register": "10.00",
                    "transfer": "0.00",
                    "renew": "15.00",
                    "redemption": "40.00"
                  },
                  {
                    "id": "6",
                    "period": "2",
                    "register": "20.00",
                    "transfer": "20.00",
                    "renew": "20.00",
                    "redemption": "80.00"
                  }
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "available": false,
                "name": "example.com",
                "premium": false,
                "periods": [
                  {
                    "id": "6",
                    "period": "1",
                    "register": "10.00",
                    "transfer": "0.00",
                    "renew": "15.00",
                    "redemption": "40.00"
                  },
                  {
                    "id": "6",
                    "period": "2",
                    "register": "20.00",
                    "transfer": "20.00",
                    "renew": "20.00",
                    "redemption": "80.00"
                  }
                ]
              }
            }
          }
        }
      }
    },
    "/domain/order": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "Available TLDs",
        "description": "List TLDs available for registration and transfer",
        "operationId": "domain_tlds",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      },
      "post": {
        "tags": [
          "Domains"
        ],
        "summary": "Order new domain",
        "description": "Create new order for a domain, please check if requested domain is available first,\notherwise your order may get cancelled.",
        "operationId": "domain_order",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "description": "Domain name ",
                  "example": "example.com"
                },
                "years": {
                  "type": "string",
                  "description": "Number of years ",
                  "example": 1
                },
                "action": {
                  "type": "string",
                  "description": "register|transfer ",
                  "example": "register"
                },
                "tld_id": {
                  "type": "string",
                  "description": "TLD id ",
                  "example": 42
                },
                "pay_method": {
                  "type": "integer",
                  "description": "Payment method ID ",
                  "example": 5
                },
                "epp": {
                  "type": "string",
                  "description": "EPP Transfer code, required when transfering some domains ",
                  "example": "Syntax error"
                },
                "nameservers": {
                  "type": "array",
                  "description": "Optional array with 2 - 4 nameservers that you want to use ",
                  "items": {
                    "type": "string"
                  }
                },
                "registrant": {
                  "type": "integer",
                  "description": "Optional contact ID to use for registrant contact this domain ",
                  "example": 42
                },
                "admin": {
                  "type": "integer",
                  "description": "Optional contact ID to use for admin contact this domain ",
                  "example": 43
                },
                "tech": {
                  "type": "integer",
                  "description": "Optional contact ID to use for tech contact this domain ",
                  "example": 43
                },
                "billing": {
                  "type": "integer",
                  "description": "Optional contact ID to use for billing contact this domain ",
                  "example": 42
                },
                "data": {
                  "type": "array",
                  "description": "Addditional data required for some TLDs ",
                  "items": {
                    "type": "string"
                  }
                },
                "aff_id": {
                  "type": "integer",
                  "description": "Affiliate ID",
                  "example": 55
                }
              },
              "example": {
                "name": "example.com",
                "years": 1,
                "action": "register",
                "tld_id": 42,
                "pay_method": 5,
                "epp": "Syntax error",
                "nameservers": [
                  "ns1.example.com",
                  {
                    "host": "ns2.example.com",
                    "ip": "123.234.123.234"
                  }
                ],
                "registrant": 42,
                "admin": 43,
                "tech": 43,
                "billing": 42,
                "data": {
                  "1618": {
                    "10330": "bar"
                  }
                },
                "aff_id": 55
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "order_num": 563647679,
                "invoice_id": "308977",
                "total": "10.00",
                "items": {
                  "id": "10",
                  "type": "Domain Register",
                  "name": "test.com",
                  "product_id": "3"
                }
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "order_num": 563647679,
                "invoice_id": "308977",
                "total": "10.00",
                "items": {
                  "id": "10",
                  "type": "Domain Register",
                  "name": "test.com",
                  "product_id": "3"
                }
              }
            }
          }
        }
      }
    },
    "/domain/order/{id}/form": {
      "get": {
        "tags": [
          "Domains"
        ],
        "summary": "Additinal data for TLD",
        "description": "Get additional forms required for some TLDs",
        "operationId": "domain_tld_froms",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "tld_id",
            "type": "integer",
            "in": "query",
            "description": "TLD ID"
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/domain/{id}/renew": {
      "post": {
        "tags": [
          "Domains"
        ],
        "summary": "Renew domain",
        "description": "Create new renew order for a domain, please check if requested domain is available first, otherwise your order may get cancelled.",
        "operationId": "domain_renew",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "years": {
                  "type": "string",
                  "description": "Number of years",
                  "example": "yearsValue"
                },
                "pay_method": {
                  "type": "integer",
                  "description": "Payment method ID",
                  "example": "pay_methodValue"
                }
              },
              "example": {
                "years": "yearsValue",
                "pay_method": "pay_methodValue"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/certificate": {
      "get": {
        "tags": [
          "SSL Certificates"
        ],
        "summary": "List SSL Certificates",
        "description": "List all ssl services under your account",
        "operationId": "certificate",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "sslservices": [
                  {
                    "id": "300",
                    "domain": "examplename.com",
                    "total": "27.85",
                    "status": "Pending",
                    "billingcycle": "Annually",
                    "next_due": "2017-12-30",
                    "category": "GoGetSSL",
                    "category_url": "gogetssl",
                    "name": "Comodo InstantSSL",
                    "cert_email": "admin@example.com",
                    "cert_status": "",
                    "cert_expires": "2017-12-30 13:43:12"
                  }
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "sslservices": [
                  {
                    "id": "300",
                    "domain": "examplename.com",
                    "total": "27.85",
                    "status": "Pending",
                    "billingcycle": "Annually",
                    "next_due": "2017-12-30",
                    "category": "GoGetSSL",
                    "category_url": "gogetssl",
                    "name": "Comodo InstantSSL",
                    "cert_email": "admin@example.com",
                    "cert_status": "",
                    "cert_expires": "2017-12-30 13:43:12"
                  }
                ]
              }
            }
          }
        }
      }
    },
    "/certificate/{service_id}": {
      "get": {
        "tags": [
          "SSL Certificates"
        ],
        "summary": "Certificate details",
        "description": "Return details for certificate `@service_id`",
        "operationId": "certificate_details",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "service_id",
            "type": "integer",
            "in": "path",
            "description": "Service id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/certificate/{service_id}/crt": {
      "get": {
        "tags": [
          "SSL Certificates"
        ],
        "summary": "Download certificate",
        "description": "Return X.509 certificate data",
        "operationId": "certificate_crt",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "service_id",
            "type": "integer",
            "in": "path",
            "description": "Service id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/certificate/order": {
      "get": {
        "tags": [
          "SSL Certificates"
        ],
        "summary": "List available certificates",
        "description": "Return a list with certificate available for purchase",
        "operationId": "certificate_products",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      },
      "post": {
        "tags": [
          "SSL Certificates"
        ],
        "summary": "Order new certificates",
        "description": "Create new order for a certificate",
        "operationId": "certificate_order",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "product_id": {
                  "type": "integer",
                  "description": "Certificate product ID",
                  "example": "product_idValue"
                },
                "csr": {
                  "type": "string",
                  "description": "Domain name ",
                  "example": "example.com"
                },
                "years": {
                  "type": "integer",
                  "description": "Number of years",
                  "example": "yearsValue"
                },
                "pay_method": {
                  "type": "integer",
                  "description": "Payment method ID",
                  "example": "pay_methodValue"
                },
                "approver_email": {
                  "type": "string",
                  "description": "Email addres used in domain validation",
                  "example": "approver_emailValue"
                },
                "admin": {
                  "type": "integer",
                  "description": "Admin contact ID",
                  "example": "adminValue"
                },
                "tech": {
                  "type": "integer",
                  "description": "Tech contact ID",
                  "example": "techValue"
                },
                "billing": {
                  "type": "integer",
                  "description": "Billing contact ID",
                  "example": "billingValue"
                },
                "organization": {
                  "type": "array",
                  "description": "Organization details",
                  "items": {
                    "type": "string"
                  },
                  "example": "organizationValue"
                },
                "software": {
                  "type": "integer",
                  "description": "Server/Software ID",
                  "example": "softwareValue"
                },
                "data": {
                  "type": "array",
                  "description": "Addditional data required for some products",
                  "items": {
                    "type": "string"
                  },
                  "example": "dataValue"
                },
                "aff_id": {
                  "type": "integer",
                  "description": "Affiliate ID",
                  "example": 55
                }
              },
              "example": {
                "product_id": "product_idValue",
                "csr": "example.com",
                "years": "yearsValue",
                "pay_method": "pay_methodValue",
                "approver_email": "approver_emailValue",
                "admin": "adminValue",
                "tech": "techValue",
                "billing": "billingValue",
                "organization": "organizationValue",
                "software": "softwareValue",
                "data": "dataValue",
                "aff_id": 55
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "order_num": 873340994,
                "invoice_id": "308978",
                "total": "27.85",
                "items": {
                  "id": "10",
                  "type": "Hosting",
                  "name": "test.com",
                  "product_id": "3"
                }
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "order_num": 873340994,
                "invoice_id": "308978",
                "total": "27.85",
                "items": {
                  "id": "10",
                  "type": "Hosting",
                  "name": "test.com",
                  "product_id": "3"
                }
              }
            }
          }
        }
      }
    },
    "/certificate/order/{product_id}/software": {
      "get": {
        "tags": [
          "SSL Certificates"
        ],
        "summary": "List server software for certificates",
        "description": "Return a list with software IDs required or certificate",
        "operationId": "certificate_software",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "product_id",
            "type": "integer",
            "in": "path",
            "description": "Certificate product ID",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/service": {
      "get": {
        "tags": [
          "Services"
        ],
        "summary": "List services",
        "description": "List all services under your account",
        "operationId": "service",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "services": [
                  {
                    "id": "301",
                    "domain": "examplename.com",
                    "total": "9.99",
                    "status": "Pending",
                    "billingcycle": "Monthly",
                    "next_due": "2017-12-30",
                    "category": "Hosting",
                    "category_url": "hosting",
                    "name": "Starter Hosting"
                  }
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "services": [
                  {
                    "id": "301",
                    "domain": "examplename.com",
                    "total": "9.99",
                    "status": "Pending",
                    "billingcycle": "Monthly",
                    "next_due": "2017-12-30",
                    "category": "Hosting",
                    "category_url": "hosting",
                    "name": "Starter Hosting"
                  }
                ]
              }
            }
          }
        }
      }
    },
    "/service/{id}": {
      "get": {
        "tags": [
          "Services"
        ],
        "summary": "Service details",
        "description": "Return details for service `@id`",
        "operationId": "serviceDetails",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "integer",
            "in": "path",
            "description": "Service id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "service": {
                  "id": "301",
                  "date_created": "2016-12-30",
                  "domain": "examplename.com",
                  "firstpayment": "9.99",
                  "total": "9.99",
                  "billingcycle": "Monthly",
                  "next_due": "2017-12-30",
                  "next_invoice": "2017-01-27",
                  "status": "Active",
                  "label": "",
                  "username": "examplen",
                  "password": "pdtzc",
                  "name": "Starter Hosting"
                }
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "service": {
                  "id": "301",
                  "date_created": "2016-12-30",
                  "domain": "examplename.com",
                  "firstpayment": "9.99",
                  "total": "9.99",
                  "billingcycle": "Monthly",
                  "next_due": "2017-12-30",
                  "next_invoice": "2017-01-27",
                  "status": "Active",
                  "label": "",
                  "username": "examplen",
                  "password": "pdtzc",
                  "name": "Starter Hosting"
                }
              }
            }
          }
        }
      }
    },
    "/service/{id}/methods": {
      "get": {
        "tags": [
          "Services"
        ],
        "summary": "List service methods",
        "description": "List methods available for service",
        "operationId": "serviceMethods",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "methods": [
                  {
                    "name": "Upgrade Request",
                    "method": "POST",
                    "route": "/service/@id/upgrade"
                  },
                  {
                    "name": "Upgrade Options",
                    "method": "GET",
                    "route": "/service/@id/upgrade"
                  },
                  {
                    "name": "Change service label",
                    "method": "POST",
                    "route": "/service/@id/label"
                  },
                  {
                    "name": "Service label",
                    "method": "GET",
                    "route": "/service/@id/label"
                  },
                  {
                    "name": "Cancel Service",
                    "method": "POST",
                    "route": "/service/@id/cancel"
                  }
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "methods": [
                  {
                    "name": "Upgrade Request",
                    "method": "POST",
                    "route": "/service/@id/upgrade"
                  },
                  {
                    "name": "Upgrade Options",
                    "method": "GET",
                    "route": "/service/@id/upgrade"
                  },
                  {
                    "name": "Change service label",
                    "method": "POST",
                    "route": "/service/@id/label"
                  },
                  {
                    "name": "Service label",
                    "method": "GET",
                    "route": "/service/@id/label"
                  },
                  {
                    "name": "Cancel Service",
                    "method": "POST",
                    "route": "/service/@id/cancel"
                  }
                ]
              }
            }
          }
        }
      }
    },
    "/service/{id}/upgrade": {
      "get": {
        "tags": [
          "Services"
        ],
        "summary": "Upgrade Options",
        "description": "List upgrade options",
        "operationId": "upgrade",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "resources": [
                  {
                    "id": 1557,
                    "name": "Bandwidth",
                    "type": "select",
                    "items": [
                      {
                        "id": "9953",
                        "name": "100 GB",
                        "price": 1,
                        "setup_price": 0,
                        "selected": true
                      },
                      {
                        "id": "10103",
                        "name": "500 GB",
                        "price": 5,
                        "setup_price": 0,
                        "selected": false
                      },
                      {
                        "id": "10104",
                        "name": "1 TB",
                        "price": 10,
                        "setup_price": 0,
                        "selected": false
                      }
                    ]
                  }
                ],
                "package": []
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "resources": [
                  {
                    "id": 1557,
                    "name": "Bandwidth",
                    "type": "select",
                    "items": [
                      {
                        "id": "9953",
                        "name": "100 GB",
                        "price": 1,
                        "setup_price": 0,
                        "selected": true
                      },
                      {
                        "id": "10103",
                        "name": "500 GB",
                        "price": 5,
                        "setup_price": 0,
                        "selected": false
                      },
                      {
                        "id": "10104",
                        "name": "1 TB",
                        "price": 10,
                        "setup_price": 0,
                        "selected": false
                      }
                    ]
                  }
                ],
                "package": []
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Services"
        ],
        "summary": "Upgrade Request",
        "description": "Estimate or request upgrade\n\n```json\n// Format of ''resources'' paremeter\n{\n    \"resource_id\" : \"qty_value\", // sliders & qty fields\n    \"resource_id\" : \"item_id\", // dropdown & radio fields\n    \"resource_id\" : {\n        \"item_id\": \"qty_value\" // dropdown with qty field\n    }\n}\n```",
        "operationId": "upgrade_test",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Service id",
                  "example": "idValue"
                },
                "resources": {
                  "type": "array",
                  "description": "array with resource values",
                  "items": {
                    "type": "string"
                  },
                  "example": "resourcesValue"
                },
                "package": {
                  "type": "integer",
                  "description": "New package id, optonal when upgrading resources",
                  "example": "packageValue"
                },
                "cycle": {
                  "type": "string",
                  "description": "New billing cycle, optonal when upgrading resources",
                  "example": "cycleValue"
                },
                "send": {
                  "type": "boolean",
                  "description": "Set to true when you want to send your upgrade request",
                  "example": "sendValue"
                }
              },
              "example": {
                "id": "idValue",
                "resources": "resourcesValue",
                "package": "packageValue",
                "cycle": "cycleValue",
                "send": "sendValue"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/service/{id}/cancel": {
      "post": {
        "tags": [
          "Services"
        ],
        "summary": "Cancel Service",
        "description": "Request service cancellation",
        "operationId": "service_cancel",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Service id",
                  "example": "idValue"
                },
                "immediate": {
                  "type": "string",
                  "description": "set to <code>false</code> to terminate service at the end of billing date, <code>true</code> - terminate immediately",
                  "example": "immediateValue"
                },
                "reason": {
                  "type": "string",
                  "description": "Reason for this request",
                  "example": "reasonValue"
                }
              },
              "example": {
                "id": "idValue",
                "immediate": "immediateValue",
                "reason": "reasonValue"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "info": [
                  "cancell_sent"
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "info": [
                  "cancell_sent"
                ]
              }
            }
          }
        }
      }
    },
    "/service/{id}/label": {
      "get": {
        "tags": [
          "Services"
        ],
        "summary": "Service label",
        "description": "Show current service label",
        "operationId": "service_get_label",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "integer",
            "in": "path",
            "description": "Service id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "label": "example"
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "label": "example"
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Services"
        ],
        "summary": "Change service label",
        "description": "Set new custom label to identify this service",
        "operationId": "service_set_label",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Service id",
                  "example": "idValue"
                },
                "label": {
                  "type": "string",
                  "description": "New label",
                  "example": "labelValue"
                }
              },
              "example": {
                "id": "idValue",
                "label": "labelValue"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "success": true,
                "info": [
                  "label_updated"
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "success": true,
                "info": [
                  "label_updated"
                ]
              }
            }
          }
        }
      }
    },
    "/service/{id}/renew": {
      "post": {
        "tags": [
          "Services"
        ],
        "summary": "Manual Service Renew",
        "description": "Generate an invoice to renew the service.",
        "operationId": "service_renew",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Service id",
                  "example": "idValue"
                }
              },
              "example": {
                "id": "idValue"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "status": true,
                "invoice_id": "504426",
                "info": [
                  "manualrenew_ok"
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "status": true,
                "invoice_id": "504426",
                "info": [
                  "manualrenew_ok"
                ]
              }
            }
          }
        }
      }
    },
    "/service/{id}/cycle": {
      "get": {
        "tags": [
          "Services"
        ],
        "summary": "List Billing Cycle",
        "description": "Get recurring billing cycle options",
        "operationId": "service_cycle",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "integer",
            "in": "path",
            "description": "Service id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "current": "m",
                "cycles": {
                  "m": "14.95",
                  "a": "179.40",
                  "b": "358.80"
                }
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "current": "m",
                "cycles": {
                  "m": "14.95",
                  "a": "179.40",
                  "b": "358.80"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Services"
        ],
        "summary": "Change Billing Cycle",
        "description": "Change recurring billing cycle for the service",
        "operationId": "service_cycle_set",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Service id",
                  "example": "idValue"
                },
                "cycle": {
                  "type": "string",
                  "description": "New billing cycle",
                  "example": "cycleValue"
                }
              },
              "example": {
                "id": "idValue",
                "cycle": "cycleValue"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "success": true,
                "info": [
                  "changebillingcycle_ok"
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "success": true,
                "info": [
                  "changebillingcycle_ok"
                ]
              }
            }
          }
        }
      }
    },
    "/service/{id}/ip": {
      "get": {
        "tags": [
          "Services"
        ],
        "summary": "IP Addresses",
        "description": "List Service IP Addresses",
        "operationId": "ip",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "integer",
            "in": "path",
            "description": "Service ID",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/service/{id}/rdns": {
      "get": {
        "tags": [
          "Services"
        ],
        "summary": "Reverse DNS",
        "description": "Get reverse DNS entries for service's IP addresses",
        "operationId": "rdns",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "integer",
            "in": "path",
            "description": "Service ID",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      },
      "post": {
        "tags": [
          "Services"
        ],
        "summary": "Update rDNS",
        "description": "Update reverse DNS entries service's IP addresses",
        "operationId": "uprdns",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Service ID",
                  "example": "idValue"
                },
                "ipaddress": {
                  "type": "array",
                  "description": "Use Ip address as parameter key and hostname as value",
                  "items": {
                    "type": "string"
                  },
                  "example": "ipaddressValue"
                }
              },
              "example": {
                "id": "idValue",
                "ipaddress": "ipaddressValue"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/service/{id}/vms": {
      "get": {
        "tags": [
          "Services"
        ],
        "summary": "List VMs",
        "description": "List virtual servers",
        "operationId": "vms",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      },
      "post": {
        "tags": [
          "Services"
        ],
        "summary": "Create VM",
        "description": "Add new virtual server",
        "operationId": "vms_create",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "label": {
                  "type": "string",
                  "description": "VM label",
                  "example": "labelValue"
                },
                "template": {
                  "type": "string",
                  "description": "Template ID",
                  "example": "templateValue"
                },
                "memory": {
                  "type": "string",
                  "description": "Amount of RAM memory in MB",
                  "example": "memoryValue"
                },
                "cpu": {
                  "type": "string",
                  "description": "Amount of CPU cores",
                  "example": "cpuValue"
                },
                "disk": {
                  "type": "string",
                  "description": "Disk Space in GB",
                  "example": "diskValue"
                },
                "interface": {
                  "type": "array",
                  "description": "Interface configuration",
                  "items": {
                    "type": "string"
                  },
                  "example": "interfaceValue"
                }
              },
              "example": {
                "label": "labelValue",
                "template": "templateValue",
                "memory": "memoryValue",
                "cpu": "cpuValue",
                "disk": "diskValue",
                "interface": "interfaceValue"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/service/{id}/vms/{vmid}": {
      "get": {
        "tags": [
          "Services"
        ],
        "summary": "Get VM Details",
        "description": "Get the details of a particular virtual server",
        "operationId": "vms_get",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "vmid",
            "type": "string",
            "in": "path",
            "description": "Virtual server  id",
            "required": true
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      },
      "delete": {
        "tags": [
          "Services"
        ],
        "summary": "Destroy VM",
        "description": "Remove virtual server",
        "operationId": "vms_delete",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "vmid",
            "type": "string",
            "in": "path",
            "description": "Virtual server  id",
            "required": true
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      },
      "put": {
        "tags": [
          "Services"
        ],
        "summary": "Resize VM",
        "description": "Edit a virtual server",
        "operationId": "vms_edit",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "vmid": {
                  "type": "string",
                  "description": "Virtual server  id",
                  "example": "vmidValue"
                },
                "memory": {
                  "type": "string",
                  "description": "Amount of RAM in MB",
                  "example": "memoryValue"
                },
                "cpu": {
                  "type": "string",
                  "description": "Amount of CPU cores",
                  "example": "cpuValue"
                }
              },
              "example": {
                "vmid": "vmidValue",
                "memory": "memoryValue",
                "cpu": "cpuValue"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          },
          {
            "name": "vmid",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/service/{id}/vms/{vmid}/stop": {
      "post": {
        "tags": [
          "Services"
        ],
        "summary": "Stop VM",
        "description": "Stop virtual server",
        "operationId": "vms_stop",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "vmid": {
                  "type": "string",
                  "description": "Virtual server  id",
                  "example": "vmidValue"
                }
              },
              "example": {
                "vmid": "vmidValue"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          },
          {
            "name": "vmid",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/service/{id}/vms/{vmid}/start": {
      "post": {
        "tags": [
          "Services"
        ],
        "summary": "Start VM",
        "description": "Start virtual server",
        "operationId": "vms_start",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "vmid": {
                  "type": "string",
                  "description": "Virtual server  id",
                  "example": "vmidValue"
                }
              },
              "example": {
                "vmid": "vmidValue"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          },
          {
            "name": "vmid",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/service/{id}/vms/{vmid}/shutdown": {
      "post": {
        "tags": [
          "Services"
        ],
        "summary": "Shutdown VM",
        "description": "Perform graceful shutdown",
        "operationId": "vms_shutdown",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "vmid": {
                  "type": "string",
                  "description": "Virtual server  id",
                  "example": "vmidValue"
                }
              },
              "example": {
                "vmid": "vmidValue"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          },
          {
            "name": "vmid",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/service/{id}/vms/{vmid}/reboot": {
      "post": {
        "tags": [
          "Services"
        ],
        "summary": "Reboot VM",
        "description": "Reboot virtual server",
        "operationId": "vms_reboot",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "vmid": {
                  "type": "string",
                  "description": "Virtual server  id",
                  "example": "vmidValue"
                }
              },
              "example": {
                "vmid": "vmidValue"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          },
          {
            "name": "vmid",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/service/{id}/vms/{vmid}/reset": {
      "post": {
        "tags": [
          "Services"
        ],
        "summary": "Reset VM",
        "description": "Reset virtual server power",
        "operationId": "vms_reset",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "vmid": {
                  "type": "string",
                  "description": "Virtual server  id",
                  "example": "vmidValue"
                }
              },
              "example": {
                "vmid": "vmidValue"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          },
          {
            "name": "vmid",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/service/{id}/vms/{vmid}/hostname": {
      "post": {
        "tags": [
          "Services"
        ],
        "summary": "Change VM Hostname",
        "description": "Update virtual machine hostname",
        "operationId": "vms_hostname",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "hostname": {
                  "type": "string",
                  "description": "New hostname for the VM",
                  "example": "hostnameValue"
                }
              },
              "example": {
                "hostname": "hostnameValue"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          },
          {
            "name": "vmid",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/service/{id}/vms/{vmid}/rebuild": {
      "post": {
        "tags": [
          "Services"
        ],
        "summary": "Rebuild VM",
        "description": "Rebuild server, you can get list of templates supported by this server\nusing '''/service/$id/templates'''",
        "operationId": "vms_rebuild",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "template": {
                  "type": "string",
                  "description": "Template ID",
                  "example": "templateValue"
                }
              },
              "example": {
                "template": "templateValue"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          },
          {
            "name": "vmid",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/service/{id}/vms/{vmid}/ips": {
      "get": {
        "tags": [
          "Services"
        ],
        "summary": "List IPs",
        "description": "List virtual machine IPs",
        "operationId": "vm_interface_list_ip",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "type",
            "type": "string",
            "in": "query",
            "description": "ipv4 or ipv6"
          },
          {
            "name": "iface",
            "type": "integer",
            "in": "query",
            "description": "Interface number [optional]"
          },
          {
            "name": "bridge",
            "type": "string",
            "in": "query",
            "description": "Bridge name [optional, ignored if interface provided]"
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          },
          {
            "name": "vmid",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/service/{id}/vms/{vmid}/ippool": {
      "get": {
        "tags": [
          "Services"
        ],
        "summary": "List IP Pools",
        "description": "List IP pools for a specific interface or network bridge",
        "operationId": "vm_interface_list_iplist",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "iface",
            "type": "integer",
            "in": "query",
            "description": "Interface number [optional]"
          },
          {
            "name": "bridge",
            "type": "string",
            "in": "query",
            "description": "Bridge name [optional, ignored if interface provided]"
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          },
          {
            "name": "vmid",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/service/{id}/vms/{vmid}/ippool/{pool}": {
      "post": {
        "tags": [
          "Services"
        ],
        "summary": "Allocate IPs",
        "description": "Allocate new IP for network interface.",
        "operationId": "vm_interface_allocate_ip",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "pool": {
                  "type": "string",
                  "description": "List ID to allocate new IP from",
                  "example": "poolValue"
                },
                "type": {
                  "type": "string",
                  "description": "ipv4 or ipv6",
                  "example": "typeValue"
                },
                "iface": {
                  "type": "integer",
                  "description": "Interface number",
                  "example": "ifaceValue"
                },
                "bridge": {
                  "type": "string",
                  "description": "Bridge name [optional, ignored if interface provided]",
                  "example": "bridgeValue"
                },
                "number": {
                  "type": "integer",
                  "description": "Number of IPs to allocate",
                  "example": "numberValue"
                }
              },
              "example": {
                "pool": "poolValue",
                "type": "typeValue",
                "iface": "ifaceValue",
                "bridge": "bridgeValue",
                "number": "numberValue"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          },
          {
            "name": "vmid",
            "type": "string",
            "in": "path",
            "required": true
          },
          {
            "name": "pool",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/service/{id}/networks": {
      "get": {
        "tags": [
          "Services"
        ],
        "summary": "List available networks",
        "description": "List of networks and IP pools that can be used for VM creation",
        "operationId": "networks",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/service/{id}/vms/{vmid}/interfaces": {
      "get": {
        "tags": [
          "Services"
        ],
        "summary": "List VM Network Interfaces",
        "description": "Get network interfaces assigned to virtual server",
        "operationId": "vm_interface_list",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          },
          {
            "name": "vmid",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      },
      "post": {
        "tags": [
          "Services"
        ],
        "summary": "Add Network Interface",
        "description": "Add new network interface to VM",
        "operationId": "vm_interface_create",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "bridge": {
                  "type": "string",
                  "description": "Network bridge",
                  "example": "bridgeValue"
                },
                "firewall": {
                  "type": "integer",
                  "description": "Enable or disable firewall (may require specific permissions)",
                  "example": "firewallValue"
                },
                "ipv4": {
                  "type": "array",
                  "description": "List of IP v4 IDs",
                  "items": {
                    "type": "string"
                  },
                  "example": "ipv4Value"
                },
                "ipv6": {
                  "type": "array",
                  "description": "List of IP v6 IDs",
                  "items": {
                    "type": "string"
                  },
                  "example": "ipv6Value"
                }
              },
              "example": {
                "bridge": "bridgeValue",
                "firewall": "firewallValue",
                "ipv4": "ipv4Value",
                "ipv6": "ipv6Value"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          },
          {
            "name": "vmid",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/service/{id}/vms/{vmid}/interfaces/{iface}": {
      "get": {
        "tags": [
          "Services"
        ],
        "summary": "Get Network Interfaces",
        "description": "Get network Interface details",
        "operationId": "vm_interface_details",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "iface",
            "type": "string",
            "in": "path",
            "description": "Interface name or id, ie '0' or 'net0'",
            "required": true
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          },
          {
            "name": "vmid",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      },
      "put": {
        "tags": [
          "Services"
        ],
        "summary": "Update Network Interface",
        "description": "Update network interface details",
        "operationId": "vm_interface_update",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "iface": {
                  "type": "integer",
                  "description": "Interface number",
                  "example": "ifaceValue"
                },
                "firewall": {
                  "type": "integer",
                  "description": "Enable or disable firewall (may require specific permissions)",
                  "example": "firewallValue"
                },
                "ipv4": {
                  "type": "array",
                  "description": "List of IP v4 IDs",
                  "items": {
                    "type": "string"
                  },
                  "example": "ipv4Value"
                },
                "ipv6": {
                  "type": "array",
                  "description": "List of IP v6 IDs",
                  "items": {
                    "type": "string"
                  },
                  "example": "ipv6Value"
                }
              },
              "example": {
                "iface": "ifaceValue",
                "firewall": "firewallValue",
                "ipv4": "ipv4Value",
                "ipv6": "ipv6Value"
              }
            }
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          },
          {
            "name": "vmid",
            "type": "string",
            "in": "path",
            "required": true
          },
          {
            "name": "iface",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      },
      "delete": {
        "tags": [
          "Services"
        ],
        "summary": "Remove Network Interface",
        "description": "Remove network interface from VM",
        "operationId": "vm_interface_remove",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "iface",
            "type": "string",
            "in": "path",
            "description": "Interface name or id to remove",
            "required": true
          },
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          },
          {
            "name": "vmid",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/service/{id}/templates": {
      "get": {
        "tags": [
          "Services"
        ],
        "summary": "List OS templates",
        "description": "List templates that can be used to create virtual server",
        "operationId": "templates",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/service/{id}/resources": {
      "get": {
        "tags": [
          "Services"
        ],
        "summary": "Resources",
        "description": "Show available and used resources",
        "operationId": "resources",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/category": {
      "get": {
        "tags": [
          "Cart"
        ],
        "summary": "List product categories",
        "description": "Return a list of product categories.",
        "operationId": "cart_categories",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "categories": [
                  {
                    "id": "10",
                    "name": "Hosting",
                    "description": "",
                    "slug": "hosting"
                  },
                  {
                    "id": "6",
                    "name": "Domains",
                    "description": "",
                    "slug": "domains"
                  },
                  {
                    "id": "16",
                    "name": "Dedicated",
                    "description": "",
                    "slug": "dedicated"
                  }
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "categories": [
                  {
                    "id": "10",
                    "name": "Hosting",
                    "description": "",
                    "slug": "hosting"
                  },
                  {
                    "id": "6",
                    "name": "Domains",
                    "description": "",
                    "slug": "domains"
                  },
                  {
                    "id": "16",
                    "name": "Dedicated",
                    "description": "",
                    "slug": "dedicated"
                  }
                ]
              }
            }
          }
        }
      }
    },
    "/category/{category_id}/product": {
      "get": {
        "tags": [
          "Cart"
        ],
        "summary": "List products in category",
        "description": "Return a list of product available for purchase under requested category",
        "operationId": "cart_products",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "category_id",
            "type": "integer",
            "in": "path",
            "description": "Category ID",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/order/{product_id}": {
      "get": {
        "tags": [
          "Cart"
        ],
        "summary": "Get product configuration details",
        "description": "Return product details with form configuration, addons and subproducts if available.",
        "operationId": "cart_product",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "product_id",
            "type": "integer",
            "in": "path",
            "description": "Product ID",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      },
      "post": {
        "tags": [
          "Cart"
        ],
        "summary": "Order new service",
        "description": "Create and submit new order for selected product.\n\nTo get available cycle and configuration options lookup product details\nusing `GET /order/@product_id`",
        "operationId": "cart_order",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "product_id": {
                  "type": "integer",
                  "description": "Product ID ",
                  "example": 12
                },
                "domain": {
                  "type": "string",
                  "description": "Domain name, ie. example.com, may be optional",
                  "example": "domainValue"
                },
                "cycle": {
                  "type": "string",
                  "description": "Billing period symbol",
                  "example": "cycleValue"
                },
                "pay_method": {
                  "type": "integer",
                  "description": "Payment method ID",
                  "example": "pay_methodValue"
                },
                "custom": {
                  "type": "array",
                  "description": "Additional options data available for sop products",
                  "items": {
                    "type": "string"
                  },
                  "example": "customValue"
                },
                "promocode": {
                  "type": "string",
                  "description": "Promotion code",
                  "example": "promocodeValue"
                },
                "aff_id": {
                  "type": "integer",
                  "description": "Affiliate ID",
                  "example": 55
                }
              },
              "example": {
                "product_id": 12,
                "domain": "domainValue",
                "cycle": "cycleValue",
                "pay_method": "pay_methodValue",
                "custom": "customValue",
                "promocode": "promocodeValue",
                "aff_id": 55
              }
            }
          },
          {
            "name": "product_id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "order_num": 873340995,
                "invoice_id": "308979",
                "total": "9.99",
                "items": {
                  "id": "10",
                  "type": "Hosting",
                  "name": "test.com",
                  "product_id": "3"
                }
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "order_num": 873340995,
                "invoice_id": "308979",
                "total": "9.99",
                "items": {
                  "id": "10",
                  "type": "Hosting",
                  "name": "test.com",
                  "product_id": "3"
                }
              }
            }
          }
        }
      }
    },
    "/order": {
      "post": {
        "tags": [
          "Cart"
        ],
        "summary": "Order multiple services",
        "description": "Create and submit new order for multiple services\n\nEach item in the `items` array needs to include order `type` and parameters used\nby one of the method listed below:\n<br /> &bullet; `POST /order/$product_id` - use `product` for item type<br /> &bullet; `POST /domain/order` - use `domain` for item type<br /> &bullet; `POST /certificate/order` - use `certificate` for item type",
        "operationId": "cart_order_multi",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "pay_method": {
                  "type": "integer",
                  "description": "Payment method ID ",
                  "example": 1
                },
                "ignore_errors": {
                  "type": "boolean",
                  "description": "Process order even if some of the items were rejected due to errors ",
                  "example": "No error"
                },
                "items": {
                  "type": "array",
                  "description": "list with order items",
                  "items": {
                    "type": "string"
                  }
                },
                "aff_id": {
                  "type": "integer",
                  "description": "Affiliate ID",
                  "example": 55
                }
              },
              "example": {
                "pay_method": 1,
                "ignore_errors": "No error",
                "items": [
                  {
                    "type": "product",
                    "product_id": 1080,
                    "domain": "hosting.com",
                    "cycle": "a"
                  },
                  {
                    "type": "certificate",
                    "product_id": 840,
                    "csr": "-----BEGIN CERTIFICATE REQUEST----- (...)",
                    "years": 1,
                    "approver_email": "admin@hosting.com"
                  },
                  {
                    "type": "domain",
                    "tld_id": 6,
                    "name": "hosting.com",
                    "action": "register",
                    "years": 1,
                    "nameservers": [],
                    "registrar": 42,
                    "data": []
                  },
                  {
                    "type": "domain",
                    "domain_id": 1002,
                    "action": "renew",
                    "years": 1
                  }
                ],
                "aff_id": 55
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "order_num_list": [
                  179534732,
                  179534732,
                  179534732
                ],
                "invoice_id": "503425",
                "total": "94.40",
                "items": [
                  {
                    "type": "Hosting",
                    "id": "1025",
                    "name": "hosting.com",
                    "product_id": "1080"
                  },
                  {
                    "type": "Hosting",
                    "id": "1026",
                    "name": "hosting.com",
                    "product_id": "840"
                  },
                  {
                    "type": "Domain Register",
                    "id": "354",
                    "name": "hosting.com",
                    "product_id": "6"
                  }
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "order_num_list": [
                  179534732,
                  179534732,
                  179534732
                ],
                "invoice_id": "503425",
                "total": "94.40",
                "items": [
                  {
                    "type": "Hosting",
                    "id": "1025",
                    "name": "hosting.com",
                    "product_id": "1080"
                  },
                  {
                    "type": "Hosting",
                    "id": "1026",
                    "name": "hosting.com",
                    "product_id": "840"
                  },
                  {
                    "type": "Domain Register",
                    "id": "354",
                    "name": "hosting.com",
                    "product_id": "6"
                  }
                ]
              }
            }
          }
        }
      }
    },
    "/quote": {
      "post": {
        "tags": [
          "Cart"
        ],
        "summary": "Get order quote",
        "description": "Calculate order cost and recurring prices for selected items.\nUse the same parameters as for `POST /order`",
        "operationId": "cart_order_quote",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "pay_method": {
                  "type": "integer",
                  "description": "Payment method ID",
                  "example": "pay_methodValue"
                },
                "output": {
                  "type": "string",
                  "description": "Type of output, default is short. Possible options\n<ul>\n    <li><code>short</code> - Basic details about the item in cart</li>\n    <li><code>config</code>- Basic details and form components</li>\n    <li><code>full</code> - All details available in cart</li>\n</ul> ",
                  "example": "short"
                },
                "items": {
                  "type": "array",
                  "description": "list with order items",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "example": {
                "pay_method": "pay_methodValue",
                "output": "short",
                "items": [
                  {
                    "type": "product",
                    "product_id": 1080,
                    "domain": "hosting.com",
                    "cycle": "a"
                  },
                  {
                    "type": "certificate",
                    "product_id": 840,
                    "csr": "-----BEGIN CERTIFICATE REQUEST----- (...)",
                    "years": 1,
                    "approver_email": "admin@hosting.com"
                  },
                  {
                    "type": "domain",
                    "tld_id": 6,
                    "name": "hosting.com",
                    "action": "register",
                    "years": 1,
                    "nameservers": [],
                    "registrar": 42,
                    "data": []
                  },
                  {
                    "type": "domain",
                    "domain_id": 1002,
                    "action": "renew",
                    "years": 1
                  }
                ]
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    },
    "/dns": {
      "get": {
        "tags": [
          "DNS"
        ],
        "summary": "List DNS",
        "description": "Returns a list of all DNS",
        "operationId": "dns_get",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "service_ids": [
                  "10",
                  "20"
                ],
                "zones": [
                  {
                    "domain_id": "60",
                    "name": "qwerty.com",
                    "service_id": "10"
                  },
                  {
                    "domain_id": "61",
                    "name": "bgg12ooble.com",
                    "service_id": "20"
                  }
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "service_ids": [
                  "10",
                  "20"
                ],
                "zones": [
                  {
                    "domain_id": "60",
                    "name": "qwerty.com",
                    "service_id": "10"
                  },
                  {
                    "domain_id": "61",
                    "name": "bgg12ooble.com",
                    "service_id": "20"
                  }
                ]
              }
            }
          }
        }
      }
    },
    "/service/{service_id}/dns": {
      "post": {
        "tags": [
          "DNS"
        ],
        "summary": "Add DNS Zone",
        "description": "Creates a new DNS zone",
        "operationId": "dns_add_zone",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "service_id": {
                  "type": "integer",
                  "description": "Service ID",
                  "example": "service_idValue"
                },
                "name": {
                  "type": "string",
                  "description": "Zone name ",
                  "example": "testzone.com"
                },
                "comment": {
                  "type": "string",
                  "description": "Zone comment ",
                  "example": "My zone comment"
                }
              },
              "example": {
                "service_id": "service_idValue",
                "name": "testzone.com",
                "comment": "My zone comment"
              }
            }
          },
          {
            "name": "service_id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "info": [
                  "Domain zone testzone.com was created successfully."
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "info": [
                  "Domain zone testzone.com was created successfully."
                ]
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "DNS"
        ],
        "summary": "List DNS for service",
        "description": "Returns a list of DNS zones under the service",
        "operationId": "dns_list_zones",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "service_id",
            "type": "integer",
            "in": "path",
            "description": "Service ID",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "error": [
                  "invalid method"
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "error": [
                  "invalid method"
                ]
              }
            }
          }
        }
      }
    },
    "/service/{service_id}/dns/{zone_id}": {
      "get": {
        "tags": [
          "DNS"
        ],
        "summary": "Get DNS details",
        "description": "Returns details of the DNS zone",
        "operationId": "dns_get_zone",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "service_id",
            "type": "integer",
            "in": "path",
            "description": "Service ID",
            "required": true
          },
          {
            "name": "zone_id",
            "type": "integer",
            "in": "path",
            "description": "Zone ID",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "service_id": 10,
                "name": "qwerty.com",
                "comment": "My zone comment",
                "records": [
                  {
                    "id": "10",
                    "name": "qwerty",
                    "ttl": 1800,
                    "priority": 0,
                    "content": "127.0.0.1",
                    "type": "A"
                  },
                  {
                    "id": "11",
                    "name": "qwerty",
                    "ttl": 1800,
                    "priority": 0,
                    "content": "ns1.qwerty.com",
                    "type": "NS"
                  }
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "service_id": 10,
                "name": "qwerty.com",
                "comment": "My zone comment",
                "records": [
                  {
                    "id": "10",
                    "name": "qwerty",
                    "ttl": 1800,
                    "priority": 0,
                    "content": "127.0.0.1",
                    "type": "A"
                  },
                  {
                    "id": "11",
                    "name": "qwerty",
                    "ttl": 1800,
                    "priority": 0,
                    "content": "ns1.qwerty.com",
                    "type": "NS"
                  }
                ]
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "DNS"
        ],
        "summary": "Edit DNS Zone",
        "description": "Updates the comment of the selected DNS zone",
        "operationId": "dns_edit_zone",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "service_id": {
                  "type": "integer",
                  "description": "Service ID",
                  "example": "service_idValue"
                },
                "zone_id": {
                  "type": "integer",
                  "description": "Zone ID",
                  "example": "zone_idValue"
                },
                "comment": {
                  "type": "string",
                  "description": "Zone comment ",
                  "example": "My zone comment"
                }
              },
              "example": {
                "service_id": "service_idValue",
                "zone_id": "zone_idValue",
                "comment": "My zone comment"
              }
            }
          },
          {
            "name": "service_id",
            "type": "string",
            "in": "path",
            "required": true
          },
          {
            "name": "zone_id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "success": true,
                "info": [
                  "Domain zone updated successfully."
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "success": true,
                "info": [
                  "Domain zone updated successfully."
                ]
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "DNS"
        ],
        "summary": "Remove DNS zone",
        "description": "Deletes the selected DNS zone",
        "operationId": "dns_delete_zone",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "service_id",
            "type": "integer",
            "in": "path",
            "description": "Service ID",
            "required": true
          },
          {
            "name": "zone_id",
            "type": "integer",
            "in": "path",
            "description": "Zone ID",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "info": [
                  "Domain zone testzone.com was deleted successfully."
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "info": [
                  "Domain zone testzone.com was deleted successfully."
                ]
              }
            }
          }
        }
      }
    },
    "/service/{service_id}/dns/{zone_id}/records": {
      "post": {
        "tags": [
          "DNS"
        ],
        "summary": "Add DNS Record",
        "description": "Creates a new record in the DNS zone",
        "operationId": "dns_add_record",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "service_id": {
                  "type": "integer",
                  "description": "Service ID",
                  "example": "service_idValue"
                },
                "zone_id": {
                  "type": "integer",
                  "description": "Zone ID",
                  "example": "zone_idValue"
                },
                "name": {
                  "type": "string",
                  "description": "Record name ",
                  "example": "example.com"
                },
                "ttl": {
                  "type": "integer",
                  "description": "Record ttl ",
                  "example": 3600
                },
                "priority": {
                  "type": "integer",
                  "description": "Priority of the record ",
                  "example": 10
                },
                "type": {
                  "type": "string",
                  "description": "Record type ",
                  "example": "A"
                },
                "content": {
                  "type": "string",
                  "description": "Contents of the record ",
                  "example": "192.168.1.2"
                }
              },
              "example": {
                "service_id": "service_idValue",
                "zone_id": "zone_idValue",
                "name": "example.com",
                "ttl": 3600,
                "priority": 10,
                "type": "A",
                "content": "192.168.1.2"
              }
            }
          },
          {
            "name": "service_id",
            "type": "string",
            "in": "path",
            "required": true
          },
          {
            "name": "zone_id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "record": {
                  "name": "_sip._tcp.example.com",
                  "type": "SRV",
                  "ttl": "3600",
                  "priority": "10",
                  "content": [
                    10,
                    5060,
                    "vc01.example.com"
                  ]
                },
                "info": [
                  "dnsnewrecordadded",
                  "SRV"
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "record": {
                  "name": "_sip._tcp.example.com",
                  "type": "SRV",
                  "ttl": "3600",
                  "priority": "10",
                  "content": [
                    10,
                    5060,
                    "vc01.example.com"
                  ]
                },
                "info": [
                  "dnsnewrecordadded",
                  "SRV"
                ]
              }
            }
          }
        }
      }
    },
    "/service/{service_id}/dns/{zone_id}/records/{record_id}": {
      "put": {
        "tags": [
          "DNS"
        ],
        "summary": "Edit DNS Record",
        "description": "Edits the selected DNS zone record.\n<p><b>Note</b>: Depending on the service, updating a record may change its\n ID. If you need to edit the same record again, re-list the zone records\n first to obtain its current ID.</p>",
        "operationId": "dns_edit_record",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "type": "object",
              "properties": {
                "service_id": {
                  "type": "integer",
                  "description": "Service ID",
                  "example": "service_idValue"
                },
                "zone_id": {
                  "type": "integer",
                  "description": "Zone ID",
                  "example": "zone_idValue"
                },
                "record_id": {
                  "type": "string",
                  "description": "Record ID",
                  "example": "record_idValue"
                },
                "name": {
                  "type": "string",
                  "description": "Record name ",
                  "example": "example.com"
                },
                "ttl": {
                  "type": "integer",
                  "description": "Record ttl ",
                  "example": 3600
                },
                "priority": {
                  "type": "integer",
                  "description": "Priority of the record ",
                  "example": 10
                },
                "type": {
                  "type": "string",
                  "description": "Record type ",
                  "example": "A"
                },
                "content": {
                  "type": "string",
                  "description": "Contents of the record ",
                  "example": "192.168.1.2"
                }
              },
              "example": {
                "service_id": "service_idValue",
                "zone_id": "zone_idValue",
                "record_id": "record_idValue",
                "name": "example.com",
                "ttl": 3600,
                "priority": 10,
                "type": "A",
                "content": "192.168.1.2"
              }
            }
          },
          {
            "name": "service_id",
            "type": "string",
            "in": "path",
            "required": true
          },
          {
            "name": "zone_id",
            "type": "string",
            "in": "path",
            "required": true
          },
          {
            "name": "record_id",
            "type": "string",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`",
            "examples": {
              "application/json": {
                "record": {
                  "id": "55",
                  "type": "A",
                  "ttl": "3600",
                  "name": "test",
                  "priority": 0,
                  "content": "192.168.1.2"
                },
                "info": [
                  "The record was updated successfully."
                ]
              }
            },
            "schema": {
              "type": "object",
              "example": {
                "record": {
                  "id": "55",
                  "type": "A",
                  "ttl": "3600",
                  "name": "test",
                  "priority": 0,
                  "content": "192.168.1.2"
                },
                "info": [
                  "The record was updated successfully."
                ]
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "DNS"
        ],
        "summary": "Remove DNS Record",
        "description": "Removes the selected DNS zone record",
        "operationId": "dns_delete_record",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "service_id",
            "type": "integer",
            "in": "path",
            "description": "Service ID",
            "required": true
          },
          {
            "name": "zone_id",
            "type": "integer",
            "in": "path",
            "description": "Zone ID",
            "required": true
          },
          {
            "name": "record_id",
            "type": "integer",
            "in": "path",
            "description": "Record ID",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "`Success`"
          }
        }
      }
    }
  },
  "securityDefinitions": {
    "basicAuth": {
      "type": "basic"
    },
    "bearerAuth": {
      "type": "apiKey",
      "name": "Authorization",
      "in": "header",
      "description": "Enter: Bearer {token}"
    }
  },
  "security": [
    {
      "basicAuth": []
    },
    {
      "bearerAuth": []
    }
  ],
  "definitions": {
    "Clientarea": {
      "type": "object",
      "properties": {
        "username": {
          "type": "string",
          "description": "Your acount email address "
        },
        "password": {
          "type": "string",
          "description": "Optional, allows you to login as contact"
        },
        "method": {
          "type": "string",
          "description": "The MFA method to use. "
        },
        "params": {
          "type": "mixed",
          "description": "Paramtters for specific MFA methods. "
        },
        "payload": {
          "type": "mixed",
          "description": "Data used for MFA method "
        },
        "refresh_token": {
          "type": "string"
        },
        "type": {
          "type": "string",
          "description": "Account Type"
        },
        "firstname": {
          "type": "string",
          "description": "First Name"
        },
        "lastname": {
          "type": "string",
          "description": "Last Name"
        },
        "email": {
          "type": "string",
          "description": "Email Address"
        },
        "companyname": {
          "type": "string",
          "description": "Organization"
        },
        "address1": {
          "type": "string",
          "description": "Address 1"
        },
        "address2": {
          "type": "string",
          "description": "Address 2"
        },
        "postcode": {
          "type": "string",
          "description": "Post code"
        },
        "state": {
          "type": "string",
          "description": "State"
        },
        "city": {
          "type": "string",
          "description": "City"
        },
        "country": {
          "type": "string",
          "description": "Country"
        },
        "phonenumber": {
          "type": "string",
          "description": "Phone"
        },
        "currency": {
          "type": "string",
          "description": "Currency"
        },
        "tckno": {
          "type": "string",
          "description": "Turkish Identity Number"
        },
        "dateofbirth": {
          "type": "string",
          "description": "Date of Birth"
        },
        "taxno": {
          "type": "string",
          "description": "Tax Number"
        },
        "taxoffice": {
          "type": "string",
          "description": "Tax Office"
        },
        "passport": {
          "type": "string",
          "description": "Passport Number"
        },
        "telegramnotifications": {
          "type": "string",
          "description": "Telegram"
        },
        "privileges": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Array with privileges that you want to enable. Formatted the same way as output from <code>GET&nbsp;/contact/privileges</code>"
        },
        "id": {
          "type": "integer",
          "description": "Contact ID"
        },
        "rel_type": {
          "type": "string",
          "description": "Optional, return only by relation type"
        },
        "rel_id": {
          "type": "string",
          "description": "Optional, return only by relation id"
        }
      }
    },
    "Billing": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "number",
          "description": "Amount to add to account "
        },
        "gateway": {
          "type": "number",
          "description": "Payment gateway ID, use `GET /addfunds` to list available gateways"
        }
      }
    },
    "Support": {
      "type": "object",
      "properties": {
        "number": {
          "type": "integer",
          "description": "Ticket number"
        },
        "file": {
          "type": "string",
          "description": "Attachment id"
        },
        "dept_id": {
          "type": "integer",
          "description": "Department id "
        },
        "subject": {
          "type": "string",
          "description": "Ticket subject "
        },
        "body": {
          "type": "string",
          "description": "Reply message "
        }
      }
    },
    "Domains": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "description": "Domain id"
        },
        "name": {
          "type": "string",
          "description": "Domain name "
        },
        "nameservers": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Optional array with 2 - 4 nameservers that you want to use "
        },
        "action": {
          "type": "string",
          "description": "register|transfer "
        },
        "nameserver": {
          "type": "string",
          "description": "Full nameserver hostname "
        },
        "ip": {
          "type": "string",
          "description": "IP address for the nameserver – required for registerNameServer "
        },
        "oldip": {
          "type": "string",
          "description": "Current IP address – required for modifyNameServer "
        },
        "newip": {
          "type": "string",
          "description": "New IP address – required for modifyNameServer "
        },
        "type": {
          "type": "string",
          "description": "Record type"
        },
        "priority": {
          "type": "string",
          "description": "Record priority"
        },
        "content": {
          "type": "string",
          "description": "Record content eg. IP address for A records"
        },
        "record_id": {
          "type": "integer",
          "description": "Recod index"
        },
        "switch": {
          "type": "boolean",
          "description": "Enable or disable ID orotection, use true to enable. "
        },
        "contact_info": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "from": {
          "type": "string",
          "description": "Email address that you want to forward "
        },
        "to": {
          "type": "string",
          "description": "Email address that will receive forwarded emails "
        },
        "records": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Multiple forwarding rules [{\"from\":\"info\",\"to\":\"dest@domain.com\"},{\"from\":\"support\",\"to\":\"help@domain.com\"}]"
        },
        "autorenew": {
          "type": "boolean"
        },
        "tld_id": {
          "type": "string",
          "description": "TLD id "
        },
        "years": {
          "type": "string",
          "description": "Number of years"
        },
        "pay_method": {
          "type": "integer",
          "description": "Payment method ID"
        },
        "epp": {
          "type": "string",
          "description": "EPP Transfer code, required when transfering some domains "
        },
        "registrant": {
          "type": "integer",
          "description": "Optional contact ID to use for registrant contact this domain "
        },
        "admin": {
          "type": "integer",
          "description": "Optional contact ID to use for admin contact this domain "
        },
        "tech": {
          "type": "integer",
          "description": "Optional contact ID to use for tech contact this domain "
        },
        "billing": {
          "type": "integer",
          "description": "Optional contact ID to use for billing contact this domain "
        },
        "data": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Addditional data required for some TLDs "
        },
        "aff_id": {
          "type": "integer",
          "description": "Affiliate ID"
        }
      }
    },
    "SSL Certificates": {
      "type": "object",
      "properties": {
        "service_id": {
          "type": "integer",
          "description": "Service id"
        },
        "product_id": {
          "type": "integer",
          "description": "Certificate product ID"
        },
        "csr": {
          "type": "string",
          "description": "Domain name "
        },
        "years": {
          "type": "integer",
          "description": "Number of years"
        },
        "pay_method": {
          "type": "integer",
          "description": "Payment method ID"
        },
        "approver_email": {
          "type": "string",
          "description": "Email addres used in domain validation"
        },
        "admin": {
          "type": "integer",
          "description": "Admin contact ID"
        },
        "tech": {
          "type": "integer",
          "description": "Tech contact ID"
        },
        "billing": {
          "type": "integer",
          "description": "Billing contact ID"
        },
        "organization": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Organization details"
        },
        "software": {
          "type": "integer",
          "description": "Server/Software ID"
        },
        "data": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Addditional data required for some products"
        },
        "aff_id": {
          "type": "integer",
          "description": "Affiliate ID"
        }
      }
    },
    "Services": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "description": "Service ID"
        },
        "resources": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "array with resource values"
        },
        "package": {
          "type": "integer",
          "description": "New package id, optonal when upgrading resources"
        },
        "cycle": {
          "type": "string",
          "description": "New billing cycle"
        },
        "send": {
          "type": "boolean",
          "description": "Set to true when you want to send your upgrade request"
        },
        "immediate": {
          "type": "string",
          "description": "set to <code>false</code> to terminate service at the end of billing date, <code>true</code> - terminate immediately"
        },
        "reason": {
          "type": "string",
          "description": "Reason for this request"
        },
        "label": {
          "type": "string",
          "description": "VM label"
        },
        "ipaddress": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Use Ip address as parameter key and hostname as value"
        },
        "vmid": {
          "type": "string",
          "description": "Virtual server  id"
        },
        "template": {
          "type": "string",
          "description": "Template ID"
        },
        "memory": {
          "type": "string",
          "description": "Amount of RAM in MB"
        },
        "cpu": {
          "type": "string",
          "description": "Amount of CPU cores"
        },
        "disk": {
          "type": "string",
          "description": "Disk Space in GB"
        },
        "interface": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Interface configuration"
        },
        "hostname": {
          "type": "string",
          "description": "New hostname for the VM"
        },
        "type": {
          "type": "string",
          "description": "ipv4 or ipv6"
        },
        "iface": {
          "type": "string",
          "description": "Interface name or id to remove"
        },
        "bridge": {
          "type": "string",
          "description": "Network bridge"
        },
        "pool": {
          "type": "string",
          "description": "List ID to allocate new IP from"
        },
        "number": {
          "type": "integer",
          "description": "Number of IPs to allocate"
        },
        "firewall": {
          "type": "integer",
          "description": "Enable or disable firewall (may require specific permissions)"
        },
        "ipv4": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of IP v4 IDs"
        },
        "ipv6": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of IP v6 IDs"
        }
      }
    },
    "Cart": {
      "type": "object",
      "properties": {
        "category_id": {
          "type": "integer",
          "description": "Category ID"
        },
        "product_id": {
          "type": "integer",
          "description": "Product ID "
        },
        "domain": {
          "type": "string",
          "description": "Domain name, ie. example.com, may be optional"
        },
        "cycle": {
          "type": "string",
          "description": "Billing period symbol"
        },
        "pay_method": {
          "type": "integer",
          "description": "Payment method ID"
        },
        "custom": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Additional options data available for sop products"
        },
        "promocode": {
          "type": "string",
          "description": "Promotion code"
        },
        "aff_id": {
          "type": "integer",
          "description": "Affiliate ID"
        },
        "ignore_errors": {
          "type": "boolean",
          "description": "Process order even if some of the items were rejected due to errors "
        },
        "items": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "list with order items"
        },
        "output": {
          "type": "string",
          "description": "Type of output, default is short. Possible options\n<ul>\n    <li><code>short</code> - Basic details about the item in cart</li>\n    <li><code>config</code>- Basic details and form components</li>\n    <li><code>full</code> - All details available in cart</li>\n</ul> "
        }
      }
    },
    "DNS": {
      "type": "object",
      "properties": {
        "service_id": {
          "type": "integer",
          "description": "Service ID"
        },
        "name": {
          "type": "string",
          "description": "Record name "
        },
        "comment": {
          "type": "string",
          "description": "Zone comment "
        },
        "zone_id": {
          "type": "integer",
          "description": "Zone ID"
        },
        "ttl": {
          "type": "integer",
          "description": "Record ttl "
        },
        "priority": {
          "type": "integer",
          "description": "Priority of the record "
        },
        "type": {
          "type": "string",
          "description": "Record type "
        },
        "content": {
          "type": "string",
          "description": "Contents of the record "
        },
        "record_id": {
          "type": "integer",
          "description": "Record ID"
        }
      }
    }
  },
  "externalDocs": {
    "description": "Find out more about UserAPI",
    "url": "https://portal.dchost.com/?cmd=userapi"
  }
}
