basePath: /api/v1/
definitions:
  message.AddonInfo:
    properties:
      name:
        type: string
      status:
        type: string
      version:
        type: string
    type: object
  message.AddonUpgradeConfig:
    properties:
      configurationValues:
        description: |-
          ConfigurationValues is a string containing the set of configuration values for the add-on.
          Values are validated against the schema returned by DescribeAddonConfiguration.
        type: string
      name:
        type: string
      resolveConflicts:
        description: |-
          ResolveConflicts specifies how to handle field value conflicts if you've changed a value from the AWS EKS default.
          NONE means AWS EKS doesn't change the value (update might fail)
          OVERWRITE means AWS EKS overwrites the changed value back to the default
          PRESERVE means AWS EKS preserves the changed value
        type: string
      serviceAccountRoleArn:
        description: |-
          ServiceAccountRoleArn is the Amazon Resource Name (ARN) of an existing IAM role to bind to the add-on's service account.
          The role must have the IAM permissions required by the add-on.
        type: string
      version:
        type: string
    required:
    - name
    - version
    type: object
  message.BYOCVPCPeering:
    properties:
      dataplaneVpcCIDR:
        type: string
      peeringConnectionID:
        type: string
    type: object
  message.ClusterUpgradeSummary:
    properties:
      beginTime:
        type: string
      cloudProvider:
        type: string
      currentVersion:
        type: string
      endTime:
        type: string
      id:
        type: string
      k8sClusterName:
        type: string
      name:
        type: string
      status:
        type: string
      targetVersion:
        type: string
    type: object
  message.ClusterWithInfra:
    properties:
      applicationID:
        type: string
      bizType:
        type: string
      dataPropertyRights:
        type: integer
      dataplaneId:
        type: string
      id:
        type: string
      infraClusters:
        items:
          $ref: '#/definitions/structs.ClusterBaseInfo'
        type: array
      internalReadUri:
        type: string
      muteAlert:
        type: boolean
      note:
        type: string
      openReadUri:
        type: string
      projectID:
        type: string
      region:
        type: string
      shareMode:
        type: string
      sharedPoolId:
        type: string
      tags:
        items:
          type: string
        type: array
      tenantID:
        type: string
      vendor:
        type: string
      version:
        type: string
    required:
    - applicationID
    - bizType
    - region
    - shareMode
    - tenantID
    - vendor
    type: object
  message.CreateClusterReq:
    properties:
      agentAccessARN:
        description: |-
          AgentAccessARN and AgentManagerARN are not needed in the 3-layers architecture
          because the AgentEnvironment model defines account and project information
          AgentManagerARN is a pre-defined management role created in each dataplane account for o11y
          AgentAccessARN is a data role: o11y_{{k8s_id}}_access_role created by o11y_regional_server for each k8s
          Compatibility solution: If agentAccessARN and agentManagerARN are passed, use o11y_management_role.
          If not passed, use the fixed management role and generated access role.
          Note: AgentAccessARN could be changed to agent data role arn during an in-flight request.
        type: string
      agentAccessAccount:
        description: AgentAccessAccount is used for agent access account, if not set,
          use agentAccessARN, if set, use agentAccessAccount and agentAccessARN must
          not set
        type: string
      agentEnvironment:
        $ref: '#/definitions/structs.AgentEnvironment'
        description: |-
          describe agent deployment env, e.g VPC, account and provider
          if not set, use Compatibility path
        type: object
      agentManagerARN:
        description: AgentManagerARN is used for private link service authentication.
        type: string
      agentNextGen:
        description: AgentNextGen is used for next gen agent, if not set, use old
          path
        type: boolean
      agentSharedRole:
        description: only for shared-vpc
        type: boolean
      agentTemplateName:
        description: agent config template, now not used
        type: string
      applicationID:
        type: string
      bizType:
        type: string
      byocVpcPeering:
        $ref: '#/definitions/message.BYOCVPCPeering'
        description: |-
          BYOCVPCPeering carries dataplane-specific peering info used by the regional
          server to ensure routes in the statically provisioned o11y VPC.
        type: object
      category:
        description: |-
          o11y provided data categories, such as monitoring, logging, topsql, etc.
          The default value is []string{"metrics", "logs"}, which will be added to the cluster's CR.
          If topsql is enabled, add "topsql" to it.
        items:
          type: string
        type: array
      dataPropertyRights:
        type: integer
      id:
        type: string
      internalReadUri:
        type: string
      keySpaceID:
        type: string
      monitorPromRules:
        type: object
      monitorSpecID:
        description: only prometheus spec(vmalert use this, wrong ways)
        type: string
      muteAlert:
        type: boolean
      note:
        type: string
      observed:
        $ref: '#/definitions/structs.Observed'
        description: tidb cluster or other observed component information, for o11y
          auto scale
        type: object
      openReadUri:
        type: string
      parentClusterID:
        type: string
      projectID:
        type: string
      region:
        type: string
      ruleTemplateID:
        type: string
      seedClusterID:
        description: |-
          A temporary parameter set specifically for the k8s-infra cluster.
          The purpose is to specify which seed cluster k8s-infra will push the metrics to.
          This parameter should be deleted in the future when k8s-infra metrics are pushed to its own cluster
        type: string
      shareMode:
        type: string
      tags:
        items:
          type: string
        type: array
      tenantID:
        type: string
      vendor:
        type: string
      version:
        type: string
    required:
    - applicationID
    - bizType
    - region
    - shareMode
    - tenantID
    - vendor
    type: object
  message.CreateClusterResp:
    properties:
      agentInfo:
        $ref: '#/definitions/structs.AgentInfo'
        type: object
      alertInfo:
        $ref: '#/definitions/structs.AlertInfo'
        type: object
      applicationID:
        type: string
      bizType:
        type: string
      dataPropertyRights:
        type: integer
      id:
        type: string
      internalReadUri:
        type: string
      lastScaleTime:
        additionalProperties:
          type: string
        type: object
      monitorInfo:
        $ref: '#/definitions/structs.MonitorInfo'
        type: object
      muteAlert:
        type: boolean
      note:
        type: string
      openReadUri:
        type: string
      projectID:
        type: string
      region:
        type: string
      shareMode:
        type: string
      status:
        type: string
      storageInfo:
        items:
          $ref: '#/definitions/structs.StorageInfo'
        type: array
      tags:
        items:
          type: string
        type: array
      tenantID:
        type: string
      vendor:
        type: string
      version:
        type: string
    required:
    - applicationID
    - bizType
    - region
    - shareMode
    - tenantID
    - vendor
    type: object
  message.CreateClusterUpgradeReq:
    properties:
      cloudProvider:
        description: CloudProvider is the cloud provider type (eks, gke, aks, ack,
          mock)
        type: string
      clusterAddons:
        description: ClusterAddons is the list of addons to upgrade
        items:
          $ref: '#/definitions/message.AddonUpgradeConfig'
        type: array
      k8sClusterName:
        description: K8sClusterName is the name of the target Kubernetes cluster
        type: string
      nodeGroupUpgrades:
        description: NodeGroupUpgrade configures node group upgrade with node group
          name and strategy bound together
        items:
          $ref: '#/definitions/message.NodeGroupUpgradeConfig'
        type: array
      region:
        description: Region is the cloud region where the cluster is located
        type: string
      schedule:
        description: Schedule is the time to start the upgrade (optional, defaults
          to now)
        type: string
      targetVersion:
        description: TargetVersion is the target K8s version to upgrade to
        type: string
    required:
    - cloudProvider
    - k8sClusterName
    - region
    - targetVersion
    type: object
  message.CreateClusterUpgradeResp:
    properties:
      id:
        type: string
      message:
        type: string
      status:
        type: string
    type: object
  message.CreateHelmReleaseReq:
    properties:
      component:
        description: Pre-defined component name (e.g., "loki-ha", "kube-prometheus-stack")
        type: string
      config:
        $ref: '#/definitions/message.HelmReleaseConfig'
        type: object
      name:
        description: Name is the name of the HelmRelease, it will be used as the release
          name
        type: string
      namespace:
        description: Namespace is the namespace of the HelmRelease, it will be used
          as the target namespace
        type: string
    required:
    - component
    - name
    - namespace
    type: object
  message.CreateHelmReleaseResp:
    properties:
      component:
        type: string
      config:
        $ref: '#/definitions/message.HelmReleaseConfig'
        type: object
      createTime:
        type: string
      name:
        type: string
      namespace:
        type: string
      status:
        $ref: '#/definitions/message.HelmReleaseStatusSummary'
        type: object
    type: object
  message.CreateIntegrationTaskReq:
    properties:
      accessPrincipal:
        type: string
      dataFormat:
        default: gzip-csv
        type: string
      dataPrefix:
        description: |-
          DataPrefix is used for object storage destination, representing the prefix of the object key where the data will be stored.
          For example, if DataPrefix is "logs/", the actual object key might be "logs/cluster1/slowquery-20240101.csv.gz".
        type: string
      dataType:
        type: string
      displayName:
        type: string
      endTime:
        type: string
      frequency:
        default: 10m
        type: string
      jobType:
        default: Once
        type: string
      rawLogComponents:
        items:
          type: string
        type: array
      startTime:
        type: string
    required:
    - dataType
    - displayName
    type: object
  message.CreateIntegrationTaskResp:
    properties:
      accessPrincipal:
        type: string
      clusterID:
        type: string
      createTime:
        type: string
      dataFormat:
        type: string
      dataPrefix:
        type: string
      dataType:
        type: string
      destinationInfo:
        $ref: '#/definitions/message.DestinationInfo'
        type: object
      displayName:
        type: string
      endTime:
        type: string
      frequency:
        type: string
      id:
        type: string
      jobType:
        type: string
      name:
        type: string
      rawLogComponents:
        items:
          type: string
        type: array
      startTime:
        type: string
    type: object
  message.CreateVMClusterReq:
    properties:
      name:
        type: string
      values:
        additionalProperties: true
        type: object
    required:
    - name
    - values
    type: object
  message.CreateVMClusterResp:
    properties:
      create_time:
        type: string
      endpoints:
        additionalProperties:
          type: string
        type: object
      helm_release_info:
        $ref: '#/definitions/message.HelmReleaseInfo'
        type: object
      id:
        type: string
      name:
        type: string
      status:
        type: string
      values:
        additionalProperties: true
        type: object
    type: object
  message.DeleteAlertRulesTemplateReq:
    properties:
      id:
        type: string
      region:
        type: string
      vendor:
        type: string
    required:
    - id
    - region
    - vendor
    type: object
  message.DeleteAlertRulesTemplateResp:
    properties:
      monitorPromRules:
        type: object
    required:
    - monitorPromRules
    type: object
  message.DeleteClusterReq:
    properties:
      agentAccessARN:
        type: string
      bizType:
        type: string
      region:
        type: string
      vendor:
        type: string
    required:
    - region
    - vendor
    type: object
  message.DeleteClusterResp:
    properties:
      applicationID:
        type: string
      bizType:
        type: string
      dataPropertyRights:
        type: integer
      id:
        type: string
      internalReadUri:
        type: string
      muteAlert:
        type: boolean
      note:
        type: string
      openReadUri:
        type: string
      projectID:
        type: string
      region:
        type: string
      shareMode:
        type: string
      tags:
        items:
          type: string
        type: array
      tenantID:
        type: string
      vendor:
        type: string
      version:
        type: string
    required:
    - applicationID
    - bizType
    - region
    - shareMode
    - tenantID
    - vendor
    type: object
  message.DeleteClusterUpgradeResp:
    properties:
      message:
        type: string
    type: object
  message.DeleteHelmReleaseResp:
    properties:
      message:
        type: string
    type: object
  message.DeleteIntegrationTaskReq:
    properties:
      id:
        type: string
    required:
    - id
    type: object
  message.DeleteIntegrationTaskResp:
    properties:
      id:
        type: string
      message:
        type: string
    type: object
  message.DeleteVMClusterResp:
    properties:
      message:
        type: string
    type: object
  message.DestinationInfo:
    properties:
      accessPoint:
        type: string
      assumeRoleARN:
        type: string
    type: object
  message.DetailClusterReq:
    properties:
      bizType:
        type: string
      region:
        type: string
      vendor:
        type: string
    required:
    - region
    - vendor
    type: object
  message.DetailClusterResp:
    properties:
      agentInfo:
        $ref: '#/definitions/structs.AgentInfo'
        type: object
      alertInfo:
        $ref: '#/definitions/structs.AlertInfo'
        type: object
      applicationID:
        type: string
      bizType:
        type: string
      dataPropertyRights:
        type: integer
      id:
        type: string
      internalReadUri:
        type: string
      lastScaleTime:
        additionalProperties:
          type: string
        type: object
      monitorInfo:
        $ref: '#/definitions/structs.MonitorInfo'
        type: object
      muteAlert:
        type: boolean
      note:
        type: string
      openReadUri:
        type: string
      projectID:
        type: string
      region:
        type: string
      shareMode:
        type: string
      status:
        type: string
      storageInfo:
        items:
          $ref: '#/definitions/structs.StorageInfo'
        type: array
      tags:
        items:
          type: string
        type: array
      tenantID:
        type: string
      vendor:
        type: string
      version:
        type: string
    required:
    - applicationID
    - bizType
    - region
    - shareMode
    - tenantID
    - vendor
    type: object
  message.DetailIntegrationTaskReq:
    properties:
      id:
        type: string
    required:
    - id
    type: object
  message.DetailIntegrationTaskResp:
    properties:
      accessPrincipal:
        type: string
      clusterID:
        type: string
      createTime:
        type: string
      dataFormat:
        type: string
      dataPrefix:
        type: string
      dataType:
        type: string
      destinationInfo:
        $ref: '#/definitions/message.DestinationInfo'
        type: object
      displayName:
        type: string
      endTime:
        type: string
      frequency:
        type: string
      id:
        type: string
      jobType:
        type: string
      name:
        type: string
      phase:
        type: string
      rawLogComponents:
        items:
          type: string
        type: array
      startTime:
        type: string
    type: object
  message.DiffHelmReleaseReq:
    properties:
      adoptionMode:
        type: boolean
      component:
        type: string
      config:
        $ref: '#/definitions/message.HelmReleaseConfig'
        type: object
      name:
        type: string
      namespace:
        type: string
    required:
    - component
    - name
    - namespace
    type: object
  message.DiffHelmReleaseResp:
    properties:
      blockingReasons:
        items:
          type: string
        type: array
      component:
        type: string
      name:
        type: string
      namespace:
        type: string
      renderedDiff:
        $ref: '#/definitions/message.HelmReleaseRenderedDiff'
        type: object
      safeToApply:
        type: boolean
      sourceResolution:
        $ref: '#/definitions/message.HelmReleaseSourceResolution'
        type: object
      warnings:
        items:
          type: string
        type: array
    type: object
  message.DryRunClusterUpgradeResp:
    properties:
      clusterUpgradeOperation:
        $ref: '#/definitions/v1.ClusterUpgradeOperation'
        type: object
    type: object
  message.ExternalAlertConfig:
    properties:
      ruleTemplateID:
        type: string
    type: object
  message.ExternalKeyVisualConfig:
    properties:
      openReadUri:
        type: string
    type: object
  message.ExternalLogsConfig:
    properties:
      openReadUri:
        type: string
    type: object
  message.ExternalMetricsConfig:
    properties:
      openReadUri:
        type: string
    type: object
  message.ExternalSlowQueryConfig:
    properties:
      openReadUri:
        type: string
    type: object
  message.ExternalSqlStatementsConfig:
    properties:
      openReadUri:
        type: string
    type: object
  message.GetClusterExternalResp:
    properties:
      alerts:
        $ref: '#/definitions/message.ExternalAlertConfig'
        type: object
      applicationID:
        type: string
      bizType:
        type: string
      id:
        type: string
      keyVisual:
        $ref: '#/definitions/message.ExternalKeyVisualConfig'
        type: object
      logs:
        $ref: '#/definitions/message.ExternalLogsConfig'
        type: object
      metrics:
        $ref: '#/definitions/message.ExternalMetricsConfig'
        type: object
      projectID:
        type: string
      region:
        type: string
      slowQuery:
        $ref: '#/definitions/message.ExternalSlowQueryConfig'
        type: object
      sqlStatements:
        $ref: '#/definitions/message.ExternalSqlStatementsConfig'
        type: object
      tenantID:
        type: string
      vendor:
        type: string
    type: object
  message.GetClusterUpgradeResp:
    properties:
      beginTime:
        type: string
      cloudProvider:
        type: string
      currentStep:
        $ref: '#/definitions/message.StepStatus'
        type: object
      currentVersion:
        type: string
      duration:
        type: string
      endTime:
        type: string
      id:
        type: string
      k8sClusterName:
        type: string
      name:
        type: string
      nextSteps:
        items:
          $ref: '#/definitions/message.StepStatus'
        type: array
      region:
        type: string
      status:
        type: string
      succeededSteps:
        items:
          $ref: '#/definitions/message.StepStatus'
        type: array
      targetVersion:
        type: string
    type: object
  message.GetHelmReleaseResp:
    properties:
      component:
        type: string
      config:
        $ref: '#/definitions/message.HelmReleaseConfig'
        type: object
      createTime:
        type: string
      name:
        type: string
      namespace:
        type: string
      status:
        $ref: '#/definitions/message.HelmReleaseStatusSummary'
        type: object
      updateTime:
        type: string
    type: object
  message.GetNodeGroupsResp:
    properties:
      nodeGroups:
        items:
          $ref: '#/definitions/message.NodeGroupInfo'
        type: array
    type: object
  message.GetServiceHealthResp:
    properties:
      serviceHealth:
        type: boolean
    type: object
  message.GetServiceInfoResp:
    properties:
      availableSpecs:
        additionalProperties:
          $ref: '#/definitions/k8sv1.ResourceRequirements'
        type: object
      serviceName:
        type: string
    type: object
  message.GetVMClusterResp:
    properties:
      create_time:
        type: string
      endpoints:
        additionalProperties:
          type: string
        type: object
      helm_release_info:
        $ref: '#/definitions/message.HelmReleaseInfo'
        type: object
      id:
        type: string
      name:
        type: string
      status:
        type: string
      update_time:
        type: string
      values:
        additionalProperties: true
        type: object
    type: object
  message.GlobalHandleAlertReq:
    properties:
      alerts:
        items:
          $ref: '#/definitions/structs.Alert'
        type: array
      commonAnnotations:
        additionalProperties:
          type: string
        type: object
      commonLabels:
        additionalProperties:
          type: string
        type: object
      externalURL:
        type: string
      groupKey:
        type: string
      groupLabels:
        additionalProperties:
          type: string
        type: object
      receiver:
        type: string
      status:
        type: string
      version:
        type: string
    type: object
  message.GlobalHandleAlertResp:
    type: object
  message.HelmReleaseConfig:
    properties:
      dependsOn:
        description: Names of HelmReleases this depends on
        items:
          type: string
        type: array
      expectedDigest:
        description: Expected chart digest
        type: string
      interval:
        description: Interval for reconciliation (e.g., "5m")
        type: string
      sourceRef:
        $ref: '#/definitions/message.HelmReleaseSourceRef'
        description: Reference to Helm repository
        type: object
      suspend:
        description: Whether to suspend reconciliation
        type: boolean
      timeout:
        description: Timeout for operations (e.g., "5m")
        type: string
      values:
        additionalProperties: true
        description: Chart values override
        type: object
      version:
        description: Version of the chart to install
        type: string
    type: object
  message.HelmReleaseConfigSummary:
    properties:
      dependsOn:
        items:
          type: string
        type: array
      suspend:
        type: boolean
      targetNamespace:
        type: string
    type: object
  message.HelmReleaseInfo:
    properties:
      chart:
        type: string
      release_name:
        type: string
      release_namespace:
        type: string
      version:
        type: string
    type: object
  message.HelmReleaseRenderedDiff:
    properties:
      changed:
        type: boolean
      output:
        type: string
      resolvedDigest:
        type: string
    type: object
  message.HelmReleaseSourceRef:
    properties:
      kind:
        type: string
      name:
        type: string
      namespace:
        type: string
      url:
        type: string
    type: object
  message.HelmReleaseSourceResolution:
    properties:
      chart:
        type: string
      expectedDigest:
        type: string
      resolvedDigest:
        type: string
      sourceKind:
        type: string
      sourceName:
        type: string
      sourceNamespace:
        type: string
      version:
        type: string
    type: object
  message.HelmReleaseStatusSummary:
    properties:
      expectedDigest:
        type: string
      failures:
        type: integer
      helmChart:
        type: string
      lastAppliedRevision:
        type: string
      lastAttemptedRevision:
        type: string
      lastFailureReason:
        type: string
      lastReleaseRevision:
        type: integer
      observedGeneration:
        type: integer
      requestedVersion:
        type: string
      resolvedDigest:
        type: string
    type: object
  message.HelmReleaseSummary:
    properties:
      component:
        type: string
      config:
        $ref: '#/definitions/message.HelmReleaseConfigSummary'
        type: object
      createTime:
        type: string
      name:
        type: string
      namespace:
        type: string
      status:
        $ref: '#/definitions/message.HelmReleaseStatusSummary'
        type: object
      updateTime:
        type: string
    type: object
  message.IntegrationTaskSummary:
    properties:
      accessPrincipal:
        type: string
      createTime:
        type: string
      dataFormat:
        type: string
      dataPrefix:
        type: string
      dataType:
        type: string
      destinationInfo:
        $ref: '#/definitions/message.DestinationInfo'
        type: object
      endTime:
        type: string
      frequency:
        type: string
      id:
        type: string
      jobType:
        type: string
      phase:
        type: string
      rawLogComponents:
        items:
          type: string
        type: array
      startTime:
        type: string
    type: object
  message.ListAddonsResp:
    properties:
      addons:
        items:
          $ref: '#/definitions/message.AddonInfo'
        type: array
    type: object
  message.ListClusterUpgradesReq:
    properties:
      continueToken:
        type: string
      k8sClusterName:
        type: string
      limit:
        type: integer
      status:
        type: string
    type: object
  message.ListClusterUpgradesResp:
    properties:
      clusterUpgrades:
        items:
          $ref: '#/definitions/message.ClusterUpgradeSummary'
        type: array
      continueToken:
        type: string
      remainingItemCount:
        type: integer
    type: object
  message.ListClustersWithMetadataResp:
    properties:
      clusters:
        items:
          $ref: '#/definitions/message.ClusterWithInfra'
        type: array
      partial:
        type: boolean
    type: object
  message.ListHelmReleasesReq:
    properties:
      continueToken:
        type: string
      limit:
        type: integer
    type: object
  message.ListHelmReleasesResp:
    properties:
      continueToken:
        type: string
      helmReleases:
        items:
          $ref: '#/definitions/message.HelmReleaseSummary'
        type: array
      remainingItemCount:
        type: integer
    type: object
  message.ListVMClustersReq:
    properties:
      page:
        description: Current page location
        type: integer
      pageSize:
        description: Number of this request
        type: integer
    type: object
  message.ListVMClustersResp:
    properties:
      continueToken:
        type: string
      remainingItemCount:
        type: integer
      vmclusters:
        items:
          $ref: '#/definitions/message.VMClusterSummary'
        type: array
    type: object
  message.ModifyAgentObservedReq:
    properties:
      observed:
        $ref: '#/definitions/structs.Observed'
        type: object
      region:
        type: string
      vendor:
        type: string
    required:
    - observed
    - region
    - vendor
    type: object
  message.ModifyAgentObservedResp:
    type: object
  message.ModifyAlertRulesTemplateReq:
    properties:
      monitorPromRules:
        type: object
      region:
        type: string
      templateID:
        type: string
      vendor:
        type: string
    required:
    - monitorPromRules
    - region
    - templateID
    - vendor
    type: object
  message.ModifyAlertRulesTemplateResp:
    type: object
  message.ModifyMonitorModeReq:
    properties:
      region:
        type: string
      shareMode:
        type: string
      vendor:
        type: string
    required:
    - region
    - shareMode
    - vendor
    type: object
  message.ModifyMonitorModeResp:
    type: object
  message.ModifyMonitorResourceReq:
    properties:
      region:
        type: string
      resourceMeta:
        additionalProperties:
          $ref: '#/definitions/message.ResourceMeta'
        type: object
      resourceType:
        type: string
      vendor:
        type: string
    required:
    - region
    - vendor
    type: object
  message.ModifyMonitorResourceResp:
    type: object
  message.ModifyMonitorSpecReq:
    properties:
      region:
        type: string
      specID:
        type: string
      vendor:
        type: string
    required:
    - region
    - specID
    - vendor
    type: object
  message.ModifyMonitorSpecResp:
    type: object
  message.ModifyMonitorStorageReq:
    properties:
      PVCName:
        type: string
      namespace:
        type: string
      region:
        type: string
      request:
        type: string
      vendor:
        type: string
    required:
    - region
    - vendor
    type: object
  message.ModifyMonitorStorageResp:
    type: object
  message.MuteClusterAlertReq:
    properties:
      region:
        type: string
      vendor:
        type: string
    required:
    - region
    - vendor
    type: object
  message.MuteClusterAlertResp:
    properties:
      applicationID:
        type: string
      bizType:
        type: string
      dataPropertyRights:
        type: integer
      id:
        type: string
      internalReadUri:
        type: string
      muteAlert:
        type: boolean
      note:
        type: string
      openReadUri:
        type: string
      projectID:
        type: string
      region:
        type: string
      shareMode:
        type: string
      tags:
        items:
          type: string
        type: array
      tenantID:
        type: string
      vendor:
        type: string
      version:
        type: string
    required:
    - applicationID
    - bizType
    - region
    - shareMode
    - tenantID
    - vendor
    type: object
  message.NodeGroupInfo:
    properties:
      id:
        type: string
      launchTemplateId:
        description: LaunchTemplateId is set for EKS node groups that use a launch
          template with an ID.
        type: string
      launchTemplateName:
        description: LaunchTemplateName is set for EKS node groups that use a launch
          template with a name.
        type: string
      launchTemplateVersion:
        description: LaunchTemplateVersion is set for EKS node groups that use a launch
          template.
        type: string
      name:
        type: string
      nodeCount:
        type: integer
      runtimeVersion:
        type: string
      status:
        type: string
      version:
        type: string
    type: object
  message.NodeGroupUpgradeConfig:
    properties:
      launchTemplateId:
        description: LaunchTemplateId identifies the EKS launch template to use for
          the in-place upgrade.
        type: string
      launchTemplateName:
        description: LaunchTemplateName identifies the EKS launch template when launchTemplateId
          is not provided.
        type: string
      launchTemplateVersion:
        description: LaunchTemplateVersion is required for EKS in-place upgrades when
          the node group's launch template specifies a custom AMI.
        type: string
      newNodeGroupName:
        description: NewNodeGroupName is the name for the new node group in blue-green
          upgrade. Optional; if empty, a random 8-char lowercase name is used.
        type: string
      nodeGroupName:
        description: NodeGroupName is the name of the node group to upgrade
        type: string
      requiresVMStorageRollout:
        default: false
        description: RequiresVMStorageRollout indicates if this blue-green node group
          upgrade should trigger the VMStorage rollout flow
        type: boolean
      runtimeType:
        description: RuntimeType is the current Kubernetes runtime type of the node
          group
        type: string
      strategy:
        description: Strategy is the upgrade strategy for nodegroups ("blue-green"
          or "in-place")
        type: string
      targetRuntimeVersion:
        description: TargetRuntimeVersion is the target Kubernetes runtime version
          to upgrade to
        type: string
      vmClusterHelmValues:
        additionalProperties: true
        description: |-
          VMClusterHelmValues contains a VMCluster.spec overlay to apply during VMStorage rollout.
          Use an empty object when the rollout should not change VMCluster spec.
        type: object
      vmstorageSTSName:
        default: vmstorage-vmcluster
        description: VMStorageSTSName is the name of the vmstorage StatefulSet to
          observe rollout status
        type: string
      vmstorageSTSNamespace:
        default: observability
        description: VMStorageSTSNamespace is the namespace of the vmstorage StatefulSet
          to observe rollout status
        type: string
    required:
    - nodeGroupName
    - requiresVMStorageRollout
    - strategy
    type: object
  message.OpenAlertConfig:
    properties:
      ruleTemplateID:
        type: string
      status:
        type: string
    type: object
  message.OpenAlertRule:
    type: object
  message.OpenAlertRuleTemplate:
    properties:
      desc:
        type: string
      id:
        type: string
    type: object
  message.OpenAlertRuleTemplateList:
    properties:
      templates:
        items:
          $ref: '#/definitions/message.OpenAlertRuleTemplate'
        type: array
    type: object
  message.OpenClusterListResponse:
    properties:
      clusters:
        items:
          $ref: '#/definitions/message.OpenObservabilityCluster'
        type: array
      next_page_token:
        type: string
    type: object
  message.OpenCreateClusterRequest:
    properties:
      agentAccessARN:
        type: string
      agentManagerARN:
        type: string
      applicationID:
        type: string
      note:
        type: string
      projectID:
        type: string
      ruleTemplateID:
        type: string
      shareMode:
        type: string
      tags:
        items:
          type: string
        type: array
    required:
    - agentAccessARN
    - agentManagerARN
    - applicationID
    - projectID
    type: object
  message.OpenLogsConfig:
    properties:
      dataRetention:
        type: integer
      status:
        type: string
    type: object
  message.OpenMetricsConfig:
    properties:
      dataRetention:
        type: integer
      queryEndpoint:
        type: string
      status:
        type: string
    type: object
  message.OpenModuleConfigRequest:
    properties:
      retention:
        type: integer
    required:
    - retention
    type: object
  message.OpenModuleStatusRequest:
    properties:
      status:
        type: string
    required:
    - status
    type: object
  message.OpenObservabilityCluster:
    properties:
      agentRoleARN:
        type: string
      alerts:
        $ref: '#/definitions/message.OpenAlertConfig'
        type: object
      applicationID:
        type: string
      bizType:
        type: string
      dnsName:
        type: string
      endpointServiceName:
        type: string
      id:
        type: string
      logs:
        $ref: '#/definitions/message.OpenLogsConfig'
        type: object
      metrics:
        $ref: '#/definitions/message.OpenMetricsConfig'
        type: object
      note:
        type: string
      projectID:
        type: string
      region:
        type: string
      ruleTemplateID:
        type: string
      share_mode:
        type: string
      status:
        type: string
      tags:
        items:
          type: string
        type: array
      tenantID:
        type: string
      vendor:
        type: string
    type: object
  message.PauseClusterReq:
    properties:
      region:
        type: string
      vendor:
        type: string
    required:
    - region
    - vendor
    type: object
  message.PauseClusterResp:
    properties:
      applicationID:
        type: string
      bizType:
        type: string
      dataPropertyRights:
        type: integer
      id:
        type: string
      internalReadUri:
        type: string
      muteAlert:
        type: boolean
      note:
        type: string
      openReadUri:
        type: string
      projectID:
        type: string
      region:
        type: string
      shareMode:
        type: string
      tags:
        items:
          type: string
        type: array
      tenantID:
        type: string
      vendor:
        type: string
      version:
        type: string
    required:
    - applicationID
    - bizType
    - region
    - shareMode
    - tenantID
    - vendor
    type: object
  message.PauseClusterUpgradeResp:
    properties:
      message:
        type: string
    type: object
  message.QueryAlertRulesByCloudUserResp:
    properties:
      alertRuleList:
        items:
          $ref: '#/definitions/structs.AlertRuleGroup'
        type: array
    type: object
  message.QueryAlertRulesReq:
    properties:
      region:
        type: string
      vendor:
        type: string
    required:
    - region
    - vendor
    type: object
  message.QueryAlertRulesTemplateReq:
    properties:
      region:
        type: string
      vendor:
        type: string
    required:
    - region
    - vendor
    type: object
  message.QueryAlertRulesTemplateResp:
    properties:
      monitorPromRules:
        type: object
    required:
    - monitorPromRules
    type: object
  message.QueryClustersReq:
    properties:
      applicationID:
        type: string
      bizType:
        type: string
      continueToken:
        type: string
      limit:
        type: integer
      projectID:
        type: string
      region:
        type: string
      showDeleted:
        type: boolean
      tenantID:
        type: string
      vendor:
        type: string
    required:
    - region
    - vendor
    type: object
  message.QueryClustersResp:
    properties:
      clusters:
        items:
          $ref: '#/definitions/structs.ClusterBaseInfo'
        type: array
      continueToken:
        type: string
      partial:
        type: boolean
      remainingItemCount:
        type: integer
    type: object
  message.QueryExternalAlertsReq:
    properties:
      endTime:
        description: endTime of alerts, unix timestamp
        type: integer
      limit:
        type: integer
      page:
        type: integer
      region:
        type: string
      severity:
        description: severity with lowercase, oneof warning, critical
        type: string
      startTime:
        description: startTime of alerts, unix timestamp
        type: integer
      status:
        description: alert state with lowercase, one of active closed all
        type: string
      vendor:
        type: string
    required:
    - region
    - vendor
    type: object
  message.QueryExternalAlertsResp:
    properties:
      alerts:
        items:
          $ref: '#/definitions/structs.UserAlertInfo'
        type: array
      total:
        type: integer
    type: object
  message.QueryIntegrationTasksReq:
    properties:
      dataType:
        type: string
      pageSize:
        type: integer
      pageToken:
        type: string
    type: object
  message.QueryIntegrationTasksResp:
    properties:
      nextPageToken:
        type: string
      pipelines:
        items:
          $ref: '#/definitions/message.IntegrationTaskSummary'
        type: array
      totalSize:
        type: integer
    type: object
  message.ResourceMeta:
    properties:
      PVCName:
        type: string
      namespace:
        type: string
      request:
        type: string
      specID:
        type: string
    type: object
  message.Result:
    properties:
      code:
        description: http error code
        type: integer
      data:
        description: The returned content, storage in JSON format
        type: object
      message:
        description: http error msg
        type: string
    type: object
  message.ResumeClusterReq:
    properties:
      region:
        type: string
      vendor:
        type: string
    required:
    - region
    - vendor
    type: object
  message.ResumeClusterResp:
    properties:
      applicationID:
        type: string
      bizType:
        type: string
      dataPropertyRights:
        type: integer
      id:
        type: string
      internalReadUri:
        type: string
      muteAlert:
        type: boolean
      note:
        type: string
      openReadUri:
        type: string
      projectID:
        type: string
      region:
        type: string
      shareMode:
        type: string
      tags:
        items:
          type: string
        type: array
      tenantID:
        type: string
      vendor:
        type: string
      version:
        type: string
    required:
    - applicationID
    - bizType
    - region
    - shareMode
    - tenantID
    - vendor
    type: object
  message.ResumeClusterUpgradeResp:
    properties:
      message:
        type: string
    type: object
  message.StepStatus:
    properties:
      beginTime:
        type: string
      duration:
        type: string
      endTime:
        type: string
      processor:
        type: string
      status:
        type: string
    type: object
  message.UnmuteClusterAlertReq:
    properties:
      region:
        type: string
      vendor:
        type: string
    required:
    - region
    - vendor
    type: object
  message.UnmuteClusterAlertResp:
    properties:
      applicationID:
        type: string
      bizType:
        type: string
      dataPropertyRights:
        type: integer
      id:
        type: string
      internalReadUri:
        type: string
      muteAlert:
        type: boolean
      note:
        type: string
      openReadUri:
        type: string
      projectID:
        type: string
      region:
        type: string
      shareMode:
        type: string
      tags:
        items:
          type: string
        type: array
      tenantID:
        type: string
      vendor:
        type: string
      version:
        type: string
    required:
    - applicationID
    - bizType
    - region
    - shareMode
    - tenantID
    - vendor
    type: object
  message.UpdateAlertRulesByCloudUserReq:
    properties:
      alertRules:
        additionalProperties:
          $ref: '#/definitions/structs.AlertRuleBase'
        type: object
      region:
        type: string
      vendor:
        type: string
    required:
    - region
    - vendor
    type: object
  message.UpdateAlertRulesByCloudUserResp:
    properties:
      data:
        additionalProperties:
          $ref: '#/definitions/structs.UpdateAlertRule'
        type: object
    type: object
  message.UpdateBasicAuthReq:
    properties:
      password:
        type: string
      username:
        type: string
    required:
    - password
    - username
    type: object
  message.UpdateBasicAuthResp:
    type: object
  message.UpdateClusterReq:
    properties:
      monitorSpecID:
        type: string
      muteAlert:
        type: boolean
      region:
        type: string
      ruleTemplateID:
        type: string
      vendor:
        type: string
    required:
    - region
    - vendor
    type: object
  message.UpdateClusterResp:
    properties:
      applicationID:
        type: string
      bizType:
        type: string
      dataPropertyRights:
        type: integer
      id:
        type: string
      internalReadUri:
        type: string
      muteAlert:
        type: boolean
      note:
        type: string
      openReadUri:
        type: string
      projectID:
        type: string
      region:
        type: string
      shareMode:
        type: string
      tags:
        items:
          type: string
        type: array
      tenantID:
        type: string
      vendor:
        type: string
      version:
        type: string
    required:
    - applicationID
    - bizType
    - region
    - shareMode
    - tenantID
    - vendor
    type: object
  message.UpdateHelmReleaseReq:
    properties:
      component:
        description: Pre-defined component name
        type: string
      config:
        $ref: '#/definitions/message.HelmReleaseConfig'
        type: object
      name:
        type: string
    required:
    - component
    - name
    type: object
  message.UpdateHelmReleaseResp:
    properties:
      component:
        type: string
      config:
        $ref: '#/definitions/message.HelmReleaseConfig'
        type: object
      name:
        type: string
      namespace:
        type: string
      status:
        $ref: '#/definitions/message.HelmReleaseStatusSummary'
        type: object
      updateTime:
        type: string
    type: object
  message.UpdateIntegrationTaskReq:
    properties:
      dataFormat:
        type: string
      frequency:
        type: string
      id:
        type: string
    required:
    - id
    type: object
  message.UpdateIntegrationTaskResp:
    properties:
      accessPrincipal:
        type: string
      clusterID:
        type: string
      createTime:
        type: string
      dataFormat:
        type: string
      dataPrefix:
        type: string
      dataType:
        type: string
      destinationInfo:
        $ref: '#/definitions/message.DestinationInfo'
        type: object
      displayName:
        type: string
      endTime:
        type: string
      frequency:
        type: string
      id:
        type: string
      jobType:
        type: string
      name:
        type: string
      phase:
        type: string
      rawLogComponents:
        items:
          type: string
        type: array
      startTime:
        type: string
    type: object
  message.UpdateVMClusterReq:
    properties:
      id:
        type: string
      values:
        additionalProperties: true
        type: object
    required:
    - id
    - values
    type: object
  message.UpdateVMClusterResp:
    properties:
      endpoints:
        additionalProperties:
          type: string
        type: object
      helm_release_info:
        $ref: '#/definitions/message.HelmReleaseInfo'
        type: object
      id:
        type: string
      name:
        type: string
      status:
        type: string
      update_time:
        type: string
      values:
        additionalProperties: true
        type: object
    type: object
  message.VMClusterSummary:
    properties:
      create_time:
        type: string
      endpoints:
        additionalProperties:
          type: string
        type: object
      id:
        type: string
      name:
        type: string
      status:
        type: string
      update_time:
        type: string
    type: object
  structs.AWSAgentEnvironment:
    properties:
      account:
        type: string
      nodeSubnetIDs:
        items:
          type: string
        type: array
      oidc:
        type: string
      securityGroupID:
        type: string
      vpcID:
        type: string
    type: object
  structs.AgentEnvironment:
    properties:
      aliCloud:
        $ref: '#/definitions/structs.AliCloudAgentEnvironment'
        type: object
      aws:
        $ref: '#/definitions/structs.AWSAgentEnvironment'
        type: object
      azure:
        $ref: '#/definitions/structs.AzureAgentEnvironment'
        type: object
      dataplane:
        $ref: '#/definitions/structs.Dataplane'
        type: object
      gcp:
        $ref: '#/definitions/structs.GCPAgentEnvironment'
        type: object
      releaseNameSpace:
        type: string
    type: object
  structs.AgentInfo:
    properties:
      roleARN:
        description: o11y role for agents
        type: string
    type: object
  structs.Alert:
    properties:
      annotations:
        additionalProperties:
          type: string
        type: object
      endsAt:
        type: string
      generatorURL:
        type: string
      labels:
        additionalProperties:
          type: string
        type: object
      startsAt:
        type: string
      status:
        type: string
    type: object
  structs.AlertInfo:
    properties:
      muteAlert:
        type: boolean
      ruleTemplateID:
        type: string
    type: object
  structs.AlertRuleBase:
    properties:
      alertRuleID:
        type: string
      for:
        type: integer
      status:
        type: string
      threshold:
        type: number
    type: object
  structs.AlertRuleDetail:
    properties:
      alert:
        type: string
      alertRuleID:
        type: string
      canEdit:
        type: string
      defaultFor:
        type: number
      defaultThreshold:
        type: number
      for:
        type: integer
      monitorTarget:
        type: string
      operator:
        type: string
      sortID:
        type: integer
      status:
        type: string
      threshold:
        type: number
    type: object
  structs.AlertRuleGroup:
    properties:
      name:
        type: string
      rules:
        items:
          $ref: '#/definitions/structs.AlertRuleDetail'
        type: array
    type: object
  structs.AliCloudAgentEnvironment:
    properties:
      account:
        type: string
      nodeSubnetIDs:
        items:
          type: string
        type: array
      oidc:
        type: string
      securityGroupID:
        type: string
      vpcID:
        type: string
    type: object
  structs.AzureAgentEnvironment:
    properties:
      networkName:
        type: string
      oidc:
        description: AKS OIDC issuer used for creating federated identity
        type: string
      resourceGroup:
        type: string
      subnet:
        description: Subnet where private endpoint should be created
        type: string
      subscriptionID:
        type: string
    type: object
  structs.ClusterBaseInfo:
    properties:
      applicationID:
        type: string
      bizType:
        type: string
      dataPropertyRights:
        type: integer
      id:
        type: string
      internalReadUri:
        type: string
      muteAlert:
        type: boolean
      note:
        type: string
      openReadUri:
        type: string
      projectID:
        type: string
      region:
        type: string
      shareMode:
        type: string
      tags:
        items:
          type: string
        type: array
      tenantID:
        type: string
      vendor:
        type: string
      version:
        type: string
    required:
    - applicationID
    - bizType
    - region
    - shareMode
    - tenantID
    - vendor
    type: object
  structs.ClusterTopologyType:
    properties:
      pd:
        $ref: '#/definitions/structs.PD'
        type: object
      tidb:
        $ref: '#/definitions/structs.TiDB'
        type: object
      tiflash:
        $ref: '#/definitions/structs.TiFlash'
        type: object
      tikv:
        $ref: '#/definitions/structs.TiKV'
        type: object
    type: object
  structs.Dataplane:
    properties:
      clusterCAData:
        description: +optional
        type: string
      clusterEndpoint:
        description: +optional
        type: string
      clusterKubeConfig:
        description: |-
          +optional
          base64-encoded kubeconfig data
        type: string
      clusterName:
        type: string
    type: object
  structs.GCPAgentEnvironment:
    properties:
      gcpProject:
        type: string
      networkName:
        type: string
      subnets:
        items:
          type: string
        type: array
    type: object
  structs.MonitorInfo:
    properties:
      dnsName:
        type: string
      endpointServiceName:
        description: Storage             string `json:"storage" form:"storage"`
        type: string
      specID:
        type: string
      vmAccountID:
        type: string
      vmProjectID:
        type: string
    type: object
  structs.Observed:
    properties:
      clusterTopology:
        $ref: '#/definitions/structs.ClusterTopologyType'
        type: object
      tidbVersion:
        type: string
    type: object
  structs.PD:
    properties:
      replicas:
        type: integer
    type: object
  structs.RegionalRouter:
    properties:
      accessExternalID:
        description: external id used to access regional, e.g. external id used to
          access aws api gateway
        type: string
      accessPrincipal:
        description: principal used to access regional, e.g. aws-role-arn used to
          access aws api gateway
        type: string
      dataplaneAddress:
        description: Address of regional data plane.
        type: string
      dnsAddress:
        description: Address of regional control plane.
        type: string
      logicalRegionName:
        type: string
      primary:
        type: boolean
    type: object
  structs.StorageInfo:
    properties:
      bucketName:
        type: string
      category:
        type: string
      dataARN:
        type: string
      objectPath:
        type: string
      storageAccount:
        description: Keep the Go field name for compatibility while the public API
          stays on storageAccount.
        type: string
    type: object
  structs.TiDB:
    properties:
      replicas:
        type: integer
    type: object
  structs.TiFlash:
    properties:
      replicas:
        type: integer
    type: object
  structs.TiKV:
    properties:
      replicas:
        type: integer
    type: object
  structs.UpdateAlertRule:
    properties:
      alertName:
        type: string
      for:
        type: string
      oldFor:
        type: string
      oldStatus:
        type: string
      oldThreshold:
        type: number
      status:
        type: string
      threshold:
        type: number
    type: object
  structs.UserAlertInfo:
    properties:
      activeAt:
        type: integer
      alertName:
        description: alert name, the description label in alert rule.
        type: string
      changefeed:
        type: string
      duration:
        description: duration time in seconds, e.g. 1h2m0s
        type: string
      jobID:
        type: string
      message:
        description: alert message, the message label in alert rule.
        type: string
      ruleName:
        description: alert rule name, the alert name in alert rule.
        type: string
      severity:
        type: string
      status:
        type: string
      value:
        type: string
    type: object
  v1.ClusterUpgradeOperation:
    properties:
      spec:
        $ref: '#/definitions/v1.ClusterUpgradeOperationSpec'
        type: object
      status:
        $ref: '#/definitions/v1.ClusterUpgradeOperationStatus'
        type: object
    type: object
  v1.ClusterUpgradeOperationSpec:
    properties:
      cloudProvider:
        description: |-
          +kubebuilder:validation:Required
          +kubebuilder:validation:Enum=eks;gke;aks;ack
          CloudProvider is the cloud provider of the cluster
        type: string
      k8sClusterName:
        description: |-
          +kubebuilder:validation:Required
          K8sClusterName is the name of the target Kubernetes cluster
        type: string
      paused:
        description: Paused indicates whether the operation is paused
        type: boolean
      region:
        description: |-
          +kubebuilder:validation:Required
          Region is the cloud region where the cluster is located
        type: string
      schedule:
        description: |-
          +kubebuilder:validation:Required
          Schedule is the scheduled time to start the operation
        type: string
      steps:
        $ref: '#/definitions/v1.UpgradeSteps'
        description: |-
          +kubebuilder:validation:Required
          Steps is the ordered list of upgrade steps to execute
        type: object
      targetVersion:
        description: |-
          +kubebuilder:validation:Required
          TargetVersion is the target Kubernetes version to upgrade to
        type: string
      ttlSeconds:
        description: |-
          +optional
          TTLSeconds is the time-to-live after completion before auto-deletion
        type: string
    type: object
  v1.ClusterUpgradeOperationStatus:
    properties:
      beginTime:
        description: BeginTime is the time when the operation started
        type: string
      currentStep:
        $ref: '#/definitions/v1.UpgradeStep'
        description: CurrentStep is the step currently being executed
        type: object
      duration:
        description: Duration is the human-readable duration of the operation
        type: string
      endTime:
        description: EndTime is the time when the operation completed
        type: string
      nextSteps:
        $ref: '#/definitions/v1.UpgradeSteps'
        description: NextSteps is the queue of steps to be executed
        type: object
      phase:
        description: Phase describes the current phase of the upgrade operation
        type: string
      succeededSteps:
        $ref: '#/definitions/v1.UpgradeSteps'
        description: SucceededSteps is the list of steps that have completed successfully
        type: object
    type: object
  v1.UpgradeStep:
    properties:
      beginTime:
        description: |-
          +optional
          BeginTime is the time when this step started
        type: string
      cloudOperationID:
        description: |-
          +optional
          CloudOperationID stores the cloud provider's async operation ID (e.g. GKE Operation name) for polling.
          Used when UpgradeNodeGroup returns an operation ID; we poll this to determine completion.
        type: string
      duration:
        description: |-
          +optional
          Duration is the human-readable duration of this step
        type: string
      endTime:
        description: |-
          +optional
          EndTime is the time when this step completed
        type: string
      options:
        description: |-
          +optional
          Options contains processor-specific parameters
        type: string
      processor:
        description: |-
          +kubebuilder:validation:Required
          +kubebuilder:validation:Enum=upgrade-controlplane;upgrade-cluster-addons;upgrade-node-group
          Processor is the name of the processor to execute
        type: string
      subStep:
        description: |-
          +optional
          SubStep is the current sub-step within this step (e.g. for blue-green node group: create-nodegroup, wait-ready, cordon, vmstorage-rollout, delete-old-nodegroup).
        type: string
      subStepBeginTime:
        description: |-
          +optional
          SubStepBeginTime is when the current sub-step started.
        type: string
    type: object
  v1.UpgradeSteps:
    items:
      $ref: '#/definitions/v1.UpgradeStep'
    type: array
host: localhost:8080
info:
  contact:
    email: zhangpeijin@pingcap.com
    name: zhangpeijin
  description: Observability GlobalServer API
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  title: Observability GlobalServer API
  version: "1.0"
paths:
  /:
    get:
      consumes:
      - application/json
      description: get service info
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.GetServiceInfoResp'
              type: object
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: get service info
      tags:
      - service
  /addons:
    get:
      consumes:
      - application/json
      description: Lists all addons installed in the cluster with their versions and
        status
      parameters:
      - description: Kubernetes cluster name
        in: query
        name: k8sClusterName
        required: true
        type: string
      - description: Cloud region
        in: query
        name: region
        required: true
        type: string
      - description: Cloud provider (eks, gke, aks, ack, mock)
        in: query
        name: cloudProvider
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.ListAddonsResp'
              type: object
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: List cluster addons
      tags:
      - upgrade-operation
  /alert-auth:
    put:
      consumes:
      - application/json
      description: Updates basic auth credentials for both alertmanager and kube-prometheus-stack
        HelmReleases using fail-fast approach
      parameters:
      - description: update basic auth request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/message.UpdateBasicAuthReq'
      produces:
      - application/json
      responses:
        "200":
          description: Basic auth credentials updated successfully
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.UpdateBasicAuthResp'
              type: object
        "500":
          description: Basic auth update failed (30004)
          schema:
            $ref: '#/definitions/message.Result'
      summary: update basic auth credentials for alertmanager and kube-prometheus-stack
      tags:
      - ops
  /alertrule-template/:
    post:
      consumes:
      - application/json
      description: modify alertrules template
      parameters:
      - in: query
        name: region
        required: true
        type: string
      - in: query
        name: templateID
        required: true
        type: string
      - in: query
        name: vendor
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.ModifyAlertRulesTemplateResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: modify alertrules template
      tags:
      - cluster
  /alertrule-template/{id}:
    delete:
      consumes:
      - application/json
      description: delete alertrules template
      parameters:
      - in: query
        name: id
        required: true
        type: string
      - in: query
        name: region
        required: true
        type: string
      - in: query
        name: vendor
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.DeleteAlertRulesTemplateResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: delete alertrules template
      tags:
      - cluster
    get:
      consumes:
      - application/json
      description: get alertrules template
      parameters:
      - in: query
        name: region
        required: true
        type: string
      - in: query
        name: vendor
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.QueryAlertRulesTemplateResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: get alertrules template
      tags:
      - cluster
  /api/v2/global/clusters:
    get:
      consumes:
      - application/json
      description: list clusters by querying tidb-management-service and o11y regional
        servers. At least one of tenantIds, projectIds, or clusterIds must be provided.
        When showInfra=true, clusterIds is required and each cluster row includes
        an infraClusters array.
      parameters:
      - description: comma-separated tenant IDs; at least one of tenantIds/projectIds/clusterIds
          is required
        in: query
        name: tenantIds
        type: string
      - description: comma-separated project IDs; at least one of tenantIds/projectIds/clusterIds
          is required
        in: query
        name: projectIds
        type: string
      - description: comma-separated cluster IDs; at least one of tenantIds/projectIds/clusterIds
          is required
        in: query
        name: clusterIds
        type: string
      - description: 'environment: dev, staging, prod'
        in: query
        name: env
        required: true
        type: string
      - description: when true, each cluster row includes an infraClusters array;
          requires clusterIds to be set
        in: query
        name: showInfra
        type: boolean
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.ListClustersWithMetadataResp'
              type: object
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: list clusters with metadata
      tags:
      - cluster
  /api/v2/observability/alertrule/templates:
    get:
      parameters:
      - description: Cloud vendor
        in: header
        name: x-vendor
        required: true
        type: string
      - description: Region
        in: header
        name: x-region
        required: true
        type: string
      - description: Organization ID
        in: header
        name: x-org-id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.OpenAlertRuleTemplateList'
              type: object
      summary: Get alert rule templates
      tags:
      - AlertRule
  /api/v2/observability/alertrule/templates/{template_id}:
    get:
      parameters:
      - description: Cloud vendor
        in: header
        name: x-vendor
        required: true
        type: string
      - description: Region
        in: header
        name: x-region
        required: true
        type: string
      - description: Organization ID
        in: header
        name: x-org-id
        required: true
        type: string
      - description: Template ID
        in: path
        name: template_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.OpenAlertRule'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
      summary: Get alert rule template detail
      tags:
      - AlertRule
  /api/v2/observability/clusters/:
    get:
      parameters:
      - description: Cloud vendor
        in: header
        name: x-vendor
        required: true
        type: string
      - description: Region
        in: header
        name: x-region
        required: true
        type: string
      - description: Organization ID
        in: header
        name: x-org-id
        required: true
        type: string
      - description: Project ID
        in: query
        name: projectID
        type: string
      - description: Application ID
        in: query
        name: applicationID
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.OpenClusterListResponse'
              type: object
      summary: Query cluster list
      tags:
      - Cluster
    post:
      consumes:
      - application/json
      parameters:
      - description: Cloud vendor
        in: header
        name: x-vendor
        required: true
        type: string
      - description: Region
        in: header
        name: x-region
        required: true
        type: string
      - description: Organization ID
        in: header
        name: x-org-id
        required: true
        type: string
      - description: Create request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/message.OpenCreateClusterRequest'
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.OpenObservabilityCluster'
              type: object
        "409":
          description: Conflict
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.OpenObservabilityCluster'
              type: object
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: Create an observability cluster
      tags:
      - Cluster
  /api/v2/observability/clusters/{cluster_id}:
    delete:
      parameters:
      - description: Cloud vendor
        in: header
        name: x-vendor
        required: true
        type: string
      - description: Region
        in: header
        name: x-region
        required: true
        type: string
      - description: Organization ID
        in: header
        name: x-org-id
        required: true
        type: string
      - description: Cluster ID
        in: path
        name: cluster_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.OpenObservabilityCluster'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
      summary: Delete cluster
      tags:
      - Cluster
    get:
      parameters:
      - description: Cloud vendor
        in: header
        name: x-vendor
        required: true
        type: string
      - description: Region
        in: header
        name: x-region
        required: true
        type: string
      - description: Organization ID
        in: header
        name: x-org-id
        required: true
        type: string
      - description: Cluster ID
        in: path
        name: cluster_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.OpenObservabilityCluster'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
      summary: Get cluster details
      tags:
      - Cluster
  /api/v2/observability/clusters/{cluster_id}/:pause:
    post:
      parameters:
      - description: Cloud vendor
        in: header
        name: x-vendor
        required: true
        type: string
      - description: Region
        in: header
        name: x-region
        required: true
        type: string
      - description: Organization ID
        in: header
        name: x-org-id
        required: true
        type: string
      - description: Cluster ID
        in: path
        name: cluster_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.OpenObservabilityCluster'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
      summary: Pause cluster
      tags:
      - Cluster
  /api/v2/observability/clusters/{cluster_id}/:resume:
    post:
      parameters:
      - description: Cloud vendor
        in: header
        name: x-vendor
        required: true
        type: string
      - description: Region
        in: header
        name: x-region
        required: true
        type: string
      - description: Organization ID
        in: header
        name: x-org-id
        required: true
        type: string
      - description: Cluster ID
        in: path
        name: cluster_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.OpenObservabilityCluster'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
      summary: Resume cluster
      tags:
      - Cluster
  /api/v2/observability/clusters/{cluster_id}/{category}/config:
    put:
      consumes:
      - application/json
      parameters:
      - description: Cloud vendor
        in: header
        name: x-vendor
        required: true
        type: string
      - description: Region
        in: header
        name: x-region
        required: true
        type: string
      - description: Organization ID
        in: header
        name: x-org-id
        required: true
        type: string
      - description: Cluster ID
        in: path
        name: cluster_id
        required: true
        type: string
      - description: Module name
        in: path
        name: module
        required: true
        type: string
      - description: Configuration
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/message.OpenModuleConfigRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/message.Result'
      summary: Update category configuration
      tags:
      - Cluster
  /api/v2/observability/clusters/{cluster_id}/{category}/status:
    put:
      consumes:
      - application/json
      parameters:
      - description: Cloud vendor
        in: header
        name: x-vendor
        required: true
        type: string
      - description: Region
        in: header
        name: x-region
        required: true
        type: string
      - description: Organization ID
        in: header
        name: x-org-id
        required: true
        type: string
      - description: Cluster ID
        in: path
        name: cluster_id
        required: true
        type: string
      - description: category name
        in: path
        name: category
        required: true
        type: string
      - description: Status
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/message.OpenModuleStatusRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/message.Result'
      summary: Update category status
      tags:
      - Cluster
  /api/v2/observability/clusters/{cluster_id}/alertrule/:
    get:
      parameters:
      - description: Cloud vendor
        in: header
        name: x-vendor
        required: true
        type: string
      - description: Region
        in: header
        name: x-region
        required: true
        type: string
      - description: Organization ID
        in: header
        name: x-org-id
        required: true
        type: string
      - description: cluster ID
        in: path
        name: cluster_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.OpenAlertRule'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
      summary: Get alert rule template detail
      tags:
      - AlertRule
    put:
      parameters:
      - description: Cloud vendor
        in: header
        name: x-vendor
        required: true
        type: string
      - description: Region
        in: header
        name: x-region
        required: true
        type: string
      - description: Organization ID
        in: header
        name: x-org-id
        required: true
        type: string
      - description: cluster ID
        in: path
        name: cluster_id
        required: true
        type: string
      - description: content
        in: body
        name: alert_rules
        required: true
        schema:
          $ref: '#/definitions/message.OpenAlertRule'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.OpenAlertRule'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
      summary: Get alert rule template detail
      tags:
      - AlertRule
  /clusters/:
    get:
      consumes:
      - application/json
      description: query clusters
      parameters:
      - in: query
        name: applicationID
        type: string
      - in: query
        name: bizType
        type: string
      - in: query
        name: continueToken
        type: string
      - in: query
        name: limit
        type: integer
      - in: query
        name: projectID
        type: string
      - in: query
        name: region
        required: true
        type: string
      - in: query
        name: showDeleted
        type: boolean
      - in: query
        name: tenantID
        type: string
      - in: query
        name: vendor
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.QueryClustersResp'
              type: object
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: query clusters
      tags:
      - cluster
    post:
      consumes:
      - application/json
      description: create a observability cluster
      parameters:
      - description: create request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/message.CreateClusterReq'
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.CreateClusterResp'
              type: object
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: create a observability cluster
      tags:
      - cluster
  /clusters/{id}:
    delete:
      consumes:
      - application/json
      description: delete a cluster
      parameters:
      - description: cluster id
        in: path
        name: id
        required: true
        type: string
      - in: query
        name: agentAccessARN
        type: string
      - in: query
        name: bizType
        type: string
      - in: query
        name: region
        required: true
        type: string
      - in: query
        name: vendor
        required: true
        type: string
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.DeleteClusterResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: delete a cluster
      tags:
      - cluster
    get:
      consumes:
      - application/json
      description: show detail info of a cluster
      parameters:
      - description: cluster id
        in: path
        name: id
        required: true
        type: string
      - in: query
        name: bizType
        type: string
      - in: query
        name: region
        required: true
        type: string
      - in: query
        name: vendor
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.DetailClusterResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: show detail info of a cluster
      tags:
      - cluster
    put:
      consumes:
      - application/json
      description: update a cluster's muteAlert, ruleTemplateID, or monitorSpecID
      parameters:
      - description: cluster id
        in: path
        name: id
        required: true
        type: string
      - description: update cluster request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/message.UpdateClusterReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.UpdateClusterResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: update a cluster
      tags:
      - cluster
  /clusters/{id}/agent-observed/:
    post:
      consumes:
      - application/json
      description: modify observed info for monitor agent
      parameters:
      - description: cluster id
        in: path
        name: id
        required: true
        type: string
      - description: update monitor agent observed info
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/message.ModifyAgentObservedReq'
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.ModifyAgentObservedResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "405":
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: modify observed info for monitor agent
      tags:
      - cluster
  /clusters/{id}/alert/mute:
    put:
      consumes:
      - application/json
      description: mute alert of a cluster
      parameters:
      - description: cluster id
        in: path
        name: id
        required: true
        type: string
      - in: query
        name: region
        required: true
        type: string
      - in: query
        name: vendor
        required: true
        type: string
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.MuteClusterAlertResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: mute alert of a cluster
      tags:
      - cluster
  /clusters/{id}/alert/unmute:
    put:
      consumes:
      - application/json
      description: unmute alert of a cluster
      parameters:
      - description: cluster id
        in: path
        name: id
        required: true
        type: string
      - in: query
        name: region
        required: true
        type: string
      - in: query
        name: vendor
        required: true
        type: string
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.UnmuteClusterAlertResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: unmute alert of a cluster
      tags:
      - cluster
  /clusters/{id}/monitor-mode/:
    put:
      consumes:
      - application/json
      description: adjust spec of monitor share mode
      parameters:
      - description: cluster id
        in: path
        name: id
        required: true
        type: string
      - description: update monitor share mode request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/message.ModifyMonitorModeReq'
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.ModifyMonitorModeResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "405":
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: adjust spec of monitor share mode
      tags:
      - cluster
  /clusters/{id}/monitor-resource/:
    post:
      consumes:
      - application/json
      description: adjust spec of monitor resource
      parameters:
      - description: cluster id
        in: path
        name: id
        required: true
        type: string
      - description: update monitor storage resource
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/message.ModifyMonitorResourceReq'
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.ModifyMonitorResourceResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "405":
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: adjust spec of monitor resource
      tags:
      - cluster
  /clusters/{id}/monitor-spec/:
    put:
      consumes:
      - application/json
      description: adjust spec of monitor spec
      parameters:
      - description: cluster id
        in: path
        name: id
        required: true
        type: string
      - description: update monitor spec request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/message.ModifyMonitorSpecReq'
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.ModifyMonitorSpecResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: adjust spec of monitor spec
      tags:
      - cluster
  /clusters/{id}/monitor-storage/:
    post:
      consumes:
      - application/json
      description: adjust spec of monitor storage
      parameters:
      - description: cluster id
        in: path
        name: id
        required: true
        type: string
      - description: update monitor storage request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/message.ModifyMonitorStorageReq'
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.ModifyMonitorStorageResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "405":
          description: Method Not Allowed
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: adjust spec of monitor storage
      tags:
      - cluster
  /clusters/{id}/pause:
    put:
      consumes:
      - application/json
      description: pause a cluster
      parameters:
      - description: cluster id
        in: path
        name: id
        required: true
        type: string
      - in: query
        name: region
        required: true
        type: string
      - in: query
        name: vendor
        required: true
        type: string
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.PauseClusterResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: pause a cluster
      tags:
      - cluster
  /clusters/{id}/resume:
    put:
      consumes:
      - application/json
      description: resume a cluster
      parameters:
      - description: cluster id
        in: path
        name: id
        required: true
        type: string
      - in: query
        name: region
        required: true
        type: string
      - in: query
        name: vendor
        required: true
        type: string
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.ResumeClusterResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: resume a cluster
      tags:
      - cluster
  /external/{bizType}/orgs/{tenantID}/byocVcpuPools/observabilityVcpu:
    get:
      consumes:
      - application/json
      description: proxy an org-scoped observability vCPU range query to regional
        self-monitoring prometheus
      parameters:
      - description: Region id for routing
        in: header
        name: x-region-id
        required: true
        type: string
      - description: bizType, e.g. byoc
        in: path
        name: bizType
        required: true
        type: string
      - description: tenant id
        in: path
        name: tenantID
        required: true
        type: string
      - description: range start, unix seconds
        in: query
        name: start
        required: true
        type: string
      - description: range end, unix seconds
        in: query
        name: end
        required: true
        type: string
      - description: optional resolution step, default 30s
        in: query
        name: step
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            additionalProperties: true
            type: object
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: get BYOC observability vCPU range metrics
      tags:
      - external
  /external/{bizType}/orgs/{tenantID}/clusters/{applicationID}/:
    get:
      consumes:
      - application/json
      description: get cluster info for web console
      parameters:
      - description: Region id for routing
        in: header
        name: x-region-id
        required: true
        type: string
      - description: bizType, for staging, use staging-tidbcloud-nextgen, others,
          use tidbcloud-nextgen
        in: path
        name: bizType
        required: true
        type: string
      - description: tenant id
        in: path
        name: tenantID
        required: true
        type: string
      - description: application id
        in: path
        name: applicationID
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.GetClusterExternalResp'
              type: object
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/message.Result'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: get cluster info for web console
      tags:
      - external
  /external/{bizType}/orgs/{tenantID}/clusters/{applicationID}/alerts:
    get:
      consumes:
      - application/json
      description: list all user alerts belongs to specific cluster
      parameters:
      - description: bizType, for staging, use staging-tidbcloud, others, use tidbcloud
        in: path
        name: bizType
        required: true
        type: string
      - description: tenant id
        in: path
        name: tenantID
        required: true
        type: string
      - description: application id
        in: path
        name: applicationID
        required: true
        type: string
      - description: endTime of alerts, unix timestamp
        in: query
        name: endTime
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: region
        required: true
        type: string
      - description: severity with lowercase, oneof warning, critical
        in: query
        name: severity
        type: string
      - description: startTime of alerts, unix timestamp
        in: query
        name: startTime
        type: integer
      - description: alert state with lowercase, one of active closed all
        in: query
        name: status
        type: string
      - in: query
        name: vendor
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.QueryExternalAlertsResp'
              type: object
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/message.Result'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: list cluster alerts for next gen
      tags:
      - external
  /external/{bizType}/orgs/{tenantID}/clusters/{applicationID}/monitor-alertrules:
    get:
      consumes:
      - application/json
      description: query prometheusrules
      parameters:
      - description: bizType, for staging, use staging-tidbcloud, others, use tidbcloud
        in: path
        name: bizType
        required: true
        type: string
      - description: tenant id
        in: path
        name: tenantID
        required: true
        type: string
      - description: application id
        in: path
        name: applicationID
        required: true
        type: string
      - in: query
        name: region
        required: true
        type: string
      - in: query
        name: vendor
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.QueryAlertRulesByCloudUserResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: query prometheusrules for next gen
      tags:
      - cluster
    put:
      consumes:
      - application/json
      description: update alert rules
      parameters:
      - description: bizType, for staging, use staging-tidbcloud, others, use tidbcloud
        in: path
        name: bizType
        required: true
        type: string
      - description: tenant id
        in: path
        name: tenantID
        required: true
        type: string
      - description: application id
        in: path
        name: applicationID
        required: true
        type: string
      - description: update alert rule request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/message.UpdateAlertRulesByCloudUserReq'
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.UpdateAlertRulesByCloudUserResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: update alert rules by cloud user for next gen
      tags:
      - cluster
  /external/{bizType}/orgs/{tenantID}/projects/{projectID}/clusters/{applicationID}/alerts:
    get:
      consumes:
      - application/json
      description: list all user alerts belongs to specific cluster
      parameters:
      - description: bizType, for staging, use staging-tidbcloud, others, use tidbcloud
        in: path
        name: bizType
        required: true
        type: string
      - description: tenant id
        in: path
        name: tenantID
        required: true
        type: string
      - description: project id
        in: path
        name: projectID
        required: true
        type: string
      - description: application id
        in: path
        name: applicationID
        required: true
        type: string
      - description: endTime of alerts, unix timestamp
        in: query
        name: endTime
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: region
        required: true
        type: string
      - description: severity with lowercase, oneof warning, critical
        in: query
        name: severity
        type: string
      - description: startTime of alerts, unix timestamp
        in: query
        name: startTime
        type: integer
      - description: alert state with lowercase, one of active closed all
        in: query
        name: status
        type: string
      - in: query
        name: vendor
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.QueryExternalAlertsResp'
              type: object
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/message.Result'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: list cluster alerts
      tags:
      - external
  /external/{bizType}/orgs/{tenantID}/projects/{projectID}/clusters/{applicationID}/monitor-alertrules:
    get:
      consumes:
      - application/json
      description: query prometheusrules
      parameters:
      - description: bizType, for staging, use staging-tidbcloud, others, use tidbcloud
        in: path
        name: bizType
        required: true
        type: string
      - description: tenant id
        in: path
        name: tenantID
        required: true
        type: string
      - description: project id
        in: path
        name: projectID
        required: true
        type: string
      - description: application id
        in: path
        name: applicationID
        required: true
        type: string
      - in: query
        name: region
        required: true
        type: string
      - in: query
        name: vendor
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.QueryAlertRulesByCloudUserResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: query prometheusrules
      tags:
      - cluster
    put:
      consumes:
      - application/json
      description: update alert rules
      parameters:
      - description: bizType, for staging, use staging-tidbcloud, others, use tidbcloud
        in: path
        name: bizType
        required: true
        type: string
      - description: tenant id
        in: path
        name: tenantID
        required: true
        type: string
      - description: project id
        in: path
        name: projectID
        required: true
        type: string
      - description: application id
        in: path
        name: applicationID
        required: true
        type: string
      - description: update alert rule request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/message.UpdateAlertRulesByCloudUserReq'
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.UpdateAlertRulesByCloudUserResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: update alert rules by cloud user
      tags:
      - cluster
  /global/clusters/:
    get:
      consumes:
      - application/json
      description: query clusters globally
      parameters:
      - in: query
        name: applicationID
        type: string
      - in: query
        name: bizType
        type: string
      - in: query
        name: continueToken
        type: string
      - in: query
        name: limit
        type: integer
      - in: query
        name: projectID
        type: string
      - in: query
        name: region
        required: true
        type: string
      - in: query
        name: showDeleted
        type: boolean
      - in: query
        name: tenantID
        type: string
      - in: query
        name: vendor
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.QueryClustersResp'
              type: object
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: query clusters globally
      tags:
      - cluster
  /health:
    get:
      consumes:
      - application/json
      description: get service health
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.GetServiceHealthResp'
              type: object
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: get service health
      tags:
      - service
  /helmreleases:
    get:
      consumes:
      - application/json
      description: Lists all HelmRelease custom resources, optionally filtered by
        namespace
      parameters:
      - description: namespace to filter by
        in: query
        name: namespace
        type: string
      - in: query
        name: continueToken
        type: string
      - in: query
        name: limit
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.ListHelmReleasesResp'
              type: object
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: List HelmRelease CRs
      tags:
      - helmrelease
    post:
      consumes:
      - application/json
      description: Creates a new HelmRelease custom resource in the specified namespace
      parameters:
      - description: create HelmRelease request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/message.CreateHelmReleaseReq'
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.CreateHelmReleaseResp'
              type: object
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/message.Result'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: create a HelmRelease CR
      tags:
      - helmrelease
  /helmreleases/{name}:
    delete:
      consumes:
      - application/json
      description: Deletes a HelmRelease custom resource and triggers the associated
        Helm uninstall
      parameters:
      - description: HelmRelease namespace
        in: path
        name: namespace
        required: true
        type: string
      - description: HelmRelease name
        in: path
        name: name
        required: true
        type: string
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.DeleteHelmReleaseResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: delete HelmRelease CR
      tags:
      - helmrelease
    get:
      consumes:
      - application/json
      description: Retrieves the details of a specific HelmRelease custom resource
      parameters:
      - description: HelmRelease name
        in: path
        name: name
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.GetHelmReleaseResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: get HelmRelease CR details
      tags:
      - helmrelease
    put:
      consumes:
      - application/json
      description: Updates the configuration of an existing HelmRelease custom resource
      parameters:
      - description: HelmRelease name
        in: path
        name: name
        required: true
        type: string
      - description: update HelmRelease request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/message.UpdateHelmReleaseReq'
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.UpdateHelmReleaseResp'
              type: object
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/message.Result'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: update HelmRelease CR
      tags:
      - helmrelease
  /helmreleases/diff:
    post:
      consumes:
      - application/json
      description: Compares requested HelmRelease desired state with live state and
        returns drift/adoption guard information
      parameters:
      - description: diff HelmRelease request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/message.DiffHelmReleaseReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.DiffHelmReleaseResp'
              type: object
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: diff a HelmRelease desired state
      tags:
      - helmrelease
  /integrationtasks/:
    get:
      consumes:
      - application/json
      description: query integration tasks with filters
      parameters:
      - in: query
        name: dataType
        type: string
      - in: query
        name: pageSize
        type: integer
      - in: query
        name: pageToken
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.QueryIntegrationTasksResp'
              type: object
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: query integration tasks
      tags:
      - integrationtask
    post:
      consumes:
      - application/json
      description: create an integration task for data processing
      parameters:
      - description: create request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/message.CreateIntegrationTaskReq'
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.CreateIntegrationTaskResp'
              type: object
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: create an integration task
      tags:
      - integrationtask
  /integrationtasks/{id}:
    delete:
      consumes:
      - application/json
      description: delete an integration task
      parameters:
      - description: integration task id
        in: path
        name: id
        required: true
        type: string
      - in: query
        name: id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.DeleteIntegrationTaskResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: delete an integration task
      tags:
      - integrationtask
    get:
      consumes:
      - application/json
      description: show detail info of an integration task
      parameters:
      - description: integration task id
        in: path
        name: id
        required: true
        type: string
      - in: query
        name: id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.DetailIntegrationTaskResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: show detail info of an integration task
      tags:
      - integrationtask
    put:
      consumes:
      - application/json
      description: update an integration task configuration
      parameters:
      - description: integration task id
        in: path
        name: id
        required: true
        type: string
      - description: update request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/message.UpdateIntegrationTaskReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.UpdateIntegrationTaskResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: update an integration task
      tags:
      - integrationtask
  /internal/{bizType}/orgs/{tenantID}/projects/{projectID}/clusters/{applicationID}/alerts:
    get:
      consumes:
      - application/json
      description: lists all user alerts belongs to specific cluster
      parameters:
      - description: bizType, for staging, use staging-tidbcloud, others, use tidbcloud
        in: path
        name: bizType
        required: true
        type: string
      - description: tenant id
        in: path
        name: tenantID
        required: true
        type: string
      - description: project id
        in: path
        name: projectID
        required: true
        type: string
      - description: application id
        in: path
        name: applicationID
        required: true
        type: string
      - description: endTime of alerts, unix timestamp
        in: query
        name: endTime
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: region
        required: true
        type: string
      - description: severity with lowercase, oneof warning, critical
        in: query
        name: severity
        type: string
      - description: startTime of alerts, unix timestamp
        in: query
        name: startTime
        type: integer
      - description: alert state with lowercase, one of active closed all
        in: query
        name: status
        type: string
      - in: query
        name: vendor
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.QueryExternalAlertsResp'
              type: object
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/message.Result'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: list cluster external alerts for internal service
      tags:
      - external
  /internal/{bizType}/orgs/{tenantID}/projects/{projectID}/clusters/{applicationID}/monitor-alertrules:
    get:
      consumes:
      - application/json
      description: query prometheusrules
      parameters:
      - description: bizType, for staging, use staging-tidbcloud, others, use tidbcloud
        in: path
        name: bizType
        required: true
        type: string
      - description: tenant id
        in: path
        name: tenantID
        required: true
        type: string
      - description: project id
        in: path
        name: projectID
        required: true
        type: string
      - description: application id
        in: path
        name: applicationID
        required: true
        type: string
      - in: query
        name: region
        required: true
        type: string
      - in: query
        name: vendor
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.QueryAlertRulesByCloudUserResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: query prometheusrules for internal service
      tags:
      - cluster
  /internal/clusters/{applicationID}/monitoringPipelines:
    post:
      consumes:
      - application/json
      description: create an integration task for vector agent data processing
      parameters:
      - description: create request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/message.CreateIntegrationTaskReq'
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.CreateIntegrationTaskResp'
              type: object
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: create an integration task (internal)
      tags:
      - integrationtask
  /internal/monitoringPipelines/{id}:
    get:
      consumes:
      - application/json
      description: show detail info of an integration task for internal services
      parameters:
      - description: integration task id
        in: path
        name: id
        required: true
        type: string
      - in: query
        name: id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.DetailIntegrationTaskResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: show detail info of an integration task (internal)
      tags:
      - integrationtask
  /nodeGroups:
    get:
      consumes:
      - application/json
      description: Lists all node groups for a cluster with their Kubernetes versions
      parameters:
      - description: Kubernetes cluster name
        in: query
        name: k8sClusterName
        required: true
        type: string
      - description: Cloud region
        in: query
        name: region
        required: true
        type: string
      - description: Cloud provider (eks, gke, aks, ack, mock)
        in: query
        name: cloudProvider
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.GetNodeGroupsResp'
              type: object
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: Get all node groups and their versions
      tags:
      - upgrade-operation
  /ops/events/alerts/:
    post:
      consumes:
      - application/json
      description: handle alerts
      parameters:
      - description: ' handle alert'
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/message.GlobalHandleAlertReq'
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.GlobalHandleAlertResp'
              type: object
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: handle alerts
      tags:
      - ops
  /routes:
    get:
      consumes:
      - application/json
      description: Query regional route information based on vendor, region, tenant
        ID, and business type. This API returns the DNS address and routing details
        for the specified logical region.
      parameters:
      - description: Logical region name. If supplied (non-empty), takes precedence
          over the (X-Org-Id, X-Biz-Type) pair. X-Region-Id is always required.
        in: header
        name: X-Logical-Region
        type: string
      - description: Region ID in the format <vendor>-<region>, e.g. aws-us-west-2.
          Always required.
        in: header
        name: X-Region-Id
        required: true
        type: string
      - description: Organization/Tenant ID. Required when X-Logical-Region is empty.
        in: header
        name: X-Org-Id
        type: string
      - description: Business type (e.g., tidbcloud, serverless, byoc). Required when
          X-Logical-Region is empty.
        in: header
        name: X-Biz-Type
        type: string
      - description: Project ID for finer-grained routing (e.g. serverless parent
          cluster f02-f06).
        in: header
        name: X-Project-Id
        type: string
      - description: Application/Cluster ID (e.g. serverless parent cluster devtier-infra).
        in: header
        name: X-Application-Id
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: Regional router information including DNS address and logical
            region details
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/structs.RegionalRouter'
              type: object
        "400":
          description: Bad request - missing required parameters
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal server error
          schema:
            $ref: '#/definitions/message.Result'
      summary: Query region routes for logical region routing
      tags:
      - globalapi
  /upgradeOperations:
    get:
      consumes:
      - application/json
      description: Lists all cluster upgrade operations with optional filtering
      parameters:
      - in: query
        name: continueToken
        type: string
      - in: query
        name: k8sClusterName
        type: string
      - in: query
        name: limit
        type: integer
      - in: query
        name: status
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.ListClusterUpgradesResp'
              type: object
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: List upgrade operations
      tags:
      - upgrade-operation
    post:
      consumes:
      - application/json
      description: Creates a new Kubernetes cluster upgrade operation with step-based
        execution
      parameters:
      - description: create cluster upgrade request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/message.CreateClusterUpgradeReq'
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.CreateClusterUpgradeResp'
              type: object
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: Create an upgrade operation
      tags:
      - upgrade-operation
  /upgradeOperations/{id}:
    delete:
      consumes:
      - application/json
      description: Deletes/cancels a cluster upgrade operation
      parameters:
      - description: upgrade operation ID
        in: path
        name: id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.DeleteClusterUpgradeResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: Delete an upgrade operation
      tags:
      - upgrade-operation
    get:
      consumes:
      - application/json
      description: Retrieves the details of a specific cluster upgrade operation
      parameters:
      - description: upgrade operation ID
        in: path
        name: id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.GetClusterUpgradeResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: Get upgrade operation details
      tags:
      - upgrade-operation
  /upgradeOperations/{id}/pause:
    put:
      consumes:
      - application/json
      description: Pauses a running cluster upgrade operation
      parameters:
      - description: upgrade operation ID
        in: path
        name: id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.PauseClusterUpgradeResp'
              type: object
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/message.Result'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: Pause an upgrade operation
      tags:
      - upgrade-operation
  /upgradeOperations/{id}/resume:
    put:
      consumes:
      - application/json
      description: Resumes a paused cluster upgrade operation
      parameters:
      - description: upgrade operation ID
        in: path
        name: id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.ResumeClusterUpgradeResp'
              type: object
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/message.Result'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: Resume a paused upgrade operation
      tags:
      - upgrade-operation
  /upgradeOperations/dry-run:
    post:
      consumes:
      - application/json
      description: Dry-runs a cluster upgrade request and returns the ClusterUpgradeOperation
        CR that would be created without actually creating it
      parameters:
      - description: create cluster upgrade request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/message.CreateClusterUpgradeReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.DryRunClusterUpgradeResp'
              type: object
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: Dry-run an upgrade operation
      tags:
      - upgrade-operation
  /vmclusters:
    get:
      consumes:
      - application/json
      description: Lists all deployed VictoriaMetrics clusters managed by the Ops
        API Server
      parameters:
      - description: Current page location
        in: query
        name: page
        type: integer
      - description: Number of this request
        in: query
        name: pageSize
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.ListVMClustersResp'
              type: object
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: List VM Clusters
      tags:
      - vmcluster
    post:
      consumes:
      - application/json
      description: Deploys a new VictoriaMetrics cluster by creating a new Helm release
      parameters:
      - description: create VM cluster request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/message.CreateVMClusterReq'
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.CreateVMClusterResp'
              type: object
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/message.Result'
        "409":
          description: Conflict
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: deploy victoriametrics cluster
      tags:
      - vmcluster
  /vmclusters/{vmclusterId}:
    delete:
      consumes:
      - application/json
      description: Deletes a VictoriaMetrics cluster by uninstalling the associated
        Helm release
      parameters:
      - description: VM cluster ID
        in: path
        name: vmclusterId
        required: true
        type: string
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.DeleteVMClusterResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: Uninstall the VM cluster
      tags:
      - vmcluster
    get:
      consumes:
      - application/json
      description: Retrieves the details of a specific VictoriaMetrics cluster
      parameters:
      - description: VM cluster ID
        in: path
        name: vmclusterId
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.GetVMClusterResp'
              type: object
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: get VM cluster details
      tags:
      - vmcluster
    put:
      consumes:
      - application/json
      description: Updates the configuration of an existing VictoriaMetrics cluster
        by performing a Helm upgrade
      parameters:
      - description: VM cluster ID
        in: path
        name: vmclusterId
        required: true
        type: string
      - description: update VM cluster request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/message.UpdateVMClusterReq'
      produces:
      - application/json
      responses:
        "202":
          description: Accepted
          schema:
            allOf:
            - $ref: '#/definitions/message.Result'
            - properties:
                data:
                  $ref: '#/definitions/message.UpdateVMClusterResp'
              type: object
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/message.Result'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/message.Result'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/message.Result'
      summary: change vm cluster
      tags:
      - vmcluster
swagger: "2.0"
