{
  "swagger": "2.0",
  "info": {
    "description": "This is a billing system server for TiDB Cloud Partners.",
    "title": "Partner OPENAPI",
    "contact": {},
    "version": "v1beta1"
  },
  "host": "tcpn.tidbapi.com",
  "basePath": "/api/v1/devops/billing-proxy/api/v1/billing",
  "paths": {
    "/billingProfile": {
      "get": {
        "description": "Get Org Billing Profile",
        "produces": ["application/json"],
        "tags": ["Partners"],
        "summary": "Get Org Billing Profile",
        "operationId": "Billing_GetOrgBillingProfile",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "accessOrgId",
            "in": "query",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.BillingProfileForOpenAPI"
            }
          }
        }
      },
      "patch": {
        "description": "Update Org Billing Profile",
        "produces": ["application/json"],
        "tags": ["Partners"],
        "summary": "Update Org Billing Profile",
        "operationId": "Billing_UpdateOrgBillingProfile",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "accessOrgId",
            "in": "query",
            "required": true
          },
          {
            "description": "billing profile",
            "name": "billingProfile",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.BillingProfileForOpenAPI"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.BillingProfileForOpenAPI"
            }
          }
        }
      }
    },
    "/bills/{billedMonth}": {
      "get": {
        "description": "This endpoint retrieves the bill for the given month of a specific organization. You can query a bill up to 6 months prior to the current month. The bill is returned in JSON format.To use this resource, the requesting API Key must have the Organization Billing Admin or Organization Owner role.",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["Partners"],
        "summary": "Return organization monthly bills",
        "operationId": "Billing_GetPartnerBills",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "accessOrgId",
            "in": "query",
            "required": true
          },
          {
            "type": "string",
            "description": "The month of this bill happens for the specified organization, format is YYYY-MM, for example '2023-08'.",
            "name": "billedMonth",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.PartnerBillsExplorer"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/billing_errors.BaseError"
            }
          }
        }
      }
    },
    "/billsCostExplorer": {
      "post": {
        "description": "This endpoint executes a cost explorer query and returns the usage details. Cost Explorer query:",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["Partners"],
        "summary": "Return the usage details according to a cost explorer query",
        "operationId": "Billing_PartnerTrendsOpenAPI",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "accessOrgId",
            "in": "query",
            "required": true
          },
          {
            "description": "args",
            "name": "args",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.PartnerTrendsInput"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.PartnerBillsCostExplorer"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/billing_errors.BaseError"
            }
          }
        }
      }
    },
    "/billsCostExplorerArgs": {
      "get": {
        "description": "This endpoint retrieves the basic info for a specific organization, including service info, cloud provider info, project info, and cluster info.",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["Partners"],
        "summary": "Return basic info of a specific organization, which contains the key info to execute a cost explorer query",
        "operationId": "Billing_GetPartnerTrendsArgs",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "accessOrgId",
            "in": "query",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.PartnerTrendsArgs"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/billing_errors.BaseError"
            }
          }
        }
      }
    },
    "/billsDetails/{billedMonth}": {
      "get": {
        "description": "This endpoint retrieves the bill for the given month of a specific organization with daily usage details. You can query a bill up to 6 months prior to the current month. The bill is returned in JSON format. To use this resource, the requesting API Key must have the Organization Billing Admin or Organization Owner role.",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["Partners"],
        "summary": "Return the monthly bill of the organization with daily usage details",
        "operationId": "Billing_GetPartnerBillsDetails",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "accessOrgId",
            "in": "query",
            "required": true
          },
          {
            "type": "string",
            "description": "The month of this bill happens for the specified organization. The format is `YYYY-MM`, for example '2024-05'.",
            "name": "billedMonth",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.PartnerBillsDetails"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/billing_errors.BaseError"
            }
          }
        }
      }
    },
    "/boundSupportPlans": {
      "get": {
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["Partners"],
        "summary": "Get Org Active Support Plan",
        "operationId": "Billing_GetOrgActiveSupportPlanForOpenAPI",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "accessOrgId",
            "in": "query",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.OrgSupportPlanForOpenAPI"
            }
          }
        }
      }
    },
    "/budgets": {
      "get": {
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["Partners"],
        "summary": "List Org Budgets",
        "operationId": "Billing_ListOrgBudgets",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "accessOrgId",
            "in": "query",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/forms.BudgetForOpenAPI"
              }
            }
          }
        }
      },
      "post": {
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["Partners"],
        "summary": "Create Budget",
        "operationId": "Billing_CreateBudget",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "accessOrgId",
            "in": "query",
            "required": true
          },
          {
            "description": "budget",
            "name": "budget",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.BudgetForOpenAPI"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.BudgetForOpenAPI"
            }
          }
        }
      }
    },
    "/budgets/{budgetId}": {
      "get": {
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["Partners"],
        "summary": "Get Budget",
        "operationId": "Billing_GetBudget",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "accessOrgId",
            "in": "query",
            "required": true
          },
          {
            "type": "string",
            "description": "budget id",
            "name": "budgetId",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.BudgetForOpenAPI"
            }
          }
        }
      },
      "delete": {
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["Partners"],
        "summary": "Delete Budget",
        "operationId": "Billing_DeleteBudget",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "accessOrgId",
            "in": "query",
            "required": true
          },
          {
            "type": "string",
            "description": "budget id",
            "name": "budgetId",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.OKType"
            }
          }
        }
      },
      "patch": {
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["Partners"],
        "summary": "Update Budget",
        "operationId": "Billing_UpdateBudget",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "accessOrgId",
            "in": "query",
            "required": true
          },
          {
            "type": "string",
            "description": "budget id",
            "name": "budgetId",
            "in": "path",
            "required": true
          },
          {
            "description": "budget",
            "name": "budget",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.BudgetForOpenAPI"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.BudgetForOpenAPI"
            }
          }
        }
      }
    },
    "/credits": {
      "get": {
        "description": "List Credits",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["Partners"],
        "summary": "List Credits",
        "operationId": "Billing_ListCredits",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "accessOrgId",
            "in": "query",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/forms.CreditsForOpenAPI"
              }
            }
          }
        }
      }
    },
    "/discounts": {
      "get": {
        "description": "List Discounts",
        "produces": ["application/json"],
        "tags": ["Partners"],
        "summary": "List Discounts",
        "operationId": "Billing_ListDiscounts",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "accessOrgId",
            "in": "query",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/forms.DiscountForOpenAPI"
              }
            }
          }
        }
      }
    },
    "/partnerConfigs": {
      "get": {
        "description": "This endpoint retrieves the partner configs for a specific MSP.",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["Partners"],
        "summary": "Return Partner Configs for a Partner",
        "operationId": "Billing_GetPartnerConfigs",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "accessOrgId",
            "in": "query",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.PartnerConfigs"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/billing_errors.BaseError"
            }
          }
        }
      },
      "patch": {
        "description": "This endpoint retrieves the partner configs for a specific MSP.",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["Partners"],
        "summary": "Return Partner Configs for a Partner",
        "operationId": "Billing_UpdatePartnerConfigs",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "accessOrgId",
            "in": "query",
            "required": true
          },
          {
            "description": "partner_configs",
            "name": "partnerConfigs",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.PartnerConfigs"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.PartnerConfigs"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/billing_errors.BaseError"
            }
          }
        }
      }
    },
    "/payments": {
      "get": {
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["Partners"],
        "summary": "Get Active PaymentMethod",
        "operationId": "Billing_GetPartnerPayment",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "accessOrgId",
            "in": "query",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/forms.PaymentForOpenAPI"
            }
          }
        }
      }
    },
    "/publicSupportPlans": {
      "get": {
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "tags": ["Partners"],
        "summary": "List Public Support Plans",
        "operationId": "Billing_ListPublicSupportPlans",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "accessOrgId",
            "in": "query",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/forms.SupportPlanForOpenAPI"
              }
            }
          }
        }
      }
    },
    "/billsCostExplorer/export": {
      "post": {
        "description": "This endpoint executes a cost explorer query and returns the usage details. Cost explorer query:\n1. Allow users to group costs by category\n2. Allow users to focus on a specific cost item by filter\n3. Allow users to query cost in the specific time range",
        "consumes": ["application/json"],
        "produces": ["application/json", "text/csv"],
        "tags": ["PartnerPrivateAPI"],
        "summary": "Get the usage details according to a cost explorer query",
        "operationId": "TCPN_GetPartnerTrendsCSV",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "accessOrgId",
            "in": "query",
            "required": true
          },
          {
            "type": "boolean",
            "description": "withDiscountsAndCredits",
            "name": "withDiscountsAndCredits",
            "in": "query",
            "required": true
          },
          {
            "description": "Query arguments",
            "name": "args",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/forms.PartnerTrendsInput"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/billing_errors.BaseError"
            }
          }
        }
      }
    },
    "/billsDetails/{billedMonth}/export": {
      "get": {
        "description": "Export Usage CSV",
        "consumes": ["application/json"],
        "produces": ["application/json", "text/csv"],
        "tags": ["PartnerPrivateAPI"],
        "summary": "Export Usage CSV",
        "operationId": "TCPN_ExportUsageCSV",
        "parameters": [
          {
            "type": "string",
            "description": "org_id",
            "name": "accessOrgId",
            "in": "query",
            "required": true
          },
          {
            "type": "string",
            "description": "The month of this bill happens for the specified organization, in the format of `YYYY-MM`. For example `2024-08`.",
            "name": "billedMonth",
            "in": "path",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/billing_errors.BaseError"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "billing_errors.BaseError": {
      "type": "object",
      "properties": {
        "code": {
          "type": "string"
        },
        "error": {},
        "msgPrefix": {
          "type": "string"
        },
        "status": {
          "type": "integer"
        }
      }
    },
    "forms.BillingProfileForOpenAPI": {
      "type": "object",
      "properties": {
        "billingEmail": {
          "description": "Email address to receive invoices (valid only for credit card payments).",
          "type": "string",
          "example": "example@tidbcloud.com"
        },
        "city": {
          "description": "The city full name of billing address.",
          "type": "string"
        },
        "companyName": {
          "description": "The company name that needs to be shown on the invoice (valid only for credit card payments).",
          "type": "string",
          "example": "PingCAP Inc."
        },
        "countryCode": {
          "description": "Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).",
          "type": "string",
          "example": "US"
        },
        "line1": {
          "description": "The detailed billing address.",
          "type": "string"
        },
        "line2": {
          "description": "The detailed billing address.",
          "type": "string"
        },
        "postalCode": {
          "description": "The postal code of the billing address.",
          "type": "string",
          "example": "000000"
        },
        "state": {
          "description": "[ISO 3166-2 subdivision code](https://en.wikipedia.org/wiki/ISO_3166-2:US), without country prefix. For example, \"NY\" for New York, United States.",
          "type": "string",
          "example": "CA"
        },
        "taxId": {
          "description": "The tax id of billing entity (reference: https://docs.stripe.com/billing/customer/tax-ids#supported-tax-id).",
          "type": "string"
        },
        "taxIdType": {
          "description": "The tax id type of billing entity (reference: https://docs.stripe.com/billing/customer/tax-ids#supported-tax-id).",
          "allOf": [
            {
              "$ref": "#/definitions/forms.TaxIDType"
            }
          ]
        }
      }
    },
    "forms.BillsOtherName": {
      "type": "object",
      "properties": {
        "chargeName": {
          "type": "string",
          "example": "Support Plan"
        },
        "credits": {
          "description": "The total credits held by the organization in this bill. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "discounts": {
          "description": "The total amount of discounts applied to this bill. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "runningTotal": {
          "description": "The sum of services that the specified organization has consumed during this bill period. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "totalCost": {
          "description": "The total amount that the specified organization should pay for this bill. The value of this field is expressed in cents (100ths of one US Dollar).\n`total_cost` = `running_total` - `discounts` - `credits`.",
          "type": "string",
          "example": "0.00"
        }
      }
    },
    "forms.BillsOverview": {
      "type": "object",
      "properties": {
        "billedMonth": {
          "description": "The month in which this bill is generated for the specified organization.",
          "type": "string",
          "example": "2023-09"
        },
        "credits": {
          "description": "The total credits held by the organization in this bill. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "discounts": {
          "description": "The total amount of discounts applied to this bill. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "runningTotal": {
          "description": "The sum of services that the specified organization has consumed during this bill period. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "totalCost": {
          "description": "The total amount that the specified organization should pay for this bill. The value of this field is expressed in cents (100ths of one US Dollar).\n`total_cost` = `running_total` - `discounts` - `credits`.",
          "type": "string",
          "example": "0.00"
        }
      }
    },
    "forms.BillsProjects": {
      "type": "object",
      "properties": {
        "credits": {
          "description": "The total credits held by the organization in this bill. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "discounts": {
          "description": "The total amount of discounts applied to this bill. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "projectName": {
          "description": "The name of a project in the specified organization.",
          "type": "string",
          "example": "prod-project"
        },
        "runningTotal": {
          "description": "The sum of services that the specified organization has consumed during this bill period. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "totalCost": {
          "description": "The total amount that the specified organization should pay for this bill. The value of this field is expressed in cents (100ths of one US Dollar).\n`total_cost` = `running_total` - `discounts` - `credits`.",
          "type": "string",
          "example": "0.00"
        }
      }
    },
    "forms.BillsServiceCosts": {
      "type": "object",
      "properties": {
        "credits": {
          "description": "The total credits held by the organization in this bill. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "discounts": {
          "description": "The total amount of discounts applied to this bill. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "runningTotal": {
          "description": "The sum of services that the specified organization has consumed during this bill period. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "serviceCosts": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.BillsServiceCosts"
          }
        },
        "serviceName": {
          "description": "The name of services provided by TiDB Cloud.",
          "type": "string",
          "example": "TiDB Dedicated"
        },
        "totalCost": {
          "description": "The total amount that the specified organization should pay for this bill. The value of this field is expressed in cents (100ths of one US Dollar).\n`total_cost` = `running_total` - `discounts` - `credits`.",
          "type": "string",
          "example": "0.00"
        }
      }
    },
    "forms.BudgetCostType": {
      "type": "string",
      "enum": ["total", "invoice"],
      "x-enum-varnames": ["BudgetCostType_Total", "BudgetCostType_Invoice"]
    },
    "forms.BudgetForOpenAPI": {
      "type": "object",
      "properties": {
        "applyCredits": {
          "description": "Whether to deduct credits when calculating cost(valid for CostType=`total` only)/",
          "type": "boolean"
        },
        "applyDiscounts": {
          "description": "Whether to deduct discounts when calculating cost(valid for CostType=`total` only).",
          "type": "boolean"
        },
        "bizType": {
          "description": "The Budget BizType, you can create `budget_alert` only by API.",
          "type": "string"
        },
        "budgetId": {
          "description": "An ID refer a specific budget",
          "type": "string",
          "example": "0"
        },
        "budgetInterval": {
          "description": "The budget interval.",
          "allOf": [
            {
              "$ref": "#/definitions/forms.BudgetInterval"
            }
          ]
        },
        "cost": {
          "description": "The Cost of the budget.",
          "type": "string"
        },
        "costType": {
          "description": "The budget cost, `total` stands the total cost and `invoice` stands the bills you need pay.",
          "allOf": [
            {
              "$ref": "#/definitions/forms.BudgetCostType"
            }
          ]
        },
        "enableEmailNotification": {
          "description": "Whether to send an email notification when the threshold is reached.",
          "type": "boolean"
        },
        "limit": {
          "description": "The Limit of the budget.",
          "type": "string"
        },
        "name": {
          "description": "The Budget Name",
          "type": "string"
        },
        "rangId": {
          "description": "The ID of the entity you specified.",
          "type": "string",
          "example": "0"
        },
        "rangeType": {
          "description": "The Budget Range Type, You can specify an organization (tenant), a project or a customer (only for partners), but you cannot specify a cluster.",
          "allOf": [
            {
              "$ref": "#/definitions/forms.BudgetRangeType"
            }
          ]
        },
        "thresholds": {
          "description": "The Budget Thresholds, must specify one and can specify up to five",
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.BudgetThreshold"
          }
        }
      }
    },
    "forms.BudgetInterval": {
      "type": "string",
      "enum": ["monthly"],
      "x-enum-varnames": ["BudgetInterval_Monthly"]
    },
    "forms.BudgetRangeType": {
      "type": "string",
      "enum": ["tenant", "project", "cluster", "customer"],
      "x-enum-varnames": [
        "BudgetRangeType_Tenant",
        "BudgetRangeType_Project",
        "BudgetRangeType_Cluster",
        "BudgetRangeType_Customer"
      ]
    },
    "forms.BudgetThreshold": {
      "type": "object",
      "properties": {
        "proportion": {
          "description": "The Budget Threshold, 0.3 means that the cost reached 30% of Limit, we will trigger the action you specified, such as email notification",
          "type": "string",
          "example": "0.3"
        }
      }
    },
    "forms.ClusterOpenAPI": {
      "type": "object",
      "properties": {
        "ProjectID": {
          "type": "string",
          "example": "0"
        },
        "id": {
          "type": "string",
          "example": "0"
        },
        "name": {
          "type": "string"
        },
        "regionName": {
          "type": "string"
        },
        "status": {
          "type": "string"
        }
      }
    },
    "forms.CostExplorerProvider": {
      "type": "object",
      "properties": {
        "name": {
          "description": "Name of Cloud provider.",
          "type": "string"
        },
        "regions": {
          "description": "Name of region.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "forms.CostExplorerService": {
      "type": "object",
      "properties": {
        "category": {
          "description": "2nd level of service.",
          "type": "string"
        },
        "component": {
          "description": "3rd level of service.",
          "type": "string"
        },
        "product": {
          "description": "1st level of service.",
          "type": "string"
        },
        "service": {
          "type": "string"
        }
      }
    },
    "forms.CostExplorerTrendsBreakdownKey": {
      "type": "string",
      "enum": [
        "service",
        "product",
        "project",
        "cluster",
        "provider",
        "region",
        "customer"
      ],
      "x-enum-varnames": [
        "CostExploreTrendsBreakdownKeyService",
        "CostExploreTrendsBreakdownKeyProduct",
        "CostExploreTrendsBreakdownKeyProject",
        "CostExploreTrendsBreakdownKeyCluster",
        "CostExploreTrendsBreakdownKeyProvider",
        "CostExploreTrendsBreakdownKeyRegion",
        "CostExploreTrendsBreakdownKeyCustomer"
      ]
    },
    "forms.CostExplorerTrendsTimeGroup": {
      "type": "string",
      "enum": ["day", "month", "total"],
      "x-enum-varnames": [
        "CostExploreTrendsTimeGroupDay",
        "CostExploreTrendsTimeGroupMonth",
        "CostExploreTrendsTimeGroupTotal"
      ]
    },
    "forms.CreditsForOpenAPI": {
      "type": "object",
      "properties": {
        "credit": {
          "description": "The total amount of credit.",
          "type": "string",
          "example": "1000.00"
        },
        "creditCode": {
          "type": "string",
          "example": "498c7f44-656f-4944-b455-0695faa5d4f9"
        },
        "customers": {
          "description": "The credits can only apply on the costs from the specific customers, `empty` means no restrictions",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "expiryDate": {
          "description": "Expired date of a credit.",
          "type": "string",
          "example": "2023-12-01T00:00:00Z"
        },
        "provider": {
          "description": "The credits can only apply on the costs from the specific provider, `all` means no restrictions",
          "type": "string",
          "example": "all"
        },
        "remainingCredit": {
          "description": "The remaining amount of a credit.",
          "type": "string",
          "example": "1000.00"
        },
        "services": {
          "description": "The service to which a credit is applicable.",
          "type": "string",
          "example": "General Product"
        },
        "startDate": {
          "description": "Effective start date of a credit.",
          "type": "string",
          "example": "2023-11-01T00:00:00Z"
        },
        "status": {
          "description": "The status of a credit.",
          "allOf": [
            {
              "$ref": "#/definitions/forms.CreditsState"
            }
          ],
          "example": "active"
        }
      }
    },
    "forms.CreditsState": {
      "type": "string",
      "enum": ["active", "inactive", "before_active"],
      "x-enum-varnames": [
        "CreditsState_Active",
        "CreditsState_Inactive",
        "CreditsState_BeforeActive"
      ]
    },
    "forms.Customer": {
      "type": "object",
      "properties": {
        "id": {
          "description": "The customer id.",
          "type": "string"
        },
        "name": {
          "description": "The customer name.",
          "type": "string",
          "example": "PingCAP"
        }
      }
    },
    "forms.CustomerBills": {
      "type": "object",
      "properties": {
        "credits": {
          "description": "The total credits held by the organization in this bill. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "customerName": {
          "description": "The customer name.",
          "type": "string",
          "example": "PingCAP"
        },
        "discounts": {
          "description": "The total amount of discounts applied to this bill. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "runningTotal": {
          "description": "The sum of services that the specified organization has consumed during this bill period. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "totalCost": {
          "description": "The total amount that the specified organization should pay for this bill. The value of this field is expressed in cents (100ths of one US Dollar).\n`total_cost` = `running_total` - `discounts` - `credits`.",
          "type": "string",
          "example": "0.00"
        }
      }
    },
    "forms.DiscountForOpenAPI": {
      "type": "object",
      "properties": {
        "customers": {
          "description": "The discount can only apply on the costs from the specific customers, `empty` means no restrictions",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "description": {
          "description": "The description of a discount.",
          "type": "string"
        },
        "discountCode": {
          "description": "The code of a discount.",
          "type": "string",
          "example": "498c7f44-656f-4944-b455-0695faa5d4f9"
        },
        "expiryDate": {
          "description": "Expired date of a credit.",
          "type": "string",
          "example": "2023-12-01T00:00:00Z"
        },
        "percentageDiscount": {
          "description": "The percentage is deducted from the original price. For example, a 20% discount on a $100 item would result in a discounted price of $80.",
          "type": "string",
          "example": "20%"
        },
        "provider": {
          "description": "The discount can only apply on the costs from the specific provider, `all` means no restrictions",
          "type": "string",
          "example": "all"
        },
        "services": {
          "description": "The service to which a discount is applicable.",
          "type": "string",
          "example": "Node Compute, Changefeed,"
        },
        "startDate": {
          "description": "Effective start date of a credit.",
          "type": "string",
          "example": "2023-11-01T00:00:00Z"
        },
        "status": {
          "description": "The status of a discount.",
          "allOf": [
            {
              "$ref": "#/definitions/forms.DiscountState"
            }
          ],
          "example": "valid"
        }
      }
    },
    "forms.DiscountState": {
      "type": "string",
      "enum": ["valid", "expired", "reclaimed", "invalid"],
      "x-enum-varnames": [
        "DiscountState_Valid",
        "DiscountState_Expired",
        "DiscountState_Reclaimed",
        "DiscountState_Invalid"
      ]
    },
    "forms.Groups": {
      "type": "object",
      "properties": {
        "groupBy": {
          "description": "Group cost explorer query results by category. The category includes:\n 1. \"service\": Group query results by service type\n 2. \"product\": Group query results by product type (TiDB Dedicated, TiDB Serverless, or Support Plan)\n 3. \"project\": Group query results by Project IDs\n 4. \"cluster\": Group query results by Cluster IDs\n 5. \"provider\": Group query results by Cloud Provider\n 6. \"region\": Group query results by cloud provider region",
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.CostExplorerTrendsBreakdownKey"
          }
        },
        "timeGranularity": {
          "description": "Time Granularity determines how the cost explorer query results are organized daily, monthly, or in total.\n 1. \"day\": Query results are organized daily\n 2. \"month\": Query results are organized monthly\n 3. \"total\": Query results are organized in total",
          "allOf": [
            {
              "$ref": "#/definitions/forms.CostExplorerTrendsTimeGroup"
            }
          ]
        }
      }
    },
    "forms.OKType": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "example": "ok"
        }
      }
    },
    "forms.OrgSupportPlanForOpenAPI": {
      "type": "object",
      "properties": {
        "activeDate": {
          "description": "Effective start date of support plan for an org.",
          "type": "string",
          "example": "2023-12-01T00:00:00Z"
        },
        "expiredDate": {
          "description": "Expired date of a support plan for an org.",
          "type": "string",
          "example": "2023-12-01T00:00:00Z"
        },
        "fixedChargePrice": {
          "description": "Fixed Fee, if support plan is charged on a pro rata basis(percentage_price), it means the minimum fee",
          "type": "string"
        },
        "level": {
          "description": "Support Plan Level, By default, the Basic free plan is selected.",
          "allOf": [
            {
              "$ref": "#/definitions/forms.SupportPlanLevel"
            }
          ]
        },
        "public": {
          "description": "Indicates whether the support plan is public. A non-public support plan may be subject to special contract terms and cannot be upgraded or downgraded.",
          "type": "boolean"
        },
        "supportPricePercentage": {
          "description": "Prorated fee ratio.",
          "type": "string"
        },
        "type": {
          "description": "Indicates whether the support plan is charged on a pro rata basis(percentage_price) or a fixed fee(fixed_price).",
          "allOf": [
            {
              "$ref": "#/definitions/forms.SupportPlanType"
            }
          ]
        }
      }
    },
    "forms.PartnerBillsCostExplorer": {
      "type": "object",
      "properties": {
        "credits": {
          "description": "The total credits held by the organization in this bill. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "discounts": {
          "description": "The total amount of discounts applied to this bill. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "elements": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.PartnerBillsCostExplorerElements"
          }
        },
        "runningTotal": {
          "description": "The sum of services that the specified organization has consumed during this bill period. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "totalCost": {
          "description": "The total amount that the specified organization should pay for this bill. The value of this field is expressed in cents (100ths of one US Dollar).\n`total_cost` = `running_total` - `discounts` - `credits`.",
          "type": "string",
          "example": "0.00"
        }
      }
    },
    "forms.PartnerBillsCostExplorerBreakdown": {
      "type": "object",
      "properties": {
        "billedDate": {
          "type": "string",
          "example": "2023-01-01"
        },
        "credits": {
          "description": "The total credits held by the organization in this bill. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "detailKey": {
          "type": "string",
          "example": "122"
        },
        "detailName": {
          "type": "string",
          "example": "customer01"
        },
        "discounts": {
          "description": "The total amount of discounts applied to this bill. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "runningTotal": {
          "description": "The sum of services that the specified organization has consumed during this bill period. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "totalCost": {
          "description": "The total amount that the specified organization should pay for this bill. The value of this field is expressed in cents (100ths of one US Dollar).\n`total_cost` = `running_total` - `discounts` - `credits`.",
          "type": "string",
          "example": "0.00"
        }
      }
    },
    "forms.PartnerBillsCostExplorerElements": {
      "type": "object",
      "properties": {
        "billedDate": {
          "type": "string",
          "example": "2023-01-01"
        },
        "breakdown": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.PartnerBillsCostExplorerBreakdown"
          }
        },
        "credits": {
          "description": "The total credits held by the organization in this bill. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "discounts": {
          "description": "The total amount of discounts applied to this bill. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "runningTotal": {
          "description": "The sum of services that the specified organization has consumed during this bill period. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "totalCost": {
          "description": "The total amount that the specified organization should pay for this bill. The value of this field is expressed in cents (100ths of one US Dollar).\n`total_cost` = `running_total` - `discounts` - `credits`.",
          "type": "string",
          "example": "0.00"
        }
      }
    },
    "forms.PartnerBillsDetail": {
      "type": "object",
      "properties": {
        "billedDate": {
          "description": "The date when this bill happens.",
          "type": "string"
        },
        "clusterName": {
          "description": "Name of the cluster.",
          "type": "string"
        },
        "credits": {
          "description": "The total credits held by the organization in this bill. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "customerName": {
          "type": "string",
          "example": "PingCAP"
        },
        "discounts": {
          "description": "The total amount of discounts applied to this bill. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "projectName": {
          "description": "Name of the project.",
          "type": "string"
        },
        "runningTotal": {
          "description": "The sum of services that the specified organization has consumed during this bill period. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "servicePathName": {
          "description": "Name of the service.",
          "type": "string"
        },
        "totalCost": {
          "description": "The total amount that the specified organization should pay for this bill. The value of this field is expressed in cents (100ths of one US Dollar).\n`total_cost` = `running_total` - `discounts` - `credits`.",
          "type": "string",
          "example": "0.00"
        }
      }
    },
    "forms.PartnerBillsDetails": {
      "type": "object",
      "properties": {
        "details": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.PartnerBillsDetail"
          }
        }
      }
    },
    "forms.PartnerBillsExplorer": {
      "type": "object",
      "properties": {
        "overview": {
          "description": "The overall information for a bill in the specified organization.",
          "allOf": [
            {
              "$ref": "#/definitions/forms.BillsOverview"
            }
          ]
        },
        "summaryByCustomer": {
          "description": "A breakdown of the bill by customers.",
          "allOf": [
            {
              "$ref": "#/definitions/forms.SummaryBillsByCustomer"
            }
          ]
        },
        "summaryByProject": {
          "description": "A breakdown of the bill by project.",
          "allOf": [
            {
              "$ref": "#/definitions/forms.SummaryByProject"
            }
          ]
        },
        "summaryByService": {
          "description": "A breakdown of the bill by services.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.PartnerBillsServiceCosts"
          }
        }
      }
    },
    "forms.PartnerBillsServiceCosts": {
      "type": "object",
      "properties": {
        "credits": {
          "description": "The total credits held by the organization in this bill. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "discounts": {
          "description": "The total amount of discounts applied to this bill. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "runningTotal": {
          "description": "The sum of services that the specified organization has consumed during this bill period. The value of this field is expressed in cents (100ths of one US Dollar).",
          "type": "string",
          "example": "0.00"
        },
        "serviceCosts": {
          "description": "A breakdown of the bill by service.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.PartnerBillsServiceCosts"
          }
        },
        "serviceName": {
          "description": "The name of services provided by TiDB Cloud.",
          "type": "string",
          "example": "TiDB Dedicated"
        },
        "totalCost": {
          "description": "The total amount that the specified organization should pay for this bill. The value of this field is expressed in cents (100ths of one US Dollar).\n`total_cost` = `running_total` - `discounts` - `credits`.",
          "type": "string",
          "example": "0.00"
        }
      }
    },
    "forms.PartnerConfigs": {
      "type": "object",
      "properties": {
        "enableBillsView": {
          "description": "whether customers can view their bills by list prices on tidb cloud console",
          "type": "boolean",
          "example": true
        }
      }
    },
    "forms.PartnerTrendsArgs": {
      "type": "object",
      "properties": {
        "clusters": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.ClusterOpenAPI"
          }
        },
        "customers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.Customer"
          }
        },
        "projects": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.ProjectOpenAPI"
          }
        },
        "providers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.Provider"
          }
        },
        "services": {
          "description": "The Identifier of TiDB Cloud services consists of 3 levels. For example, \"service\": \"TiDB Dedicated - Node Compute - TiFlash\" consists of the following 3 levels.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.CostExplorerService"
          }
        }
      }
    },
    "forms.PartnerTrendsFilter": {
      "type": "object",
      "properties": {
        "clusters": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "customers": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "projects": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "providers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.CostExplorerProvider"
          }
        },
        "services": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.CostExplorerService"
          }
        },
        "timeRange": {
          "$ref": "#/definitions/forms.TimeRange"
        }
      }
    },
    "forms.PartnerTrendsInput": {
      "type": "object",
      "properties": {
        "filter": {
          "$ref": "#/definitions/forms.PartnerTrendsFilter"
        },
        "groups": {
          "$ref": "#/definitions/forms.Groups"
        }
      }
    },
    "forms.PaymentForOpenAPI": {
      "type": "object",
      "properties": {
        "payable": {
          "type": "boolean"
        },
        "type": {
          "$ref": "#/definitions/forms.PaymentType"
        }
      }
    },
    "forms.PaymentType": {
      "type": "string",
      "enum": [
        "none",
        "aws",
        "aws_cppo",
        "gcp",
        "credit_card",
        "wire_transfer"
      ],
      "x-enum-varnames": [
        "PaymentType_None",
        "PaymentType_AWS",
        "PaymentType_AWSCPPO",
        "PaymentType_GCP",
        "PaymentType_CreditCard",
        "PaymentType_WireTransfer"
      ]
    },
    "forms.ProjectOpenAPI": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "example": "0"
        },
        "name": {
          "type": "string"
        },
        "status": {
          "type": "string"
        }
      }
    },
    "forms.Provider": {
      "type": "object",
      "properties": {
        "name": {
          "description": "Name of the cloud provider",
          "type": "string"
        },
        "regions": {
          "description": "Name of the region",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "forms.SummaryBillsByCustomer": {
      "type": "object",
      "properties": {
        "customers": {
          "description": "The breakdown of bills by customers of a partner.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.CustomerBills"
          }
        },
        "otherCharges": {
          "description": "Costs not incurred by the customer but by the partner, such as support plan for a MSP.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.BillsOtherName"
          }
        }
      }
    },
    "forms.SummaryByProject": {
      "type": "object",
      "properties": {
        "otherCharges": {
          "description": "These charges occur not only within a project but also across the entire organization.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.BillsOtherName"
          }
        },
        "projects": {
          "description": "The projects in the specified organization.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/forms.BillsProjects"
          }
        }
      }
    },
    "forms.SupportPlanForOpenAPI": {
      "type": "object",
      "properties": {
        "fixedChargePrice": {
          "description": "Fixed Fee, if support plan is charged on a pro rata basis(percentage_price), it means the minimum fee",
          "type": "string"
        },
        "level": {
          "description": "Support Plan Level, By default, the Basic free plan is selected.",
          "allOf": [
            {
              "$ref": "#/definitions/forms.SupportPlanLevel"
            }
          ]
        },
        "public": {
          "description": "Indicates whether the support plan is public. A non-public support plan may be subject to special contract terms and cannot be upgraded or downgraded.",
          "type": "boolean"
        },
        "supportPricePercentage": {
          "description": "Prorated fee ratio.",
          "type": "string"
        },
        "type": {
          "description": "Indicates whether the support plan is charged on a pro rata basis(percentage_price) or a fixed fee(fixed_price).",
          "allOf": [
            {
              "$ref": "#/definitions/forms.SupportPlanType"
            }
          ]
        }
      }
    },
    "forms.SupportPlanLevel": {
      "type": "string",
      "enum": ["Basic", "Standard", "Enterprise", "Premium"],
      "x-enum-varnames": [
        "SupportPlanLevel_Basic",
        "SupportPlanLevel_Standard",
        "SupportPlanLevel_Enterprise",
        "SupportPlanLevel_Premium"
      ]
    },
    "forms.SupportPlanType": {
      "type": "string",
      "enum": ["fixed_price", "percentage_price"],
      "x-enum-varnames": [
        "SupportPlanType_FixedPrice",
        "SupportPlanType_PercentagePrice"
      ]
    },
    "forms.TaxIDType": {
      "type": "string",
      "enum": [
        "ad_nrt",
        "ae_trn",
        "ar_cuit",
        "au_abn",
        "au_arn",
        "bg_uic",
        "bo_tin",
        "br_cnpj",
        "br_cpf",
        "ca_bn",
        "ca_gst_hst",
        "ca_pst_bc",
        "ca_pst_mb",
        "ca_pst_sk",
        "ca_qst",
        "ch_vat",
        "cl_tin",
        "cn_tin",
        "co_nit",
        "cr_tin",
        "do_rcn",
        "ec_ruc",
        "eg_tin",
        "es_cif",
        "eu_oss_vat",
        "eu_vat",
        "gb_vat",
        "ge_vat",
        "hk_br",
        "hu_tin",
        "id_npwp",
        "il_vat",
        "in_gst",
        "is_vat",
        "jp_cn",
        "jp_rn",
        "jp_trn",
        "ke_pin",
        "kr_brn",
        "li_uid",
        "mx_rfc",
        "my_frp",
        "my_itn",
        "my_sst",
        "no_vat",
        "nz_gst",
        "pe_ruc",
        "ph_tin",
        "ro_tin",
        "rs_pib",
        "ru_inn",
        "ru_kpp",
        "sa_vat",
        "sg_gst",
        "sg_uen",
        "si_tin",
        "sv_nit",
        "th_vat",
        "tr_tin",
        "tw_vat",
        "ua_vat",
        "us_ein",
        "uy_ruc",
        "ve_rif",
        "vn_tin",
        "za_vat"
      ],
      "x-enum-varnames": [
        "TaxIdType_AdNrt",
        "TaxIdType_AeTrn",
        "TaxIdType_ArCuit",
        "TaxIdType_AuAbn",
        "TaxIdType_AuArn",
        "TaxIdType_BgUic",
        "TaxIdType_BoTin",
        "TaxIdType_BrCnpj",
        "TaxIdType_BrCpf",
        "TaxIdType_CaBn",
        "TaxIdType_CaGstHst",
        "TaxIdType_CaPstBc",
        "TaxIdType_CaPstMb",
        "TaxIdType_CaPstSk",
        "TaxIdType_CaQst",
        "TaxIdType_ChVat",
        "TaxIdType_ClTin",
        "TaxIdType_CnTin",
        "TaxIdType_CoNit",
        "TaxIdType_CrTin",
        "TaxIdType_DoRcn",
        "TaxIdType_EcRuc",
        "TaxIdType_EgTin",
        "TaxIdType_EsCif",
        "TaxIdType_EuOssVat",
        "TaxIdType_EuVat",
        "TaxIdType_GbVat",
        "TaxIdType_GeVat",
        "TaxIdType_HkBr",
        "TaxIdType_HuTin",
        "TaxIdType_IdNpwp",
        "TaxIdType_IlVat",
        "TaxIdType_InGst",
        "TaxIdType_IsVat",
        "TaxIdType_JpCn",
        "TaxIdType_JpRn",
        "TaxIdType_JpTrn",
        "TaxIdType_KePin",
        "TaxIdType_KrBrn",
        "TaxIdType_LiUid",
        "TaxIdType_MxRfc",
        "TaxIdType_MyFrp",
        "TaxIdType_MyItn",
        "TaxIdType_MySst",
        "TaxIdType_NoVat",
        "TaxIdType_NzGst",
        "TaxIdType_PeRuc",
        "TaxIdType_PhTin",
        "TaxIdType_RoTin",
        "TaxIdType_RsPib",
        "TaxIdType_RuInn",
        "TaxIdType_RuKpp",
        "TaxIdType_SaVat",
        "TaxIdType_SgGst",
        "TaxIdType_SgUen",
        "TaxIdType_SiTin",
        "TaxIdType_SvNit",
        "TaxIdType_ThVat",
        "TaxIdType_TrTin",
        "TaxIdType_TwVat",
        "TaxIdType_UaVat",
        "TaxIdType_UsEin",
        "TaxIdType_UyRuc",
        "TaxIdType_VeRif",
        "TaxIdType_VnTin",
        "TaxIdType_ZaVat"
      ]
    },
    "forms.TimeRange": {
      "type": "object",
      "properties": {
        "endDate": {
          "description": "End date of the time range.",
          "type": "string"
        },
        "startDate": {
          "description": "Start date of the time range.",
          "type": "string"
        }
      }
    },
    "protobufAny": {
      "type": "object",
      "properties": {
        "type_url": {
          "type": "string",
          "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `http`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `http` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n  value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n  URL, or have them precompiled into a binary to avoid any\n  lookup. Therefore, binary compatibility needs to be preserved\n  on changes to types. (Use versioned type names to manage\n  breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `http` (or the empty scheme) might be\nused with implementation specific semantics."
        },
        "value": {
          "type": "string",
          "format": "byte",
          "description": "Must be a valid serialized protocol buffer of the above specified type."
        }
      },
      "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n    Foo foo = ...;\n    Any any;\n    any.PackFrom(foo);\n    ...\n    if (any.UnpackTo(\u0026foo)) {\n      ...\n    }\n\nExample 2: Pack and unpack a message in Java.\n\n    Foo foo = ...;\n    Any any = Any.pack(foo);\n    ...\n    if (any.is(Foo.class)) {\n      foo = any.unpack(Foo.class);\n    }\n\n Example 3: Pack and unpack a message in Python.\n\n    foo = Foo(...)\n    any = Any()\n    any.Pack(foo)\n    ...\n    if any.Is(Foo.DESCRIPTOR):\n      any.Unpack(foo)\n      ...\n\n Example 4: Pack and unpack a message in Go\n\n     foo := \u0026pb.Foo{...}\n     any, err := ptypes.MarshalAny(foo)\n     ...\n     foo := \u0026pb.Foo{}\n     if err := ptypes.UnmarshalAny(any, foo); err != nil {\n       ...\n     }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n    package google.profile;\n    message Person {\n      string first_name = 1;\n      string last_name = 2;\n    }\n\n    {\n      \"@type\": \"type.googleapis.com/google.profile.Person\",\n      \"firstName\": \u003cstring\u003e,\n      \"lastName\": \u003cstring\u003e\n    }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n    {\n      \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n      \"value\": \"1.212s\"\n    }"
    },
    "apiHttpBody": {
      "type": "object",
      "properties": {
        "content_type": {
          "type": "string",
          "description": "The HTTP Content-Type header value specifying the content type of the body."
        },
        "data": {
          "type": "string",
          "format": "byte",
          "description": "The HTTP request/response body as raw binary."
        },
        "extensions": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/protobufAny"
          },
          "description": "Application specific response metadata. Must be set in the first response\nfor streaming APIs."
        }
      },
      "description": "Message that represents an arbitrary HTTP body. It should only be used for\npayload formats that can't be represented as JSON, such as raw binary or\nan HTML page.\n\n\nThis message can be used both in streaming and non-streaming API methods in\nthe request as well as the response.\n\nIt can be used as a top-level request field, which is convenient if one\nwants to extract parameters from either the URL or HTTP template into the\nrequest fields and also want access to the raw HTTP body.\n\nExample:\n\n    message GetResourceRequest {\n      // A unique request id.\n      string request_id = 1;\n\n      // The raw HTTP body is bound to this field.\n      google.api.HttpBody http_body = 2;\n    }\n\n    service ResourceService {\n      rpc GetResource(GetResourceRequest) returns (google.api.HttpBody);\n      rpc UpdateResource(google.api.HttpBody) returns\n      (google.protobuf.Empty);\n    }\n\nExample with streaming methods:\n\n    service CaldavService {\n      rpc GetCalendar(stream google.api.HttpBody)\n        returns (stream google.api.HttpBody);\n      rpc UpdateCalendar(stream google.api.HttpBody)\n        returns (stream google.api.HttpBody);\n    }\n\nUse of this type only changes how the request and response bodies are\nhandled, all other features will continue to work unchanged."
    }
  }
}
