{
  "swagger": "2.0",
  "paths": {
    "/api/v1/admin/access-logs": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "AccessLog"
        ],
        "summary": "Search Management Portal access logs",
        "parameters": [
          {
            "type": "string",
            "name": "content",
            "in": "query"
          },
          {
            "type": "integer",
            "name": "end_time",
            "in": "query"
          },
          {
            "type": "integer",
            "name": "org_id",
            "in": "query"
          },
          {
            "type": "integer",
            "name": "start_time",
            "in": "query"
          },
          {
            "type": "string",
            "name": "user",
            "in": "query"
          },
          {
            "type": "integer",
            "name": "page",
            "in": "query"
          },
          {
            "type": "integer",
            "name": "per_page",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.ListAccessLogResp"
            }
          }
        }
      }
    },
    "/api/v1/admin/api/v1/admin/profile/query": {
      "post": {
        "description": "CalcNodeProfiles",
        "consumes": [
          "multipart/form-data"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Profile"
        ],
        "summary": "CalcNodeProfiles",
        "parameters": [
          {
            "type": "boolean",
            "name": "is_dev_tier",
            "in": "formData"
          },
          {
            "type": "string",
            "example": "0",
            "name": "org_id",
            "in": "formData"
          },
          {
            "type": "string",
            "name": "provider",
            "in": "formData"
          },
          {
            "type": "string",
            "name": "region",
            "in": "formData"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.CalcNodeProfileResp"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_key": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "ApiKey"
        ],
        "summary": "Add API Key",
        "parameters": [
          {
            "description": "Add API key",
            "name": "user",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.CreateAPIKey"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.CreateAPIKeyResp"
            }
          }
        }
      }
    },
    "/api/v1/admin/dashboard/stats": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "System"
        ],
        "summary": "GetDashboardStats",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.GetDashboardStatsResq"
            }
          }
        }
      }
    },
    "/api/v1/admin/external-api/v1/orgs/profile/replace_node_and_sku": {
      "post": {
        "description": "ReplaceNodeAndSKUByYaml",
        "consumes": [
          "multipart/form-data"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Profile"
        ],
        "summary": "ReplaceNodeAndSKUByYaml",
        "parameters": [
          {
            "type": "string",
            "name": "dryrun",
            "in": "formData"
          },
          {
            "type": "string",
            "example": "the file of node, named by nodes.yaml",
            "name": "node",
            "in": "formData"
          },
          {
            "type": "string",
            "example": "the file of sku, named by skus.yaml",
            "name": "sku",
            "in": "formData"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.ReplaceProfileResponse"
            }
          }
        }
      }
    },
    "/api/v1/admin/global-discounts": {
      "get": {
        "description": "Update global discount",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Discount"
        ],
        "summary": "Get Global Discount",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.GlobalDiscount"
            }
          }
        }
      },
      "put": {
        "description": "Update global discount",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Discount"
        ],
        "summary": "Update Global Discount",
        "parameters": [
          {
            "description": "discount",
            "name": "discount",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.GlobalDiscount"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.GlobalDiscount"
            }
          }
        }
      }
    },
    "/api/v1/admin/me": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "ManagementPortalUser"
        ],
        "summary": "GetCentralUserProfile",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.CentralUserProfile"
            }
          }
        }
      }
    },
    "/api/v1/admin/orgs": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Tenant"
        ],
        "summary": "List Tenant",
        "parameters": [
          {
            "type": "integer",
            "name": "page",
            "in": "query"
          },
          {
            "type": "integer",
            "name": "per_page",
            "in": "query"
          },
          {
            "type": "string",
            "name": "alias",
            "in": "query"
          },
          {
            "type": "boolean",
            "name": "brief",
            "in": "query"
          },
          {
            "type": "string",
            "name": "email",
            "in": "query"
          },
          {
            "type": "integer",
            "name": "id",
            "in": "query"
          },
          {
            "type": "array",
            "items": {
              "type": "string"
            },
            "name": "kind",
            "in": "query"
          },
          {
            "type": "string",
            "name": "name",
            "in": "query"
          },
          {
            "type": "boolean",
            "name": "no_limit",
            "in": "query"
          },
          {
            "type": "string",
            "description": "options: asc or desc",
            "name": "order",
            "in": "query"
          },
          {
            "type": "array",
            "items": {
              "type": "string"
            },
            "name": "plan",
            "in": "query"
          },
          {
            "type": "string",
            "description": "options: timezone, created_at",
            "name": "sort_by",
            "in": "query"
          },
          {
            "type": "array",
            "items": {
              "type": "string"
            },
            "name": "status",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.ListTenantResp"
            }
          }
        }
      }
    },
    "/api/v1/admin/orgs/{org_id}": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Tenant"
        ],
        "summary": "Get Tenant By ID",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "org_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.Tenant"
            }
          }
        }
      },
      "delete": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Tenant"
        ],
        "summary": "Delete Tenant By ID",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "org_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.EmptyResponse"
            }
          }
        }
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Tenant"
        ],
        "summary": "PatchTenant",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "org_id",
            "in": "path",
            "required": true
          },
          {
            "description": "patch tenant",
            "name": "req",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.PatchTenantReq"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.EmptyResponse"
            }
          }
        }
      }
    },
    "/api/v1/admin/orgs/{org_id}/access-logs": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "AccessLog"
        ],
        "summary": "Serach Tenant access logs",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "org_id",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "name": "content",
            "in": "query"
          },
          {
            "type": "integer",
            "name": "end_time",
            "in": "query"
          },
          {
            "type": "integer",
            "name": "org_id",
            "in": "query"
          },
          {
            "type": "integer",
            "name": "start_time",
            "in": "query"
          },
          {
            "type": "string",
            "name": "user",
            "in": "query"
          },
          {
            "type": "integer",
            "name": "page",
            "in": "query"
          },
          {
            "type": "integer",
            "name": "per_page",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.ListAccessLogResp"
            }
          }
        }
      }
    },
    "/api/v1/admin/orgs/{org_id}/cluster-lifecycles": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Tenant"
        ],
        "summary": "ListTenantClusterLifeCycle",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "org_id",
            "in": "path",
            "required": true
          },
          {
            "type": "integer",
            "name": "end",
            "in": "query",
            "required": true
          },
          {
            "type": "integer",
            "name": "start",
            "in": "query",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.ListTenantClusterLifeCycleResp"
            }
          }
        }
      }
    },
    "/api/v1/admin/orgs/{org_id}/clusters": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "TenantCuster"
        ],
        "summary": "List Tenant Cluster",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "org_id",
            "in": "path",
            "required": true
          },
          {
            "type": "integer",
            "name": "page",
            "in": "query"
          },
          {
            "type": "integer",
            "name": "per_page",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.ListTenantClustersResp"
            }
          }
        }
      }
    },
    "/api/v1/admin/orgs/{org_id}/clusters/{cluster_id}": {
      "delete": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "TenantCuster"
        ],
        "summary": "Delete Tenant Cluster",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "org_id",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "cluster_id",
            "name": "cluster_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.EmptyResponse"
            }
          }
        }
      }
    },
    "/api/v1/admin/orgs/{org_id}/clusters/{cluster_id}/components": {
      "put": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "TenantCuster"
        ],
        "summary": "Scale Tenant Cluster",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "org_id",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "cluster_id",
            "name": "cluster_id",
            "in": "path",
            "required": true
          },
          {
            "description": "scale cluster component",
            "name": "scale",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.ScaleComponentReq"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.EmptyResponse"
            }
          }
        }
      }
    },
    "/api/v1/admin/orgs/{org_id}/clusters/{cluster_id}/dashboard_links": {
      "get": {
        "description": "GetDashboardLinks",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "TenantCuster"
        ],
        "summary": "GetDashboardLinks",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "org_id",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "cluster_id",
            "name": "cluster_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.GetDashboardLinksResp"
            }
          }
        }
      }
    },
    "/api/v1/admin/orgs/{org_id}/clusters/{cluster_id}/tcu": {
      "get": {
        "description": "Get cluster TCU",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "GetClusterTCU"
        ],
        "summary": "Get cluster TCU",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "org_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.ClusterTCU"
            }
          }
        }
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Salesforce"
        ],
        "summary": "Update Cluster TCU",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "org_id",
            "in": "path",
            "required": true
          },
          {
            "description": "cluster tcu",
            "name": "tcu",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.ClusterTCU"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.EmptyResponse"
            }
          }
        }
      }
    },
    "/api/v1/admin/orgs/{org_id}/credits_history": {
      "get": {
        "description": "Tenant Credits History",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Billing"
        ],
        "summary": "Get Tenant Credits History",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "org_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.TenantCreditsHistory"
            }
          }
        }
      }
    },
    "/api/v1/admin/orgs/{org_id}/discounts": {
      "get": {
        "description": "Get discount",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Discount"
        ],
        "summary": "Get Tenant Discount",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "org_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.Discount"
            }
          }
        }
      },
      "put": {
        "description": "update discount",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Discount"
        ],
        "summary": "Update Tenant Discount",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "org_id",
            "in": "path",
            "required": true
          },
          {
            "description": "discount",
            "name": "discount",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.Discount"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.Discount"
            }
          }
        }
      }
    },
    "/api/v1/admin/orgs/{org_id}/impersonation": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Impersonation"
        ],
        "summary": "AddImpersonation",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "org_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.EmptyResponse"
            }
          }
        }
      },
      "delete": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Impersonation"
        ],
        "summary": "Delete Impersonation",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "org_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.EmptyResponse"
            }
          }
        }
      }
    },
    "/api/v1/admin/orgs/{org_id}/poc": {
      "put": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "poc"
        ],
        "summary": "Update POC Status",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "org_id",
            "in": "path",
            "required": true
          },
          {
            "description": "update poc status",
            "name": "user",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.UpdateOrgPocStatusReq"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.EmptyResponse"
            }
          }
        }
      }
    },
    "/api/v1/admin/orgs/{org_id}/projects/{project_id}": {
      "delete": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "TenantProject"
        ],
        "summary": "Delete Tenant Project",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "org_id",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "project_id",
            "name": "project_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.EmptyResponse"
            }
          }
        }
      }
    },
    "/api/v1/admin/orgs/{org_id}/salesforce": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Salesforce"
        ],
        "summary": "Sync Salesforce Leads",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "org_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.EmptyResponse"
            }
          }
        }
      }
    },
    "/api/v1/admin/orgs/{org_id}/trial_credit": {
      "get": {
        "description": "Get Tenant Billing Status",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Billing"
        ],
        "summary": "Get Tenant Billing Status",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "org_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.TenantRemaingCredits"
            }
          }
        }
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Credit"
        ],
        "summary": "Add Trial Credit",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "org_id",
            "in": "path",
            "required": true
          },
          {
            "description": "add trial credit",
            "name": "user",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.AddTrailCredit"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.EmptyResponse"
            }
          }
        }
      }
    },
    "/api/v1/admin/orgs/{org_id}/users": {
      "get": {
        "description": "List tenant user",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "TenantUser"
        ],
        "summary": "List Tenant Users",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "org_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.ListTenantUsersResp"
            }
          }
        }
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "TenantUser"
        ],
        "summary": "Add Tenant User",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "org_id",
            "in": "path",
            "required": true
          },
          {
            "description": "Add User",
            "name": "user",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.TenantUser"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.TenantUser"
            }
          }
        }
      }
    },
    "/api/v1/admin/orgs/{org_id}/users/{user_id}": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "TenantUser"
        ],
        "summary": "Get Tenant User",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "org_id",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "user_id",
            "name": "user_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.TenantUser"
            }
          }
        }
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "TenantUser"
        ],
        "summary": "Update Tenant User",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "org_id",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "user_id",
            "name": "user_id",
            "in": "path",
            "required": true
          },
          {
            "description": "update User",
            "name": "user",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.TenantUser"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.TenantUser"
            }
          }
        }
      },
      "delete": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "TenantUser"
        ],
        "summary": "Delete Tenant User",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "org_id",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "user_id",
            "name": "user_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.EmptyResponse"
            }
          }
        }
      }
    },
    "/api/v1/admin/providers": {
      "get": {
        "description": "ListProviders",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Provider"
        ],
        "summary": "ListProviders",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.ListProvidersResp"
            }
          }
        }
      },
      "post": {
        "description": "AddProvider",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Provider"
        ],
        "summary": "AddProvider",
        "parameters": [
          {
            "description": "provider",
            "name": "provider",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.Provider"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.EmptyResponse"
            }
          }
        }
      }
    },
    "/api/v1/admin/providers/{provider}/regions": {
      "get": {
        "description": "ListRegions",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Provider"
        ],
        "summary": "ListRegions",
        "parameters": [
          {
            "type": "string",
            "description": "provider",
            "name": "provider",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.ListRegionResp"
            }
          }
        }
      },
      "post": {
        "description": "AddRegion",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Provider"
        ],
        "summary": "AddRegion",
        "parameters": [
          {
            "type": "string",
            "description": "provider",
            "name": "provider",
            "in": "path",
            "required": true
          },
          {
            "description": "region",
            "name": "region",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.ProviderRegion"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.ProviderRegion"
            }
          }
        }
      }
    },
    "/api/v1/admin/providers/{provider}/regions/{region_id}": {
      "get": {
        "description": "GetRegionByID",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Provider"
        ],
        "summary": "GetRegionByID",
        "parameters": [
          {
            "type": "string",
            "description": "provider",
            "name": "provider",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "region_id",
            "name": "region_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.ProviderRegion"
            }
          }
        }
      },
      "put": {
        "description": "UpdateRegion",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Provider"
        ],
        "summary": "UpdateRegion",
        "parameters": [
          {
            "type": "string",
            "description": "provider",
            "name": "provider",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "region_id",
            "name": "region_id",
            "in": "path",
            "required": true
          },
          {
            "description": "region",
            "name": "region",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.ProviderRegion"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.ProviderRegion"
            }
          }
        }
      },
      "delete": {
        "description": "DeleteRegion",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "Provider"
        ],
        "summary": "DeleteRegion",
        "parameters": [
          {
            "type": "string",
            "description": "provider",
            "name": "provider",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "region_id",
            "name": "region_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.EmptyResponse"
            }
          }
        }
      }
    },
    "/api/v1/admin/roles": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "ManagementPortalUser"
        ],
        "summary": "ListCentralRoles",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.ListRolesResp"
            }
          }
        }
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "ManagementPortalUser"
        ],
        "summary": "AddCentralRole",
        "parameters": [
          {
            "description": "AddCentralRole",
            "name": "role",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.Role"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.Role"
            }
          }
        }
      }
    },
    "/api/v1/admin/roles/{role_id}": {
      "get": {
        "description": "GetCentralRole",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "ManagementPortalUser"
        ],
        "summary": "GetCentralRole",
        "parameters": [
          {
            "type": "string",
            "description": "role_id",
            "name": "role_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.Role"
            }
          }
        }
      },
      "put": {
        "description": "UpdateCentralRole",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "ManagementPortalUser"
        ],
        "summary": "UpdateCentralRole",
        "parameters": [
          {
            "type": "string",
            "description": "role_id",
            "name": "role_id",
            "in": "path",
            "required": true
          },
          {
            "description": "UpdateCentralRole",
            "name": "role",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.Role"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.Role"
            }
          }
        }
      },
      "delete": {
        "description": "DeleteCentralRole",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "ManagementPortalUser"
        ],
        "summary": "DeleteCentralRole",
        "parameters": [
          {
            "type": "string",
            "description": "role_id",
            "name": "role_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.EmptyResponse"
            }
          }
        }
      }
    },
    "/api/v1/admin/system-settings": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "System"
        ],
        "summary": "GetSystemSettings",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.SystemSettings"
            }
          }
        }
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "System"
        ],
        "summary": "UpdateSystemSettings",
        "parameters": [
          {
            "description": "update system settings",
            "name": "settings",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.SystemSettings"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.SystemSettings"
            }
          }
        }
      }
    },
    "/api/v1/admin/upload": {
      "post": {
        "summary": "UploadFile",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.EmptyResponse"
            }
          }
        }
      }
    },
    "/api/v1/admin/uploaded/{file_path}": {
      "get": {
        "summary": "DownloadFile",
        "responses": {}
      }
    },
    "/api/v1/admin/users": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "ManagementPortalUser"
        ],
        "summary": "ListCentralUsers",
        "parameters": [
          {
            "type": "integer",
            "name": "page",
            "in": "query"
          },
          {
            "type": "integer",
            "name": "per_page",
            "in": "query"
          },
          {
            "type": "string",
            "name": "email",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.ListCentralUsersResp"
            }
          }
        }
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "ManagementPortalUser"
        ],
        "summary": "Add Management Portal User",
        "parameters": [
          {
            "description": "Add management portal user",
            "name": "user",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.CentralUser"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.CentralUser"
            }
          }
        }
      }
    },
    "/api/v1/admin/users/{user_id}": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "ManagementPortalUser"
        ],
        "summary": "Get Management Portal User",
        "parameters": [
          {
            "type": "string",
            "description": "user_id",
            "name": "user_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.CentralUser"
            }
          }
        }
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "ManagementPortalUser"
        ],
        "summary": "Update Management Portal User",
        "parameters": [
          {
            "type": "string",
            "description": "user_id",
            "name": "user_id",
            "in": "path",
            "required": true
          },
          {
            "description": "update management portal user",
            "name": "user",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.CentralUser"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.CentralUser"
            }
          }
        }
      },
      "delete": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "ManagementPortalUser"
        ],
        "summary": "Delete Management Portal User",
        "parameters": [
          {
            "type": "string",
            "description": "user_id",
            "name": "user_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.EmptyResponse"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/packages": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "List Package",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/forms.PackageInfo"
              }
            }
          }
        }
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Create Package",
        "parameters": [
          {
            "description": "Package",
            "name": "Package",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.PackageInfoInput"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.PackageInfo"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/packages/{package_id}": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "List Package",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.PackageInfo"
            }
          }
        }
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Update Package",
        "parameters": [
          {
            "type": "string",
            "description": "package_id",
            "name": "package_id",
            "in": "path",
            "required": true
          },
          {
            "description": "Package",
            "name": "Package",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.PackageInfoInput"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.PackageInfo"
            }
          }
        }
      },
      "delete": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Delete Package",
        "parameters": [
          {
            "type": "string",
            "description": "package_id",
            "name": "package_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.OKType"
            }
          }
        }
      },
      "patch": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Patch Package",
        "parameters": [
          {
            "type": "string",
            "description": "package_id",
            "name": "package_id",
            "in": "path",
            "required": true
          },
          {
            "description": "Package",
            "name": "Package",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.PackageInfoInput"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.PackageInfo"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/binded_packages": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "List Binded Package",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/forms.BindedPackageInfo"
              }
            }
          }
        }
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Bind Package",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          },
          {
            "description": "Package",
            "name": "Package",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.BindedPackageInfoInput"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.BindedPackageInfo"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/binded_packages/{binded_package_id}": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Get Binded Package",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.BindedPackageInfo"
            }
          }
        }
      },
      "delete": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Unbind Package",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.OKType"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/binded_packages/{binded_package_id}/charge_credits": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Charge Credits History",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          },
          {
            "description": "ChargeCredits",
            "name": "ChargeCredits",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.CreditsChargeInfoInput"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.CreditsChargeHistory"
            }
          }
        }
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Charge Credits",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          },
          {
            "description": "ChargeCredits",
            "name": "ChargeCredits",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.CreditsChargeInfoInput"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.BindedPackageInfo"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/binded_packages/{binded_package_id}/discount": {
      "put": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Ubbind Package",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          },
          {
            "description": "Discount",
            "name": "Discount",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.ChangeBindedDiscountInput"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.BindedPackageInfo"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/commitment_invoices": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Create Commitment Invoice",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          },
          {
            "description": "CommitmentInvoiceInput",
            "name": "CommitmentInvoiceInput",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.CommitmentInvoiceInput"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.Invoice"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/costexplorer": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Cost Explorer",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          },
          {
            "description": "Query",
            "name": "Query",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.CostExplorerQuery"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.CostExplorerResult"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/costexplorer/monthly_cost/year/{year}/month/{month}": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Cost Explorer Monthly",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "year",
            "name": "year",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "month",
            "name": "month",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.MonthlycostExplorerResult"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/costexplorer/monthly_cost/year/{year}/month/{month}/export": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/octet-stream"
        ],
        "summary": "Cost Explorer Monthly",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "year",
            "name": "year",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "month",
            "name": "month",
            "in": "path",
            "required": true
          }
        ],
        "responses": {}
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/invoices": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "List Invoices",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/forms.Invoice"
              }
            }
          }
        }
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Create Invoice",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          },
          {
            "description": "CreateInvoiceReq",
            "name": "CreateInvoiceReq",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.CreateInvoiceReq"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.Invoice"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/invoices/{invoice_id}": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Get Invoice",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "invoice_id",
            "name": "invoice_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.Invoice"
            }
          }
        }
      },
      "delete": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Delete Unsent Invoice",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "invoice_id",
            "name": "invoice_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.OKType"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/invoices/{invoice_id}/confirm": {
      "put": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Confirm Invoice",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "invoice_id",
            "name": "invoice_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.Invoice"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/invoices/{invoice_id}/send": {
      "put": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Send Invoice",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "invoice_id",
            "name": "invoice_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.Invoice"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/measures": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Cost Units",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          },
          {
            "description": "Cost",
            "name": "Cost",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.UnitCostsInput"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.UnitCosts"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/measures/dryrun": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Cost Units Dryrun",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          },
          {
            "description": "Cost",
            "name": "Cost",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.UnitCostsInput"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.UnitCosts"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/payments": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "List PaymentMethod",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/forms.PaymentMethod"
              }
            }
          }
        }
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Create PaymentMethod",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          },
          {
            "description": "PaymentMethod",
            "name": "PaymentMethod",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.PaymentMethodInput"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.PaymentMethod"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/payments/stripe/customer": {
      "get": {
        "description": "GetCustomerInfo",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "StripePayment"
        ],
        "summary": "GetCustomerInfo",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.StripeCustomerInfo"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/payments/stripe/invoices": {
      "get": {
        "description": "ListStripeInvoices",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "StripePayment"
        ],
        "summary": "ListStripeInvoices",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/forms.StripeInvoice"
              }
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/payments/stripe/payment_methods": {
      "get": {
        "description": "ListPaymentMethods",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "StripePayment"
        ],
        "summary": "ListPaymentMethods",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/forms.StripePaymentMethod"
              }
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/payments/stripe/payment_methods/{payment_method_id}": {
      "put": {
        "description": "UpdatePaymentMethod",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "StripePayment"
        ],
        "summary": "UpdatePaymentMethod",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "payment_method_id",
            "name": "payment_method_id",
            "in": "path",
            "required": true
          },
          {
            "description": "method",
            "name": "method",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.StripePaymentMethod"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.StripePaymentMethod"
            }
          }
        }
      },
      "delete": {
        "description": "DeletePaymentMethod",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "StripePayment"
        ],
        "summary": "DeletePaymentMethod",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "payment_method_id",
            "name": "payment_method_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.OKType"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/payments/stripe/payment_methods/{payment_method_id}/default": {
      "put": {
        "description": "SetPaymentMethodDefault",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "StripePayment"
        ],
        "summary": "SetPaymentMethodDefault",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          },
          {
            "type": "string",
            "description": "payment_method_id",
            "name": "payment_method_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.OKType"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/payments/stripe/setup_intent": {
      "post": {
        "description": "SetupIntent",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "StripePayment"
        ],
        "summary": "SetupIntent",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.SetupIntent"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/payments/stripe/setup_intent/confirm": {
      "put": {
        "description": "ConfirmIntent",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "tags": [
          "StripePayment"
        ],
        "summary": "ConfirmIntent",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.OKType"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/subcriptions": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "List All Subscription",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/forms.Subscription"
              }
            }
          }
        }
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Create Subscription",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          },
          {
            "description": "Subscription",
            "name": "Subscription",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.SubscriptionInput"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.Subscription"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/subcriptions/{subscription_id}": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Get Subscription",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.Subscription"
            }
          }
        }
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Update Subscription",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          },
          {
            "description": "Subscription",
            "name": "Subscription",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.SubscriptionInput"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.Subscription"
            }
          }
        }
      },
      "delete": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Delete Subscription",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.OKType"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/subcriptions/{subscription_id}/actions/accept": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Accept Subscription",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.OKType"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/subcriptions/{subscription_id}/actions/download": {
      "post": {
        "summary": "Download Subscription",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {}
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/subcriptions/{subscription_id}/actions/reject": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Reject Subscription",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          },
          {
            "description": "SubscriptionChange",
            "name": "SubscriptionChange",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.SubscriptionChange"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.OKType"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/subcriptions/{subscription_id}/actions/submit": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Submit Subscription",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          },
          {
            "description": "SubscriptionChange",
            "name": "SubscriptionChange",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.SubscriptionChange"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.OKType"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/subcriptions/{subscription_id}/actions/suspend": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Suspend Subscription",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          },
          {
            "description": "SubscriptionChange",
            "name": "SubscriptionChange",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.SubscriptionChange"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.OKType"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/tenants/{tenant_id}/submited_subcriptions": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "List Submited Subscription",
        "parameters": [
          {
            "type": "string",
            "description": "tenant_id",
            "name": "tenant_id",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/forms.Subscription"
              }
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/units": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "List Units",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/forms.UnitInfo"
              }
            }
          }
        }
      },
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Create Unit",
        "parameters": [
          {
            "description": "unit",
            "name": "unit",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.UnitInfo"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.UnitInfo"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/units/_bulk": {
      "post": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Bulk CreateOrUpdate Unit",
        "parameters": [
          {
            "description": "units",
            "name": "unit",
            "in": "body",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/forms.UnitInfo"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.OKType"
            }
          }
        }
      }
    },
    "/api/v1/admin/api_proxy/billing/api/v1/billing/units/{unit_key}": {
      "get": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Get Unit",
        "parameters": [
          {
            "type": "string",
            "description": "UnitKey",
            "name": "unit_key",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.UnitInfo"
            }
          }
        }
      },
      "put": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Update Unit",
        "parameters": [
          {
            "type": "string",
            "description": "UnitKey",
            "name": "unit_key",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.UnitInfo"
            }
          }
        }
      },
      "delete": {
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "summary": "Delete Unit",
        "parameters": [
          {
            "type": "string",
            "description": "UnitKey",
            "name": "unit_key",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.OKType"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "forms.AccessLog": {
      "type": "object",
      "properties": {
        "content": {
          "type": "string"
        },
        "happened_on": {
          "type": "integer"
        },
        "id": {
          "type": "string",
          "example": "0"
        },
        "user": {
          "type": "string"
        }
      }
    },
    "forms.AddTrailCredit": {
      "type": "object",
      "properties": {
        "credit_amount": {
          "type": "integer"
        }
      }
    },
    "forms.CalcNodeProfileResp": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer"
        },
        "component_node_profiles": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.NodeProfilesWithComponentType"
          }
        },
        "message": {
          "type": "string"
        }
      }
    },
    "forms.CentralUser": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string"
        },
        "first_name": {
          "type": "string"
        },
        "id": {
          "type": "string",
          "example": "0"
        },
        "last_name": {
          "type": "string"
        },
        "roles": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "forms.CentralUserProfile": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string"
        },
        "id": {
          "type": "string",
          "example": "0"
        },
        "name": {
          "type": "string"
        },
        "roles": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "forms.ClusterTCU": {
      "type": "object",
      "properties": {
        "tcu_number": {
          "type": "integer"
        }
      }
    },
    "forms.ComponentScale": {
      "type": "object",
      "required": [
        "component_type",
        "node_profile_id",
        "replicas"
      ],
      "properties": {
        "component_type": {
          "type": "string"
        },
        "node_profile_id": {
          "type": "string",
          "example": "0"
        },
        "replicas": {
          "type": "integer"
        },
        "storage_size_gi": {
          "type": "integer"
        }
      }
    },
    "forms.CreateAPIKey": {
      "type": "object",
      "properties": {
        "creator_user_id": {
          "type": "string",
          "example": "0"
        },
        "key_name": {
          "type": "string"
        },
        "tenant_id": {
          "type": "string",
          "example": "0"
        }
      }
    },
    "forms.CreateAPIKeyResp": {
      "type": "object",
      "properties": {
        "api_key": {
          "type": "string"
        }
      }
    },
    "forms.CreditsHistoryItem": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "integer"
        },
        "created": {
          "type": "integer"
        }
      }
    },
    "forms.DashboardLink": {
      "type": "object",
      "properties": {
        "link": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "forms.DevTierStats": {
      "type": "object",
      "properties": {
        "aws_active_clusters_count": {
          "type": "integer"
        },
        "gcp_active_clusters_count": {
          "type": "integer"
        }
      }
    },
    "forms.Discount": {
      "type": "object",
      "properties": {
        "discount": {
          "type": "integer"
        }
      }
    },
    "forms.EmptyResponse": {
      "type": "object"
    },
    "forms.EnableDevTier": {
      "type": "object",
      "properties": {
        "enable_on_aws": {
          "type": "boolean"
        },
        "enable_on_gcp": {
          "type": "boolean"
        }
      }
    },
    "forms.GetDashboardLinksResp": {
      "type": "object",
      "properties": {
        "dashboards": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.DashboardLink"
          }
        }
      }
    },
    "forms.GetDashboardStatsResq": {
      "type": "object",
      "properties": {
        "dev_tier": {
          "$ref": "#/definitions/forms.DevTierStats"
        }
      }
    },
    "forms.GlobalDiscount": {
      "type": "object",
      "properties": {
        "discount": {
          "type": "integer"
        }
      }
    },
    "forms.ListAccessLogResp": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.AccessLog"
          }
        },
        "total": {
          "type": "integer"
        }
      }
    },
    "forms.ListCentralUsersResp": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.CentralUser"
          }
        },
        "total": {
          "type": "integer"
        }
      }
    },
    "forms.ListProvidersResp": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.Provider"
          }
        },
        "total": {
          "type": "integer"
        }
      }
    },
    "forms.ListRegionResp": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.ProviderRegion"
          }
        },
        "total": {
          "type": "integer"
        }
      }
    },
    "forms.ListRolesResp": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.Role"
          }
        },
        "total": {
          "type": "integer"
        }
      }
    },
    "forms.ListTenantClusterLifeCycleResp": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.TenantClusterLifecycle"
          }
        },
        "total": {
          "type": "integer"
        }
      }
    },
    "forms.ListTenantClustersResp": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer"
        },
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.TenantCluster"
          }
        },
        "message": {
          "type": "string"
        },
        "total": {
          "type": "integer"
        }
      }
    },
    "forms.ListTenantResp": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.Tenant"
          }
        },
        "total": {
          "type": "integer"
        }
      }
    },
    "forms.ListTenantUsersResp": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.TenantUser"
          }
        },
        "total": {
          "type": "integer"
        }
      }
    },
    "forms.NodeProfile": {
      "type": "object",
      "properties": {
        "default_node_num": {
          "type": "integer"
        },
        "id": {
          "type": "string",
          "example": "0"
        },
        "max_storage_size_gi": {
          "type": "integer"
        },
        "min_storage_size_gi": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "forms.NodeProfileCompute": {
      "type": "object",
      "properties": {
        "cpu": {
          "type": "integer"
        },
        "memory_mi": {
          "type": "integer"
        }
      }
    },
    "forms.NodeProfileOfComponent": {
      "type": "object",
      "properties": {
        "compute": {
          "$ref": "#/definitions/forms.NodeProfileCompute"
        },
        "name": {
          "type": "string"
        },
        "node_profile_id": {
          "type": "string",
          "example": "0"
        },
        "storage_gi": {
          "type": "integer"
        }
      }
    },
    "forms.NodeProfilesWithComponentType": {
      "type": "object",
      "properties": {
        "component_type": {
          "description": "core.proto:ComponentType.string()",
          "type": "string"
        },
        "profiles": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.NodeProfile"
          }
        }
      }
    },
    "forms.PatchTenantReq": {
      "type": "object",
      "properties": {
        "account_manager": {
          "description": "the email address of account manager, must end with @pingcap.com",
          "type": "string"
        },
        "alias": {
          "type": "string"
        },
        "kind": {
          "type": "string"
        }
      }
    },
    "forms.Privilege": {
      "type": "object",
      "required": [
        "operation",
        "resource"
      ],
      "properties": {
        "operation": {
          "type": "string"
        },
        "resource": {
          "type": "string"
        }
      }
    },
    "forms.Provider": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "status": {
          "type": "string"
        }
      }
    },
    "forms.ProviderRegion": {
      "type": "object",
      "properties": {
        "default_backup_time": {
          "type": "string"
        },
        "display_name": {
          "type": "string"
        },
        "id": {
          "type": "string",
          "example": "0"
        },
        "is_public": {
          "type": "boolean"
        },
        "name": {
          "type": "string"
        },
        "opened_org_ids": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "provider": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "zones": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "forms.ReplaceProfileResponse": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer"
        },
        "message": {
          "type": "string"
        },
        "version_id": {
          "type": "integer"
        }
      }
    },
    "forms.Role": {
      "type": "object",
      "required": [
        "name",
        "privileges"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "0"
        },
        "name": {
          "type": "string"
        },
        "privileges": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.Privilege"
          }
        }
      }
    },
    "forms.ScaleComponentReq": {
      "type": "object",
      "required": [
        "components"
      ],
      "properties": {
        "components": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.ComponentScale"
          }
        }
      }
    },
    "forms.SystemSettings": {
      "type": "object",
      "properties": {
        "enable_dev_tier": {
          "$ref": "#/definitions/forms.EnableDevTier"
        }
      }
    },
    "forms.Tenant": {
      "type": "object",
      "properties": {
        "account_manager": {
          "type": "string"
        },
        "alias": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "created_at": {
          "type": "integer"
        },
        "discount": {
          "type": "integer"
        },
        "discount_description": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "has_discount": {
          "type": "boolean"
        },
        "id": {
          "type": "string",
          "example": "0"
        },
        "kind": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "plan": {
          "type": "string"
        },
        "remaining_credit": {
          "type": "integer"
        },
        "status": {
          "type": "string"
        },
        "third_party_account_code": {
          "type": "string"
        },
        "third_party_account_provider": {
          "type": "string"
        },
        "timezone": {
          "type": "integer"
        },
        "total_credit": {
          "type": "integer"
        }
      }
    },
    "forms.TenantCluster": {
      "type": "object",
      "properties": {
        "create_time": {
          "type": "integer"
        },
        "cross_account_deployment_id": {
          "type": "string",
          "example": "0"
        },
        "id": {
          "type": "string",
          "example": "0"
        },
        "is_dev_tier": {
          "type": "boolean"
        },
        "name": {
          "type": "string"
        },
        "profile": {
          "type": "string"
        },
        "project_id": {
          "type": "string",
          "example": "0"
        },
        "project_name": {
          "type": "string"
        },
        "provider": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "tenant_components": {
          "$ref": "#/definitions/forms.TenantComponents"
        },
        "version": {
          "type": "string"
        }
      }
    },
    "forms.TenantClusterLifecycle": {
      "type": "object",
      "properties": {
        "created_at": {
          "type": "integer"
        },
        "deleted_at": {
          "type": "integer"
        },
        "id": {
          "type": "string",
          "example": "0"
        },
        "project_id": {
          "type": "string",
          "example": "0"
        }
      }
    },
    "forms.TenantComponent": {
      "type": "object",
      "properties": {
        "machineType": {
          "description": "TODO(chenfei): remove. used by gitops to overlay configuration for component for now",
          "type": "string"
        },
        "node_profile": {
          "$ref": "#/definitions/forms.NodeProfileOfComponent"
        },
        "replicas": {
          "type": "integer"
        }
      }
    },
    "forms.TenantComponents": {
      "type": "object",
      "properties": {
        "pd": {
          "$ref": "#/definitions/forms.TenantComponent"
        },
        "tidb": {
          "$ref": "#/definitions/forms.TenantComponent"
        },
        "tiflash": {
          "$ref": "#/definitions/forms.TenantComponent"
        },
        "tikv": {
          "$ref": "#/definitions/forms.TenantComponent"
        }
      }
    },
    "forms.TenantCreditsHistory": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "integer"
        },
        "history": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.CreditsHistoryItem"
          }
        }
      }
    },
    "forms.TenantRemaingCredits": {
      "type": "object",
      "properties": {
        "remaining_credit": {
          "type": "integer"
        }
      }
    },
    "forms.TenantUser": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string"
        },
        "first_name": {
          "type": "string"
        },
        "id": {
          "type": "string",
          "example": "0"
        },
        "last_name": {
          "type": "string"
        },
        "org_id": {
          "type": "string",
          "example": "0"
        },
        "role": {
          "type": "string"
        },
        "roles": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "status": {
          "type": "string"
        }
      }
    },
    "forms.UpdateOrgPocStatusReq": {
      "type": "object",
      "properties": {
        "approve": {
          "type": "boolean"
        },
        "org_id": {
          "type": "string",
          "example": "0"
        }
      }
    },
    "forms.Address": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "line1": {
          "type": "string"
        },
        "line2": {
          "type": "string"
        },
        "postal_code": {
          "type": "string"
        },
        "state": {
          "type": "string"
        }
      }
    },
    "forms.BillingDetails": {
      "type": "object",
      "properties": {
        "address": {
          "$ref": "#/definitions/forms.Address"
        },
        "email": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "phone": {
          "type": "string"
        }
      }
    },
    "forms.BindedPackageInfo": {
      "type": "object",
      "properties": {
        "binded_discount": {
          "type": "number"
        },
        "binded_package_id": {
          "type": "integer"
        },
        "package_id": {
          "type": "integer"
        },
        "package_info": {
          "$ref": "#/definitions/forms.PackageInfo"
        },
        "remaining_credits": {
          "type": "number"
        },
        "status": {
          "type": "string"
        },
        "tenant_id": {
          "type": "integer"
        }
      }
    },
    "forms.BindedPackageInfoInput": {
      "type": "object",
      "properties": {
        "package_id": {
          "type": "integer"
        }
      }
    },
    "forms.Card": {
      "type": "object",
      "properties": {
        "brand": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "exp_month": {
          "type": "string",
          "example": "0"
        },
        "exp_year": {
          "type": "string",
          "example": "0"
        },
        "fingerprint": {
          "type": "string"
        },
        "funding": {
          "type": "string"
        },
        "last4": {
          "type": "string"
        }
      }
    },
    "forms.CategoryCosts": {
      "type": "object",
      "properties": {
        "category_unit_costs": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/forms.Price"
          }
        },
        "cost_price": {
          "type": "number"
        },
        "raw_price": {
          "type": "number"
        },
        "unit_costs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.UnitCosts"
          }
        }
      }
    },
    "forms.ChangeBindedDiscountInput": {
      "type": "object",
      "properties": {
        "binded_discount": {
          "type": "number"
        },
        "change_reason": {
          "type": "string"
        },
        "changer_tenant_id": {
          "type": "integer"
        },
        "changer_user_id": {
          "type": "integer"
        }
      }
    },
    "forms.CommitmentInvoiceInput": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "number"
        },
        "owner": {
          "type": "string"
        },
        "time": {
          "type": "string"
        }
      }
    },
    "forms.CostExplorerQuery": {
      "type": "object",
      "properties": {
        "end_date": {
          "type": "string"
        },
        "invoice_id": {
          "type": "integer"
        },
        "start_date": {
          "type": "string"
        }
      }
    },
    "forms.CostExplorerResult": {
      "type": "object",
      "properties": {
        "binded_invoice_costs": {
          "$ref": "#/definitions/forms.Costs"
        },
        "credits_costs": {
          "$ref": "#/definitions/forms.Costs"
        },
        "invoice_costs": {
          "$ref": "#/definitions/forms.Costs"
        },
        "unbind_invoice_costs": {
          "$ref": "#/definitions/forms.Costs"
        }
      }
    },
    "forms.Costs": {
      "type": "object",
      "properties": {
        "category_unit_costs": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/forms.Price"
          }
        },
        "cost_price": {
          "type": "number"
        },
        "label_unit_costs": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/forms.LabelCosts"
          }
        },
        "raw_price": {
          "type": "number"
        },
        "unit_costs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.UnitCosts"
          }
        }
      }
    },
    "forms.CreateInvoiceReq": {
      "type": "object",
      "properties": {
        "start_date": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      }
    },
    "forms.CreditsChargeHistory": {
      "type": "object",
      "properties": {
        "binded_package_id": {
          "type": "integer"
        },
        "history": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.CreditsChargeInfo"
          }
        },
        "total_amounts": {
          "type": "number"
        }
      }
    },
    "forms.CreditsChargeInfo": {
      "type": "object",
      "properties": {
        "binded_package_id": {
          "type": "integer"
        },
        "charge_count": {
          "type": "number"
        },
        "charge_reason": {
          "type": "string"
        },
        "charge_time": {
          "type": "string"
        },
        "charger_tenant_id": {
          "type": "integer"
        },
        "charger_user_id": {
          "type": "integer"
        }
      }
    },
    "forms.CreditsChargeInfoInput": {
      "type": "object",
      "properties": {
        "charge_count": {
          "type": "number"
        },
        "charge_reason": {
          "type": "string"
        },
        "charger_tenant_id": {
          "type": "integer"
        },
        "charger_user_id": {
          "type": "integer"
        }
      }
    },
    "forms.ExpressionLabel": {
      "type": "object",
      "properties": {
        "label": {
          "type": "string"
        },
        "operator": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      }
    },
    "forms.Invoice": {
      "type": "object",
      "properties": {
        "category_unit_costs": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/forms.Price"
          }
        },
        "cost_price": {
          "type": "number"
        },
        "end_date": {
          "type": "string"
        },
        "invoice_id": {
          "type": "integer"
        },
        "label_unit_costs": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/forms.LabelCosts"
          }
        },
        "raw_price": {
          "type": "number"
        },
        "start_date": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "tenant_id": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        },
        "unit_costs": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.UnitCosts"
          }
        }
      }
    },
    "forms.LabelCosts": {
      "type": "object",
      "additionalProperties": {
        "$ref": "#/definitions/forms.CategoryCosts"
      }
    },
    "forms.MonthlycostExplorerResult": {
      "type": "object",
      "properties": {
        "binded_invoice_costs": {
          "$ref": "#/definitions/forms.Costs"
        },
        "credits_costs": {
          "$ref": "#/definitions/forms.Costs"
        },
        "invoice_costs": {
          "$ref": "#/definitions/forms.Costs"
        },
        "invoice_generated": {
          "type": "boolean"
        },
        "unbind_invoice_costs": {
          "$ref": "#/definitions/forms.Costs"
        }
      }
    },
    "forms.OKType": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "example": "ok"
        }
      }
    },
    "forms.PackageInfo": {
      "type": "object",
      "properties": {
        "credits": {
          "type": "number"
        },
        "credits_enable": {
          "type": "boolean"
        },
        "credits_only": {
          "type": "boolean"
        },
        "description": {
          "type": "string"
        },
        "discount": {
          "description": "no need unit count for now, only pay for need\nUnitCount   []UnitCount",
          "type": "number"
        },
        "expression_labels": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.ExpressionLabel"
          }
        },
        "extra_pricing_infos": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.PricingInfo"
          }
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "package_id": {
          "type": "integer"
        },
        "tenant_max_binded_times": {
          "type": "integer"
        },
        "unit_prices": {
          "$ref": "#/definitions/forms.UnitPrices"
        },
        "version": {
          "type": "integer"
        }
      }
    },
    "forms.PackageInfoInput": {
      "type": "object",
      "properties": {
        "credits": {
          "type": "number"
        },
        "credits_enable": {
          "type": "boolean"
        },
        "credits_only": {
          "type": "boolean"
        },
        "description": {
          "type": "string"
        },
        "discount": {
          "type": "number"
        },
        "expression_labels": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.ExpressionLabel"
          }
        },
        "extra_pricing_infos": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.PricingInfo"
          }
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "tenant_max_binded_times": {
          "type": "integer"
        },
        "unit_prices": {
          "$ref": "#/definitions/forms.UnitPrices"
        }
      }
    },
    "forms.PaymentMethod": {
      "type": "object",
      "properties": {
        "payable": {
          "type": "boolean"
        },
        "payment_code": {
          "type": "string"
        },
        "payment_method_id": {
          "type": "integer"
        },
        "payment_type": {
          "type": "string"
        },
        "tenant_id": {
          "type": "integer"
        }
      }
    },
    "forms.PaymentMethodInput": {
      "type": "object",
      "properties": {
        "payment_type": {
          "type": "string"
        }
      }
    },
    "forms.Price": {
      "type": "object",
      "properties": {
        "cost_price": {
          "type": "number"
        },
        "raw_price": {
          "type": "number"
        }
      }
    },
    "forms.PricingInfo": {
      "type": "object",
      "properties": {
        "discount": {
          "type": "number"
        },
        "expression_labels": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.ExpressionLabel"
          }
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "unit_prices": {
          "$ref": "#/definitions/forms.UnitPrices"
        }
      }
    },
    "forms.SetupIntent": {
      "type": "object",
      "properties": {
        "client_secret": {
          "type": "string"
        },
        "public_key": {
          "type": "string"
        }
      }
    },
    "forms.StripeCustomerInfo": {
      "type": "object",
      "properties": {
        "address": {
          "$ref": "#/definitions/forms.Address"
        },
        "dbaas_id": {
          "type": "string"
        },
        "default_source": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "forms.StripeInvoice": {
      "type": "object",
      "properties": {
        "amount_due": {
          "type": "string",
          "example": "0"
        },
        "amount_paid": {
          "type": "string",
          "example": "0"
        },
        "created": {
          "type": "string",
          "example": "0"
        },
        "credit_used": {
          "type": "string",
          "example": "0"
        },
        "currency": {
          "type": "string"
        },
        "due_date": {
          "type": "string",
          "example": "0"
        },
        "id": {
          "type": "string"
        },
        "invoice_pdf": {
          "type": "string"
        },
        "number": {
          "type": "string"
        },
        "paid": {
          "type": "boolean"
        },
        "status": {
          "type": "string"
        },
        "total": {
          "type": "string",
          "example": "0"
        }
      }
    },
    "forms.StripePaymentMethod": {
      "type": "object",
      "properties": {
        "billing_details": {
          "$ref": "#/definitions/forms.BillingDetails"
        },
        "card": {
          "$ref": "#/definitions/forms.Card"
        },
        "id": {
          "type": "string"
        }
      }
    },
    "forms.Subscription": {
      "type": "object",
      "properties": {
        "accepted_date": {
          "type": "string"
        },
        "accepted_user": {
          "type": "string"
        },
        "contract_email": {
          "type": "string"
        },
        "file_path": {
          "type": "string"
        },
        "rejected_date": {
          "type": "string"
        },
        "rejected_user": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "subscription_id": {
          "type": "integer"
        },
        "tenant_id": {
          "type": "integer"
        }
      }
    },
    "forms.SubscriptionChange": {
      "type": "object",
      "properties": {
        "change_user": {
          "type": "string"
        }
      }
    },
    "forms.SubscriptionInput": {
      "type": "object",
      "properties": {
        "contract_email": {
          "type": "string"
        },
        "file_path": {
          "type": "string"
        }
      }
    },
    "forms.UnitCosts": {
      "type": "object",
      "properties": {
        "binded_package_id": {
          "type": "integer"
        },
        "consumed_source": {
          "type": "string"
        },
        "cost": {
          "type": "integer"
        },
        "cost_id": {
          "type": "string"
        },
        "cost_time_stamp": {
          "type": "integer"
        },
        "invoice_id": {
          "type": "integer"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "package_id": {
          "type": "integer"
        },
        "package_version": {
          "type": "integer"
        },
        "price": {
          "type": "number"
        },
        "raw_price": {
          "type": "number"
        },
        "unit": {
          "type": "string"
        }
      }
    },
    "forms.UnitCostsInput": {
      "type": "object",
      "properties": {
        "cost": {
          "type": "integer"
        },
        "cost_id": {
          "description": "optional",
          "type": "string"
        },
        "cost_time_stamp": {
          "type": "integer"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "unit": {
          "type": "string"
        }
      }
    },
    "forms.UnitInfo": {
      "type": "object",
      "properties": {
        "category": {
          "description": "optional",
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "unit": {
          "type": "string",
          "minLength": 1
        }
      }
    },
    "forms.UnitPrice": {
      "type": "object",
      "properties": {
        "multiple_factor_label": {
          "type": "string"
        },
        "multiple_factor_threshold": {
          "type": "integer"
        },
        "price": {
          "type": "number"
        },
        "unit": {
          "type": "string"
        }
      }
    },
    "forms.UnitPrices": {
      "type": "object",
      "additionalProperties": {
        "$ref": "#/definitions/forms.UnitPrice"
      }
    }
  }
}