definitions:
  accountcli.Project:
    properties:
      aws_cmek_enabled:
        type: boolean
      created_at:
        $ref: '#/definitions/timestamppb.Timestamp'
      deleted_at:
        $ref: '#/definitions/timestamppb.Timestamp'
      id:
        type: integer
      is_cross_account:
        type: boolean
      name:
        type: string
      status:
        type: string
      tenant_id:
        type: integer
      updated_at:
        $ref: '#/definitions/timestamppb.Timestamp'
    type: object
  accountcli.User:
    properties:
      email:
        type: string
      first_name:
        type: string
      id:
        type: string
      invite_time:
        $ref: '#/definitions/timestamppb.Timestamp'
      last_name:
        type: string
      login_time:
        $ref: '#/definitions/timestamppb.Timestamp'
      role:
        type: string
      status:
        type: string
    type: object
  api.ApprovalRoute:
    properties:
      approver:
        $ref: '#/definitions/entity.Approver'
      components:
        items:
          type: string
        type: array
      condition:
        type: string
      group:
        type: string
      method:
        $ref: '#/definitions/entity.ApproveMethod'
      name:
        type: string
      repositories:
        items:
          type: string
        type: array
      skip_when_empty:
        type: boolean
    type: object
  api.BaseResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
    type: object
  api.ComponentImageTag:
    properties:
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      component:
        type: string
      image_tag:
        type: string
    type: object
  api.ComponentPolicy:
    properties:
      apply_group:
        type: string
      apply_strategy:
        $ref: '#/definitions/cloudconfig.ParameterApplyPolicy'
      atomic_group:
        type: boolean
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      component:
        type: string
      order_revision:
        type: string
      priority:
        type: integer
    type: object
  api.ComponentSelector:
    properties:
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      component:
        type: string
    type: object
  api.EmptyResp:
    type: object
  api.ErrCode:
    enum:
    - OK
    - INVALID_ARGUMENT
    - FAILED_PRECONDITION
    - OUT_OF_RANGE
    - UNAUTHENTICATED
    - PERMISSION_DENIED
    - NOT_FOUND
    - ABORTED
    - ALREADY_EXISTS
    - RESOURCE_EXHAUSTED
    - CANCELLED
    - DATA_LOSS
    - UNKNOWN
    - INTERNAL
    - NOT_IMPLEMENTED
    - UNAVAILABLE
    - DEADLINE_EXCEEDED
    type: string
    x-enum-varnames:
    - ErrCodeOK
    - ErrCodeInvalidArgument
    - ErrCodeFailedPrecond
    - ErrCodeOutOfRange
    - ErrCodeUnauthenticated
    - ErrCodePermissionDenied
    - ErrCodeNotFound
    - ErrCodeAborted
    - ErrCodeAlreadyExists
    - ErrCodeResourceExhaust
    - ErrCodeCancelled
    - ErrCodeDataLoss
    - ErrCodeUnknown
    - ErrCodeInternal
    - ErrCodeNotImplemented
    - ErrCodeUnavailable
    - ErrCodeDeadlineExceeded
  api.OrderType:
    enum:
    - asc
    - desc
    type: string
    x-enum-varnames:
    - OrderTypeASC
    - OrderTypeDESC
  api.PreviewPlanResult:
    properties:
      approval_routes:
        items:
          $ref: '#/definitions/api.ApprovalRoute'
        type: array
      cluster_ids:
        items:
          type: string
        type: array
      component_image_tags:
        items:
          $ref: '#/definitions/api.ComponentImageTag'
        type: array
      component_order_revision:
        type: string
      desired_version:
        type: string
      execution_mode:
        $ref: '#/definitions/premiumupgrade.ExecutionMode'
      manifest_hash:
        type: string
      scope:
        $ref: '#/definitions/api.UpgradeScope'
      targets:
        items:
          $ref: '#/definitions/api.PreviewTarget'
        type: array
      warnings:
        items:
          type: string
        type: array
    type: object
  api.PreviewStep:
    properties:
      apply_group:
        type: string
      apply_strategy:
        $ref: '#/definitions/cloudconfig.ParameterApplyPolicy'
      cluster_id:
        type: string
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      components:
        items:
          $ref: '#/definitions/api.PreviewStepComponent'
        type: array
      noop:
        type: boolean
      sequence:
        type: integer
    type: object
  api.PreviewStepComponent:
    properties:
      base_image:
        type: string
      component:
        type: string
      from_image_tag:
        type: string
      from_version:
        type: string
      image_tag_source:
        type: string
      noop:
        type: boolean
      to_image_tag:
        type: string
      to_version:
        type: string
    type: object
  api.PreviewTarget:
    properties:
      cloud_provider:
        type: string
      cluster_id:
        type: string
      cluster_name:
        type: string
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      logical_region:
        type: string
      shared_pool_id:
        type: string
      source_cluster_ids:
        items:
          type: string
        type: array
      steps:
        items:
          $ref: '#/definitions/api.PreviewStep'
        type: array
      tenant_ids:
        items:
          type: string
        type: array
    type: object
  api.SortByType:
    enum:
    - created_at
    - timezone
    type: string
    x-enum-varnames:
    - SortByTypeCreatedAt
    - SortByTypeTimezone
  api.TargetConflict:
    properties:
      cluster_id:
        type: string
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      plan_id:
        type: integer
      plan_name:
        type: string
      plan_status:
        $ref: '#/definitions/premiumupgrade.PlanStatus'
    type: object
  api.UpgradeScope:
    properties:
      components:
        items:
          $ref: '#/definitions/api.ComponentSelector'
        type: array
      mode:
        $ref: '#/definitions/premiumupgrade.ScopeMode'
    type: object
  application.Application:
    properties:
      description:
        type: string
      id:
        type: integer
      name:
        type: string
      owners:
        description: User Email
        items:
          type: string
        type: array
    type: object
  application.CreateApplicationReq:
    properties:
      description:
        type: string
      name:
        type: string
      owners:
        items:
          type: string
        type: array
    required:
    - name
    type: object
  application.CreateApplicationResp:
    properties:
      application_id:
        type: integer
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
    type: object
  application.GetApplicationResp:
    properties:
      application:
        $ref: '#/definitions/application.Application'
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
    type: object
  application.ListApplicationResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/application.Application'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  approval.CreateApprovalReq:
    properties:
      applicant:
        description: Applicant is the user who applies for the approval.
        type: string
      cc_tasks:
        $ref: '#/definitions/entity.Approver'
      configuration:
        allOf:
        - $ref: '#/definitions/entity.ApprovalConfiguration'
        description: Configuration is the approval configuration.
      detail_link:
        description: DetailLink is a link showed in the notifcation.
        type: string
      name:
        description: Name is the approval's name used to categorize the approval.
        type: string
      nodes:
        description: |-
          Nodes is the approval nodes.

          If it is empty, the approval will be approved after created.
        items:
          $ref: '#/definitions/entity.ApproverNode'
        type: array
      overview:
        additionalProperties:
          type: string
        description: Overview is a human-readable summary shown in approval notifications.
        type: object
      parameters:
        additionalProperties:
          type: string
        description: Parameters is the parameters showed in the notifcation.
        type: object
      reason:
        description: Reason is the reason of the approval.
        type: string
    type: object
  approval.CreateApprovalResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      id:
        type: integer
      trace_id:
        type: string
    type: object
  approval.GetApprovalResp:
    properties:
      approval:
        $ref: '#/definitions/entity.Approval'
      can_admin_approve:
        type: boolean
      can_approve:
        type: boolean
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
    type: object
  audit.AuditLog:
    properties:
      details:
        items:
          type: integer
        type: array
      id:
        type: integer
      object_id:
        type: string
      operate_at:
        type: string
      operation:
        type: string
      operator:
        type: string
      type:
        $ref: '#/definitions/audit.AuditLogType'
    type: object
  audit.AuditLogType:
    enum:
    - change
    - ctl
    - cluster_maintenance
    - operation
    - jump
    - cloud_config_change
    - cloud_config_default_config_change
    - k8s_upgrade_task
    - tenant
    - spu_sku
    - rbac_role
    - rbac_rolebinding
    - iam_role
    - iam_rolebinding
    - iam_policy
    - iam_policybinding
    - iam_apikey
    type: string
    x-enum-varnames:
    - AuditLogTypeChange
    - AuditLogTypeCtl
    - AuditLogTypeClusterMaintenance
    - AuditLogTypeOperation
    - AuditLogTypeJump
    - AuditLogTypeCloudConfigChange
    - AuditLogTypeCloudConfigDefaultConfigChange
    - AuditLogTypeK8sUpgradetask
    - AuditLogTypeTenant
    - AuditLogTypeSpuSku
    - AuditLogTypeRBACRole
    - AuditLogTypeRBACRoleBinding
    - AuditLogTypeIAMRole
    - AuditLogTypeIAMRoleBinding
    - AuditLogTypeIAMPolicy
    - AuditLogTypeIAMPolicyBinding
    - AuditLogTypeIAMAPIKey
  audit.ListAuditLogResp:
    properties:
      audit_logs:
        items:
          $ref: '#/definitions/audit.AuditLog'
        type: array
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      total:
        type: integer
      trace_id:
        type: string
    type: object
  audit.ListAuditLogTypesResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
      types:
        items:
          $ref: '#/definitions/audit.AuditLogType'
        type: array
    type: object
  audit.ListChangeAuditLogResp:
    properties:
      audit_logs:
        items:
          $ref: '#/definitions/audit.AuditLog'
        type: array
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      total:
        type: integer
      trace_id:
        type: string
    type: object
  audit.ListClusterMaintenanceAuditLogResp:
    properties:
      audit_logs:
        items:
          $ref: '#/definitions/audit.AuditLog'
        type: array
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      total:
        type: integer
      trace_id:
        type: string
    type: object
  audit.ListCtlAuditLogResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/audit.AuditLog'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  audit.ListJumpAuditLogResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/audit.AuditLog'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  audit.ListOperationAuditLogResp:
    properties:
      audit_logs:
        items:
          $ref: '#/definitions/audit.AuditLog'
        type: array
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      total:
        type: integer
      trace_id:
        type: string
    type: object
  cloudconfig.ApplyConfigurationChangeReq:
    properties:
      mode:
        $ref: '#/definitions/cloudconfig.ApplyMode'
    type: object
  cloudconfig.ApplyMode:
    properties:
      allow_methods:
        items:
          type: string
        type: array
      deny_methods:
        items:
          type: string
        type: array
    type: object
  cloudconfig.AvailableClusterVersion:
    properties:
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      is_default:
        type: boolean
      version:
        type: string
    type: object
  cloudconfig.BatchUpdateComponentConfigsReq:
    properties:
      components:
        items:
          $ref: '#/definitions/cloudconfig.DefaultComponentConfiguration'
        type: array
    type: object
  cloudconfig.BatchUpdateDefaultConfigurationChangeItemsReq:
    properties:
      batch_update_component_configs:
        $ref: '#/definitions/cloudconfig.BatchUpdateComponentConfigsReq'
      batch_update_template:
        $ref: '#/definitions/cloudconfig.BatchUpdateTemplateBindingsReq'
    type: object
  cloudconfig.BatchUpdateTemplateBindingsReq:
    properties:
      items:
        items:
          $ref: '#/definitions/cloudconfig.TemplateDefaultCaseBindingChange'
        type: array
      params_to_set:
        items:
          $ref: '#/definitions/cloudconfig.NamedParameter'
        type: array
      params_to_unset:
        items:
          type: string
        type: array
    type: object
  cloudconfig.ChangeComponentReq:
    properties:
      component:
        type: string
      overwrite_image_tag:
        $ref: '#/definitions/cloudconfig.ChangeImageTagReq'
      version:
        $ref: '#/definitions/cloudconfig.ChangeVersionReq'
    type: object
  cloudconfig.ChangeDefaultComponentsReq:
    properties:
      components:
        items:
          $ref: '#/definitions/cloudconfig.DefaultComponentConfiguration'
        type: array
      reason:
        type: string
    type: object
  cloudconfig.ChangeFileReq:
    properties:
      config_type:
        type: string
      custom_parameters:
        items:
          $ref: '#/definitions/cloudconfig.NamedParameter'
        type: array
      filename:
        type: string
      previous_text:
        type: string
      template:
        $ref: '#/definitions/cloudconfig.ChangeTemplateReq'
    type: object
  cloudconfig.ChangeImageTagReq:
    properties:
      to_image_tag:
        type: string
    type: object
  cloudconfig.ChangeTemplateDefaultCaseBindingsReq:
    properties:
      default_case_bindings:
        items:
          $ref: '#/definitions/cloudconfig.TemplateDefaultCaseBinding'
        type: array
      reason:
        type: string
    type: object
  cloudconfig.ChangeTemplateReq:
    properties:
      to_template:
        type: integer
    type: object
  cloudconfig.ChangeVersionReq:
    properties:
      to_version:
        type: string
    type: object
  cloudconfig.ChangedImageTag:
    properties:
      from:
        type: string
      to:
        type: string
    type: object
  cloudconfig.ChangedParameter:
    properties:
      from: {}
      from_source:
        $ref: '#/definitions/cloudconfig.ParameterSource'
      name:
        type: string
      risk_level:
        allOf:
        - $ref: '#/definitions/cloudconfig.RiskLevel'
        description: '"low" or "high"'
      to: {}
      to_source:
        $ref: '#/definitions/cloudconfig.ParameterSource'
    type: object
  cloudconfig.ChangedTemplate:
    properties:
      from:
        type: integer
      to:
        type: integer
    type: object
  cloudconfig.ChangedVersion:
    properties:
      from:
        type: string
      to:
        type: string
    type: object
  cloudconfig.ChangefeedEventFilter:
    properties:
      ignored_delete_value_expression:
        type: string
      ignored_events:
        items:
          type: string
        type: array
      ignored_insert_value_expression:
        type: string
      ignored_sql_statements:
        items:
          type: string
        type: array
      ignored_update_new_value_expression:
        type: string
      ignored_update_old_value_expression:
        type: string
      table_matchers:
        items:
          type: string
        type: array
    type: object
  cloudconfig.ChangefeedNetworkInfo:
    properties:
      advertised_pattern_group:
        additionalProperties:
          type: string
        type: object
      kafka_id:
        type: string
      network_type:
        type: string
      ports:
        items:
          type: integer
        type: array
      private_link_service_name:
        type: string
      sink_endpoint_id:
        type: string
    type: object
  cloudconfig.ChangefeedStartPosition:
    properties:
      mode:
        type: string
      timestamp:
        type: string
      tso:
        type: string
    type: object
  cloudconfig.ChangefeedTableConfig:
    properties:
      case_sensitive:
        type: boolean
      event_filters:
        items:
          $ref: '#/definitions/cloudconfig.ChangefeedEventFilter'
        type: array
      filter_rules:
        items:
          type: string
        type: array
      mode:
        type: string
    type: object
  cloudconfig.CloneParamAttrReq:
    properties:
      from_version:
        type: string
      to_version:
        type: string
    required:
    - from_version
    - to_version
    type: object
  cloudconfig.CloseDefaultConfigurationChangeReq:
    properties:
      reason:
        type: string
      result:
        $ref: '#/definitions/cloudconfig.DefaultConfigurationChangePhase'
    type: object
  cloudconfig.CloudInstanceType:
    properties:
      cloud_provider:
        type: string
      instance_type:
        type: string
    type: object
  cloudconfig.ClusterComponentSearchRegionResult:
    properties:
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      error:
        type: string
      has_more:
        type: boolean
      items:
        items:
          $ref: '#/definitions/cloudconfig.ClusterComponentVersion'
        type: array
      logical_region:
        type: string
      total:
        type: integer
    type: object
  cloudconfig.ClusterComponentVersion:
    properties:
      base_image:
        type: string
      cloud_provider:
        type: string
      cluster_id:
        type: string
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      component_name:
        type: string
      effective_image_tag:
        type: string
      logical_region:
        type: string
      node_instance:
        type: string
      overwrite_image_tag:
        type: string
      update_strategy:
        type: string
      version:
        type: string
    type: object
  cloudconfig.ClusterConfigurationLocator:
    properties:
      cluster_id:
        type: string
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
    required:
    - cluster_id
    - cluster_type
    type: object
  cloudconfig.ClusterType:
    enum:
    - ""
    - DEDICATED_TIDB
    - TICDC
    - CHANGEFEED
    - SHARED_POOL
    - LOGICAL_CLUSTER
    - TICDC_NG
    - CHANGEFEED_NG
    - CHANGEFEED_ESSENTIAL
    type: string
    x-enum-varnames:
    - ClusterTypeUnknown
    - ClusterTypeDedicatedTiDB
    - ClusterTypeTiCDC
    - ClusterTypeChangefeed
    - ClusterTypeSharedPool
    - ClusterTypeLogicalCluster
    - ClusterTypeTiCDCNG
    - ClusterTypeChangefeedNG
    - ClusterTypeChangefeedEssential
  cloudconfig.Component:
    properties:
      base_image:
        type: string
      cloud_provider:
        type: string
      effective_image_tag:
        type: string
      instance_type:
        type: string
      name:
        type: string
      overwrite_image_tag:
        type: string
      version:
        type: string
    type: object
  cloudconfig.ComponentDefaultCase:
    properties:
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      component:
        type: string
      version:
        type: string
    type: object
  cloudconfig.ComponentInfo:
    properties:
      base_image:
        type: string
      component_name:
        type: string
      general_availability:
        type: boolean
      image_tag:
        type: string
      version:
        type: string
    type: object
  cloudconfig.Configuration:
    properties:
      components:
        additionalProperties:
          $ref: '#/definitions/cloudconfig.Component'
        description: 'key: component name'
        type: object
      files:
        additionalProperties:
          $ref: '#/definitions/cloudconfig.FileConfiguration'
        description: 'key: filename'
        type: object
      target_cluster:
        $ref: '#/definitions/cloudconfig.ClusterConfigurationLocator'
      target_tenant:
        $ref: '#/definitions/cloudconfig.TenantInitConfigurationLocator'
      version:
        type: string
    type: object
  cloudconfig.ConfigurationChange:
    properties:
      applicant:
        type: string
      applied_at:
        type: integer
      apply_policy:
        $ref: '#/definitions/cloudconfig.ParameterApplyPolicy'
      approval_id:
        type: integer
      change_type:
        type: string
      closed_at:
        type: integer
      created_at:
        type: integer
      execution_window:
        allOf:
        - $ref: '#/definitions/maintenance.OpsExecutionWindow'
        description: only set in get/list API
      execution_window_id:
        type: integer
      id:
        type: integer
      operator_entity:
        type: string
      phase:
        $ref: '#/definitions/cloudconfig.ConfigurationChangePhase'
      premium_upgrade_step_id:
        type: integer
      reason:
        type: string
      scope:
        $ref: '#/definitions/cloudconfig.ConfigurationChangeScope'
      target_cluster:
        $ref: '#/definitions/cloudconfig.ClusterConfigurationLocator'
      target_template:
        $ref: '#/definitions/cloudconfig.ConfigurationTemplateLocator'
      target_tenant:
        $ref: '#/definitions/cloudconfig.TenantInitConfigurationLocator'
      target_type:
        $ref: '#/definitions/cloudconfig.ConfigurationChangeTargetType'
      target_version:
        description: |-
          TargetVersion is the version of the target.
          NOTE: If version is changed, it will be the changed version.
        type: string
    type: object
  cloudconfig.ConfigurationChangePhase:
    enum:
    - created
    - approving
    - wait_for_apply
    - applying
    - applied
    - failed
    - cancelled
    - withdrawn
    type: string
    x-enum-varnames:
    - ConfigurationChangePhaseCreated
    - ConfigurationChangePhaseApproving
    - ConfigurationChangePhaseWaitForApply
    - ConfigurationChangePhaseApplying
    - ConfigurationChangePhaseApplied
    - ConfigurationChangePhaseFailed
    - ConfigurationChangePhaseCancelled
    - ConfigurationChangePhaseWithdrawn
  cloudconfig.ConfigurationChangeScope:
    properties:
      components:
        description: |-
          Components contains changes for components
          NOTE: not contain the unchanged components.
        items:
          $ref: '#/definitions/cloudconfig.ConfigurationComponentChange'
        type: array
      files:
        description: |-
          Files contains changes for configuration files.
          NOTE: not contain the unchanged files.
        items:
          $ref: '#/definitions/cloudconfig.ConfigurationFileChange'
        type: array
      version:
        allOf:
        - $ref: '#/definitions/cloudconfig.ConfigurationVersionChange'
        description: Version means the change for cluster version
    type: object
  cloudconfig.ConfigurationChangeTargetType:
    enum:
    - cluster
    - tenant_init
    - template
    type: string
    x-enum-varnames:
    - ConfigurationChangeTargetTypeCluster
    - ConfigurationChangeTargetTypeTenantInit
    - ConfigurationChangeTargetTypeTemplate
  cloudconfig.ConfigurationChangeable:
    properties:
      changeable:
        type: boolean
      reason:
        type: string
    type: object
  cloudconfig.ConfigurationComponentChange:
    properties:
      component:
        description: Component is the component name.
        type: string
      id:
        description: ID is the id in the database.
        type: integer
      modified_image_tag:
        allOf:
        - $ref: '#/definitions/cloudconfig.ChangedImageTag'
        description: ModifiedImageTag records the change for effective image tag
      modified_overwirte_image_tag:
        allOf:
        - $ref: '#/definitions/cloudconfig.ChangedImageTag'
        description: ModifiedOverwriteImageTag contains the the change for overwrite
          image tag
      modified_version:
        allOf:
        - $ref: '#/definitions/cloudconfig.ChangedVersion'
        description: ModifiedVersion records the component version change.
    type: object
  cloudconfig.ConfigurationFileChange:
    properties:
      all_parameters:
        description: AllParameters contain all used parameters.
        items:
          $ref: '#/definitions/cloudconfig.UsedParameter'
        type: array
      clear_custom_params:
        description: ClearCustomParams indicates whether to clear all custom params.
        type: boolean
      config_type:
        description: ConfigType is the config type of the file
        type: string
      filename:
        description: Filename is the name of the file.
        type: string
      id:
        description: ID is the id in the database.
        type: integer
      modified_parameters:
        description: ModifiedParameters is the modified configs.
        items:
          $ref: '#/definitions/cloudconfig.ChangedParameter'
        type: array
      modified_template:
        allOf:
        - $ref: '#/definitions/cloudconfig.ChangedTemplate'
        description: ModifiedTemplate is the modified template
      previous_text:
        description: |-
          PreviousText is the file text before the change.
          It is used to check this change is sequential.
        type: string
      template_id:
        description: |-
          TemplateID is the id of used template.
          NOTE: If template is changed, it will be the changed template.
        type: integer
    type: object
  cloudconfig.ConfigurationTemplateLocator:
    properties:
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      template_type:
        $ref: '#/definitions/cloudconfig.TemplateType'
      tenant_id:
        description: Own Tenant ID, only for TemplateTypeTenantDefault
        type: string
    required:
    - cluster_type
    - template_type
    type: object
  cloudconfig.ConfigurationVersionChange:
    properties:
      from:
        type: string
      id:
        description: ID is the id in the database.
        type: integer
      to:
        type: string
    type: object
  cloudconfig.CreateClusterConfigurationChangeReq:
    properties:
      apply_policy:
        $ref: '#/definitions/cloudconfig.ParameterApplyPolicy'
      change_type:
        type: string
      cluster_id:
        type: string
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      components:
        items:
          $ref: '#/definitions/cloudconfig.ChangeComponentReq'
        type: array
      execution_window:
        $ref: '#/definitions/cluster.CreateOpsExecutionWindowReq'
      files:
        items:
          $ref: '#/definitions/cloudconfig.ChangeFileReq'
        type: array
      reason:
        type: string
      version:
        $ref: '#/definitions/cloudconfig.ChangeVersionReq'
    required:
    - cluster_id
    - cluster_type
    type: object
  cloudconfig.CreateConfigurationChangeResp:
    properties:
      change_id:
        type: integer
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
    type: object
  cloudconfig.CreateConfigurationTemplateChangeReq:
    properties:
      apply_policy:
        $ref: '#/definitions/cloudconfig.ParameterApplyPolicy'
      change_type:
        type: string
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      components:
        items:
          $ref: '#/definitions/cloudconfig.ChangeComponentReq'
        type: array
      execution_window:
        $ref: '#/definitions/cluster.CreateOpsExecutionWindowReq'
      files:
        items:
          $ref: '#/definitions/cloudconfig.ChangeFileReq'
        type: array
      reason:
        type: string
      template_type:
        $ref: '#/definitions/cloudconfig.TemplateType'
      tenant_id:
        description: Own Tenant ID, only for TemplateTypeTenantDefault
        type: string
      version:
        $ref: '#/definitions/cloudconfig.ChangeVersionReq'
    required:
    - cluster_type
    - template_type
    type: object
  cloudconfig.CreateDefaultConfigurationChangeReleaseReq:
    properties:
      description:
        type: string
      environment:
        type: string
    required:
    - environment
    type: object
  cloudconfig.CreateDefaultConfigurationChangeResp:
    properties:
      change_id:
        type: integer
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
    type: object
  cloudconfig.CreateMetaProfileReq:
    properties:
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      component_image_tags:
        additionalProperties:
          type: string
        type: object
      component_versions:
        additionalProperties:
          type: string
        type: object
      config_custom_templates:
        additionalProperties:
          type: integer
        type: object
      description:
        type: string
      profile_name:
        type: string
      tenant_id:
        type: string
    required:
    - cluster_type
    - component_image_tags
    - profile_name
    - tenant_id
    type: object
  cloudconfig.CreateParamAttrReq:
    properties:
      attribute:
        $ref: '#/definitions/cloudconfig.ParameterAttribute'
    required:
    - attribute
    type: object
  cloudconfig.CreateTemplateReq:
    properties:
      allow_assign_id:
        type: boolean
      deny_propagation:
        type: boolean
      template:
        $ref: '#/definitions/cloudconfig.Template'
    type: object
  cloudconfig.CreateTemplateResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      id:
        type: integer
      trace_id:
        type: string
    type: object
  cloudconfig.CreateTenantInitConfigurationChangeReq:
    properties:
      apply_policy:
        $ref: '#/definitions/cloudconfig.ParameterApplyPolicy'
      change_type:
        type: string
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      components:
        items:
          $ref: '#/definitions/cloudconfig.ChangeComponentReq'
        type: array
      execution_window:
        $ref: '#/definitions/cluster.CreateOpsExecutionWindowReq'
      files:
        items:
          $ref: '#/definitions/cloudconfig.ChangeFileReq'
        type: array
      reason:
        type: string
      tenant_id:
        type: string
      version:
        $ref: '#/definitions/cloudconfig.ChangeVersionReq'
    required:
    - cluster_type
    - tenant_id
    type: object
  cloudconfig.CustomTemplateInfo:
    properties:
      data:
        additionalProperties:
          $ref: '#/definitions/cloudconfig.Template'
        description: 'key: config_type'
        type: object
    type: object
  cloudconfig.DefaultComponentChange:
    properties:
      modified:
        $ref: '#/definitions/cloudconfig.DefaultComponentConfigChangeData'
      origin:
        $ref: '#/definitions/cloudconfig.DefaultComponentConfiguration'
    type: object
  cloudconfig.DefaultComponentConfigChangeData:
    properties:
      base_image:
        type: string
      image_tag:
        type: string
    type: object
  cloudconfig.DefaultComponentConfiguration:
    properties:
      base_image:
        type: string
      default_case:
        $ref: '#/definitions/cloudconfig.ComponentDefaultCase'
      image_tag:
        type: string
    type: object
  cloudconfig.DefaultConfigurationChange:
    properties:
      applicant:
        type: string
      closed_at:
        type: integer
      created_at:
        type: integer
      display_name:
        type: string
      environments:
        items:
          type: string
        type: array
      id:
        type: integer
      item_types:
        items:
          $ref: '#/definitions/cloudconfig.DefaultConfigurationChangeItemType'
        type: array
      phase:
        $ref: '#/definitions/cloudconfig.DefaultConfigurationChangePhase'
      phase_reason:
        type: string
      reason:
        type: string
    type: object
  cloudconfig.DefaultConfigurationChangeItem:
    properties:
      data:
        $ref: '#/definitions/cloudconfig.DefaultConfigurationChangeItemDataUnion'
      id:
        type: integer
      parent_id:
        description: id of DefaultConfigurationChange
        type: integer
      type:
        $ref: '#/definitions/cloudconfig.DefaultConfigurationChangeItemType'
    type: object
  cloudconfig.DefaultConfigurationChangeItemDataUnion:
    properties:
      default_component_config:
        $ref: '#/definitions/cloudconfig.DefaultComponentChange'
      template_default_case_binding:
        $ref: '#/definitions/cloudconfig.TemplateDefaultCaseBindingChange'
      version_release:
        $ref: '#/definitions/cloudconfig.VersionRelease'
    type: object
  cloudconfig.DefaultConfigurationChangeItemRelease:
    properties:
      data:
        allOf:
        - $ref: '#/definitions/cloudconfig.DefaultConfigurationChangeItemReleaseDataUnion'
        description: Data is the data of this release
      environment:
        description: Environment is the name of the environment
        type: string
      id:
        type: integer
      item_id:
        description: ItemID is the id of DefaultConfigurationChangeItem
        type: integer
      parent_id:
        description: ParentID is the id of DefaultConfigurationChange
        type: integer
      release_number:
        description: ReleaseNumber is the number of this release, is same as the number
          of change release
        type: integer
    type: object
  cloudconfig.DefaultConfigurationChangeItemReleaseDataUnion:
    properties:
      default_component_config:
        $ref: '#/definitions/cloudconfig.DefaultComponentConfigChangeData'
      template_default_case_binding:
        $ref: '#/definitions/cloudconfig.TemplateDefaultCaseBindingChangeData'
    type: object
  cloudconfig.DefaultConfigurationChangeItemType:
    enum:
    - version_release
    - template_default_case_binding
    - default_component_config
    type: string
    x-enum-varnames:
    - DefaultConfigurationChangeItemTypeVersionRelease
    - DefaultConfigurationChangeItemTypeTemplateDefaultCaseBinding
    - DefaultConfigurationChangeItemTypeDefaultComponentConfig
  cloudconfig.DefaultConfigurationChangePhase:
    enum:
    - in_progress
    - success
    - terminated
    type: string
    x-enum-varnames:
    - DefaultConfigurationChangePhaseInProgress
    - DefaultConfigurationChangePhaseSuccess
    - DefaultConfigurationChangePhaseTerminated
  cloudconfig.DefaultConfigurationChangeRelease:
    properties:
      approval_id:
        description: ApprovalID is the approval ID of this release
        type: integer
      description:
        description: Description is the description of this release
        type: string
      environment:
        description: Environment is the name of the environment
        type: string
      id:
        type: integer
      parent_id:
        description: ParentID is the id of DefaultConfigurationChange
        type: integer
      phase:
        allOf:
        - $ref: '#/definitions/cloudconfig.DefaultConfigurationChangeReleasePhase'
        description: Phase is the phase of this release
      release_number:
        description: ReleaseNumber is the number of this release.
        type: integer
      released_at:
        description: ReleasedAt is the last time when the change is released in `Environment`
        type: integer
    type: object
  cloudconfig.DefaultConfigurationChangeReleasePhase:
    enum:
    - approving
    - released
    - rollbacked
    - cancelled
    type: string
    x-enum-varnames:
    - DefaultConfigurationChangeReleasePhaseApproving
    - DefaultConfigurationChangeReleasePhaseReleased
    - DefaultConfigurationChangeReleasePhaseRollback
    - DefaultConfigurationChangeReleasePhaseCancelled
  cloudconfig.DefaultVersionRule:
    properties:
      cloud_provider:
        type: string
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      cluster_version:
        type: string
      component:
        type: string
      region:
        type: string
      version:
        type: string
    type: object
  cloudconfig.DeleteTemplateDefaultCaseBindingByOpReq:
    properties:
      default_case_bindings:
        $ref: '#/definitions/cloudconfig.TemplateDefaultCaseBinding'
      reason:
        type: string
    type: object
  cloudconfig.DeleteTemplateDefaultCaseBindingResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      instance_id:
        type: integer
      trace_id:
        type: string
    type: object
  cloudconfig.DiffTemplateResp:
    properties:
      changed_parameters:
        items:
          $ref: '#/definitions/cloudconfig.ChangedParameter'
        type: array
      config_type:
        type: string
    type: object
  cloudconfig.FileConfiguration:
    properties:
      all_parameters:
        additionalProperties:
          $ref: '#/definitions/cloudconfig.UnifiedParameter'
        description: 'key: parameter name'
        type: object
      belong_to_component:
        type: string
      config_type:
        type: string
      filename:
        type: string
      format:
        type: string
      template_id:
        type: integer
      text:
        type: string
    type: object
  cloudconfig.GetConfigurationChangeResp:
    properties:
      change:
        $ref: '#/definitions/cloudconfig.ConfigurationChange'
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
    type: object
  cloudconfig.GetConfigurationResp:
    properties:
      changeable:
        $ref: '#/definitions/cloudconfig.ConfigurationChangeable'
      configuration:
        $ref: '#/definitions/cloudconfig.Configuration'
      default_version:
        $ref: '#/definitions/cloudconfig.TenantVersions'
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
    type: object
  cloudconfig.GetDefaultConfigurationChangeRelease:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      release:
        $ref: '#/definitions/cloudconfig.DefaultConfigurationChangeRelease'
      released_items:
        items:
          $ref: '#/definitions/cloudconfig.DefaultConfigurationChangeItem'
        type: array
      trace_id:
        type: string
    type: object
  cloudconfig.GetDefaultConfigurationChangeResp:
    properties:
      change:
        $ref: '#/definitions/cloudconfig.DefaultConfigurationChange'
      change_items:
        additionalProperties:
          items:
            $ref: '#/definitions/cloudconfig.DefaultConfigurationChangeItem'
          type: array
        type: object
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
    type: object
  cloudconfig.GetInternalChangefeedResp:
    properties:
      changefeed:
        $ref: '#/definitions/cloudconfig.InternalChangefeed'
    type: object
  cloudconfig.GetInternalTiCDCClusterResp:
    properties:
      ticdc_cluster:
        $ref: '#/definitions/cloudconfig.InternalTiCDCCluster'
    type: object
  cloudconfig.GetParamAttrResp:
    properties:
      attribute:
        $ref: '#/definitions/cloudconfig.ParameterAttribute'
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
    type: object
  cloudconfig.GetTemplateResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      template:
        $ref: '#/definitions/cloudconfig.Template'
      trace_id:
        type: string
    type: object
  cloudconfig.ImportVersionsReq:
    properties:
      gitops_branch:
        type: string
      max_version:
        type: string
      min_version:
        type: string
      reason:
        type: string
      tier_branch:
        type: string
    type: object
  cloudconfig.ImportVersionsResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      instance_id:
        type: integer
      trace_id:
        type: string
    type: object
  cloudconfig.InternalChangefeed:
    properties:
      arch:
        type: string
      checkpoint_ts:
        type: integer
      checkpoint_tso:
        type: string
      cluster_type:
        type: string
      created_at:
        description: timestamp
        type: integer
      display_id:
        type: string
      display_name:
        type: string
      downstream_config:
        additionalProperties: true
        type: object
      downstream_type:
        type: string
      id:
        type: string
      network_info:
        $ref: '#/definitions/cloudconfig.ChangefeedNetworkInfo'
      rcu:
        type: string
      start_position:
        $ref: '#/definitions/cloudconfig.ChangefeedStartPosition'
      status:
        type: string
      table_config:
        $ref: '#/definitions/cloudconfig.ChangefeedTableConfig'
      ticdc_cluster:
        $ref: '#/definitions/cloudconfig.InternalTiCDCCluster'
      ticdc_cluster_name:
        type: string
    type: object
  cloudconfig.InternalTiCDCCluster:
    properties:
      cluster_type:
        type: string
      control_plane_arch:
        type: string
      created_at:
        type: integer
      deploy_type:
        type: string
      id:
        type: string
      name:
        type: string
      operator_version:
        type: string
      provider_type:
        type: string
      region:
        type: string
      specification_code:
        type: string
      status:
        type: string
      tidb_cluster_id:
        type: string
      version:
        type: string
    type: object
  cloudconfig.ListAvailableClusterVersionsResp:
    properties:
      items:
        items:
          $ref: '#/definitions/cloudconfig.AvailableClusterVersion'
        type: array
    type: object
  cloudconfig.ListAvailableComponentVersionsResp:
    properties:
      detail:
        items:
          $ref: '#/definitions/cloudconfig.ComponentInfo'
        type: array
      versions:
        items:
          type: string
        type: array
    type: object
  cloudconfig.ListComponentImageUpdateRecordsResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/operation.Instance'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  cloudconfig.ListComponentsResp:
    properties:
      components:
        items:
          type: string
        type: array
    type: object
  cloudconfig.ListConfigTypesResp:
    properties:
      config_types:
        items:
          type: string
        type: array
    type: object
  cloudconfig.ListConfigurationChangeResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/cloudconfig.ConfigurationChange'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  cloudconfig.ListDefaultConfigurationChangeItemReleaseResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/cloudconfig.DefaultConfigurationChangeItemRelease'
        type: array
      trace_id:
        type: string
    type: object
  cloudconfig.ListDefaultConfigurationChangeItemsResp:
    properties:
      items:
        items:
          $ref: '#/definitions/cloudconfig.DefaultConfigurationChangeItem'
        type: array
      total:
        type: integer
    type: object
  cloudconfig.ListDefaultConfigurationChangeReleasesResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/cloudconfig.DefaultConfigurationChangeRelease'
        type: array
      trace_id:
        type: string
    type: object
  cloudconfig.ListDefaultConfigurationChangesResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/cloudconfig.DefaultConfigurationChange'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  cloudconfig.ListDefaultVersionRulesResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      rules:
        items:
          $ref: '#/definitions/cloudconfig.DefaultVersionRule'
        type: array
      trace_id:
        type: string
    type: object
  cloudconfig.ListInstanceTypesResp:
    properties:
      instance_types:
        items:
          $ref: '#/definitions/cloudconfig.CloudInstanceType'
        type: array
    type: object
  cloudconfig.ListInternalChangefeedsResp:
    properties:
      changefeeds:
        items:
          $ref: '#/definitions/cloudconfig.InternalChangefeed'
        type: array
    type: object
  cloudconfig.ListMetaProfilesResp:
    properties:
      items:
        items:
          $ref: '#/definitions/cloudconfig.MetaProfile'
        type: array
      total:
        type: integer
    type: object
  cloudconfig.ListParamAttrResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/cloudconfig.ParameterAttribute'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  cloudconfig.ListParamVersionsResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
      versions:
        items:
          type: string
        type: array
    type: object
  cloudconfig.ListTemplateDefaultCaseBindingsResp:
    properties:
      items:
        items:
          $ref: '#/definitions/cloudconfig.TemplateDefaultCaseBinding'
        type: array
      total:
        type: integer
    type: object
  cloudconfig.ListTemplatesResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/cloudconfig.Template'
        type: array
      trace_id:
        type: string
    type: object
  cloudconfig.ListUnreleasedDefaultConfigurationChangeItemsResp:
    properties:
      unreleased_items:
        items:
          $ref: '#/definitions/cloudconfig.DefaultConfigurationChangeItem'
        type: array
    type: object
  cloudconfig.MetaProfile:
    properties:
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      component_image_tags:
        additionalProperties:
          type: string
        type: object
      component_versions:
        additionalProperties:
          type: string
        type: object
      config_custom_templates:
        additionalProperties:
          type: integer
        type: object
      description:
        type: string
      profile_id:
        type: integer
      profile_name:
        type: string
      tags:
        additionalProperties:
          type: string
        type: object
    type: object
  cloudconfig.NamedParameter:
    properties:
      comment:
        description: Comment is the comment of this parameter
        type: string
      name:
        description: Name is the name of this parameter
        type: string
      value:
        description: Value is the value of this parameter
    type: object
  cloudconfig.OperationResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      instance_id:
        description: the operation instance id
        type: integer
      trace_id:
        type: string
    type: object
  cloudconfig.ParameterApplyPolicy:
    enum:
    - None
    - HotReload
    - RollingRestart
    - EnsureUpdateToTC
    - NewInstancesOnly
    - ForceRestart
    type: string
    x-enum-comments:
      ParameterApplyPolicyNewInstancesOnly: only used by dm currently
    x-enum-varnames:
    - ParameterApplyPolicyNone
    - ParameterApplyPolicyHotReload
    - ParameterApplyPolicyRestart
    - ParameterApplyPolicyEnsureUpdateToTC
    - ParameterApplyPolicyNewInstancesOnly
    - ParameterApplyPolicyForceRestart
  cloudconfig.ParameterAttribute:
    properties:
      apply_policy:
        $ref: '#/definitions/cloudconfig.ParameterApplyPolicy'
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      config_type:
        type: string
      default_value: {}
      description:
        type: string
      name:
        type: string
      risk_level:
        allOf:
        - $ref: '#/definitions/cloudconfig.RiskLevel'
        description: '"low" or "high"'
      type:
        type: string
      updated_by:
        type: string
      validation:
        type: string
      version:
        type: string
    type: object
  cloudconfig.ParameterSource:
    enum:
    - custom
    - template
    - kernel default
    type: string
    x-enum-varnames:
    - ParameterCustom
    - ParameterTemplate
    - ParameterKernelDefault
  cloudconfig.ParameterValue:
    properties:
      comment:
        description: Comment is the comment of this parameter
        type: string
      value:
        description: Value is the value of this parameter
    type: object
  cloudconfig.PreviewClusterConfigurationChangeReq:
    properties:
      change_type:
        type: string
      cluster_id:
        type: string
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      components:
        items:
          $ref: '#/definitions/cloudconfig.ChangeComponentReq'
        type: array
      files:
        items:
          $ref: '#/definitions/cloudconfig.ChangeFileReq'
        type: array
      version:
        $ref: '#/definitions/cloudconfig.ChangeVersionReq'
    required:
    - cluster_id
    - cluster_type
    type: object
  cloudconfig.PreviewConfigurationChangeResp:
    properties:
      apply_policies:
        items:
          $ref: '#/definitions/cloudconfig.ParameterApplyPolicy'
        type: array
      change:
        $ref: '#/definitions/cloudconfig.ConfigurationChange'
      configuration:
        $ref: '#/definitions/cloudconfig.Configuration'
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      reasons:
        type: string
      trace_id:
        type: string
    type: object
  cloudconfig.PreviewTenantInitConfigurationChangeReq:
    properties:
      change_type:
        type: string
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      components:
        items:
          $ref: '#/definitions/cloudconfig.ChangeComponentReq'
        type: array
      files:
        items:
          $ref: '#/definitions/cloudconfig.ChangeFileReq'
        type: array
      tenant_id:
        type: string
      version:
        $ref: '#/definitions/cloudconfig.ChangeVersionReq'
    required:
    - cluster_type
    - tenant_id
    type: object
  cloudconfig.ReleaseVersionReq:
    properties:
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      source_version:
        type: string
      target_version:
        type: string
    type: object
  cloudconfig.RiskLevel:
    enum:
    - low
    - high
    type: string
    x-enum-varnames:
    - RiskLevelLow
    - RiskLevelHigh
  cloudconfig.RollbackDefaultConfigurationChangeReleaseReq:
    properties:
      description:
        type: string
      environment:
        type: string
      release_number:
        type: integer
    type: object
  cloudconfig.SearchClusterComponentsResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/cloudconfig.ClusterComponentVersion'
        type: array
      partial_failure:
        type: boolean
      region_results:
        items:
          $ref: '#/definitions/cloudconfig.ClusterComponentSearchRegionResult'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  cloudconfig.ShutdownTiCDCReq:
    properties:
      cloud_config_change_id:
        type: integer
    required:
    - cloud_config_change_id
    type: object
  cloudconfig.StatDefaultConfigurationChangeItemsResp:
    properties:
      config_types_of_template_default_case_binding:
        items:
          type: string
        type: array
    type: object
  cloudconfig.Template:
    properties:
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      config_type:
        type: string
      custom_template_info:
        $ref: '#/definitions/cloudconfig.CustomTemplateInfo'
      default_cases:
        description: Output only
        items:
          $ref: '#/definitions/cloudconfig.TemplateDefaultCase'
        type: array
      id:
        description: id in the config center
        type: integer
      name:
        type: string
      parameters:
        additionalProperties:
          $ref: '#/definitions/cloudconfig.NamedParameter'
        description: 'key: parameter name'
        type: object
      tags:
        additionalProperties:
          type: string
        type: object
    type: object
  cloudconfig.TemplateDefaultCase:
    properties:
      cloud_provider:
        type: string
      config_type:
        type: string
      instance_type:
        type: string
      region:
        type: string
      tenant_id:
        type: string
      version:
        type: string
    type: object
  cloudconfig.TemplateDefaultCaseBinding:
    properties:
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      default_case:
        $ref: '#/definitions/cloudconfig.TemplateDefaultCase'
      template_id:
        type: integer
    type: object
  cloudconfig.TemplateDefaultCaseBindingChange:
    properties:
      modified:
        allOf:
        - $ref: '#/definitions/cloudconfig.TemplateDefaultCaseBindingChangeData'
        description: default as origin
      origin:
        $ref: '#/definitions/cloudconfig.TemplateDefaultCaseBinding'
    type: object
  cloudconfig.TemplateDefaultCaseBindingChangeData:
    properties:
      template_id:
        type: integer
    type: object
  cloudconfig.TemplateType:
    enum:
    - unspecified
    - custom
    - custom_part
    - tenant_default
    type: string
    x-enum-comments:
      TemplateTypeCustomPart: internal use only
    x-enum-varnames:
    - TemplateTypeUnspecified
    - TemplateTypeCustom
    - TemplateTypeCustomPart
    - TemplateTypeTenantDefault
  cloudconfig.TenantImages:
    additionalProperties:
      $ref: '#/definitions/cloudconfig.Component'
    type: object
  cloudconfig.TenantInitConfigurationLocator:
    properties:
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      tenant_id:
        type: string
    required:
    - cluster_type
    - tenant_id
    type: object
  cloudconfig.TenantVersions:
    properties:
      data-migration:
        type: string
      tidb:
        type: string
      tiproxy:
        type: string
    type: object
  cloudconfig.UnifiedParameter:
    properties:
      attribute:
        allOf:
        - $ref: '#/definitions/cloudconfig.ParameterAttribute'
        description: |-
          Attribute is the attribute of this config
          It may be nil if the parameter is not defined in the param dict.
      comment:
        description: Comment is the comment of this parameter
        type: string
      custom:
        allOf:
        - $ref: '#/definitions/cloudconfig.ParameterValue'
        description: Custom is the custom config value
      name:
        description: Name is the name of this parameter
        type: string
      source:
        allOf:
        - $ref: '#/definitions/cloudconfig.ParameterSource'
        description: Source is the value source of this parameter
      template:
        allOf:
        - $ref: '#/definitions/cloudconfig.ParameterValue'
        description: Template is the template config value
      value:
        description: Value is the value of this parameter
    type: object
  cloudconfig.UpdateComponentImageReq:
    properties:
      author:
        type: string
      base_image:
        type: string
      change_id:
        type: string
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      policy:
        $ref: '#/definitions/operation.ActionStartPolicy'
      release_id:
        type: string
      tag:
        type: string
      version:
        type: string
    type: object
  cloudconfig.UpdateDefaultClusterVersionReq:
    properties:
      is_default:
        type: boolean
    type: object
  cloudconfig.UpdateDefaultClusterVersionResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      instance_id:
        type: integer
      trace_id:
        type: string
    type: object
  cloudconfig.UpdateParamAttrReq:
    properties:
      apply_policy:
        $ref: '#/definitions/cloudconfig.ParameterApplyPolicy'
      default_value: {}
      description:
        type: string
      risk_level:
        $ref: '#/definitions/cloudconfig.RiskLevel'
      updated_by:
        type: string
      validation:
        type: string
    type: object
  cloudconfig.UpdateTemplateDefaultCaseBindingByOpReq:
    properties:
      default_case_bindings:
        $ref: '#/definitions/cloudconfig.TemplateDefaultCaseBinding'
      reason:
        type: string
    type: object
  cloudconfig.UpdateTemplateDefaultCaseBindingResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      instance_id:
        type: integer
      trace_id:
        type: string
    type: object
  cloudconfig.UpdateTemplateDefaultCaseBindingsReq:
    properties:
      default_cases:
        items:
          $ref: '#/definitions/cloudconfig.TemplateDefaultCaseBinding'
        type: array
    type: object
  cloudconfig.UsedParameter:
    properties:
      comment:
        description: Comment is the comment of this parameter
        type: string
      name:
        description: Name is the name of this parameter
        type: string
      source:
        allOf:
        - $ref: '#/definitions/cloudconfig.ParameterSource'
        description: Source is the value source of this parameter
      value:
        description: Value is the value of this parameter
    type: object
  cloudconfig.VersionRelease:
    properties:
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      covering_instance_types:
        description: encoded Instance Types
        items:
          type: string
        type: array
      source_version:
        type: string
      target_version:
        type: string
    type: object
  cluster.ApplyHeterogeneousDeployRequest:
    properties:
      alternative_instance_type:
        type: string
      component_type:
        $ref: '#/definitions/cluster.ComponentType'
      current_instance_type:
        type: string
      reason:
        type: string
      tidb_group_id:
        type: string
    required:
    - component_type
    type: object
  cluster.ApplyHeterogeneousDeployResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      instance_id:
        type: integer
      trace_id:
        type: string
    type: object
  cluster.Cluster:
    properties:
      cluster_components:
        $ref: '#/definitions/cluster.ClusterComponent'
      create_time:
        type: integer
      cross_account_deployment_id:
        type: integer
      deploy_type:
        description: supported "DEPLOY_TYPE_NEXTGEN", "DEPLOY_TYPE_DEDICATED", "DEPLOY_TYPE_SERVERLESS".
          Empty string for cloud native
        type: string
      id:
        example: "0"
        type: string
      is_dev_tier:
        type: boolean
      is_new_arch:
        description: set to true if the cluster is serverless
        type: boolean
      logical_region:
        type: string
      name:
        type: string
      nextgen_details:
        allOf:
        - $ref: '#/definitions/cluster.NextGenDetails'
        description: only filled in get api, not in list api
      profile:
        type: string
      project_id:
        example: "0"
        type: string
      project_name:
        type: string
      provider:
        type: string
      region:
        type: string
      resource_pool_details:
        $ref: '#/definitions/cluster.ResourcePoolDetails'
      serverless_details:
        allOf:
        - $ref: '#/definitions/cluster.ServerlessDetails'
        description: only filled in get api, not in list api
      service_plan:
        type: string
      status:
        type: string
      tenant_id:
        example: "0"
        type: string
      tenant_name:
        type: string
      version:
        type: string
    type: object
  cluster.ClusterComponent:
    properties:
      pd:
        $ref: '#/definitions/cluster.Component'
      tidb:
        $ref: '#/definitions/cluster.Component'
      tiflash:
        $ref: '#/definitions/cluster.Component'
      tikv:
        $ref: '#/definitions/cluster.Component'
      tiproxy:
        $ref: '#/definitions/cluster.Component'
    type: object
  cluster.CommonResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      instance_id:
        description: the operation instance id
        type: integer
      trace_id:
        type: string
    type: object
  cluster.Component:
    properties:
      machineType:
        description: 'TODO(chenfei): remove. used by gitops to overlay configuration
          for component for now'
        type: string
      node_profile:
        $ref: '#/definitions/cluster.NodeProfileOfComponent'
      replicas:
        type: integer
      storage_type:
        type: string
    type: object
  cluster.ComponentInfo:
    properties:
      component_type:
        $ref: '#/definitions/cluster.ComponentType'
      count:
        type: integer
      cpu_num:
        type: integer
      host_id:
        type: string
      instance_cpu_arch:
        type: string
      instance_type:
        type: string
      internal_endpoint:
        type: string
      is_default_tidb_group:
        type: boolean
      memory_size_gi:
        type: integer
      phase:
        type: string
      private_link_service:
        $ref: '#/definitions/cluster.PrivateLinkServiceInfo'
      privatelink_dns_name:
        type: string
      spu_display_name:
        type: string
      spu_name:
        type: string
      storages:
        additionalProperties:
          $ref: '#/definitions/cluster.ComponentStorage'
        type: object
      tidb_group_display_name:
        type: string
      tidb_group_id:
        type: string
    type: object
  cluster.ComponentStorage:
    properties:
      additional_iops:
        type: integer
      component_id:
        type: integer
      disk_type:
        type: string
      iops:
        type: integer
      size_gi:
        type: integer
      storage_id:
        type: integer
      throughput_mibps:
        type: integer
      volume_type:
        type: string
    type: object
  cluster.ComponentType:
    enum:
    - tikv
    - tidb
    - tiflash
    - pd
    - tiproxy
    - ticdc
    - cassandra
    type: string
    x-enum-varnames:
    - ComponentTypeTikv
    - ComponentTypeTidb
    - ComponentTypeTiflash
    - ComponentTypePd
    - ComponentTypeTiproxy
    - ComponentTypeTicdc
    - ComponentTypeCassandra
  cluster.CreateClusterOpsMaintenanceWindowReq:
    properties:
      approvers:
        items:
          type: string
        type: array
      cluster_id:
        type: string
      windows:
        items:
          $ref: '#/definitions/maintenance.ClusterOpsMaintenanceWindowSlot'
        type: array
    required:
    - cluster_id
    - windows
    type: object
  cluster.CreateClusterOpsMaintenanceWindowResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      item:
        $ref: '#/definitions/maintenance.ClusterOpsMaintenanceWindow'
      trace_id:
        type: string
    type: object
  cluster.CreateDedicatedToPremiumPrecheckReq:
    properties:
      migration_account_email:
        type: string
      source_cluster_id:
        type: string
      target_premium_project_id:
        type: string
    required:
    - source_cluster_id
    type: object
  cluster.CreateMaintenanceReq:
    properties:
      cluster_ids:
        items:
          type: string
        type: array
      deadline:
        description: unix
        type: integer
      description:
        type: string
      project_id:
        type: string
    type: object
  cluster.CreateMaintenanceResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      id:
        type: integer
      trace_id:
        type: string
    type: object
  cluster.CreateMigrationClusterConfigSyncRequest:
    properties:
      allow_fallback_to_backup:
        type: boolean
      skip_pd_config:
        type: boolean
      skip_pd_server_config:
        type: boolean
      skip_placement_rules:
        type: boolean
      skip_store_limits:
        type: boolean
      skip_system_variables:
        type: boolean
    type: object
  cluster.CreateMigrationClusterPDNodeRequest:
    properties:
      node_spec_key:
        type: string
    type: object
  cluster.CreateMigrationClusterRequest:
    properties:
      backup_id:
        type: string
      backup_region_id:
        type: string
      br_custom_options:
        type: string
      br_image_tag:
        type: string
      br_version:
        type: string
      cluster_display_name:
        type: string
      config_sync_strategy:
        $ref: '#/definitions/cluster.CreateMigrationClusterConfigSyncRequest'
      create_pd_image_tag:
        type: string
      create_tidb_image_tag:
        type: string
      create_tiflash_image_tag:
        type: string
      create_tikv_image_tag:
        type: string
      pd_image_tag:
        type: string
      pd_node_setting:
        $ref: '#/definitions/cluster.CreateMigrationClusterPDNodeRequest'
      reason:
        type: string
      restore_mode:
        type: string
      target_cluster_version:
        type: string
      target_project_id:
        type: string
      target_region_id:
        type: string
      tidb_image_tag:
        type: string
      tidb_node_setting:
        items:
          $ref: '#/definitions/cluster.CreateMigrationClusterTiDBNodeRequest'
        type: array
      tiflash_image_tag:
        type: string
      tiflash_node_setting:
        $ref: '#/definitions/cluster.CreateMigrationClusterStorageNodeRequest'
      tikv_image_tag:
        type: string
      tikv_node_setting:
        $ref: '#/definitions/cluster.CreateMigrationClusterStorageNodeRequest'
    required:
    - cluster_display_name
    type: object
  cluster.CreateMigrationClusterResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      instance_id:
        type: integer
      trace_id:
        type: string
    type: object
  cluster.CreateMigrationClusterStorageNodeRequest:
    properties:
      node_count:
        type: integer
      node_spec_key:
        type: string
    type: object
  cluster.CreateMigrationClusterTiDBNodeRequest:
    properties:
      display_name:
        type: string
      is_default_group:
        type: boolean
      node_count:
        type: integer
      node_spec_key:
        type: string
    required:
    - display_name
    type: object
  cluster.CreateOpsExecutionWindowReq:
    properties:
      end_at:
        type: integer
      start_at:
        type: integer
    type: object
  cluster.CreateTrafficReplayRequest:
    properties:
      cluster_id:
        type: string
      replay_spec:
        $ref: '#/definitions/cluster.TrafficReplaySpec'
      tenant_id:
        type: string
    required:
    - cluster_id
    - replay_spec
    - tenant_id
    type: object
  cluster.CreateTrafficReplayResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      instance_id:
        type: integer
      trace_id:
        type: string
    type: object
  cluster.CreateVPCPeeringReq:
    properties:
      cidr:
        type: string
      cloud_account_id:
        type: string
      cloud_provider:
        type: string
      reason:
        type: string
      region:
        type: string
      vpc_id:
        type: string
    required:
    - cidr
    - cloud_account_id
    - cloud_provider
    - reason
    - region
    - vpc_id
    type: object
  cluster.DedicatedToPremiumPrecheck:
    properties:
      applicant:
        type: string
      create_time:
        type: string
      failure_message:
        type: string
      finish_time:
        type: string
      id:
        type: string
      migration_account_email:
        type: string
      reports:
        items:
          $ref: '#/definitions/cluster.DedicatedToPremiumPrecheckReport'
        type: array
      source_cluster_id:
        type: string
      start_time:
        type: string
      state:
        type: string
      target_premium_project_id:
        type: string
      update_time:
        type: string
    type: object
  cluster.DedicatedToPremiumPrecheckItem:
    properties:
      action:
        type: string
      check_key:
        type: string
      evidence:
        type: string
      status:
        type: string
      title:
        type: string
      why:
        type: string
    type: object
  cluster.DedicatedToPremiumPrecheckReport:
    properties:
      category:
        type: string
      complete:
        type: boolean
      execution_error:
        type: string
      items:
        items:
          $ref: '#/definitions/cluster.DedicatedToPremiumPrecheckItem'
        type: array
      summary:
        $ref: '#/definitions/cluster.DedicatedToPremiumPrecheckSummary'
    type: object
  cluster.DedicatedToPremiumPrecheckResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      precheck:
        $ref: '#/definitions/cluster.DedicatedToPremiumPrecheck'
      trace_id:
        type: string
    type: object
  cluster.DedicatedToPremiumPrecheckSummary:
    properties:
      needs_input_count:
        type: integer
      no_risk_found_count:
        type: integer
      risk_found_count:
        type: integer
      total_count:
        type: integer
    type: object
  cluster.DeleteHeterogeneousDeployRequest:
    properties:
      component_type:
        $ref: '#/definitions/cluster.ComponentType'
      reason:
        type: string
      tidb_group_id:
        type: string
    required:
    - component_type
    type: object
  cluster.DeleteHeterogeneousDeployResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      instance_id:
        type: integer
      trace_id:
        type: string
    type: object
  cluster.DeleteTrafficReplayResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      instance_id:
        type: integer
      trace_id:
        type: string
    type: object
  cluster.DeleteVPCPeeringReq:
    properties:
      reason:
        type: string
    required:
    - reason
    type: object
  cluster.ExecCtlReq:
    properties:
      command:
        type: string
    type: object
  cluster.ExecCtlResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      stderr:
        type: string
      stdout:
        type: string
      trace_id:
        type: string
    type: object
  cluster.GetAlertSummaryResp:
    properties:
      trends:
        items:
          $ref: '#/definitions/jira.SeriesTrend'
        type: array
    type: object
  cluster.GetCloudIAMInfoResp:
    properties:
      bucket_name:
        type: string
      cloud_provider:
        type: string
      logical_name:
        type: string
      region:
        type: string
      tidb_cloud_account_external_id:
        type: string
      tidb_cloud_account_id:
        type: string
    type: object
  cluster.GetClusterComponentsResp:
    properties:
      cassandra:
        items:
          $ref: '#/definitions/cluster.ComponentInfo'
        type: array
      pd:
        items:
          $ref: '#/definitions/cluster.ComponentInfo'
        type: array
      tidb:
        items:
          $ref: '#/definitions/cluster.ComponentInfo'
        type: array
      tiflash:
        items:
          $ref: '#/definitions/cluster.ComponentInfo'
        type: array
      tiflash_storage_type:
        type: string
      tikv:
        items:
          $ref: '#/definitions/cluster.ComponentInfo'
        type: array
      tikv_storage_type:
        type: string
      tiproxy:
        items:
          $ref: '#/definitions/cluster.ComponentInfo'
        type: array
    type: object
  cluster.GetClusterOpsMaintenanceWindowResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      item:
        $ref: '#/definitions/maintenance.ClusterOpsMaintenanceWindow'
      trace_id:
        type: string
    type: object
  cluster.GetClusterResp:
    properties:
      cluster_components:
        $ref: '#/definitions/cluster.ClusterComponent'
      create_time:
        type: integer
      cross_account_deployment_id:
        type: integer
      deploy_type:
        description: supported "DEPLOY_TYPE_NEXTGEN", "DEPLOY_TYPE_DEDICATED", "DEPLOY_TYPE_SERVERLESS".
          Empty string for cloud native
        type: string
      id:
        example: "0"
        type: string
      is_dev_tier:
        type: boolean
      is_new_arch:
        description: set to true if the cluster is serverless
        type: boolean
      logical_region:
        type: string
      name:
        type: string
      nextgen_details:
        allOf:
        - $ref: '#/definitions/cluster.NextGenDetails'
        description: only filled in get api, not in list api
      profile:
        type: string
      project_id:
        example: "0"
        type: string
      project_name:
        type: string
      provider:
        type: string
      region:
        type: string
      resource_pool_details:
        $ref: '#/definitions/cluster.ResourcePoolDetails'
      serverless_details:
        allOf:
        - $ref: '#/definitions/cluster.ServerlessDetails'
        description: only filled in get api, not in list api
      service_plan:
        type: string
      status:
        type: string
      tenant_id:
        example: "0"
        type: string
      tenant_name:
        type: string
      version:
        type: string
    type: object
  cluster.GetDMNamespaceResp:
    properties:
      namespace:
        type: string
      pod_names:
        items:
          type: string
        type: array
    type: object
  cluster.GetHeterogeneousDeployResponse:
    properties:
      deploy:
        $ref: '#/definitions/cluster.HeterogeneousDeploy'
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
    type: object
  cluster.GetMaintenanceResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      maintenance:
        $ref: '#/definitions/maintenance.ClusterMaintenance'
      trace_id:
        type: string
    type: object
  cluster.GetTopologyResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      topology:
        $ref: '#/definitions/entity.Topology'
      trace_id:
        type: string
    type: object
  cluster.GetTrafficReplayResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      replay:
        $ref: '#/definitions/cluster.TrafficReplay'
      trace_id:
        type: string
    type: object
  cluster.HeterogeneousDeploy:
    properties:
      alternative_instance_type:
        type: string
      component_type:
        $ref: '#/definitions/cluster.ComponentType'
      current_instance_type:
        type: string
      enabled:
        type: boolean
      pod_counts:
        items:
          $ref: '#/definitions/cluster.HeterogeneousDeployPodCount'
        type: array
      status:
        type: string
      tidb_group_id:
        type: string
    type: object
  cluster.HeterogeneousDeployPodCount:
    properties:
      machine_type:
        type: string
      pod_count:
        type: integer
    type: object
  cluster.IsInClusterOpsMaintenanceWindowResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      is:
        description: Is indicates whether the cluster is currently in ops maintenance
          window or no corresponding maintenance window.
        type: boolean
      trace_id:
        type: string
      window:
        allOf:
        - $ref: '#/definitions/maintenance.ClusterOpsMaintenanceWindow'
        description: Item is the maintenance window if exists.
    type: object
  cluster.ListAlertsResp:
    properties:
      is_last:
        type: boolean
      items:
        items:
          $ref: '#/definitions/jira.Alert'
        type: array
      next_page_token:
        type: string
    type: object
  cluster.ListClusterOpsMaintenanceWindowsResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/maintenance.ClusterOpsMaintenanceWindow'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  cluster.ListClustersResp:
    properties:
      items:
        items:
          $ref: '#/definitions/cluster.Cluster'
        type: array
      total:
        type: integer
    type: object
  cluster.ListDedicatedToPremiumPrechecksResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/cluster.DedicatedToPremiumPrecheck'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  cluster.ListMaintenancesResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/maintenance.ClusterMaintenance'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  cluster.ListTrafficReplaysResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/cluster.TrafficReplay'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  cluster.ListVPCPeeringsResp:
    properties:
      items:
        items:
          $ref: '#/definitions/cluster.VPCPeering'
        type: array
    type: object
  cluster.LogicalCluster:
    properties:
      id:
        type: string
      name:
        type: string
      tikv_group_id:
        type: string
    type: object
  cluster.MigratePrivateLinkRequest:
    properties:
      reason:
        type: string
      target_cluster_id:
        type: string
      tidb_group_pairs:
        items:
          $ref: '#/definitions/cluster.MigratePrivateLinkTiDBGroupPair'
        type: array
    required:
    - target_cluster_id
    - tidb_group_pairs
    type: object
  cluster.MigratePrivateLinkResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      instance_id:
        type: integer
      trace_id:
        type: string
    type: object
  cluster.MigratePrivateLinkTiDBGroupPair:
    properties:
      source_tidb_group_display_name:
        type: string
      source_tidb_group_id:
        type: string
      target_tidb_group_id:
        type: string
    required:
    - source_tidb_group_id
    - target_tidb_group_id
    type: object
  cluster.NextGenDetails:
    properties:
      data_plane_id:
        type: string
      max_rcu:
        type: integer
      min_rcu:
        type: integer
      resource_pool_id:
        type: string
      shared_pool:
        allOf:
        - $ref: '#/definitions/cluster.SharedPool'
        description: only filled in get api, not in list api
      tidb_tag:
        type: string
      tikv_group_id:
        type: string
    type: object
  cluster.NodeProfileCompute:
    properties:
      cpu:
        type: integer
      memory_mi:
        type: integer
    type: object
  cluster.NodeProfileOfComponent:
    properties:
      compute:
        $ref: '#/definitions/cluster.NodeProfileCompute'
      name:
        type: string
      storage_gi:
        type: integer
    type: object
  cluster.PrivateLinkServiceInfo:
    properties:
      availability_zone_ids:
        items:
          type: string
        type: array
      phase:
        type: string
      service_name:
        type: string
    type: object
  cluster.ResourceConfig:
    properties:
      cluster_plan:
        type: string
      kubernetes:
        type: string
      max_rcu:
        type: integer
      max_tidb_replicas:
        type: integer
      min_rcu:
        type: integer
      min_tidb_replicas:
        type: integer
      ru_mode:
        type: string
      tidb_pool:
        type: string
      zone_redundant_enabled:
        type: boolean
    type: object
  cluster.ResourcePoolDetails:
    properties:
      cidr:
        type: string
      default_orgs:
        items:
          type: string
        type: array
      enabled_tikv_remote_workers:
        items:
          type: string
        type: array
      instance_limit:
        type: integer
      is_default:
        type: boolean
      logical_clusters:
        items:
          $ref: '#/definitions/cluster.LogicalCluster'
        type: array
      pd_deployment_mode:
        type: string
      shared_pool:
        allOf:
        - $ref: '#/definitions/cluster.SharedPool'
        description: only filled in get api, not in list api
      tikv_tag:
        type: string
      vcpus_limit:
        type: integer
    type: object
  cluster.ServerlessBranch:
    properties:
      create_time:
        type: integer
      display_name:
        type: string
      id:
        type: string
      status:
        type: string
      update_time:
        type: integer
    type: object
  cluster.ServerlessDetails:
    properties:
      branches:
        items:
          $ref: '#/definitions/cluster.ServerlessBranch'
        type: array
      column_storage:
        type: number
      enable_customer_alert:
        type: boolean
      keyspace_id:
        type: integer
      keyspace_token:
        type: string
      request_unit:
        type: integer
      resource_config:
        $ref: '#/definitions/cluster.ResourceConfig'
      row_storage:
        type: number
    type: object
  cluster.SharedPool:
    properties:
      component_groups:
        items:
          $ref: '#/definitions/cluster.SharedPoolComponent'
        type: array
      id:
        type: string
      phase:
        type: string
    type: object
  cluster.SharedPoolComponent:
    properties:
      component_type:
        $ref: '#/definitions/cluster.ComponentType'
      cpu:
        type: integer
      id:
        description: id means the component group id
        type: string
      max_node_count:
        type: integer
      memory_gi:
        type: integer
      min_node_count:
        type: integer
      node_count:
        type: integer
      phase:
        type: string
      storages:
        description: include storage and tikv additional storage
        items:
          $ref: '#/definitions/cluster.SharedPoolStorage'
        type: array
      version:
        type: string
    type: object
  cluster.SharedPoolStorage:
    properties:
      iops:
        description: the storage iops
        type: integer
      name:
        description: the storage name
        type: string
      size_gi:
        description: the storage size
        type: integer
      throughput_mbs:
        description: the storage throughput
        type: integer
      type:
        description: |-
          the storage type
          aws s3/io2 or gcp gcs
          or azure blob
        type: string
    type: object
  cluster.StartTrafficReplayRequest:
    properties:
      cluster_id:
        type: string
      tenant_id:
        type: string
    required:
    - cluster_id
    - tenant_id
    type: object
  cluster.StartTrafficReplayResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      instance_id:
        type: integer
      trace_id:
        type: string
    type: object
  cluster.StopTrafficReplayRequest:
    properties:
      cluster_id:
        type: string
      tenant_id:
        type: string
    required:
    - cluster_id
    - tenant_id
    type: object
  cluster.StopTrafficReplayResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      instance_id:
        type: integer
      trace_id:
        type: string
    type: object
  cluster.TrafficReplay:
    properties:
      cloud_provider:
        type: string
      cluster_id:
        type: string
      created_at:
        type: string
      current_state:
        type: string
      desired_state:
        type: string
      org_id:
        type: string
      project_id:
        type: string
      region:
        type: string
      replay_config:
        $ref: '#/definitions/cluster.TrafficReplayCommonConfig'
      replay_id:
        type: string
      replay_image:
        type: string
      replay_status:
        $ref: '#/definitions/cluster.TrafficReplayStatus'
      replay_tasks:
        items:
          $ref: '#/definitions/cluster.TrafficReplayTask'
        type: array
      replicas:
        type: integer
      source_audit_credential:
        $ref: '#/definitions/cluster.TrafficReplayAuditLogAddr'
      source_cluster_id:
        type: string
      task_resources:
        $ref: '#/definitions/cluster.TrafficReplayTaskResources'
      updated_at:
        type: string
    type: object
  cluster.TrafficReplayAWSAuditLog:
    properties:
      external_id:
        type: string
      role_arn:
        type: string
      s3_url:
        type: string
    type: object
  cluster.TrafficReplayAliyunAuditLog:
    properties:
      access_key_id:
        type: string
      bucket_url:
        type: string
      secret_access_key:
        type: string
    type: object
  cluster.TrafficReplayAuditLogAddr:
    properties:
      aliyun:
        $ref: '#/definitions/cluster.TrafficReplayAliyunAuditLog'
      aws:
        $ref: '#/definitions/cluster.TrafficReplayAWSAuditLog'
      gcp:
        $ref: '#/definitions/cluster.TrafficReplayGCPAuditLog'
    type: object
  cluster.TrafficReplayCommonConfig:
    properties:
      password:
        type: string
      replay_config:
        $ref: '#/definitions/cluster.TrafficReplayConfig'
      username:
        type: string
    type: object
  cluster.TrafficReplayConfig:
    properties:
      buf_size:
        type: integer
      custom_arguments:
        additionalProperties:
          type: string
        type: object
      dynamic_input:
        type: boolean
      format:
        type: string
      ignore_errs:
        type: boolean
      ps_close:
        type: string
      read_only:
        type: boolean
      replay_index:
        type: integer
      replay_start_time:
        type: string
      run_start_time:
        type: string
      speed:
        type: string
    type: object
  cluster.TrafficReplayDataSource:
    properties:
      source_audit_log_addrs:
        items:
          $ref: '#/definitions/cluster.TrafficReplayAuditLogAddr'
        type: array
    type: object
  cluster.TrafficReplayDataTarget:
    properties:
      endpoint:
        type: string
      password:
        type: string
      username:
        type: string
    type: object
  cluster.TrafficReplayGCPAuditLog:
    properties:
      gcs_url:
        type: string
      service_account_json:
        type: string
    type: object
  cluster.TrafficReplayReplicaStatus:
    properties:
      index:
        type: integer
      message:
        type: string
      phase:
        type: string
      pod_name:
        type: string
      ready:
        type: boolean
      task_info:
        $ref: '#/definitions/cluster.TrafficReplayTaskInfo'
    type: object
  cluster.TrafficReplaySpec:
    properties:
      cloud_provider:
        type: string
      config_custom_arguments:
        additionalProperties:
          type: string
        type: object
      config_replay_start_time:
        type: string
      config_run_start_time:
        type: string
      database_password:
        type: string
      database_username:
        type: string
      project_id:
        type: string
      region:
        type: string
      replay_image:
        type: string
      replay_tasks:
        description: JSON encoded array of task
        type: string
      replicas:
        type: integer
      source_audit_credential:
        $ref: '#/definitions/cluster.TrafficReplayAuditLogAddr'
      source_cluster_id:
        type: string
      target_cluster_id:
        type: string
      task_resources:
        $ref: '#/definitions/cluster.TrafficReplayTaskResources'
    type: object
  cluster.TrafficReplayStatus:
    properties:
      aws_node_role_arn:
        type: string
      last_update_time:
        type: string
      message:
        type: string
      phase:
        type: string
      tasks:
        items:
          $ref: '#/definitions/cluster.TrafficReplayTaskStatus'
        type: array
    type: object
  cluster.TrafficReplayTask:
    properties:
      data_source:
        $ref: '#/definitions/cluster.TrafficReplayDataSource'
      data_target:
        $ref: '#/definitions/cluster.TrafficReplayDataTarget'
      image:
        type: string
      name:
        type: string
      per_replay_configs:
        items:
          $ref: '#/definitions/cluster.TrafficReplayConfig'
        type: array
      replay_start_time:
        type: string
      replicas:
        type: integer
      resources:
        $ref: '#/definitions/cluster.TrafficReplayTaskResources'
      run_start_time:
        type: string
    type: object
  cluster.TrafficReplayTaskInfo:
    properties:
      end_time:
        type: string
      error:
        type: string
      last_command_timestamp:
        type: string
      progress:
        type: integer
      source_audit_log_addrs:
        items:
          $ref: '#/definitions/cluster.TrafficReplayAuditLogAddr'
        type: array
      start_time:
        type: string
      status:
        type: string
      sync_time:
        type: string
      total_commands:
        type: integer
      type:
        type: string
    type: object
  cluster.TrafficReplayTaskResources:
    properties:
      instance_type:
        type: string
      storage_size:
        type: string
    type: object
  cluster.TrafficReplayTaskStatus:
    properties:
      message:
        type: string
      name:
        type: string
      replica_statuses:
        items:
          $ref: '#/definitions/cluster.TrafficReplayReplicaStatus'
        type: array
    type: object
  cluster.UpdateClusterOpsMaintenanceWindowReq:
    properties:
      approvers:
        items:
          type: string
        type: array
      windows:
        items:
          $ref: '#/definitions/maintenance.ClusterOpsMaintenanceWindowSlot'
        type: array
    required:
    - windows
    type: object
  cluster.UpdateClusterOpsMaintenanceWindowResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      item:
        $ref: '#/definitions/maintenance.ClusterOpsMaintenanceWindow'
      trace_id:
        type: string
    type: object
  cluster.UpdateTrafficReplayRequest:
    properties:
      changed_replay_spec:
        type: string
      cluster_id:
        type: string
      replay_spec:
        $ref: '#/definitions/cluster.TrafficReplaySpec'
      tenant_id:
        type: string
    required:
    - cluster_id
    - replay_spec
    - tenant_id
    type: object
  cluster.UpdateTrafficReplayResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      instance_id:
        type: integer
      trace_id:
        type: string
    type: object
  cluster.VPCPeering:
    properties:
      destination_account_id:
        type: string
      destination_cidr_block:
        type: string
      destination_region:
        type: string
      destination_vpc_id:
        type: string
      id:
        type: string
      provider:
        type: string
      source_account_id:
        type: string
      source_cidr_block:
        type: string
      source_vpc_id:
        type: string
      status:
        type: string
      vpc_peering_connection_id:
        type: string
    type: object
  configcenter.AddAttributeReq:
    properties:
      apply_policy:
        $ref: '#/definitions/entity.ApplyStrategy'
      id:
        type: integer
      param_name:
        type: string
      version:
        type: integer
    type: object
  configcenter.CopyFromVersionReq:
    properties:
      from_version:
        type: string
      to_version:
        type: string
    type: object
  configcenter.ListAttributesResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/entity.ConfigAttributes'
        type: array
      trace_id:
        type: string
    type: object
  configcenter.ModifyReq:
    properties:
      apply_policy:
        $ref: '#/definitions/entity.ApplyStrategy'
      id:
        type: integer
      param_name:
        type: string
      version:
        type: integer
    type: object
  controlplane.CreateDeploymentReq:
    properties:
      params:
        additionalProperties:
          type: string
        type: object
      scenario:
        $ref: '#/definitions/controlplane.Scenario'
    required:
    - params
    - scenario
    type: object
  controlplane.CreateDeploymentResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      id:
        type: integer
      trace_id:
        type: string
    type: object
  controlplane.Deployment:
    properties:
      applicant:
        description: email
        type: string
      apply_meta:
        allOf:
        - $ref: '#/definitions/controlplane.WorkflowRunMeta'
        description: ApplyMeta holds the GitHub Actions workflow run info for apply.
      approval_id:
        type: integer
      closed_at:
        type: integer
      created_at:
        type: integer
      frozen_snapshot:
        allOf:
        - $ref: '#/definitions/controlplane.FrozenSnapshot'
        description: |-
          FrozenSnapshot is set when preview is dispatched, locking down the exact
          workflow inputs used for preview. Apply always uses this snapshot.
      id:
        type: integer
      params:
        additionalProperties:
          type: string
        description: Params holds user-provided deployment parameters.
        type: object
      phase:
        $ref: '#/definitions/controlplane.Phase'
      preview_meta:
        allOf:
        - $ref: '#/definitions/controlplane.WorkflowRunMeta'
        description: PreviewMeta holds the GitHub Actions workflow run info for preview.
      scenario:
        $ref: '#/definitions/controlplane.Scenario'
    type: object
  controlplane.FrozenSnapshot:
    properties:
      frozen_at:
        type: integer
      params:
        additionalProperties:
          type: string
        type: object
      workflow_inputs:
        additionalProperties:
          type: string
        type: object
      workflow_name:
        type: string
    type: object
  controlplane.GetDeploymentResp:
    properties:
      deployment:
        $ref: '#/definitions/controlplane.Deployment'
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
    type: object
  controlplane.ListDeploymentResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/controlplane.Deployment'
        type: array
      trace_id:
        type: string
    type: object
  controlplane.OnApplyCompleteReq:
    properties:
      run_id:
        type: integer
      run_url:
        type: string
      status:
        type: string
    required:
    - status
    type: object
  controlplane.OnPreviewCompleteReq:
    properties:
      run_id:
        type: integer
      run_url:
        type: string
      status:
        type: string
      summary:
        type: string
    required:
    - status
    type: object
  controlplane.Phase:
    enum:
    - created
    - preview_pending
    - preview_running
    - preview_succeeded
    - preview_failed
    - approving
    - apply_pending
    - apply_running
    - apply_succeeded
    - apply_failed
    - canceled
    type: string
    x-enum-varnames:
    - PhaseCreated
    - PhasePreviewPending
    - PhasePreviewRunning
    - PhasePreviewSucceeded
    - PhasePreviewFailed
    - PhaseApproving
    - PhaseApplyPending
    - PhaseApplyRunning
    - PhaseApplySucceeded
    - PhaseApplyFailed
    - PhaseCanceled
  controlplane.Scenario:
    enum:
    - aws_premium_region
    - aws_byoc_region
    type: string
    x-enum-varnames:
    - ScenarioAWSPremiumRegion
    - ScenarioAWSBYOCRegion
  controlplane.StartPreviewResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      run_id:
        type: integer
      run_url:
        type: string
      trace_id:
        type: string
    type: object
  controlplane.WorkflowRunMeta:
    properties:
      retry_count:
        type: integer
      run_id:
        type: integer
      run_url:
        type: string
      status:
        type: string
      summary:
        type: string
      workflow_name:
        type: string
    type: object
  dashboard.CloudOncallInfoResp:
    properties:
      backlogTotal:
        type: integer
      componentMonthlyTrend:
        items:
          $ref: '#/definitions/entity.SeriesMonthlyTrend'
        type: array
      monthlyTrend:
        items:
          $ref: '#/definitions/entity.MonthlyTrend'
        type: array
      priorityMonthlyTrends:
        items:
          $ref: '#/definitions/entity.SeriesMonthlyTrend'
        type: array
      topTenants:
        items:
          $ref: '#/definitions/entity.TopTenant'
        type: array
      total:
        type: integer
      ttrInDays:
        type: number
    type: object
  dashboard.CriticalAlertInfoResp:
    properties:
      alertMonthlyTrend:
        items:
          $ref: '#/definitions/entity.SeriesMonthlyTrend'
        type: array
      backlogTotal:
        type: integer
      majorAlertMonthlyTrend:
        items:
          $ref: '#/definitions/entity.SeriesMonthlyTrend'
        type: array
      topTenants:
        items:
          $ref: '#/definitions/entity.TopTenant'
        type: array
      total:
        type: integer
      ttrInDays:
        type: number
    type: object
  dashboard.GetClusterDetailOfDedicatedSLAResp:
    properties:
      clusterID:
        type: string
      clusterName:
        type: string
      deleted:
        type: boolean
      downtimeList:
        items:
          $ref: '#/definitions/entity.ClusterDowntime'
        type: array
      issueKey:
        type: string
      issueStatus:
        type: string
      slaStatus:
        $ref: '#/definitions/entity.SLAStatus'
      slaValue:
        type: number
      tenantID:
        type: string
      tenantName:
        type: string
      tidbInstance:
        type: integer
    type: object
  dashboard.GetClusterDetailOfNextGenSLAResp:
    properties:
      clusterDeployType:
        type: string
      clusterID:
        type: string
      clusterName:
        type: string
      deleted:
        type: boolean
      downtimeList:
        items:
          $ref: '#/definitions/entity.ClusterDowntime'
        type: array
      issueKey:
        type: string
      issueStatus:
        type: string
      slaStatus:
        $ref: '#/definitions/entity.SLAStatus'
      slaValue:
        type: number
      tenantID:
        type: string
      tenantName:
        type: string
    type: object
  dashboard.GetMonthlySummaryOfDedicatedSLAResp:
    properties:
      items:
        items:
          $ref: '#/definitions/entity.DedicatedClusterSLABasic'
        type: array
    type: object
  dashboard.GetMonthlySummaryOfNextGenSLAResp:
    properties:
      items:
        items:
          $ref: '#/definitions/entity.NextGenClusterSLABasic'
        type: array
    type: object
  dashboard.GetTop10QPSTenantsResp:
    properties:
      items:
        items:
          $ref: '#/definitions/entity.TopTenant'
        type: array
    type: object
  dashboard.GetTop10TiFlashStorageTenantsResp:
    properties:
      items:
        items:
          $ref: '#/definitions/entity.TopTenant'
        type: array
    type: object
  dashboard.GetTop10TiKVStorageTenantsResp:
    properties:
      items:
        items:
          $ref: '#/definitions/entity.TopTenant'
        type: array
    type: object
  dashboard.IncidentInfoResp:
    properties:
      mttrInMinutes:
        type: number
      mttrMonthlyTrends:
        items:
          $ref: '#/definitions/entity.MonthlyTrend'
        type: array
      total:
        type: integer
    type: object
  dashboard.ReleaseInfoResp:
    properties:
      hotfixApplicationMonthlyTrends:
        items:
          $ref: '#/definitions/entity.SeriesMonthlyTrend'
        type: array
      hotfixTotal:
        type: integer
      sprintApplicationMonthlyTrends:
        items:
          $ref: '#/definitions/entity.SeriesMonthlyTrend'
        type: array
      sprintTotal:
        type: integer
    type: object
  dashboard.SLAInfoResp:
    properties:
      dedicatedSLA:
        $ref: '#/definitions/entity.SLA'
      nextGenSLA:
        $ref: '#/definitions/entity.SLA'
      serverlessSLA:
        $ref: '#/definitions/entity.SLA'
    type: object
  dashboard.SLOInfoResp:
    properties:
      currentSummary:
        items:
          $ref: '#/definitions/entity.ApplicationSLOSummary'
        type: array
    type: object
  eecli.BumpNgTagOpsReq:
    properties:
      applicant:
        type: string
      change_id:
        type: string
      release_id:
        type: string
    type: object
  eecli.BumpNgTagReqMeta:
    properties:
      ops_req:
        $ref: '#/definitions/eecli.BumpNgTagOpsReq'
    type: object
  eecli.BumpNgTagRequest:
    properties:
      author:
        type: string
      branch:
        type: string
      commit:
        type: string
      meta:
        $ref: '#/definitions/eecli.BumpNgTagReqMeta'
      prLink:
        type: string
      repo:
        type: string
    type: object
  entity.ApplicationSLOSummary:
    properties:
      application:
        type: string
      slos:
        items:
          $ref: '#/definitions/entity.SLO'
        type: array
    type: object
  entity.ApplyStrategy:
    enum:
    - HotReload
    - RollingRestart
    - ChangeCMOnly
    - EnsureUpdateToTC
    type: string
    x-enum-varnames:
    - Hotreload
    - Restart
    - ChangeCMOnly
    - EnsureUpdateToTC
  entity.Approval:
    properties:
      admin_tasks:
        description: AdminTasks is the users who can approve/reject/cancel the approval
          request at any time.
        items:
          $ref: '#/definitions/entity.ApprovalAdminTask'
        type: array
      applicant:
        description: Applicant is the user email who created the approval request.
        type: string
      cc_tasks:
        description: CCTasks defines the users who will be notified when the approval
          request is **Approved**.
        items:
          $ref: '#/definitions/entity.ApprovalCCTask'
        type: array
      configuration:
        allOf:
        - $ref: '#/definitions/entity.ApprovalConfiguration'
        description: Configuration is the approval configuration.
      detail_link:
        description: |-
          DetailLink is the link to the detail page for this request.

          It is used in the notification message.
        type: string
      end_at:
        description: EndAt is the time when the approval request is ended.
        type: integer
      from_template:
        description: FromTemplate is the template id used to create the approval
        type: string
      id:
        type: integer
      levels:
        description: Levels defines the approval workflow.
        items:
          $ref: '#/definitions/entity.ApprovalLevel'
        type: array
      name:
        description: Name is the name of the approval request used to categorize approvals.
        type: string
      overview:
        additionalProperties:
          type: string
        description: Overview is a persisted human-readable summary shown in Lark
          notifications (alias, target name, etc.).
        type: object
      parameters:
        additionalProperties:
          type: string
        description: Parameters is the full operation params used for routing (fromParam/evalCondition).
        type: object
      reason:
        description: Reason is the description of the approval request.
        type: string
      start_at:
        description: StartAt is the time when the approval request is created.
        type: integer
      status:
        allOf:
        - $ref: '#/definitions/entity.ApprovalStatus'
        description: Status is the status of the approval request.
    type: object
  entity.ApprovalAdminTask:
    properties:
      end_at:
        type: integer
      id:
        type: integer
      status:
        $ref: '#/definitions/entity.ApprovalTaskStatus'
      user_email:
        description: email
        type: string
    type: object
  entity.ApprovalCCTask:
    properties:
      id:
        type: integer
      user_email:
        description: email
        type: string
    type: object
  entity.ApprovalConfiguration:
    properties:
      skip_applicant_notification:
        type: boolean
    type: object
  entity.ApprovalLevel:
    properties:
      level:
        description: first is 0, MUST be equal to the index of slice
        type: integer
      nodes:
        items:
          $ref: '#/definitions/entity.ApprovalNode'
        type: array
    type: object
  entity.ApprovalNode:
    properties:
      backup_tasks:
        items:
          $ref: '#/definitions/entity.ApprovalTask'
        type: array
      id:
        description: id in database
        type: integer
      method:
        $ref: '#/definitions/entity.ApproveMethod'
      name:
        description: Default to "Node {Level}-{Index}"
        type: string
      status:
        $ref: '#/definitions/entity.ApprovalNodeStatus'
      tasks:
        items:
          $ref: '#/definitions/entity.ApprovalTask'
        type: array
    type: object
  entity.ApprovalNodeStatus:
    enum:
    - PENDING
    - APPROVED
    - REJECTED
    - CANCELED
    type: string
    x-enum-varnames:
    - ApprovalNodeStatusPending
    - ApprovalNodeStatusApproved
    - ApprovalNodeStatusRejected
    - ApprovalNodeStatusCancelled
  entity.ApprovalStatus:
    enum:
    - PENDING
    - APPROVED
    - REJECTED
    - CANCELED
    type: string
    x-enum-varnames:
    - ApprovalStatusPending
    - ApprovalStatusApproved
    - ApprovalStatusRejected
    - ApprovalStatusCancelled
  entity.ApprovalTask:
    properties:
      end_at:
        type: integer
      id:
        type: integer
      notify_lark_type:
        $ref: '#/definitions/userv1.LarkType'
      notify_message_id:
        type: string
      start_at:
        type: integer
      status:
        $ref: '#/definitions/entity.ApprovalTaskStatus'
      user_email:
        description: email
        type: string
    type: object
  entity.ApprovalTaskStatus:
    enum:
    - PENDING
    - APPROVED
    - REJECTED
    - Done
    type: string
    x-enum-varnames:
    - ApprovalTaskStatusPending
    - ApprovalTaskStatusApproved
    - ApprovalTaskStatusRejected
    - ApprovalTaskStatusDone
  entity.ApproveMethod:
    enum:
    - ALL
    - ANY
    type: string
    x-enum-varnames:
    - ApproveMethodAll
    - ApproveMethodAny
  entity.Approver:
    properties:
      applicant_leader:
        description: The applicant leader is approver
        type: boolean
      email:
        description: Email of approver
        type: string
      emails:
        description: Emails of approvers
        items:
          type: string
        type: array
      from_param:
        allOf:
        - $ref: '#/definitions/entity.ApproverFromParam'
        description: The approver is generated from param
      self_approve:
        description: The applicant can approve the request by himself
        type: boolean
      user_group:
        description: User group of approvers, defined in user service
        type: string
      user_groups:
        description: User groups of approvers, defined in user service
        items:
          type: string
        type: array
    type: object
  entity.ApproverFromParam:
    properties:
      default_approver:
        allOf:
        - $ref: '#/definitions/entity.Approver'
        description: The default approver used when approver not found
      param_name:
        description: The name of param
        type: string
      param_value_mapping:
        additionalProperties:
          $ref: '#/definitions/entity.Approver'
        description: The value of param to approver
        type: object
      use_param_value:
        description: Use the param value as the approver email directly
        type: boolean
    type: object
  entity.ApproverNode:
    properties:
      applicant_leader:
        description: The applicant leader is approver
        type: boolean
      condition:
        description: |-
          Condition is a string expression that evaluates to true or false. If false,
          this node will be skipped.

          Refer to https://github.com/expr-lang/expr
        type: string
      email:
        description: Email of approver
        type: string
      emails:
        description: Emails of approvers
        items:
          type: string
        type: array
      from_param:
        allOf:
        - $ref: '#/definitions/entity.ApproverFromParam'
        description: The approver is generated from param
      method:
        allOf:
        - $ref: '#/definitions/entity.ApproveMethod'
        description: Method is the approval method, contains ANY, ALL.
      name:
        description: Name is the name of this node.
        type: string
      parallel:
        description: |-
          Parallel defines the parallel approver nodes.

          If it is set, the other fields are ignored.

          Only one level of parallel nodes is supported.
        items:
          $ref: '#/definitions/entity.ApproverNode'
        type: array
      self_approve:
        description: The applicant can approve the request by himself
        type: boolean
      skip_when_empty:
        description: Skip this node when the approver is empty
        type: boolean
      user_group:
        description: User group of approvers, defined in user service
        type: string
      user_groups:
        description: User groups of approvers, defined in user service
        items:
          type: string
        type: array
    type: object
  entity.ClusterDowntime:
    properties:
      comment:
        type: string
      fake:
        type: boolean
      timestamp:
        type: string
    type: object
  entity.ConfigAttributes:
    properties:
      apply_policy:
        $ref: '#/definitions/entity.ApplyStrategy'
      id:
        type: integer
      param_name:
        type: string
      version:
        type: integer
    type: object
  entity.DedicatedClusterSLABasic:
    properties:
      clusterID:
        type: string
      clusterName:
        type: string
      deleted:
        type: boolean
      issueKey:
        type: string
      issueStatus:
        type: string
      slaStatus:
        $ref: '#/definitions/entity.SLAStatus'
      slaValue:
        type: number
      tenantID:
        type: string
      tenantName:
        type: string
      tidbInstance:
        type: integer
    type: object
  entity.Incident:
    properties:
      biz_regions:
        type: string
      components:
        type: string
      created_at:
        type: string
      description:
        type: string
      fbowners:
        items:
          $ref: '#/definitions/userv1.User'
        type: array
      feishu_channel_msg:
        type: string
      feishu_url:
        type: string
      id:
        type: integer
      incident_resolve_time:
        type: string
      incident_start_time:
        type: string
      jira_issue_links:
        items:
          $ref: '#/definitions/entity.IncidentJiraIssueLink'
        type: array
      jira_issues:
        type: string
      leaders:
        items:
          $ref: '#/definitions/userv1.User'
        type: array
      log_items:
        items:
          $ref: '#/definitions/entity.IncidentLogItem'
        type: array
      name:
        type: string
      oncallers:
        items:
          $ref: '#/definitions/userv1.User'
        type: array
      postmortem_available:
        type: boolean
      postmortem_todo_action_import_status:
        type: string
      status:
        $ref: '#/definitions/entity.IncidentStatus'
      tier:
        $ref: '#/definitions/entity.IncidentTier'
      war_room_id:
        type: integer
    type: object
  entity.IncidentJiraIssueLink:
    properties:
      key:
        type: string
      url:
        type: string
    type: object
  entity.IncidentLogItem:
    properties:
      created_at:
        description: Will be deprecated next release
        type: string
      description:
        type: string
      event_time:
        type: string
      from:
        type: string
      id:
        type: integer
      incident_id:
        type: integer
      item_type:
        $ref: '#/definitions/entity.LogItemType'
      milestone_type:
        type: string
      postmortem_url:
        type: string
      status:
        type: string
    type: object
  entity.IncidentPostMortem:
    properties:
      action_items:
        items:
          $ref: '#/definitions/entity.IncidentPostMortemToDoAction'
        type: array
      background:
        type: string
      bug_mechanism:
        type: string
      created_at:
        type: string
      customer_impact_minutes:
        type: integer
      id:
        type: integer
      impact:
        type: string
      incident_end_time:
        type: string
      incident_id:
        type: integer
      incident_start_time:
        type: string
      involved_engineers:
        items:
          $ref: '#/definitions/userv1.User'
        type: array
      involved_tenants:
        type: string
      minutes_to_detect:
        type: integer
      minutes_to_resolved:
        type: integer
      resolution:
        type: string
      reviewed_at:
        type: string
      root_causes:
        type: string
      summary:
        type: string
      technical_impact_level:
        type: string
      timeline:
        items:
          $ref: '#/definitions/entity.IncidentPostMortemTimelineItem'
        type: array
      top_issues:
        type: string
      what_did_not_work:
        type: string
      what_worked:
        type: string
      where_we_were_lucky:
        type: string
    type: object
  entity.IncidentPostMortemTimelineItem:
    properties:
      description:
        type: string
      happened_at:
        type: string
      id:
        type: integer
      item_type:
        type: string
      postmortem_id:
        type: integer
    type: object
  entity.IncidentPostMortemToDoAction:
    properties:
      deadline:
        type: string
      description:
        type: string
      feishu_task_id:
        type: string
      id:
        type: integer
      incident_id:
        type: integer
      linked_jira_issue:
        type: string
      persons:
        items:
          $ref: '#/definitions/userv1.User'
        type: array
      postmortem_id:
        type: integer
      priority:
        type: string
      status:
        description: Open or InProgress or Done
        type: string
      tcocp_created_at:
        type: string
      title:
        type: string
      type:
        type: string
    type: object
  entity.IncidentStatus:
    enum:
    - running
    - completed
    type: string
    x-enum-varnames:
    - IncidentStatusRunning
    - IncidentStatusFinished
  entity.IncidentTier:
    enum:
    - t0
    - t1
    - t2
    - t3
    - t4
    type: string
    x-enum-varnames:
    - IncidentTierT0
    - IncidentTierT1
    - IncidentTierT2
    - IncidentTierT3
    - IncidentTierT4
  entity.Instance:
    properties:
      host:
        type: string
      port:
        type: integer
    type: object
  entity.LarkChatSimplified:
    properties:
      avatar_url:
        type: string
      id:
        type: integer
      is_external:
        type: boolean
      name:
        type: string
    required:
    - id
    type: object
  entity.LogItemType:
    enum:
    - text
    - postmortem
    - general
    - milestone
    type: string
    x-enum-varnames:
    - LogItemTypeText
    - LogItemTypePostMortem
    - LogItemTypeGeneral
    - LogItemTypeMilestone
  entity.MonthlyTrend:
    properties:
      month:
        type: string
      value:
        type: number
    type: object
  entity.NextGenClusterSLABasic:
    properties:
      clusterDeployType:
        type: string
      clusterID:
        type: string
      clusterName:
        type: string
      deleted:
        type: boolean
      issueKey:
        type: string
      issueStatus:
        type: string
      slaStatus:
        $ref: '#/definitions/entity.SLAStatus'
      slaValue:
        type: number
      tenantID:
        type: string
      tenantName:
        type: string
    type: object
  entity.RemediationApprovalFlow:
    properties:
      current_phase:
        $ref: '#/definitions/entity.RemediationTicketPhase'
      current_status:
        $ref: '#/definitions/entity.RemediationTicketStatus'
      nodes:
        items:
          $ref: '#/definitions/entity.RemediationApprovalFlowNode'
        type: array
      ticket_id:
        type: integer
    type: object
  entity.RemediationApprovalFlowApprover:
    properties:
      email:
        type: string
      id:
        type: string
      name:
        type: string
      source:
        type: string
      type:
        type: string
    type: object
  entity.RemediationApprovalFlowNode:
    properties:
      action:
        $ref: '#/definitions/entity.RemediationApprovalFlowNodeAction'
      approval_id:
        type: integer
      approvers:
        items:
          $ref: '#/definitions/entity.RemediationApprovalFlowApprover'
        type: array
      auto_advance:
        type: boolean
      conditional:
        type: boolean
      current:
        type: boolean
      label:
        type: string
      message:
        type: string
      operated_at:
        type: string
      operator:
        type: string
      phase:
        $ref: '#/definitions/entity.RemediationTicketPhase'
      requires_input:
        type: boolean
      status:
        $ref: '#/definitions/entity.RemediationApprovalFlowNodeStatus'
    type: object
  entity.RemediationApprovalFlowNodeAction:
    enum:
    - none
    - approve
    - approve_with_input
    - submit_input
    - wait
    type: string
    x-enum-varnames:
    - RemediationApprovalFlowNodeActionNone
    - RemediationApprovalFlowNodeActionApprove
    - RemediationApprovalFlowNodeActionApproveWithInput
    - RemediationApprovalFlowNodeActionSubmitInput
    - RemediationApprovalFlowNodeActionWait
  entity.RemediationApprovalFlowNodeStatus:
    enum:
    - pending
    - approving
    - approved
    - rejected
    - unreached
    - skipped
    type: string
    x-enum-varnames:
    - RemediationApprovalFlowNodeStatusPending
    - RemediationApprovalFlowNodeStatusApproving
    - RemediationApprovalFlowNodeStatusApproved
    - RemediationApprovalFlowNodeStatusRejected
    - RemediationApprovalFlowNodeStatusUnreached
    - RemediationApprovalFlowNodeStatusSkipped
  entity.RemediationTicket:
    properties:
      accident_report_link:
        type: string
      accumulated_down_minutes:
        type: integer
      applicant_email:
        type: string
      appr_id:
        description: // 0 stands for no associated approval
        type: integer
      associated_incident_id:
        type: integer
      biz_region:
        allOf:
        - $ref: '#/definitions/tenant.TenantRegion'
        description: Create params
      calculated_compensation:
        type: number
      closed_at:
        type: integer
      cluster:
        type: string
      cluster_billing:
        description: Global Deal Desk Fields
        type: string
      cluster_id:
        type: integer
      cluster_type:
        $ref: '#/definitions/entity.RemediationTicketClusterType'
      created_at:
        type: integer
      current_responsible_person_email:
        type: string
      customer:
        type: string
      expire_at:
        type: integer
      extra_percent:
        type: string
      generated_doc_url:
        type: string
      id:
        type: integer
      info_from_creator:
        type: string
      month:
        description: Should be in the format like `2006/1`
        type: string
      monthly_uptime_percentage:
        type: string
      overflow_percentage:
        type: number
      phase:
        $ref: '#/definitions/entity.RemediationTicketPhase'
      predefined_percent:
        type: string
      reason:
        allOf:
        - $ref: '#/definitions/entity.RemediationTicketReason'
        description: Deprecated Fields, will be removed
      report_link:
        type: string
      root_cause_from_gs:
        description: Region TSE Fields
        type: string
      root_cause_from_rdg:
        description: RDG SLA Owner Fields
        type: string
      status:
        $ref: '#/definitions/entity.RemediationTicketStatus'
      tenant:
        description: 'HACK: as js doesn''t natively support uint64, we use string-typed
          cluster and tenant fields for frontend display'
        type: string
      tenant_id:
        type: integer
      total_compensation:
        type: string
      version:
        type: integer
    required:
    - applicant_email
    - id
    type: object
  entity.RemediationTicketClusterType:
    enum:
    - dedicated_multi_tidb
    - dedicated_single_tidb
    - serverless
    type: string
    x-enum-varnames:
    - RemediationTicketClusterTypeDedicatedMultiTiDB
    - RemediationTicketClusterTypeDedicatedSingleTiDB
    - RemediationTicketClusterTypeServerless
  entity.RemediationTicketPhase:
    enum:
    - created
    - region_tse_leader
    - rdg_sla_owner
    - rdg_final_decision_maker
    - global_deal_desk
    - regional_gm
    - commercial_operation
    - succeed
    - closed
    type: string
    x-enum-varnames:
    - RemediationTicketPhaseCreated
    - RemediationTicketPhaseRegionTSELeader
    - RemediationTicketPhaseRDGSLAOwner
    - RemediationTicketPhaseRDGFinalDecisionMaker
    - RemediationTicketPhaseGlobalDealDesk
    - RemediationTicketPhaseRegionalGM
    - RemediationTicketPhaseCommercialOperation
    - RemediationTicketPhaseSucceed
    - RemediationTicketPhaseClosed
  entity.RemediationTicketPhaseApproval:
    properties:
      approval_id:
        type: integer
      created_at:
        type: string
      from_phase:
        $ref: '#/definitions/entity.RemediationTicketPhase'
      id:
        type: integer
      message:
        type: string
      ticket_id:
        type: integer
      to_phase:
        $ref: '#/definitions/entity.RemediationTicketPhase'
    required:
    - approval_id
    - created_at
    - from_phase
    - id
    - ticket_id
    - to_phase
    type: object
  entity.RemediationTicketPhaseInfo:
    properties:
      message:
        type: string
      operator_email:
        type: string
      phase:
        $ref: '#/definitions/entity.RemediationTicketPhase'
      status:
        $ref: '#/definitions/entity.RemediationTicketPhaseStatus'
      time:
        type: string
    required:
    - phase
    - status
    type: object
  entity.RemediationTicketPhaseStatus:
    enum:
    - approved
    - rejected
    - unreached
    type: string
    x-enum-varnames:
    - RemediationTicketPhaseStatusApproved
    - RemediationTicketPhaseStatusRejected
    - RemediationTicketPhaseStatusUnreached
  entity.RemediationTicketReason:
    enum:
    - misuse
    - unauthorized_modify
    - 3party_hardware
    - 3party_software
    - tidb_cloud
    type: string
    x-enum-varnames:
    - RemediationTicketReasonMisuse
    - RemediationTicketReasonUnauthorizedModify
    - RemediationTicketReason3PartyHardware
    - RemediationTicketReason3PartySoftware
    - RemediationTicketReasonTiDBCloud
  entity.RemediationTicketStatus:
    enum:
    - pending
    - approving
    - approved
    - rejected
    - closed
    type: string
    x-enum-comments:
      RemediationTicketStatusClosed: used only in RemediationTicketPhaseClosed and
        RemediationTicketPhaseCanceled
    x-enum-varnames:
    - RemediationTicketStatusPending
    - RemediationTicketStatusApproving
    - RemediationTicketStatusApproved
    - RemediationTicketStatusRejected
    - RemediationTicketStatusClosed
  entity.SLA:
    properties:
      current:
        type: number
      monthlyTrends:
        items:
          $ref: '#/definitions/entity.SeriesMonthlyTrend'
        type: array
    type: object
  entity.SLAStatus:
    enum:
    - perfect
    - warning
    - breach
    type: string
    x-enum-varnames:
    - SLAStatusPerfect
    - SLAStatusWarning
    - SLAStatusBreach
  entity.SLO:
    properties:
      met:
        type: boolean
      name:
        type: string
      reason:
        type: string
    type: object
  entity.SeriesMonthlyTrend:
    properties:
      month:
        type: string
      series:
        type: string
      value:
        type: integer
    type: object
  entity.Template:
    properties:
      admin_tasks:
        allOf:
        - $ref: '#/definitions/entity.Approver'
        description: AdminTasks is the users who can approve/reject/cancel the approval
          request at any time.
      cc_tasks:
        allOf:
        - $ref: '#/definitions/entity.Approver'
        description: CCTasks defines the users who will be notified when the approval
          request is **Approved**.
      id:
        description: ID is the template identifier
        type: string
      nodes:
        description: |-
          Nodes is the approval nodes.

          If it is empty, the approval will be approved after created.
        items:
          $ref: '#/definitions/entity.ApproverNode'
        type: array
    type: object
  entity.TiDBInstanceMode:
    enum:
    - single
    - multi
    type: string
    x-enum-varnames:
    - TiDBInstanceSingle
    - TiDBInstanceMulti
  entity.TopTenant:
    properties:
      alias:
        type: string
      id:
        example: "0"
        type: string
      name:
        type: string
      region:
        $ref: '#/definitions/tenant.TenantRegion'
      value:
        type: integer
    type: object
  entity.Topology:
    properties:
      cluster_name:
        type: string
      pd:
        items:
          $ref: '#/definitions/entity.Instance'
        type: array
      tikv:
        items:
          $ref: '#/definitions/entity.Instance'
        type: array
    type: object
  feature_wl.FeatureWhitelistInfo:
    properties:
      created_at:
        type: string
      description:
        type: string
      email_suffixes:
        items:
          type: string
        type: array
      min_org_id:
        type: string
      name:
        type: string
      org_ids:
        items:
          type: string
        type: array
      owner:
        type: string
      updated_at:
        type: string
    type: object
  feature_wl.ListFeatureWhitelistsResp:
    properties:
      items:
        items:
          $ref: '#/definitions/feature_wl.FeatureWhitelistInfo'
        type: array
      page:
        type: integer
      total:
        type: integer
      total_pages:
        type: integer
    type: object
  github.CursorPagerResp:
    properties:
      end_cursor:
        type: string
      has_next_page:
        type: boolean
    type: object
  github.GetPullRequestResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      pull_request:
        $ref: '#/definitions/github.PullRequest'
      trace_id:
        type: string
    type: object
  github.GetRepositoryResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      repository:
        $ref: '#/definitions/github.Repository'
      trace_id:
        type: string
    type: object
  github.Label:
    properties:
      created_at:
        type: integer
      description:
        type: string
      name:
        type: string
      updated_at:
        type: integer
    type: object
  github.ListPullRequestsResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/github.PullRequest'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  github.ListRepositoriesResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      repositories:
        items:
          $ref: '#/definitions/github.Repository'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  github.PullRequest:
    properties:
      author:
        type: string
      created_at:
        type: integer
      id:
        type: integer
      location:
        type: string
      number:
        type: integer
      owner:
        type: string
      repo:
        type: string
      state:
        type: string
      title:
        type: string
      updated_at:
        type: integer
    type: object
  github.RawDiffReleaseResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      pull_requests:
        items:
          $ref: '#/definitions/github.PullRequest'
        type: array
      trace_id:
        type: string
    type: object
  github.RawGetLabelResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      label:
        $ref: '#/definitions/github.Label'
      trace_id:
        type: string
    type: object
  github.RawGetPullRequestResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      pull_request:
        $ref: '#/definitions/github.PullRequest'
      trace_id:
        type: string
    type: object
  github.RawGetReleaseResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      release:
        $ref: '#/definitions/github.Release'
      trace_id:
        type: string
    type: object
  github.RawListLabelsResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      labels:
        items:
          $ref: '#/definitions/github.Label'
        type: array
      page:
        $ref: '#/definitions/github.CursorPagerResp'
      trace_id:
        type: string
    type: object
  github.RawListPullRequestsResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      page:
        $ref: '#/definitions/github.CursorPagerResp'
      pull_requests:
        items:
          $ref: '#/definitions/github.PullRequest'
        type: array
      trace_id:
        type: string
    type: object
  github.RawListReleasesResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      page:
        $ref: '#/definitions/github.CursorPagerResp'
      releases:
        items:
          $ref: '#/definitions/github.Release'
        type: array
      trace_id:
        type: string
    type: object
  github.Release:
    properties:
      created_at:
        type: integer
      is_latest:
        type: boolean
      is_prerelease:
        type: boolean
      name:
        type: string
      published_at:
        type: integer
      tag_name:
        type: string
    type: object
  github.Repository:
    properties:
      id:
        type: integer
      location:
        type: string
      name:
        type: string
      owner:
        type: string
      pushed_at:
        type: integer
      update_at:
        type: integer
    type: object
  github_com_tidbcloud_devops_api_kernelimage.Release:
    properties:
      artifact_uid:
        type: string
      availability:
        items:
          $ref: '#/definitions/kernelimage.PlatformAvailability'
        type: array
      availability_check_started_at:
        type: string
      availability_check_uid:
        type: string
      availability_checked_at:
        type: string
      availability_last_error:
        type: string
      availability_status:
        $ref: '#/definitions/kernelimage.AvailabilityStatus'
      available_at:
        type: string
      branch:
        type: string
      build_finished_at:
        type: string
      commit_sha:
        type: string
      created_at:
        type: string
      delivery_batch_uid:
        type: string
      delivery_operation_instance_id:
        type: integer
      delivery_target_images:
        items:
          type: string
        type: array
      formal_delivery_uid:
        type: string
      git_tag:
        type: string
      id:
        type: integer
      last_error_code:
        type: string
      last_error_message:
        type: string
      local_devops_environment:
        type: string
      mask_reason:
        type: string
      masked:
        type: boolean
      repo:
        type: string
      source_applicant:
        type: string
      source_change_id:
        type: string
      source_digest:
        type: string
      source_release_id:
        type: string
      source_repository:
        type: string
      source_tag:
        type: string
      status:
        $ref: '#/definitions/kernelimage.ReleaseStatus'
      updated_at:
        type: string
      version:
        type: string
    type: object
  github_com_tidbcloud_devops_api_kernelimage.SelectionItem:
    properties:
      exclusion_reason:
        $ref: '#/definitions/kernelimage.ExclusionReason'
      is_default:
        type: boolean
      release:
        $ref: '#/definitions/github_com_tidbcloud_devops_api_kernelimage.Release'
      selection_state:
        $ref: '#/definitions/kernelimage.SelectionState'
    type: object
  github_com_tidbcloud_devops_api_kernelimage.SelectionPolicy:
    properties:
      image_tag_count:
        type: integer
      local_devops_environment:
        type: string
      version_count:
        type: integer
    type: object
  github_com_tidbcloud_devops_api_kernelimage.SelectionVersion:
    properties:
      images:
        items:
          $ref: '#/definitions/github_com_tidbcloud_devops_api_kernelimage.SelectionItem'
        type: array
      version:
        type: string
    type: object
  github_com_tidbcloud_devops_api_operation.Advisory:
    properties:
      level:
        type: string
      message:
        type: string
    type: object
  incident.CreateIncidentPostMortemReq:
    properties:
      background:
        type: string
      bug_mechanism:
        type: string
      created_at:
        type: string
      customer_impact_minutes:
        type: integer
      id:
        type: integer
      impact:
        type: string
      incident_end_time:
        type: string
      incident_id:
        type: integer
      incident_start_time:
        type: string
      involved_engineers:
        items:
          $ref: '#/definitions/userv1.User'
        type: array
      involved_tenants:
        type: string
      minutes_to_detect:
        type: integer
      minutes_to_resolved:
        type: integer
      resolution:
        type: string
      reviewed_at:
        type: string
      root_causes:
        type: string
      summary:
        type: string
      technical_impact_level:
        type: string
      top_issues:
        type: string
      what_did_not_work:
        type: string
      what_worked:
        type: string
      where_we_were_lucky:
        type: string
    type: object
  incident.CreateIncidentPostMortemResp:
    properties:
      id:
        type: integer
    type: object
  incident.CreateIncidentPostMortemTimelineReq:
    properties:
      description:
        type: string
      happened_at:
        type: string
      id:
        type: integer
      item_type:
        type: string
      postmortem_id:
        type: integer
    type: object
  incident.CreateIncidentPostMortemTimelineResp:
    properties:
      id:
        type: integer
    type: object
  incident.CreateIncidentPostMortemToDoActionReq:
    properties:
      create_feishu_task:
        type: boolean
      deadline:
        type: string
      description:
        type: string
      id:
        type: integer
      linked_jira_issue:
        type: string
      persons:
        items:
          type: string
        type: array
      postmortem_id:
        type: integer
      priority:
        type: string
      status:
        description: Open or InProgress or Done
        type: string
      title:
        type: string
      type:
        type: string
    type: object
  incident.CreateIncidentPostMortemToDoActionResp:
    properties:
      id:
        type: integer
    type: object
  incident.CreateIncidentReq:
    properties:
      biz_regions:
        type: string
      components:
        type: string
      description:
        type: string
      fbowners:
        items:
          type: string
        type: array
      feishu_url:
        type: string
      incident_resolve_time:
        type: string
      incident_start_time:
        type: string
      jira_issue_links:
        items:
          $ref: '#/definitions/entity.IncidentJiraIssueLink'
        type: array
      jira_issues:
        type: string
      leaders:
        items:
          type: string
        type: array
      name:
        type: string
      need_generate_feishu:
        type: boolean
      oncallers:
        items:
          type: string
        type: array
      status:
        type: string
      tier:
        type: string
      war_room_id:
        type: integer
    type: object
  incident.CreateIncidentResp:
    properties:
      incident_id:
        type: integer
    type: object
  incident.DeleteIncidentLogItemResp:
    properties:
      deleted_incident_logitem_id:
        type: integer
    type: object
  incident.DeleteIncidentPostMortemResp:
    type: object
  incident.DeleteIncidentPostMortemTimelineResp:
    type: object
  incident.DeleteIncidentPostMortemToDoActionResp:
    type: object
  incident.DeleteIncidentResp:
    properties:
      deleted_incident_id:
        type: integer
    type: object
  incident.GetIncidentComponentOptionsResp:
    properties:
      components:
        items:
          type: string
        type: array
      definitions:
        items:
          $ref: '#/definitions/incident.IncidentComponentDefinition'
        type: array
    required:
    - components
    type: object
  incident.GetIncidentPostMortemResp:
    properties:
      incident_post_mortem:
        $ref: '#/definitions/entity.IncidentPostMortem'
    type: object
  incident.GetIncidentPostMortemTimelineResp:
    properties:
      incident_postmortem_timeline:
        $ref: '#/definitions/entity.IncidentPostMortemTimelineItem'
    type: object
  incident.GetIncidentPostMortemToDoActionResp:
    properties:
      incident_postmortem_todoaction:
        $ref: '#/definitions/entity.IncidentPostMortemToDoAction'
    type: object
  incident.ImportIncidentPostMortemToDoActionsResp:
    properties:
      postmortem_todo_action_import_started:
        type: boolean
      postmortem_todo_action_import_status:
        type: string
    type: object
  incident.IncidentComponentDefinition:
    properties:
      enabled:
        type: boolean
      key:
        type: string
      name:
        type: string
      order:
        type: integer
      rule_doc_url:
        type: string
      t1_rule_summary:
        type: string
      t2_rule_summary:
        type: string
      t3_rule_summary:
        type: string
    type: object
  incident.ListIncidentLogsResp:
    properties:
      incident_id:
        type: integer
      items:
        items:
          $ref: '#/definitions/entity.IncidentLogItem'
        type: array
    type: object
  incident.ListIncidentPostMortemItemsResp:
    properties:
      incident_id:
        type: integer
      items:
        items:
          $ref: '#/definitions/entity.IncidentPostMortem'
        type: array
    type: object
  incident.ListIncidentPostMortemTimelinesResp:
    properties:
      items:
        items:
          $ref: '#/definitions/entity.IncidentPostMortemTimelineItem'
        type: array
      postmortem_id:
        type: integer
    type: object
  incident.ListIncidentPostMortemToDoActionsResp:
    properties:
      incident_id:
        type: integer
      items:
        items:
          $ref: '#/definitions/entity.IncidentPostMortemToDoAction'
        type: array
    type: object
  incident.ListIncidentsResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/entity.Incident'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  incident.UpdateIncidentPostMortemReq:
    properties:
      background:
        type: string
      bug_mechanism:
        type: string
      created_at:
        type: string
      customer_impact_minutes:
        type: integer
      id:
        type: integer
      impact:
        type: string
      incident_end_time:
        type: string
      incident_id:
        type: integer
      incident_start_time:
        type: string
      involved_engineers:
        items:
          $ref: '#/definitions/userv1.User'
        type: array
      involved_tenants:
        type: string
      minutes_to_detect:
        type: integer
      minutes_to_resolved:
        type: integer
      resolution:
        type: string
      reviewed_at:
        type: string
      root_causes:
        type: string
      summary:
        type: string
      technical_impact_level:
        type: string
      top_issues:
        type: string
      what_did_not_work:
        type: string
      what_worked:
        type: string
      where_we_were_lucky:
        type: string
    type: object
  incident.UpdateIncidentPostMortemResp:
    type: object
  incident.UpdateIncidentPostMortemTimelineReq:
    properties:
      description:
        type: string
      happened_at:
        type: string
      id:
        type: integer
      item_type:
        type: string
      postmortem_id:
        type: integer
    type: object
  incident.UpdateIncidentPostMortemTimelineResp:
    type: object
  incident.UpdateIncidentPostMortemToDoActionReq:
    properties:
      deadline:
        type: string
      description:
        type: string
      id:
        type: integer
      linked_jira_issue:
        type: string
      persons:
        items:
          type: string
        type: array
      priority:
        type: string
      status:
        description: Open or InProgress or Done
        type: string
      title:
        type: string
      type:
        type: string
    type: object
  incident.UpdateIncidentPostMortemToDoActionResp:
    type: object
  incident.UpdateIncidentReq:
    properties:
      biz_regions:
        type: string
      components:
        type: string
      description:
        type: string
      extract_postmortem_todo_actions:
        type: boolean
      fbowners:
        items:
          type: string
        type: array
      feishu_url:
        type: string
      incident_resolve_time:
        type: string
      incident_start_time:
        type: string
      jira_issue_links:
        items:
          $ref: '#/definitions/entity.IncidentJiraIssueLink'
        type: array
      jira_issues:
        type: string
      leaders:
        items:
          type: string
        type: array
      name:
        type: string
      oncallers:
        items:
          type: string
        type: array
      status:
        type: string
      tier:
        type: string
      war_room_id:
        type: integer
    type: object
  incident.UpdateIncidentResp:
    properties:
      postmortem_todo_action_import_started:
        type: boolean
      postmortem_todo_action_import_status:
        type: string
    type: object
  itoken.JWK:
    properties:
      alg:
        type: string
      e:
        type: string
      kid:
        type: string
      kty:
        type: string
      "n":
        type: string
      use:
        type: string
    type: object
  itoken.JWKSet:
    properties:
      keys:
        items:
          $ref: '#/definitions/itoken.JWK'
        type: array
    type: object
  jira.Alert:
    properties:
      created_at:
        type: integer
      key:
        type: string
      name:
        type: string
      priority:
        type: string
      recovered:
        type: boolean
      updated_at:
        type: integer
    type: object
  jira.Comment:
    properties:
      author:
        $ref: '#/definitions/jira.User'
      content:
        type: string
      created_at:
        type: integer
      id:
        type: string
      updated_at:
        type: integer
    type: object
  jira.CreateIssueTriageTagDefinitionRequest:
    properties:
      tag:
        $ref: '#/definitions/jira.IssueTriageTagDefinition'
    required:
    - tag
    type: object
  jira.CreateIssueTriageTagDefinitionResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      tag:
        $ref: '#/definitions/jira.IssueTriageTagDefinition'
      trace_id:
        type: string
    type: object
  jira.DeleteIssueTriageTagDefinitionRequest:
    properties:
      name:
        type: string
      type:
        $ref: '#/definitions/jira.IssueTriageTagType'
    required:
    - name
    - type
    type: object
  jira.GetIssueFromJiraResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      issue:
        $ref: '#/definitions/jira.IssueInJira'
      trace_id:
        type: string
    type: object
  jira.GetUnifiedIssueResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      issue:
        $ref: '#/definitions/jira.UnifiedIssue'
      trace_id:
        type: string
    type: object
  jira.IssueCustomerEnvironment:
    enum:
    - cloud
    - on_premise
    type: string
    x-enum-varnames:
    - IssueCustomerEnvironmentCloud
    - IssueCustomerEnvironmentOnPremise
  jira.IssueCustomerInfo:
    properties:
      cluster_id:
        type: string
      environment:
        $ref: '#/definitions/jira.IssueCustomerEnvironment'
      issue_key:
        type: string
      tenant_id:
        type: string
    type: object
  jira.IssueInJira:
    properties:
      assignee:
        $ref: '#/definitions/jira.User'
      comments:
        items:
          $ref: '#/definitions/jira.Comment'
        type: array
      components:
        items:
          type: string
        type: array
      created_at:
        type: integer
      customer_info:
        $ref: '#/definitions/jira.IssueCustomerInfo'
      description:
        type: string
      eta:
        type: integer
      id:
        description: raw ID in jira
        type: string
      issue_links:
        items:
          $ref: '#/definitions/jira.IssueLink'
        type: array
      key:
        type: string
      priority:
        type: string
      project:
        $ref: '#/definitions/jira.Project'
      reporter:
        $ref: '#/definitions/jira.User'
      resolved_at:
        type: integer
      status:
        type: string
      summary:
        type: string
      updated_at:
        type: integer
    type: object
  jira.IssueInRepo:
    properties:
      created_at:
        description: same as IssueSnapshot.CreatedAt
        type: integer
      have_timeline_summary:
        type: boolean
      have_triage:
        type: boolean
      key:
        type: string
      snapshot:
        $ref: '#/definitions/jira.IssueSnapshot'
      stored_at:
        type: integer
    type: object
  jira.IssueLink:
    properties:
      inward_issue:
        type: string
      outward_issue:
        type: string
      type_name:
        type: string
    type: object
  jira.IssueSnapshot:
    properties:
      assignee_email:
        type: string
      components:
        items:
          type: string
        type: array
      created_at:
        type: integer
      customer_info:
        $ref: '#/definitions/jira.IssueCustomerInfo'
      id:
        description: raw ID in jira
        type: string
      key:
        type: string
      priority:
        type: string
      project_key:
        type: string
      reporter_email:
        type: string
      resolved_at:
        type: integer
      status:
        type: string
      summary:
        type: string
    type: object
  jira.IssueTimelineSummary:
    properties:
      timelines:
        items:
          $ref: '#/definitions/jira.IssueTimelineSummaryItem'
        type: array
    type: object
  jira.IssueTimelineSummaryItem:
    properties:
      begin_time:
        description: 'TODO: change to int64'
        type: integer
      description:
        type: string
    type: object
  jira.IssueTriage:
    properties:
      brief_summary:
        type: string
      created_at:
        description: 'TODO: change to int64'
        type: integer
      key:
        type: string
      tags:
        $ref: '#/definitions/jira.IssueTriageTags'
      updated_at:
        type: integer
    type: object
  jira.IssueTriageTagDefinition:
    properties:
      created_at:
        type: integer
      description:
        type: string
      labels:
        additionalProperties:
          type: string
        type: object
      name:
        type: string
      type:
        $ref: '#/definitions/jira.IssueTriageTagType'
    type: object
  jira.IssueTriageTagType:
    enum:
    - scene
    - root_cause
    - preventability
    - solution
    type: string
    x-enum-varnames:
    - IssueTriageTagTypeScence
    - IssueTriageTagTypeRootCause
    - IssueTriageTagTypePreventability
    - IssueTriageTagTypeSolution
  jira.IssueTriageTags:
    properties:
      preventability:
        type: string
      root_cause:
        type: string
      scene:
        type: string
      solution:
        type: string
    type: object
  jira.ListIssueTriageTagDefinitionsRequest:
    properties:
      '-':
        additionalProperties:
          type: string
        type: object
      labels_contain_json:
        type: string
      names_in:
        items:
          type: string
        type: array
      types_in:
        items:
          $ref: '#/definitions/jira.IssueTriageTagType'
        type: array
    type: object
  jira.ListIssueTriageTagDefinitionsResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      tags:
        items:
          $ref: '#/definitions/jira.IssueTriageTagDefinition'
        type: array
      trace_id:
        type: string
    type: object
  jira.ListIssuesFromJiraResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      is_last:
        type: boolean
      issues:
        items:
          $ref: '#/definitions/jira.IssueInJira'
        type: array
      next_page_token:
        type: string
      trace_id:
        type: string
    type: object
  jira.ListUnifiedIssuesRequest:
    properties:
      cluster_id_in:
        items:
          type: string
        type: array
      component_in:
        items:
          type: string
        type: array
      created_after:
        type: integer
      created_before:
        type: integer
      customer_env_is:
        type: string
      have_timeline_summary:
        type: boolean
      have_triage:
        type: boolean
      issue_key_in:
        items:
          type: string
        type: array
      page:
        type: integer
      per_page:
        type: integer
      project_in:
        items:
          type: string
        type: array
      status_in:
        items:
          type: string
        type: array
      tenant_id_in:
        items:
          type: string
        type: array
      with_jira:
        type: boolean
      with_jira_comments:
        type: boolean
      with_timeline_summary:
        type: boolean
      with_triage:
        type: boolean
    type: object
  jira.ListUnifiedIssuesResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/jira.UnifiedIssue'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  jira.Project:
    properties:
      key:
        type: string
      name:
        type: string
    type: object
  jira.SeriesTrend:
    properties:
      name:
        type: string
      series:
        type: string
      value:
        type: integer
    type: object
  jira.SetIssueTimelineSummaryRequest:
    properties:
      key:
        type: string
      summary:
        $ref: '#/definitions/jira.IssueTimelineSummary'
    required:
    - key
    - summary
    type: object
  jira.SyncIssueSnapshotByJQLRequest:
    properties:
      fail_fast:
        type: boolean
      jql:
        type: string
      max_count:
        type: integer
      per_page:
        type: integer
    required:
    - jql
    type: object
  jira.SyncIssueSnapshotByJQLResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      failure_issues:
        items:
          type: string
        type: array
      success_issues:
        items:
          type: string
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  jira.SyncIssueSnapshotByKeyRequest:
    properties:
      key:
        type: string
    required:
    - key
    type: object
  jira.SyncIssueSnapshotByKeyResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      issue:
        $ref: '#/definitions/jira.IssueInRepo'
      trace_id:
        type: string
    type: object
  jira.UnifiedIssue:
    properties:
      issue_in_jira:
        $ref: '#/definitions/jira.IssueInJira'
      issue_in_repo:
        $ref: '#/definitions/jira.IssueInRepo'
      issue_timeline_summary:
        $ref: '#/definitions/jira.IssueTimelineSummary'
      issue_triage:
        $ref: '#/definitions/jira.IssueTriage'
      key:
        type: string
    type: object
  jira.UpsertIssueTriageRequest:
    properties:
      triage:
        $ref: '#/definitions/jira.IssueTriage'
    required:
    - triage
    type: object
  jira.User:
    properties:
      display_name:
        type: string
      email:
        type: string
    type: object
  jump.Authorization:
    properties:
      applicant:
        description: email
        type: string
      approval_id:
        type: integer
      closed_at:
        type: integer
      created_at:
        type: integer
      enable_gateway_access:
        type: boolean
      expiration:
        $ref: '#/definitions/jump.JumpExpiration'
      expire_at:
        type: integer
      id:
        type: integer
      jumps:
        items:
          $ref: '#/definitions/jump.Jump'
        type: array
      phase:
        allOf:
        - $ref: '#/definitions/jump.AuthorizationPhase'
        description: status
      privilege:
        $ref: '#/definitions/jump.JumpPrivilege'
      reason:
        type: string
    type: object
  jump.AuthorizationPhase:
    enum:
    - initialized
    - approving
    - creating
    - created
    - expired
    - notapproved
    - canceled
    type: string
    x-enum-varnames:
    - AuthorizationPhaseInitialized
    - AuthorizationPhaseApproving
    - AuthorizationPhaseCreating
    - AuthorizationPhaseCreated
    - AuthorizationPhaseExpired
    - AuthorizationPhaseNotApproved
    - AuthorizationPhaseCanceled
  jump.CancelAuthorizationReq:
    properties:
      force:
        type: boolean
      timeout:
        type: integer
    type: object
  jump.Connection:
    properties:
      gateway:
        $ref: '#/definitions/jump.ConnectionGateway'
      ssh:
        $ref: '#/definitions/jump.ConnectionSSH'
      web_terminal:
        $ref: '#/definitions/jump.ConnectionWebTerminal'
    type: object
  jump.ConnectionGateway:
    properties:
      connection_token:
        type: string
      kubeconfig:
        type: string
      server_urls:
        additionalProperties:
          type: string
        type: object
    type: object
  jump.ConnectionMethod:
    enum:
    - web_terminal
    - ssh
    - gateway
    type: string
    x-enum-varnames:
    - ConnectionMethodWebTerminal
    - ConnectionMethodSSH
    - ConnectionMethodGateway
  jump.ConnectionSSH:
    properties:
      address:
        type: string
      base_asset_name:
        type: string
      jumppod_name:
        type: string
      jumppod_namespace:
        type: string
    type: object
  jump.ConnectionWebTerminal:
    properties:
      url:
        type: string
    type: object
  jump.CreateAuthorizationReq:
    properties:
      destination_type:
        $ref: '#/definitions/jump.DestinationType'
      destinations:
        items:
          type: string
        type: array
      enable_gateway_access:
        type: boolean
      expiration:
        $ref: '#/definitions/jump.JumpExpiration'
      extra:
        additionalProperties:
          type: string
        type: object
      privilege:
        $ref: '#/definitions/jump.JumpPrivilege'
      reason:
        type: string
    type: object
  jump.CreateAuthorizationResp:
    properties:
      authorization_id:
        type: integer
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
    type: object
  jump.DestinationByocCluster:
    properties:
      bastion_name:
        type: string
    type: object
  jump.DestinationControlPlane:
    properties:
      name:
        type: string
    type: object
  jump.DestinationDedicatedCluster:
    properties:
      cluster_id:
        example: "0"
        type: string
    type: object
  jump.DestinationPremiumCluster:
    properties:
      cluster_id:
        example: "0"
        type: string
    type: object
  jump.DestinationPremiumResourcePool:
    properties:
      resource_pool_id:
        example: "0"
        type: string
    type: object
  jump.DestinationServerlessCluster:
    properties:
      name:
        type: string
    type: object
  jump.DestinationType:
    enum:
    - unspecified
    - controlplane
    - dedicated
    - serverless
    - byoc
    - premium
    - premium_resource_pool
    type: string
    x-enum-varnames:
    - DestinationTypeUnspecified
    - DestinationTypeControlPlane
    - DestinationTypeDedicated
    - DestinationTypeServerless
    - DestinationTypeByoc
    - DestinationTypePremium
    - DestinationTypePremiumResourcePool
  jump.DestinationUnion:
    properties:
      byoc_cluster:
        $ref: '#/definitions/jump.DestinationByocCluster'
      control_plane:
        $ref: '#/definitions/jump.DestinationControlPlane'
      dedicated_cluster:
        $ref: '#/definitions/jump.DestinationDedicatedCluster'
      premium_cluster:
        $ref: '#/definitions/jump.DestinationPremiumCluster'
      premium_resource_pool:
        $ref: '#/definitions/jump.DestinationPremiumResourcePool'
      serverless_cluster:
        $ref: '#/definitions/jump.DestinationServerlessCluster'
    type: object
  jump.GetAuthorizationResp:
    properties:
      authorization:
        $ref: '#/definitions/jump.Authorization'
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
    type: object
  jump.GetConnectionResponse:
    properties:
      connection:
        $ref: '#/definitions/jump.Connection'
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
    type: object
  jump.GetUserResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
      user_id:
        type: string
    type: object
  jump.InviteUserFailedItem:
    properties:
      email:
        type: string
      err:
        type: string
    type: object
  jump.InviteUserReq:
    properties:
      emails:
        items:
          type: string
        type: array
    type: object
  jump.InviteUserResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      failed:
        items:
          $ref: '#/definitions/jump.InviteUserFailedItem'
        type: array
      success:
        items:
          type: string
        type: array
      trace_id:
        type: string
    type: object
  jump.Jump:
    properties:
      attributes:
        $ref: '#/definitions/jump.JumpAttributes'
      destination:
        $ref: '#/definitions/jump.DestinationUnion'
      destination_type:
        allOf:
        - $ref: '#/definitions/jump.DestinationType'
        description: output only
      id:
        type: integer
      method:
        $ref: '#/definitions/jump.JumpMethod'
    type: object
  jump.JumpAttributes:
    properties:
      k8s:
        $ref: '#/definitions/jump.JumpK8sAttributes'
      tailscale:
        $ref: '#/definitions/jump.JumpTailscaleAttributes'
    type: object
  jump.JumpExpiration:
    enum:
    - 1h
    - 3h
    - 6h
    - 12h
    - 24h
    - 3d
    - 7d
    - 30d
    type: string
    x-enum-varnames:
    - JumpExpiration1Hour
    - JumpExpiration3Hour
    - JumpExpiration6Hour
    - JumpExpiration12Hour
    - JumpExpiration24Hour
    - JumpExpiration3Day
    - JumpExpiration7Day
    - JumpExpiration30Day
  jump.JumpK8sAttributes:
    properties:
      context:
        type: string
      enable_gateway_access:
        type: boolean
      token_expire_at:
        description: jump token expire time, zero means no expire
        type: integer
    type: object
  jump.JumpMethod:
    enum:
    - unspecified
    - k8s
    - tailscale
    type: string
    x-enum-varnames:
    - JumpMethodUnspecified
    - JumpMethodK8s
    - JumpMethodTailscale
  jump.JumpPrivilege:
    enum:
    - read_only
    - read_write
    - admin
    type: string
    x-enum-varnames:
    - JumpPrivilegeReadOnly
    - JumpPrivilegeReadWrite
    - JumpPrivilegeAdmin
  jump.JumpTailscaleAttributes:
    properties:
      dst_hostname:
        type: string
      dst_ip:
        type: string
      src_hostname:
        type: string
      src_ip:
        type: string
      user:
        type: string
    type: object
  jump.ListAuthorizationsResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/jump.Authorization'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  jump.ListAvailableDestinationsResp:
    properties:
      destinations:
        items:
          type: string
        type: array
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
    type: object
  k8scalendar.ListLifecyclesResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/k8scalendar.VersionLifecycle'
        type: array
      trace_id:
        type: string
    type: object
  k8scalendar.ResetNotificationFlagsReq:
    properties:
      cloud:
        type: string
      flags:
        items:
          type: string
        minItems: 1
        type: array
      version:
        type: string
    required:
    - cloud
    - flags
    - version
    type: object
  k8scalendar.SyncNowReq:
    properties:
      fail_on_provider_error:
        description: FailOnProviderError when true, syncNow returns error if any provider
          (EKS/GKE) fetch fails.
        type: boolean
    type: object
  k8scalendar.VersionLifecycle:
    properties:
      cloud:
        type: string
      cloud_provider:
        type: string
      end_of_extended_support:
        type: string
      end_of_standard_support:
        type: string
      eos_approaching_notified_for:
        type: string
      fingerprint:
        type: string
      id:
        type: integer
      lifecycle_start:
        type: string
      notified_eos_changed_fingerprint:
        type: string
      notified_version_added_at:
        type: string
      release_precision:
        type: string
      scraped_at:
        type: string
      source_url:
        type: string
      version:
        type: string
    type: object
  k8sresource.ClusterResource:
    properties:
      content:
        type: string
      description:
        type: string
      display_name:
        type: string
      key:
        type: string
      type:
        type: string
    type: object
  k8sresource.DedicatedDataPlaneBody:
    properties:
      clusterId:
        type: string
      projectId:
        type: string
    type: object
  k8sresource.DedicatedFieldFilterBody:
    properties:
      key:
        type: string
      operator:
        type: string
      value:
        type: string
    type: object
  k8sresource.DedicatedGVKBody:
    properties:
      group:
        type: string
      kind:
        type: string
      version:
        type: string
    type: object
  k8sresource.DedicatedOptionBody:
    properties:
      detail:
        type: boolean
      events:
        type: boolean
      maxItems:
        type: integer
    type: object
  k8sresource.DedicatedSelectorBody:
    properties:
      field:
        items:
          $ref: '#/definitions/k8sresource.DedicatedFieldFilterBody'
        type: array
      label:
        additionalProperties:
          type: string
        type: object
      name:
        type: string
      namespace:
        type: string
    type: object
  k8sresource.GetK8SResourceResp:
    properties:
      metadata:
        type: string
    type: object
  k8sresource.K8SResource:
    properties:
      cluster_id:
        type: string
      data:
        type: string
      id:
        type: integer
      name:
        type: string
      namespace:
        type: string
      project_id:
        type: string
      region:
        type: string
      snap_id:
        type: string
      source:
        type: string
      tenant_id:
        type: string
      timestamp:
        type: string
      type:
        type: string
    type: object
  k8sresource.ListClusterResourcesResp:
    properties:
      resources:
        items:
          $ref: '#/definitions/k8sresource.ClusterResource'
        type: array
    type: object
  k8sresource.ListDedicatedK8sResourcesBody:
    properties:
      dataPlane:
        $ref: '#/definitions/k8sresource.DedicatedDataPlaneBody'
      gvk:
        $ref: '#/definitions/k8sresource.DedicatedGVKBody'
      option:
        $ref: '#/definitions/k8sresource.DedicatedOptionBody'
      planeType:
        type: string
      selector:
        $ref: '#/definitions/k8sresource.DedicatedSelectorBody'
    type: object
  k8sresource.ListDedicatedK8sResourcesResp:
    properties:
      content:
        type: string
      content_type:
        type: string
      hints:
        type: string
      item_count:
        type: integer
      truncated:
        type: boolean
    type: object
  k8sresource.ListK8SResourcesResp:
    properties:
      items:
        items:
          $ref: '#/definitions/k8sresource.K8SResource'
        type: array
      total:
        type: integer
    type: object
  k8supgrade.CancelUpgradeK8sClusterResp:
    type: object
  k8supgrade.CloseTaskReq:
    properties:
      reason:
        type: string
    required:
    - reason
    type: object
  k8supgrade.CreateTaskReq:
    properties:
      cloud_provider:
        type: string
      deadline:
        type: integer
      eos_version:
        type: string
      max_restart_times:
        type: integer
      name:
        type: string
      selector_type:
        description: |-
          SelectorType indicates the mutually exclusive selector type.
          - internal: internal tenants only
          - non_prod: non-production clusters only
          - by_region: match business region
          - by_tenant_ids: match tenant IDs
          - by_project_ids: match project IDs
          - by_tidb_cluster_ids: match TiDB cluster IDs
          - by_k8s_names: match k8s names
        type: string
      selector_value:
        description: |-
          SelectorValue stores selector-specific conditions in JSON.
          It can be empty for some selector types.
        type: string
    required:
    - cloud_provider
    - deadline
    - eos_version
    - name
    type: object
  k8supgrade.CreateTaskResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      id:
        type: integer
      trace_id:
        type: string
    type: object
  k8supgrade.ExcludeK8sUpgradeTaskClusterResp:
    type: object
  k8supgrade.GetK8SInformationResp:
    properties:
      admin_nodes:
        items:
          $ref: '#/definitions/k8supgrade.Node'
        type: array
      appbox_name:
        type: string
      appbox_namespace:
        type: string
      business_region:
        type: string
      cloud_account:
        type: string
      cloud_provider:
        type: string
      clusters:
        items:
          $ref: '#/definitions/k8supgrade.TiDBClusterInfraInfo'
        type: array
      control_plane_version:
        $ref: '#/definitions/k8supgrade.Version'
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      is_3_layer_arch:
        type: boolean
      k8s_name:
        type: string
      number_of_tidb_clusters:
        type: integer
      o11y_k8s_nodes:
        items:
          $ref: '#/definitions/k8supgrade.Node'
        type: array
      project_id:
        type: string
      region:
        type: string
      tenant_id:
        type: string
      tenant_kind:
        type: string
      tenant_name:
        type: string
      trace_id:
        type: string
    type: object
  k8supgrade.GetK8sUpgradeAdminResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      is_admin:
        type: boolean
      trace_id:
        type: string
    type: object
  k8supgrade.GetTaskK8sClusterResp:
    properties:
      k8s_cluster:
        $ref: '#/definitions/k8supgrade.K8sCluster'
    type: object
  k8supgrade.GetTaskResp:
    properties:
      applicant:
        description: email
        type: string
      approval_id:
        type: integer
      closed_at:
        type: integer
      cloud_provider:
        type: string
      created_at:
        type: integer
      deadline:
        type: integer
      excluded_k8s_clusters:
        items:
          $ref: '#/definitions/k8supgrade.K8sCluster'
        type: array
      id:
        type: integer
      k8s_cluster_list:
        items:
          $ref: '#/definitions/k8supgrade.K8sCluster'
        type: array
      max_restart_times:
        type: integer
      name:
        type: string
      regions:
        additionalProperties:
          type: integer
        type: object
      selector_type:
        description: SelectorType indicates the mutually exclusive selector type.
        type: string
      selector_value:
        type: string
      status:
        $ref: '#/definitions/k8supgrade.TaskStatus'
      synced:
        description: |-
          Synced indicates whether the task has been synced.
          This field is only used for the task in pending phase.
        type: boolean
      version_to_be_upgraded:
        type: string
    type: object
  k8supgrade.K8sCluster:
    properties:
      business_region:
        type: string
      cloud_provider:
        type: string
      desired_version:
        type: string
      disable_auto_generation:
        description: DisableAutoGeneration indicates whether to disable auto generation
          for the UpgradeOperationCR.
        type: boolean
      id:
        type: integer
      info:
        allOf:
        - $ref: '#/definitions/k8supgrade.K8sInfo'
        description: |-
          Info contains the information of the K8s cluster.
          It will not be stored in the database.
          It represents the latest state of the cluster.
      is_excluded:
        type: boolean
      k8s_snapshot:
        allOf:
        - $ref: '#/definitions/k8supgrade.K8sInfo'
        description: |-
          K8sSnapshot is a snapshot of the K8s cluster before the task starts running.
          It's used to record the initial state of the cluster.
      maintenance_window_id:
        type: integer
      name:
        type: string
      region:
        type: string
      sales_owner_email:
        description: SalesOwnerEmail and TAMName are resolved from tenant service
          at read time.
        type: string
      tam_name:
        type: string
      task_id:
        type: integer
      tenant_kind:
        type: string
      tenant_name:
        type: string
      upgrade_operation_cr:
        type: string
      upgrade_operation_status:
        type: string
      version:
        description: Version is used for optimistic locking. See models/k8supgrade.K8sCluster.Version.
        type: integer
    type: object
  k8supgrade.K8sInfo:
    properties:
      admin_nodes:
        items:
          $ref: '#/definitions/k8supgrade.Node'
        type: array
      appbox_name:
        type: string
      appbox_namespace:
        type: string
      business_region:
        type: string
      cloud_account:
        type: string
      cloud_provider:
        type: string
      clusters:
        items:
          $ref: '#/definitions/k8supgrade.TiDBClusterInfraInfo'
        type: array
      control_plane_version:
        $ref: '#/definitions/k8supgrade.Version'
      is_3_layer_arch:
        type: boolean
      k8s_name:
        type: string
      number_of_tidb_clusters:
        type: integer
      o11y_k8s_nodes:
        items:
          $ref: '#/definitions/k8supgrade.Node'
        type: array
      project_id:
        type: string
      region:
        type: string
      tenant_id:
        type: string
      tenant_kind:
        type: string
      tenant_name:
        type: string
    type: object
  k8supgrade.ListK8SInformationResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/k8supgrade.K8sInfo'
        type: array
      timestamp:
        description: Timestamp is the time when the list is generated.
        type: integer
      total:
        description: Total is the number of items.
        type: integer
      trace_id:
        type: string
    type: object
  k8supgrade.ListK8sUpgradeSupportedVersionsResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
      versions:
        additionalProperties:
          items:
            type: string
          type: array
        description: 'key: cloud provider (aws/gcp), value: supported versions'
        type: object
    type: object
  k8supgrade.ListTasksResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/k8supgrade.Task'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  k8supgrade.Node:
    properties:
      count:
        type: integer
      kind:
        description: admin-nodes, tidb-nodes, cdc-nodes, dm-nodes, o11y-k8s-nodes,
          o11y-tidb-nodes
        type: string
      max_skew_version:
        description: MaxSkewVersion is the max version of the node group behind the
          control plane's version.
        type: integer
      version:
        $ref: '#/definitions/k8supgrade.Version'
    type: object
  k8supgrade.NoticeTemplateReq:
    properties:
      content:
        type: string
      title:
        type: string
    type: object
  k8supgrade.NotifyReq:
    properties:
      channels:
        items:
          type: string
        type: array
      custom_message:
        type: string
    type: object
  k8supgrade.RenderedNoticeResp:
    properties:
      content:
        type: string
    type: object
  k8supgrade.Task:
    properties:
      applicant:
        description: email
        type: string
      approval_id:
        type: integer
      closed_at:
        type: integer
      cloud_provider:
        type: string
      created_at:
        type: integer
      deadline:
        type: integer
      excluded_k8s_clusters:
        items:
          $ref: '#/definitions/k8supgrade.K8sCluster'
        type: array
      id:
        type: integer
      k8s_cluster_list:
        items:
          $ref: '#/definitions/k8supgrade.K8sCluster'
        type: array
      max_restart_times:
        type: integer
      name:
        type: string
      regions:
        additionalProperties:
          type: integer
        type: object
      selector_type:
        description: SelectorType indicates the mutually exclusive selector type.
        type: string
      selector_value:
        type: string
      status:
        $ref: '#/definitions/k8supgrade.TaskStatus'
      synced:
        description: |-
          Synced indicates whether the task has been synced.
          This field is only used for the task in pending phase.
        type: boolean
      version_to_be_upgraded:
        type: string
    type: object
  k8supgrade.TaskStatus:
    enum:
    - pending
    - approving
    - running
    - completed
    - cancelled
    type: string
    x-enum-varnames:
    - TaskStatusPending
    - TaskStatusApproving
    - TaskStatusRunning
    - TaskStatusCompleted
    - TaskStatusCancelled
  k8supgrade.TiDBClusterInfraInfo:
    properties:
      component_nodes:
        items:
          $ref: '#/definitions/k8supgrade.Node'
        type: array
      id:
        type: string
      name:
        type: string
      notes:
        items:
          type: string
        type: array
      status:
        type: string
      topology:
        additionalProperties:
          type: integer
        description: 'key: component type, value: replicas'
        type: object
      version:
        type: string
    type: object
  k8supgrade.UpdateK8sUpgradeTaskClusterAutoGenerationReq:
    properties:
      disable_auto_generation:
        type: boolean
    type: object
  k8supgrade.UpdateK8sUpgradeTaskClusterAutoGenerationResp:
    type: object
  k8supgrade.UpdateTaskK8sClusterReq:
    properties:
      cloud_provider:
        type: string
      id:
        type: integer
      is_excluded:
        type: boolean
      name:
        type: string
      task_id:
        type: integer
      upgrade_operation_cr:
        type: string
      upgrade_operation_status:
        type: string
      version:
        type: integer
    type: object
  k8supgrade.UpdateTaskK8sClusterResp:
    type: object
  k8supgrade.UpdateTaskReq:
    properties:
      deadline:
        type: integer
      max_restart_times:
        type: integer
      name:
        type: string
    type: object
  k8supgrade.Version:
    properties:
      major:
        description: Major is the major version of the component.
        type: integer
      minor:
        description: Minor is the minor version of the component.
        type: integer
    type: object
  k8supgradeplan.CreatePlanReq:
    properties:
      cloud_provider:
        type: string
      deadline:
        type: integer
      eos_date:
        type: integer
      eos_version:
        type: string
      max_restart_times:
        type: integer
      name:
        type: string
      selector_type:
        type: string
      selector_value:
        type: string
      trigger_time:
        type: integer
    required:
    - cloud_provider
    - deadline
    - eos_date
    - eos_version
    - name
    type: object
  k8supgradeplan.CreatePlanResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      id:
        type: integer
      trace_id:
        type: string
    type: object
  k8supgradeplan.GetPlanResp:
    properties:
      approval_id:
        type: integer
      cloud_provider:
        type: string
      created_at:
        type: integer
      created_by:
        type: string
      deadline:
        type: integer
      eos_date:
        type: string
      eos_version:
        type: string
      estimated_clusters:
        type: integer
      id:
        type: integer
      linked_task_id:
        type: integer
      max_restart_times:
        type: integer
      name:
        type: string
      selector_type:
        type: string
      selector_value:
        type: string
      source_event_id:
        type: integer
      status:
        $ref: '#/definitions/k8supgradeplan.PlanStatus'
      trigger_time:
        type: integer
      updated_at:
        type: integer
    type: object
  k8supgradeplan.ListPlansResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/k8supgradeplan.PlannedUpgrade'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  k8supgradeplan.PlanStatus:
    enum:
    - draft
    - approving
    - approved
    - scheduled
    - task_created
    - rejected
    - cancelled
    type: string
    x-enum-varnames:
    - PlanStatusDraft
    - PlanStatusApproving
    - PlanStatusApproved
    - PlanStatusScheduled
    - PlanStatusTaskCreated
    - PlanStatusRejected
    - PlanStatusCancelled
  k8supgradeplan.PlannedUpgrade:
    properties:
      approval_id:
        type: integer
      cloud_provider:
        type: string
      created_at:
        type: integer
      created_by:
        type: string
      deadline:
        type: integer
      eos_date:
        type: string
      eos_version:
        type: string
      estimated_clusters:
        type: integer
      id:
        type: integer
      linked_task_id:
        type: integer
      max_restart_times:
        type: integer
      name:
        type: string
      selector_type:
        type: string
      selector_value:
        type: string
      source_event_id:
        type: integer
      status:
        $ref: '#/definitions/k8supgradeplan.PlanStatus'
      trigger_time:
        type: integer
      updated_at:
        type: integer
    type: object
  k8supgradeplan.SchedulePlanReq:
    properties:
      trigger_time:
        type: integer
    required:
    - trigger_time
    type: object
  k8supgradeplan.UpdatePlanReq:
    properties:
      deadline:
        type: integer
      max_restart_times:
        type: integer
      name:
        type: string
      selector_type:
        type: string
      selector_value:
        type: string
      trigger_time:
        type: integer
    type: object
  kernelimage.AvailabilityStatus:
    enum:
    - UNKNOWN
    - CHECKING
    - AVAILABLE
    - PARTIAL
    - UNAVAILABLE
    - CHECK_FAILED
    type: string
    x-enum-varnames:
    - AvailabilityStatusUnknown
    - AvailabilityStatusChecking
    - AvailabilityStatusAvailable
    - AvailabilityStatusPartial
    - AvailabilityStatusUnavailable
    - AvailabilityStatusCheckFailed
  kernelimage.BuildCallbackImage:
    properties:
      source_digest:
        type: string
      source_repository:
        type: string
      source_tag:
        type: string
    required:
    - source_repository
    - source_tag
    type: object
  kernelimage.BuildCallbackReq:
    properties:
      branch:
        type: string
      commit_sha:
        type: string
      git_tag:
        type: string
      images:
        items:
          $ref: '#/definitions/kernelimage.BuildCallbackImage'
        minItems: 1
        type: array
      repo:
        type: string
      source_applicant:
        type: string
      source_change_id:
        type: string
      source_release_id:
        type: string
    required:
    - commit_sha
    - images
    - repo
    type: object
  kernelimage.BuildCallbackResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      instance_id:
        type: integer
      releases:
        items:
          $ref: '#/definitions/github_com_tidbcloud_devops_api_kernelimage.Release'
        type: array
      trace_id:
        type: string
    type: object
  kernelimage.ExclusionReason:
    enum:
    - BUILD_INCOMPLETE
    - DELIVERY_PENDING
    - SYNC_INCOMPLETE
    - MASKED
    - INVALID_VERSION
    - OUT_OF_VERSION_WINDOW
    - OUT_OF_IMAGE_TAG_WINDOW
    - RETIRED
    type: string
    x-enum-varnames:
    - ExclusionReasonBuildIncomplete
    - ExclusionReasonDeliveryPending
    - ExclusionReasonSyncIncomplete
    - ExclusionReasonMasked
    - ExclusionReasonInvalidVersion
    - ExclusionReasonOutOfVersionWindow
    - ExclusionReasonOutOfImageTagWindow
    - ExclusionReasonRetired
  kernelimage.GetReleaseResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      release:
        $ref: '#/definitions/github_com_tidbcloud_devops_api_kernelimage.Release'
      trace_id:
        type: string
    type: object
  kernelimage.ListReleasesResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/github_com_tidbcloud_devops_api_kernelimage.Release'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  kernelimage.PlatformAvailability:
    properties:
      checked_at:
        type: string
      cloud_provider:
        type: string
      digest:
        type: string
      digest_matches:
        type: boolean
      error_message:
        type: string
      image_created_at:
        type: string
      image_ref:
        type: string
      multi_arch:
        type: boolean
      oci_platforms:
        items:
          type: string
        type: array
      registry:
        type: string
      source:
        type: string
      status:
        $ref: '#/definitions/kernelimage.PlatformAvailabilityStatus'
      workflow_run_id:
        type: integer
      workflow_run_url:
        type: string
    type: object
  kernelimage.PlatformAvailabilityStatus:
    enum:
    - AVAILABLE
    - MISSING
    - DIGEST_MISMATCH
    - CHECK_FAILED
    type: string
    x-enum-varnames:
    - PlatformAvailabilityStatusAvailable
    - PlatformAvailabilityStatusMissing
    - PlatformAvailabilityStatusDigestMismatch
    - PlatformAvailabilityStatusCheckFailed
  kernelimage.ReleaseStatus:
    enum:
    - BUILT
    - DELIVERY_OPERATION_CREATE_FAILED
    - DELIVERY_APPROVING
    - SYNCING
    - SYNC_FAILED
    - AVAILABLE
    - RETIRED
    type: string
    x-enum-varnames:
    - ReleaseStatusBuilt
    - ReleaseStatusDeliveryOperationCreateFailed
    - ReleaseStatusDeliveryApproving
    - ReleaseStatusSyncing
    - ReleaseStatusSyncFailed
    - ReleaseStatusAvailable
    - ReleaseStatusRetired
  kernelimage.SelectionResp:
    properties:
      calculated_at:
        type: string
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      excluded:
        items:
          $ref: '#/definitions/github_com_tidbcloud_devops_api_kernelimage.SelectionItem'
        type: array
      policy:
        $ref: '#/definitions/github_com_tidbcloud_devops_api_kernelimage.SelectionPolicy'
      trace_id:
        type: string
      versions:
        items:
          $ref: '#/definitions/github_com_tidbcloud_devops_api_kernelimage.SelectionVersion'
        type: array
    type: object
  kernelimage.SelectionState:
    enum:
    - SELECTED
    - EXCLUDED
    type: string
    x-enum-varnames:
    - SelectionStateSelected
    - SelectionStateExcluded
  maintenance.ClusterMaintenance:
    properties:
      id:
        type: integer
      instance_id:
        description: the id of MaintenanceTask in the core svc
        type: integer
      lark_notified_at:
        type: string
      last_notified_customer_date:
        type: string
      scheduled_apply_time:
        type: string
      task:
        $ref: '#/definitions/maintenance.ClusterMaintenanceTask'
    type: object
  maintenance.ClusterMaintenanceExecution:
    properties:
      cancel_reason:
        type: string
      cluster_id:
        example: "0"
        type: string
      id:
        type: integer
      status:
        $ref: '#/definitions/maintenance.ClusterMaintenanceExecutionStatus'
      task_id:
        description: the id of MaintenanceTaskExecution in the core svc
        type: integer
    type: object
  maintenance.ClusterMaintenanceExecutionStatus:
    enum:
    - Pending
    - Running
    - Done
    - Canceled
    type: string
    x-enum-varnames:
    - ClusterMaintenanceExecutionStatusPending
    - ClusterMaintenanceExecutionStatusRunning
    - ClusterMaintenanceExecutionStatusDone
    - ClusterMaintenanceExecutionStatusCanceled
  maintenance.ClusterMaintenanceTask:
    properties:
      create_at:
        type: string
      deadline:
        type: string
      description:
        type: string
      executions:
        items:
          $ref: '#/definitions/maintenance.ClusterMaintenanceExecution'
        type: array
      id:
        type: integer
      project_id:
        example: "0"
        type: string
      schedule_time:
        type: string
      status:
        $ref: '#/definitions/maintenance.ClusterMaintenanceTaskStatus'
    type: object
  maintenance.ClusterMaintenanceTaskStatus:
    enum:
    - Pending
    - Running
    - Closed
    type: string
    x-enum-varnames:
    - ClusterMaintenanceTaskStatusPending
    - ClusterMaintenanceTaskStatusRunning
    - ClusterMaintenanceTaskStatusClosed
  maintenance.ClusterOpsMaintenanceWindow:
    properties:
      approvers:
        description: Approvers is additional approvers for operation outside maintenance
          window.
        items:
          type: string
        type: array
      cluster_id:
        type: string
      created_at:
        type: string
      id:
        type: integer
      updated_at:
        type: string
      windows:
        items:
          $ref: '#/definitions/maintenance.ClusterOpsMaintenanceWindowSlot'
        type: array
    type: object
  maintenance.ClusterOpsMaintenanceWindowSlot:
    properties:
      description:
        description: Description of this maintenance window.
        type: string
      duration:
        description: String format of time.Duration, e.g. "1h", "1d".
        type: string
      start_cron_spec:
        description: Cron expression of window start time.
        type: string
    type: object
  maintenance.OpsExecutionWindow:
    properties:
      created_at:
        type: integer
      end_at:
        type: integer
      id:
        type: integer
      start_at:
        type: integer
      updated_at:
        type: integer
    type: object
  message.EmailRecord:
    properties:
      applicant:
        type: string
      bcc_addresses:
        items:
          type: string
        type: array
      cc_addresses:
        items:
          type: string
        type: array
      cc_target:
        $ref: '#/definitions/message.EmailTarget'
      created_at:
        type: integer
      email_template:
        $ref: '#/definitions/message.EmailTemplate'
      from_address:
        type: string
      id:
        type: integer
      name:
        description: Name of the email record to indentify or group it
        type: string
      reason:
        type: string
      to_addresses:
        items:
          type: string
        type: array
      to_target:
        $ref: '#/definitions/message.EmailTarget'
    type: object
  message.EmailTarget:
    properties:
      tenant:
        $ref: '#/definitions/message.EmailTargetTenant'
      users:
        $ref: '#/definitions/message.EmailTargetUsers'
    type: object
  message.EmailTargetTenant:
    properties:
      role:
        type: string
      tenant_id:
        type: string
    type: object
  message.EmailTargetUsers:
    properties:
      emails:
        items:
          type: string
        type: array
    type: object
  message.EmailTemplate:
    properties:
      id:
        type: string
      variables:
        additionalProperties:
          type: string
        type: object
    type: object
  message.GetEmailRecordResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      record:
        $ref: '#/definitions/message.EmailRecord'
      trace_id:
        type: string
    type: object
  message.ListEmailRecordsResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      records:
        items:
          $ref: '#/definitions/message.EmailRecord'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  message.SendEmailBatchRequest:
    properties:
      concurrency:
        type: integer
      from_address:
        type: string
      name:
        type: string
      per_batch:
        default: 100
        type: integer
      reason:
        type: string
      target_tenants:
        $ref: '#/definitions/message.SendEmailBatchTenant'
      target_users:
        $ref: '#/definitions/message.SendEmailBatchUsers'
      template:
        $ref: '#/definitions/message.EmailTemplate'
    type: object
  message.SendEmailBatchResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      failed_targets:
        items:
          $ref: '#/definitions/message.EmailTarget'
        type: array
      success_targets:
        items:
          $ref: '#/definitions/message.EmailTarget'
        type: array
      trace_id:
        type: string
    type: object
  message.SendEmailBatchTenant:
    properties:
      role:
        type: string
      tenant_ids:
        items:
          type: string
        type: array
    type: object
  message.SendEmailBatchUsers:
    properties:
      emails:
        items:
          type: string
        type: array
    type: object
  message.SendEmailRequest:
    properties:
      from_address:
        type: string
      name:
        type: string
      reason:
        type: string
      target:
        $ref: '#/definitions/message.EmailTarget'
      template:
        $ref: '#/definitions/message.EmailTemplate'
    type: object
  mgmtportal.CommonResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      instance_id:
        description: the operation instance id
        type: integer
      trace_id:
        type: string
    type: object
  monitoring.ComponentDifferenceItem:
    properties:
      actual: {}
      component:
        type: string
      desired: {}
      key:
        type: string
    type: object
  monitoring.ComponentDifferenceItemsPerCluster:
    properties:
      cluster_id:
        type: string
      cluster_name:
        type: string
      items:
        additionalProperties:
          items:
            $ref: '#/definitions/monitoring.ComponentDifferenceItem'
          type: array
        type: object
      project_id:
        type: string
      tenant_id:
        type: string
      tenant_name:
        type: string
      tenant_region:
        type: string
    type: object
  monitoring.ComponentDifferenceReport:
    properties:
      difference:
        items:
          $ref: '#/definitions/monitoring.ComponentDifferenceItemsPerCluster'
        type: array
    type: object
  monitoring.ComponentDifferenceReportMetadata:
    properties:
      cluster_ids:
        items:
          type: string
        type: array
      created_at:
        type: string
      name:
        type: string
      request_trace_id:
        type: string
      tenant_ids:
        items:
          type: string
        type: array
      total_cluster_count:
        type: integer
      type:
        $ref: '#/definitions/monitoring.ComponentDifferenceReportType'
    type: object
  monitoring.ComponentDifferenceReportType:
    enum:
    - cluster_spec
    type: string
    x-enum-varnames:
    - ComponentDifferenceReportTypeClusterSpec
  monitoring.GetReportResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      metadata:
        $ref: '#/definitions/monitoring.ComponentDifferenceReportMetadata'
      report:
        $ref: '#/definitions/monitoring.ComponentDifferenceReport'
      trace_id:
        type: string
    type: object
  monitoring.ListReportsResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      metadatas:
        items:
          $ref: '#/definitions/monitoring.ComponentDifferenceReportMetadata'
        type: array
      trace_id:
        type: string
    type: object
  o11y.Cluster:
    properties:
      agentRoleARN:
        type: string
      alert:
        $ref: '#/definitions/o11y.ClusterAlert'
      applicationID:
        type: string
      dnsName:
        type: string
      endpointServiceName:
        type: string
      id:
        type: string
      logs:
        $ref: '#/definitions/o11y.ClusterLog'
      metrics:
        $ref: '#/definitions/o11y.ClusterMetrics'
      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
  o11y.ClusterAlert:
    properties:
      ruleTemplate:
        type: string
      status:
        type: string
    type: object
  o11y.ClusterLog:
    properties:
      dataRetention:
        type: integer
      status:
        type: string
    type: object
  o11y.ClusterMetrics:
    properties:
      dataRetention:
        type: integer
      queryEndpoint:
        type: string
      status:
        type: string
    type: object
  o11y.CreateClusterRequest:
    properties:
      agentAccessARN:
        type: string
      agentManagerARN:
        type: string
      applicationID:
        type: string
      note:
        type: string
      orgID:
        type: string
      projectID:
        type: string
      region:
        type: string
      ruleTemplateID:
        type: string
      tags:
        items:
          type: string
        type: array
      vendor:
        type: string
    required:
    - orgID
    - region
    - vendor
    type: object
  o11y.CreateClusterResponse:
    properties:
      code:
        type: integer
      data:
        $ref: '#/definitions/o11y.Cluster'
      message:
        type: string
    type: object
  o11y.DeleteClusterRequest:
    properties:
      orgID:
        type: string
      region:
        type: string
      vendor:
        type: string
    required:
    - orgID
    - region
    - vendor
    type: object
  o11y.DeleteClusterResponse:
    properties:
      code:
        type: integer
      data:
        $ref: '#/definitions/o11y.Cluster'
      message:
        type: string
    type: object
  o11y.GetClusterResponse:
    properties:
      code:
        type: integer
      data:
        $ref: '#/definitions/o11y.Cluster'
      message:
        type: string
    type: object
  o11y.ListClustersResponse:
    properties:
      code:
        type: integer
      data:
        $ref: '#/definitions/o11y.ListClustersResponseData'
      message:
        type: string
    type: object
  o11y.ListClustersResponseData:
    properties:
      clusters:
        items:
          $ref: '#/definitions/o11y.Cluster'
        type: array
    type: object
  operation.ActionMetadata:
    properties:
      allow_anyone_apply:
        description: If true, anyone can apply this action after approval.
        type: boolean
      name:
        type: string
      type:
        $ref: '#/definitions/operation.ActionType'
    type: object
  operation.ActionStartPolicy:
    enum:
    - manual
    - immediate
    - schedule
    type: string
    x-enum-varnames:
    - ActionStartPolicyManual
    - ActionStartPolicyImmediate
    - ActionStartPolicySchedule
  operation.ActionStatus:
    enum:
    - created
    - running
    - succeeded
    - failed
    - unknown
    - skipped
    - canceled
    type: string
    x-enum-varnames:
    - ActionStatusCreated
    - ActionStatusRunning
    - ActionStatusSucceeded
    - ActionStatusFailed
    - ActionStatusUnknown
    - ActionStatusSkipped
    - ActionStatusCanceled
  operation.ActionType:
    enum:
    - auto
    - manual
    type: string
    x-enum-varnames:
    - ActionTypeAuto
    - ActionTypeManual
  operation.CreateInstanceAction:
    properties:
      name:
        type: string
      start_policy:
        $ref: '#/definitions/operation.ActionStartPolicy'
      start_schedule_at:
        type: integer
    type: object
  operation.CreateInstanceReq:
    properties:
      actions:
        items:
          $ref: '#/definitions/operation.CreateInstanceAction'
        type: array
      execution_window:
        $ref: '#/definitions/cluster.CreateOpsExecutionWindowReq'
      is_draft:
        type: boolean
      operation:
        type: string
      params:
        additionalProperties:
          type: string
        type: object
      reason:
        type: string
      type:
        $ref: '#/definitions/operation.OperationTarget'
    type: object
  operation.CreateInstanceResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      instance_id:
        type: integer
      trace_id:
        type: string
    type: object
  operation.FinishInstanceActionReq:
    properties:
      output:
        type: string
      result:
        $ref: '#/definitions/operation.ActionStatus'
    type: object
  operation.GetActionResp:
    properties:
      action:
        $ref: '#/definitions/operation.ActionMetadata'
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
    type: object
  operation.GetInstanceResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      instance:
        $ref: '#/definitions/operation.Instance'
      trace_id:
        type: string
    type: object
  operation.GetOperationResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      operation:
        $ref: '#/definitions/operation.Operation'
      trace_id:
        type: string
    type: object
  operation.Instance:
    properties:
      actions:
        items:
          $ref: '#/definitions/operation.InstanceAction'
        type: array
      applicant:
        description: Applicant is the user email who create the instance.
        type: string
      approval_id:
        type: integer
      closed_at:
        type: integer
      created_at:
        type: integer
      execution_window:
        allOf:
        - $ref: '#/definitions/maintenance.OpsExecutionWindow'
        description: only set in get/list API
      execution_window_id:
        type: integer
      id:
        type: integer
      operation:
        type: string
      operator_entity:
        description: OperatorEntity is the real operation entity who create the instance.
        type: string
      outputs:
        additionalProperties:
          type: string
        description: Outputs is a map used to store some contexts or results for actions.
        type: object
      params:
        additionalProperties:
          type: string
        description: Params is a map used to provide parameters for actions.
        type: object
      phase:
        allOf:
        - $ref: '#/definitions/operation.InstancePhase'
        description: status
      reason:
        type: string
      type:
        $ref: '#/definitions/operation.OperationTarget'
    type: object
  operation.InstanceAction:
    properties:
      finished_at:
        type: integer
      id:
        type: integer
      name:
        type: string
      order:
        type: integer
      output:
        type: string
      start_policy:
        $ref: '#/definitions/operation.ActionStartPolicy'
      start_schedule_at:
        description: schedule time if start policy is `schedule`
        type: integer
      started_at:
        type: integer
      status:
        $ref: '#/definitions/operation.ActionStatus'
      type:
        $ref: '#/definitions/operation.ActionType'
    type: object
  operation.InstancePhase:
    enum:
    - draft
    - created
    - approving
    - withdrawn
    - pending
    - running
    - succeeded
    - failed
    - canceled
    type: string
    x-enum-varnames:
    - InstancePhaseDraft
    - InstancePhaseCreated
    - InstancePhaseApproving
    - InstancePhaseWithdrawn
    - InstancePhasePending
    - InstancePhaseRunning
    - InstancePhaseSucceeded
    - InstancePhaseFailed
    - InstancePhaseCanceled
  operation.ListActionResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/operation.ActionMetadata'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  operation.ListInstanceResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/operation.Instance'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  operation.ListOperationCategoryResp:
    properties:
      categories:
        items:
          type: string
        type: array
    type: object
  operation.ListOperationResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/operation.Operation'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  operation.Operation:
    properties:
      actions:
        description: Actions is actions be executed in an operation.
        items:
          $ref: '#/definitions/operation.OperationAction'
        type: array
      alias:
        description: Alias is the shown name of an operation when creating.
        type: string
      approval:
        allOf:
        - $ref: '#/definitions/entity.Template'
        description: |-
          Approval is the approval template of the operation.

          NOTE: The template is injected with format `operation/<Name>` to avoid
      approval_tips:
        description: ApprovalTips is the text shown on approval page.
        type: string
      categories:
        description: Categories is the category of an operation.
        items:
          type: string
        type: array
      description:
        description: Description is the description of an operation.
        type: string
      internal:
        description: |-
          Internal means this operation is internal and only created by system.
          It will not be shown on UI when internal is true.
        type: boolean
      name:
        description: Name is the unique identifier of an operation.
        type: string
      params:
        additionalProperties:
          $ref: '#/definitions/operation.ParamDefine'
        description: Params is params of an operation, it will be used in actions.
        type: object
      runtime_data:
        additionalProperties:
          type: string
        description: RuntimeData is injected by backend at read time only.
        type: object
      target:
        allOf:
        - $ref: '#/definitions/operation.OperationTarget'
        description: Target is the target of an operation.
    type: object
  operation.OperationAction:
    properties:
      name:
        description: Name is the action name.
        type: string
      optional:
        description: Optional means this action is optional.
        type: boolean
      prefer_schedule_hour:
        description: PreferScheduleHour is the default schedule hour, and the schedule
          time is `now()+hour` when shown on UI.
        type: integer
      prefer_start_policy:
        allOf:
        - $ref: '#/definitions/operation.ActionStartPolicy'
        description: PreferStartPolicy is the default start policy when shown on UI.
    type: object
  operation.OperationTarget:
    enum:
    - cluster
    - tenant
    - project
    - user
    - region
    - resource_pool
    - undefined
    type: string
    x-enum-varnames:
    - OperationTargetCluster
    - OperationTargetTenant
    - OperationTargetProject
    - OperationTargetUser
    - OperationTargetRegion
    - OperationTargetResourcePool
    - OperationTargetUndefined
  operation.ParamDefine:
    properties:
      const:
        description: Const is the const value of the param.
        type: string
      default:
        description: Default is the default value of the param.
        type: string
      desc:
        description: Description is the description of the param.
        type: string
      enum:
        description: Enum is the enum value of the param.
        items:
          type: string
        type: array
      multi_enum:
        description: MultiEnum is the multi enum value of the param.
        items:
          type: string
        type: array
      optional:
        description: Optional is whether this param is optional.
        type: boolean
      type:
        $ref: '#/definitions/operation.ParamType'
    type: object
  operation.ParamType:
    enum:
    - string
    - int
    - map
    type: string
    x-enum-varnames:
    - ParamTypeString
    - ParamTypeInt
    - ParamTypeMap
  operation.PreviewInstanceResp:
    properties:
      advisories:
        items:
          $ref: '#/definitions/github_com_tidbcloud_devops_api_operation.Advisory'
        type: array
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
    type: object
  operation.UpdateInstanceReq:
    properties:
      actions:
        description: actions to update, if empty
        items:
          $ref: '#/definitions/operation.CreateInstanceAction'
        type: array
      params:
        additionalProperties:
          type: string
        type: object
      reason:
        type: string
    type: object
  premiumupgrade.CheckTargetConflictsReq:
    properties:
      cluster_ids:
        items:
          type: string
        minItems: 1
        type: array
    required:
    - cluster_ids
    type: object
  premiumupgrade.CheckTargetConflictsResp:
    properties:
      conflicts:
        items:
          $ref: '#/definitions/api.TargetConflict'
        type: array
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
    type: object
  premiumupgrade.CreatePlanReq:
    properties:
      cluster_ids:
        items:
          type: string
        minItems: 1
        type: array
      component_image_tags:
        items:
          $ref: '#/definitions/api.ComponentImageTag'
        type: array
      desired_version:
        type: string
      execution_mode:
        $ref: '#/definitions/premiumupgrade.ExecutionMode'
      expected_manifest_hash:
        type: string
      name:
        type: string
      reason:
        type: string
      scope:
        $ref: '#/definitions/api.UpgradeScope'
    required:
    - cluster_ids
    - desired_version
    - expected_manifest_hash
    - name
    - reason
    - scope
    type: object
  premiumupgrade.CreatePlanResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      plan:
        $ref: '#/definitions/premiumupgrade.UpgradePlan'
      trace_id:
        type: string
    type: object
  premiumupgrade.ExecutionMode:
    enum:
    - orchestrated
    - step_by_step
    type: string
    x-enum-varnames:
    - ExecutionModeOrchestrated
    - ExecutionModeStepByStep
  premiumupgrade.GetPlanResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      plan:
        $ref: '#/definitions/premiumupgrade.UpgradePlan'
      trace_id:
        type: string
    type: object
  premiumupgrade.ListComponentPoliciesResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/api.ComponentPolicy'
        type: array
      trace_id:
        type: string
    type: object
  premiumupgrade.ListPlansResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/premiumupgrade.UpgradePlan'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  premiumupgrade.PlanStatus:
    enum:
    - approval_pending_create
    - approval_creating
    - approval_reconcile_required
    - pending_approval
    - approved
    - running
    - cancelling
    - completed
    - partial_failed
    - failed
    - rejected
    - cancelled
    type: string
    x-enum-varnames:
    - PlanStatusApprovalPendingCreate
    - PlanStatusApprovalCreating
    - PlanStatusApprovalReconcileRequired
    - PlanStatusPendingApproval
    - PlanStatusApproved
    - PlanStatusRunning
    - PlanStatusCancelling
    - PlanStatusCompleted
    - PlanStatusPartialFailed
    - PlanStatusFailed
    - PlanStatusRejected
    - PlanStatusCancelled
  premiumupgrade.PreviewPlanReq:
    properties:
      cluster_ids:
        items:
          type: string
        minItems: 1
        type: array
      component_image_tags:
        items:
          $ref: '#/definitions/api.ComponentImageTag'
        type: array
      desired_version:
        type: string
      execution_mode:
        $ref: '#/definitions/premiumupgrade.ExecutionMode'
      scope:
        $ref: '#/definitions/api.UpgradeScope'
    required:
    - cluster_ids
    - desired_version
    - scope
    type: object
  premiumupgrade.PreviewPlanResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      preview:
        $ref: '#/definitions/api.PreviewPlanResult'
      trace_id:
        type: string
    type: object
  premiumupgrade.ScopeMode:
    enum:
    - selected
    - all_present
    type: string
    x-enum-varnames:
    - ScopeModeSelected
    - ScopeModeAllPresent
  premiumupgrade.StepStatus:
    enum:
    - pending
    - preparing
    - waiting_conflict
    - waiting_manual_apply
    - applying
    - succeeded
    - failed
    - skipped
    - cancelled
    type: string
    x-enum-varnames:
    - StepStatusPending
    - StepStatusPreparing
    - StepStatusWaitingConflict
    - StepStatusWaitingManualApply
    - StepStatusApplying
    - StepStatusSucceeded
    - StepStatusFailed
    - StepStatusSkipped
    - StepStatusCancelled
  premiumupgrade.TargetStatus:
    enum:
    - pending
    - running
    - waiting_conflict
    - completed
    - failed
    - cancelled
    type: string
    x-enum-varnames:
    - TargetStatusPending
    - TargetStatusRunning
    - TargetStatusWaitingConflict
    - TargetStatusCompleted
    - TargetStatusFailed
    - TargetStatusCancelled
  premiumupgrade.UpgradePlan:
    properties:
      applicant:
        type: string
      approval_id:
        type: integer
      approval_manifest:
        items:
          type: integer
        type: array
      approval_status:
        $ref: '#/definitions/entity.ApprovalStatus'
      cancel_requested_at:
        type: string
      component_order_revision:
        type: string
      created_at:
        type: string
      desired_version:
        type: string
      execution_mode:
        $ref: '#/definitions/premiumupgrade.ExecutionMode'
      finished_at:
        type: string
      id:
        type: integer
      idempotency_key:
        type: string
      last_error:
        type: string
      manifest_hash:
        type: string
      max_parallel_targets:
        type: integer
      name:
        type: string
      operator_entity:
        type: string
      reason:
        type: string
      requested_cluster_ids:
        items:
          type: string
        type: array
      requested_components:
        items:
          type: string
        type: array
      scope_mode:
        $ref: '#/definitions/premiumupgrade.ScopeMode'
      started_at:
        type: string
      status:
        $ref: '#/definitions/premiumupgrade.PlanStatus'
      targets:
        items:
          $ref: '#/definitions/premiumupgrade.UpgradeTarget'
        type: array
      updated_at:
        type: string
      version:
        type: integer
    type: object
  premiumupgrade.UpgradeStep:
    properties:
      apply_deadline_at:
        type: string
      apply_group:
        type: string
      apply_mode:
        items:
          type: integer
        type: array
      apply_strategy:
        type: string
      attempt_count:
        type: integer
      components:
        items:
          $ref: '#/definitions/premiumupgrade.UpgradeStepComponent'
        type: array
      configuration_change_id:
        type: integer
      created_at:
        type: string
      finished_at:
        type: string
      id:
        type: integer
      last_error_code:
        type: string
      last_error_message:
        type: string
      next_retry_at:
        type: string
      plan_id:
        type: integer
      sequence:
        type: integer
      started_at:
        type: string
      status:
        $ref: '#/definitions/premiumupgrade.StepStatus'
      status_reason:
        type: string
      target_id:
        type: integer
      updated_at:
        type: string
      version:
        type: integer
    type: object
  premiumupgrade.UpgradeStepComponent:
    properties:
      component:
        type: string
      from_image_tag:
        type: string
      from_version:
        type: string
      to_image_tag:
        type: string
      to_version:
        type: string
    type: object
  premiumupgrade.UpgradeTarget:
    properties:
      cloud_provider:
        type: string
      cluster_id:
        type: string
      cluster_name:
        type: string
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      created_at:
        type: string
      finished_at:
        type: string
      id:
        type: integer
      last_error:
        type: string
      logical_region:
        type: string
      plan_id:
        type: integer
      shared_pool_id:
        type: string
      source_cluster_ids:
        items:
          type: string
        type: array
      started_at:
        type: string
      status:
        $ref: '#/definitions/premiumupgrade.TargetStatus'
      steps:
        items:
          $ref: '#/definitions/premiumupgrade.UpgradeStep'
        type: array
      tenant_ids:
        items:
          type: string
        type: array
      updated_at:
        type: string
    type: object
  privilege.ApprovalPrivilegeContent:
    properties:
      scopes:
        items:
          $ref: '#/definitions/privilege.ApprovalPrivilegeScope'
        type: array
    type: object
  privilege.ApprovalPrivilegeScope:
    enum:
    - jump-service
    type: string
    x-enum-varnames:
    - PrivilegeApprovalScopeJumpService
  privilege.GetPrivilegeResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      privilege:
        $ref: '#/definitions/privilege.Privilege'
      trace_id:
        type: string
    type: object
  privilege.ListPrivilegesResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/privilege.Privilege'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  privilege.Privilege:
    properties:
      applicant:
        type: string
      approval_id:
        type: integer
      bindings:
        items:
          $ref: '#/definitions/privilege.PrivilegeBinding'
        type: array
      closed_at:
        type: integer
      content:
        $ref: '#/definitions/privilege.PrivilegeContent'
      created_at:
        type: integer
      expired_at:
        type: integer
      id:
        type: integer
      phase:
        $ref: '#/definitions/privilege.PrivilegePhase'
      reason:
        type: string
      source:
        type: string
      type:
        $ref: '#/definitions/privilege.PrivilegeType'
    type: object
  privilege.PrivilegeBinding:
    properties:
      id:
        type: integer
      user:
        description: email
        type: string
    type: object
  privilege.PrivilegeContent:
    properties:
      approval_scope:
        $ref: '#/definitions/privilege.ApprovalPrivilegeContent'
    type: object
  privilege.PrivilegePhase:
    enum:
    - created
    - approving
    - active
    - revoked
    - unapproved
    type: string
    x-enum-varnames:
    - PrivilegePhaseCreated
    - PrivilegePhaseApproving
    - PrivilegePhaseActive
    - PrivilegePhaseRevoked
    - PrivilegePhaseUnapproved
  privilege.PrivilegeType:
    enum:
    - approval
    type: string
    x-enum-varnames:
    - PrivilegeTypeApproval
  privilege.RequestApprovalPrivilegeReq:
    properties:
      scopes:
        items:
          $ref: '#/definitions/privilege.ApprovalPrivilegeScope'
        type: array
    type: object
  privilege.RequestPrivilegeReq:
    properties:
      approval:
        $ref: '#/definitions/privilege.RequestApprovalPrivilegeReq'
      binding_users:
        items:
          type: string
        type: array
      expired_at:
        type: integer
      reason:
        type: string
    type: object
  privilege.RequestPrivilegeResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      privilege_id:
        type: integer
      trace_id:
        type: string
    type: object
  project.AddSecondaryCIDRReq:
    properties:
      provider:
        type: string
      reason:
        type: string
      region:
        type: string
      secondary_cidr:
        type: string
    type: object
  project.CommonResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      instance_id:
        description: the operation instance id
        type: integer
      trace_id:
        type: string
    type: object
  project.ListVPCsResp:
    properties:
      items:
        items:
          $ref: '#/definitions/project.VPC'
        type: array
    type: object
  project.VPC:
    properties:
      cloud_provider:
        type: string
      id:
        type: string
      org_id:
        type: integer
      project_id:
        type: integer
      region:
        type: string
      secondary_cidrs:
        items:
          type: string
        type: array
      tidb_cloud_cidr_block:
        type: string
    type: object
  region.DefaultProviderIdentity:
    properties:
      id:
        type: integer
      identity:
        type: string
      service_plan:
        type: string
      tenant_id:
        type: string
    type: object
  region.GetRegionResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      region:
        $ref: '#/definitions/region.Region'
      trace_id:
        type: string
    type: object
  region.ListRegionsResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      regions:
        items:
          $ref: '#/definitions/region.Region'
        type: array
      trace_id:
        type: string
    type: object
  region.Region:
    properties:
      default_provider_identities:
        items:
          $ref: '#/definitions/region.DefaultProviderIdentity'
        type: array
      deploy_type:
        type: string
      region:
        $ref: '#/definitions/region.RegionSpec'
      region_provider_identities:
        items:
          $ref: '#/definitions/region.RegionProviderIdentity'
        type: array
    type: object
  region.RegionOpsAuditLogSetting:
    properties:
      enabled:
        type: boolean
      log_location:
        $ref: '#/definitions/region.RegionOpsAuditLogSettingLogLocation'
      log_rotation:
        $ref: '#/definitions/region.RegionOpsAuditLogSettingLogRotation'
    type: object
  region.RegionOpsAuditLogSettingLogLocation:
    properties:
      account_id:
        type: string
      bucket_uri:
        type: string
      external_id:
        type: string
      role_arn:
        type: string
      type:
        type: string
    type: object
  region.RegionOpsAuditLogSettingLogRotation:
    properties:
      file_size_limit_in_mb:
        type: integer
      rotation_interval_in_min:
        type: integer
    type: object
  region.RegionProviderIdentity:
    properties:
      id:
        type: integer
      identity:
        type: string
      is_default:
        type: boolean
    type: object
  region.RegionSpec:
    properties:
      area:
        type: string
      cloud_provider_id:
        type: string
      country_code:
        type: string
      default_backup_time:
        type: string
      display_name:
        type: string
      id:
        type: string
      is_public:
        type: boolean
      logical_name:
        type: string
      opened_tenant_ids:
        items:
          type: string
        type: array
      ops_audit_log_setting:
        $ref: '#/definitions/region.RegionOpsAuditLogSetting'
      region_white_lists:
        items:
          $ref: '#/definitions/region.RegionWhiteList'
        type: array
      service_address:
        type: string
      service_plan:
        type: string
      shared_bucket_url:
        type: string
      sort_priority:
        type: integer
      state:
        type: string
    type: object
  region.RegionWhiteList:
    properties:
      is_public:
        type: boolean
      opened_tenant_ids:
        items:
          type: string
        type: array
      service_plan:
        type: string
    type: object
  region.RegisterRegionProviderIdentityRequest:
    properties:
      identity:
        maxLength: 255
        type: string
      is_default:
        type: boolean
      region_logical_name:
        type: string
    required:
    - identity
    - region_logical_name
    type: object
  region.RegisterRegionProviderIdentityResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      region_provider_identity:
        $ref: '#/definitions/region.RegionProviderIdentity'
      trace_id:
        type: string
    type: object
  region.RegisterRegionRequest:
    properties:
      cloud_provider:
        type: string
      default_backup_time:
        type: string
      deploy_type:
        type: string
      display_name:
        type: string
      is_public:
        type: boolean
      logical_region_name:
        type: string
      opened_tenant_ids:
        items:
          type: string
        type: array
      reason:
        type: string
      region_name:
        type: string
      region_state:
        type: string
      service_address:
        type: string
      service_plan:
        type: string
    required:
    - cloud_provider
    - deploy_type
    - display_name
    - logical_region_name
    - region_name
    - region_state
    - service_address
    - service_plan
    type: object
  region.RegisterRegionResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      instance_id:
        type: integer
      trace_id:
        type: string
    type: object
  region.UpdateRegionRequest:
    properties:
      changed:
        type: string
      cloud_provider:
        type: string
      default_provider_identities:
        items:
          $ref: '#/definitions/region.DefaultProviderIdentity'
        type: array
      deploy_type:
        type: string
      is_public:
        type: boolean
      logical_name:
        type: string
      opened_tenant_ids:
        items:
          type: string
        type: array
      reason:
        type: string
      region_state:
        type: string
      region_white_lists:
        items:
          $ref: '#/definitions/region.RegionWhiteList'
        type: array
      service_address:
        type: string
      service_plan:
        type: string
    type: object
  region.UpdateRegionResponse:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      instance_id:
        type: integer
      trace_id:
        type: string
    type: object
  release.Change:
    properties:
      applicant:
        $ref: '#/definitions/userv1.User'
      applicant_email:
        type: string
      application:
        $ref: '#/definitions/application.Application'
      application_id:
        type: string
      approval_id:
        description: the used approval id
        type: integer
      change_item_names:
        description: release ticket names
        items:
          type: string
        type: array
      change_items:
        items:
          $ref: '#/definitions/release.ReleaseTicket'
        type: array
      closed_at:
        type: string
      created_at:
        description: readonly
        type: string
      deployments:
        items:
          $ref: '#/definitions/release.ChangeDeployment'
        type: array
      detail:
        $ref: '#/definitions/release.ChangeDetail'
      id:
        type: integer
      name:
        type: string
      notification:
        $ref: '#/definitions/release.ChangeNotification'
      prev_approval_ids:
        description: the previous approval ids
        items:
          type: integer
        type: array
      release:
        $ref: '#/definitions/release.Release'
      release_id:
        description: release id
        type: integer
      result:
        $ref: '#/definitions/release.ChangeResult'
      risk_level:
        $ref: '#/definitions/release.RiskLevel'
      status:
        $ref: '#/definitions/release.ChangeStatus'
      status_reason:
        description: the reason to describe why the status changed or pending
        type: string
      tier:
        items:
          $ref: '#/definitions/release.ChangeTier'
        type: array
      type:
        $ref: '#/definitions/release.ChangeType'
      window_end_at:
        description: timestamp, zero means unlimited
        type: integer
      window_start_at:
        description: timestamp, zero means unlimited
        type: integer
    type: object
  release.ChangeDeployArgoCD:
    properties:
      deploy_prs:
        items:
          $ref: '#/definitions/release.GithubPR'
        type: array
    type: object
  release.ChangeDeployEEAPI:
    properties:
      ee_api_build_ng_image:
        $ref: '#/definitions/eecli.BumpNgTagRequest'
    type: object
  release.ChangeDeployInfo:
    properties:
      argocd:
        $ref: '#/definitions/release.ChangeDeployArgoCD'
      description:
        description: save as JSON in DB, so all fields MUST be set json tag.
        type: string
      ee_api:
        $ref: '#/definitions/release.ChangeDeployEEAPI'
      manual:
        $ref: '#/definitions/release.ChangeDeployManual'
    type: object
  release.ChangeDeployManual:
    properties:
      description:
        description: Deprecated, use ChangeDeployInfo.Description instead.
        type: string
    type: object
  release.ChangeDeployMethod:
    enum:
    - argocd
    - manual
    - ee_api
    type: string
    x-enum-varnames:
    - ChangeDeployMethodArgoCD
    - ChangeDeployMethodManual
    - ChangeDeployMethodEEAPI
  release.ChangeDeployStatus:
    enum:
    - created
    - deployed
    - verified
    type: string
    x-enum-varnames:
    - ChangeDeployStatusCreated
    - ChangeDeployStatusDeployed
    - ChangeDeployStatusVerified
  release.ChangeDeployment:
    properties:
      deployed_at:
        type: string
      id:
        type: integer
      info:
        $ref: '#/definitions/release.ChangeDeployInfo'
      method:
        $ref: '#/definitions/release.ChangeDeployMethod'
      note:
        type: string
      order:
        type: integer
      regions:
        items:
          $ref: '#/definitions/release.RegionName'
        type: array
      status:
        $ref: '#/definitions/release.ChangeDeployStatus'
    type: object
  release.ChangeDetail:
    properties:
      id:
        type: integer
      need_outage:
        type: boolean
      note:
        type: string
      rollback_plan:
        type: string
      staging_test_report:
        type: string
      summary:
        type: string
    type: object
  release.ChangeNotification:
    properties:
      id:
        type: integer
      lark_topic_created_at:
        type: string
      lark_topic_id:
        type: string
      notified_to_close_at:
        type: string
    type: object
  release.ChangeResult:
    enum:
    - cancel
    - successful
    - failed
    - failed_partially
    - rollback
    type: string
    x-enum-varnames:
    - ChangeResultCancel
    - ChangeResultSuccessful
    - ChangeResultFailed
    - ChangeResultFailedPartially
    - ChangeResultRollback
  release.ChangeStatus:
    enum:
    - draft
    - created
    - approving
    - wait_for_deploy
    - in_progress
    - observing
    - closed
    - withdrawn
    type: string
    x-enum-varnames:
    - ChangeStatusDraft
    - ChangeStatusCreated
    - ChangeStatusApproving
    - ChangeStatusWaitForDeploy
    - ChangeStatusInProgress
    - ChangeStatusObserving
    - ChangeStatusClosed
    - ChangeStatusWithdrawn
  release.ChangeTier:
    enum:
    - dedicated
    - serverless
    - premium
    type: string
    x-enum-varnames:
    - ChangeTierDedicated
    - ChangeTierServerless
    - ChangeTierPremium
  release.ChangeType:
    enum:
    - sprint
    - hotfix
    type: string
    x-enum-varnames:
    - ChangeTypeSprint
    - ChangeTypeHotfix
  release.CloseChangeReq:
    properties:
      result:
        $ref: '#/definitions/release.ChangeResult'
      summary:
        type: string
    required:
    - result
    - summary
    type: object
  release.CreateChangeReq:
    properties:
      applicant:
        type: string
      application_name:
        type: string
      change_item_names:
        items:
          type: string
        type: array
      deployments:
        items:
          $ref: '#/definitions/release.Deployment'
        type: array
      is_draft:
        type: boolean
      name:
        type: string
      need_outage:
        type: boolean
      note:
        type: string
      release_id:
        type: integer
      risk_level:
        $ref: '#/definitions/release.RiskLevel'
      rollback_plan:
        type: string
      staging_test_report:
        type: string
      tier:
        items:
          $ref: '#/definitions/release.ChangeTier'
        type: array
      type:
        $ref: '#/definitions/release.ChangeType'
      window_end_at:
        type: integer
      window_start_at:
        type: integer
    required:
    - application_name
    - name
    - release_id
    - risk_level
    - tier
    - window_end_at
    - window_start_at
    type: object
  release.CreateChangeResp:
    properties:
      change_id:
        type: integer
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
    type: object
  release.DefaultChangeResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
      window_end_at:
        type: integer
      window_start_at:
        type: integer
    type: object
  release.Deployment:
    properties:
      branch:
        type: string
      commit:
        type: string
      deploy_cd_link:
        type: string
      deploy_description:
        type: string
      deploy_method:
        $ref: '#/definitions/release.ChangeDeployMethod'
      order:
        type: integer
      regions:
        items:
          $ref: '#/definitions/release.RegionName'
        type: array
      repo:
        type: string
    required:
    - deploy_method
    - order
    - regions
    type: object
  release.ExecuteDeploymentReq:
    properties:
      force:
        type: boolean
    type: object
  release.GetChangeResp:
    properties:
      change:
        $ref: '#/definitions/release.Change'
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      release_tickets:
        items:
          $ref: '#/definitions/release.ReleaseTicket'
        type: array
      trace_id:
        type: string
    type: object
  release.GetReleaseResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      release:
        $ref: '#/definitions/release.Release'
      trace_id:
        type: string
    type: object
  release.GetTicketResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      ticket:
        $ref: '#/definitions/release.ReleaseTicket'
      trace_id:
        type: string
    type: object
  release.GithubPR:
    properties:
      link:
        type: string
      pr_number:
        type: integer
      repo_name:
        type: string
      repo_owner:
        type: string
    type: object
  release.IsDeploymentReadyResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      is_ready:
        type: boolean
      reasons:
        items:
          type: string
        type: array
      trace_id:
        type: string
    type: object
  release.ListChangeResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/release.Change'
        type: array
      trace_id:
        type: string
    type: object
  release.ListReleaseResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/release.Release'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  release.ListTicketsResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/release.ReleaseTicket'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  release.RegionName:
    enum:
    - us-west1
    - us-west-2
    type: string
    x-enum-varnames:
    - RegionNameGCPUsWest1
    - RegionNameAWSUsWest2
  release.Release:
    properties:
      closed_at:
        type: string
      id:
        description: release id in repo
        type: integer
      name:
        description: 'ex: release-20230501'
        type: string
      status:
        $ref: '#/definitions/release.ReleaseStatus'
      tickets:
        items:
          $ref: '#/definitions/release.ReleaseTicket'
        type: array
      type:
        $ref: '#/definitions/release.ReleaseType'
      window_end_at:
        type: string
      window_start_at:
        type: string
    type: object
  release.ReleaseStatus:
    enum:
    - before_release
    - open
    - finished
    type: string
    x-enum-varnames:
    - ReleaseStatusBeforeRelease
    - ReleaseStatusOpen
    - ReleaseStatusFinished
  release.ReleaseTicket:
    properties:
      assignee_email:
        description: empty string means unassigned
        type: string
      github_pr_locations:
        items:
          type: string
        type: array
      github_prs:
        items:
          $ref: '#/definitions/github.PullRequest'
        type: array
      name:
        type: string
      release_id:
        type: integer
      release_name:
        type: string
      status:
        type: string
      summary:
        type: string
      type:
        $ref: '#/definitions/release.ReleaseTicketType'
    type: object
  release.ReleaseTicketType:
    enum:
    - dm
    type: string
    x-enum-varnames:
    - ReleaseTicketTypeDM
  release.ReleaseType:
    enum:
    - periodic
    type: string
    x-enum-varnames:
    - ReleaseTypePeriodic
  release.RiskLevel:
    enum:
    - low
    - high
    type: string
    x-enum-varnames:
    - RiskLevelLow
    - RiskLevelHigh
  release.UpdateChangeReq:
    properties:
      change_item_names:
        items:
          type: string
        type: array
      deployments:
        items:
          $ref: '#/definitions/release.Deployment'
        type: array
      name:
        type: string
      need_outage:
        type: boolean
      note:
        type: string
      regions:
        items:
          $ref: '#/definitions/release.RegionName'
        type: array
      risk_level:
        $ref: '#/definitions/release.RiskLevel'
      rollback_plan:
        type: string
      staging_test_report:
        type: string
      tier:
        items:
          $ref: '#/definitions/release.ChangeTier'
        type: array
      type:
        $ref: '#/definitions/release.ChangeType'
      window_end_at:
        type: integer
      window_start_at:
        type: integer
    type: object
  release.UpdateTicketReq:
    properties:
      github_pr_locations:
        description: 'ex: tidbcloud/devops#1'
        items:
          type: string
        type: array
    type: object
  release.VerifyDeploymentReq:
    properties:
      note:
        type: string
    type: object
  remediationticket.ApproveTicketPhaseReq:
    properties:
      accident_report_link:
        type: string
      accumulated_down_minutes:
        type: integer
      appr_id:
        type: integer
      cluster_billing:
        description: Patch From Global Deal Desk
        type: string
      extra_percent:
        type: string
      monthly_uptime_percentage:
        type: string
      predefined_percent:
        type: string
      reason:
        allOf:
        - $ref: '#/definitions/entity.RemediationTicketReason'
        description: Will be deprecated
      report_link:
        type: string
      root_cause_from_gs:
        description: Patch From Region TSE Leader
        type: string
      root_cause_from_rdg:
        description: Patch From RDG SLA Owner
        type: string
      total_compensation:
        type: string
      version:
        type: integer
    required:
    - appr_id
    - version
    type: object
  remediationticket.CreateRemediationTicketReq:
    properties:
      biz_region:
        $ref: '#/definitions/tenant.TenantRegion'
      cluster_id:
        type: string
      cluster_type:
        $ref: '#/definitions/entity.RemediationTicketClusterType'
      customer:
        type: string
      incident_id:
        type: integer
      month:
        description: should be in the format "2006/1"
        type: string
      tenant_id:
        type: string
    required:
    - cluster_id
    - cluster_type
    - incident_id
    - month
    - tenant_id
    type: object
  remediationticket.CreateRemediationTicketResp:
    properties:
      ticket_id:
        type: integer
    type: object
  remediationticket.GenerateFinalDocReq:
    properties:
      forced_regenerate:
        type: boolean
    type: object
  remediationticket.GetApprovalFlowResp:
    properties:
      flow:
        $ref: '#/definitions/entity.RemediationApprovalFlow'
    required:
    - flow
    type: object
  remediationticket.GetProgressResp:
    properties:
      current_phase:
        $ref: '#/definitions/entity.RemediationTicketPhase'
      phases:
        items:
          $ref: '#/definitions/entity.RemediationTicketPhaseInfo'
        type: array
    required:
    - current_phase
    - phases
    type: object
  remediationticket.GetRemediationTicketResp:
    properties:
      ticket:
        $ref: '#/definitions/entity.RemediationTicket'
    required:
    - ticket
    type: object
  remediationticket.GetTicketApprovalsResp:
    properties:
      phase_approvals:
        items:
          $ref: '#/definitions/entity.RemediationTicketPhaseApproval'
        type: array
    required:
    - phase_approvals
    type: object
  remediationticket.ListRemediationTicketsResp:
    properties:
      items:
        items:
          $ref: '#/definitions/entity.RemediationTicket'
        type: array
      total:
        type: integer
    required:
    - items
    - total
    type: object
  remediationticket.RejectTicketPhaseReq:
    properties:
      appr_id:
        type: integer
      message:
        type: string
      version:
        type: integer
    required:
    - appr_id
    - version
    type: object
  remediationticket.SubmitTicketPhaseReq:
    properties:
      accident_report_link:
        type: string
      accumulated_down_minutes:
        type: integer
      cluster_billing:
        description: Patch From Global Deal Desk
        type: string
      extra_percent:
        type: string
      monthly_uptime_percentage:
        type: string
      predefined_percent:
        type: string
      reason:
        allOf:
        - $ref: '#/definitions/entity.RemediationTicketReason'
        description: Will be deprecated
      report_link:
        type: string
      root_cause_from_gs:
        description: Patch From Region TSE Leader
        type: string
      root_cause_from_rdg:
        description: Patch From RDG SLA Owner
        type: string
      total_compensation:
        type: string
      version:
        type: integer
    type: object
  tenant.AddCreditsInternalReq:
    properties:
      discount_enabled:
        type: boolean
      expired_date:
        type: string
      foreign_id:
        type: string
      note:
        type: string
      start_date:
        type: string
      total_credits:
        type: string
      unit_filters:
        items:
          $ref: '#/definitions/tenant.UnitFilterSlim'
        type: array
      usage:
        type: string
    required:
    - expired_date
    - note
    - start_date
    - total_credits
    - unit_filters
    - usage
    type: object
  tenant.AddCreditsReq:
    properties:
      apply_for_test:
        type: boolean
      department:
        type: string
      discount_enabled:
        type: boolean
      expired_date:
        type: string
      reason:
        type: string
      total_credits:
        type: string
      unit_filters:
        items:
          $ref: '#/definitions/tenant.UnitFilterSlim'
        type: array
      usage:
        type: string
      use_case:
        type: string
    type: object
  tenant.AddImpersonateReq:
    properties:
      expire_at:
        type: integer
      reason:
        type: string
      tenant_id:
        example: "0"
        type: string
    required:
    - expire_at
    - reason
    - tenant_id
    type: object
  tenant.AddImpersonateResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      instance_id:
        description: the operation instance id
        type: integer
      trace_id:
        type: string
    type: object
  tenant.AddUserToProjectReq:
    properties:
      project_id:
        example: "0"
        type: string
      reason:
        type: string
      tenant_id:
        example: "0"
        type: string
      user_email:
        type: string
      user_id:
        example: "0"
        type: string
      user_role:
        type: string
    required:
    - project_id
    - reason
    - tenant_id
    - user_id
    - user_role
    type: object
  tenant.AddUserToTenantReq:
    properties:
      reason:
        type: string
      tenant_id:
        example: "0"
        type: string
      user_email:
        type: string
      user_id:
        example: "0"
        type: string
      user_role:
        type: string
    required:
    - reason
    - tenant_id
    - user_id
    - user_role
    type: object
  tenant.CommonResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      instance_id:
        description: the operation instance id
        type: integer
      trace_id:
        type: string
    type: object
  tenant.ComponentType:
    enum:
    - tikv
    - tidb
    - tiflash
    - pd
    - tiproxy
    - undefined
    type: string
    x-enum-varnames:
    - ComponentTypeTikv
    - ComponentTypeTidb
    - ComponentTypeTiflash
    - ComponentTypePd
    - ComponentTypeTiproxy
    - ComponentTypeUndefined
  tenant.CreateReservedCapacityTemplateReq:
    properties:
      reason:
        type: string
      reserved_capacity_template:
        $ref: '#/definitions/tenant.ReservedCapacityTemplate'
    required:
    - reason
    - reserved_capacity_template
    type: object
  tenant.DeleteAccountUserReq:
    properties:
      reason:
        type: string
      user_email:
        type: string
      user_id:
        example: "0"
        type: string
    required:
    - reason
    - user_id
    type: object
  tenant.DeleteProjectReq:
    properties:
      project_id:
        example: "0"
        type: string
      reason:
        type: string
      tenant_id:
        example: "0"
        type: string
    required:
    - project_id
    - reason
    - tenant_id
    type: object
  tenant.DeleteReservedCapacityTemplateReq:
    properties:
      reason:
        type: string
    required:
    - reason
    type: object
  tenant.DeleteTenantReq:
    properties:
      reason:
        type: string
    required:
    - reason
    type: object
  tenant.GetImpersonateResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      instance_id:
        description: the operation instance id
        type: integer
      tenant_id:
        description: impersonating tenant id for the user
        example: "0"
        type: string
      trace_id:
        type: string
      user:
        type: string
    type: object
  tenant.GetProjectResp:
    properties:
      project:
        $ref: '#/definitions/accountcli.Project'
    type: object
  tenant.GetReservedCapacityTemplateResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      reserved_capacity_template:
        $ref: '#/definitions/tenant.ReservedCapacityTemplate'
      trace_id:
        type: string
    type: object
  tenant.GetTenantResp:
    properties:
      alias:
        type: string
      country:
        type: string
      created_at:
        type: string
      customer_id:
        type: string
      email:
        type: string
      id:
        example: "0"
        type: string
      kind:
        $ref: '#/definitions/tenant.TenantKind'
      name:
        type: string
      plan:
        $ref: '#/definitions/tenant.TenantPlan'
      region:
        $ref: '#/definitions/tenant.TenantRegion'
      sales_owner_email:
        type: string
      segmentation:
        $ref: '#/definitions/tenant.TenantSegmentation'
      status:
        $ref: '#/definitions/tenant.TenantStatus'
      tam_name:
        type: string
      time_zone:
        type: string
    type: object
  tenant.GetUsersResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/accountcli.User'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  tenant.ListByocRegionsResp:
    properties:
      regions:
        items:
          $ref: '#/definitions/tenant.Region'
        type: array
    type: object
  tenant.ListReservedCapacityTemplatesResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      reserved_capacity_templates:
        items:
          $ref: '#/definitions/tenant.ReservedCapacityTemplate'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  tenant.ListTenantQuotaResp:
    properties:
      tenant_quotas:
        items:
          $ref: '#/definitions/tenant.TenantQuota'
        type: array
    type: object
  tenant.ListTenantResp:
    properties:
      items:
        items:
          $ref: '#/definitions/tenant.TenantResponse'
        type: array
      total:
        type: integer
    type: object
  tenant.LogLocation:
    properties:
      account_id:
        type: string
      bucket_uri:
        type: string
      external_id:
        type: string
      role_arn:
        type: string
      type:
        type: string
    type: object
  tenant.LogRotation:
    properties:
      file_size_limit_in_mb:
        type: integer
      rotation_interval_in_min:
        type: integer
    type: object
  tenant.OrderType:
    enum:
    - asc
    - desc
    type: string
    x-enum-varnames:
    - OrderTypeASC
    - OrderTypeDESC
  tenant.RecalculateBillsReq:
    properties:
      credits_discount_enabled:
        type: boolean
      credits_expired_date:
        type: string
      credits_provider:
        type: string
      credits_start_date:
        type: string
      credits_total_credits:
        type: string
      credits_unit_filters:
        items:
          $ref: '#/definitions/tenant.UnitFilterSlim'
        type: array
      overwrite_current_cost:
        type: boolean
      reason:
        type: string
      source_run_id:
        type: string
    required:
    - reason
    type: object
  tenant.RecalculateInvoiceReq:
    properties:
      credits_discount_enabled:
        type: boolean
      credits_expired_date:
        type: string
      credits_provider:
        type: string
      credits_start_date:
        type: string
      credits_total_credits:
        type: string
      credits_unit_filters:
        items:
          $ref: '#/definitions/tenant.UnitFilterSlim'
        type: array
      reason:
        type: string
    required:
    - reason
    type: object
  tenant.Region:
    properties:
      cloud_provider:
        type: string
      display_name:
        type: string
      id:
        type: string
      logical_name:
        type: string
      ops_audit_log_setting:
        $ref: '#/definitions/tenant.RegionOpsAuditLogSetting'
      service_address:
        type: string
      service_plan:
        type: string
      shared_bucket_url:
        type: string
      state:
        type: string
    type: object
  tenant.RegionOpsAuditLogSetting:
    properties:
      enabled:
        type: boolean
      log_location:
        $ref: '#/definitions/tenant.LogLocation'
      log_rotation:
        $ref: '#/definitions/tenant.LogRotation'
    type: object
  tenant.RemoveUserFromProjectReq:
    properties:
      project_id:
        example: "0"
        type: string
      reason:
        type: string
      tenant_id:
        example: "0"
        type: string
      user_email:
        type: string
      user_id:
        example: "0"
        type: string
    required:
    - project_id
    - reason
    - tenant_id
    - user_id
    type: object
  tenant.RemoveUserFromTenantReq:
    properties:
      reason:
        type: string
      tenant_id:
        example: "0"
        type: string
      user_email:
        type: string
      user_id:
        example: "0"
        type: string
    required:
    - reason
    - tenant_id
    - user_id
    type: object
  tenant.ReservedCapacityComponentTopology:
    properties:
      component_type:
        enum:
        - TIDB
        - TIKV
        - PD
        - TIPROXY
        - TIDB_WORKER
        - TIKV_WORKER
        - COPROCESSOR_WORKER
        - TIFLASH_WRITE
        - TIFLASH_COMPUTE
        - PD_TSO
        - PD_SCHEDULING
        type: string
      node_quota:
        $ref: '#/definitions/tenant.ReservedCapacityNodeQuota'
      storages:
        items:
          $ref: '#/definitions/tenant.ReservedCapacityStorageSpec'
        type: array
    type: object
  tenant.ReservedCapacityFixedTopology:
    properties:
      components:
        items:
          $ref: '#/definitions/tenant.ReservedCapacityComponentTopology'
        type: array
    type: object
  tenant.ReservedCapacityNodeQuota:
    properties:
      node_count:
        type: integer
      node_spec:
        $ref: '#/definitions/tenant.ReservedCapacityNodeSpec'
    type: object
  tenant.ReservedCapacityNodeSpec:
    properties:
      cpu:
        type: integer
      memory_gi:
        type: integer
    type: object
  tenant.ReservedCapacityStorageSpec:
    properties:
      iops:
        type: integer
      name:
        enum:
        - DATA
        - RAFTLOG
        - SLOWLOG
        type: string
      size_gi:
        type: integer
      throughput_mbs:
        type: integer
      type:
        type: string
    type: object
  tenant.ReservedCapacityTemplate:
    properties:
      create_time:
        type: string
      delete_time:
        type: string
      description:
        type: string
      fixed_topology:
        $ref: '#/definitions/tenant.ReservedCapacityFixedTopology'
      id:
        example: "0"
        type: string
      organization_id:
        example: "0"
        type: string
      purchased_vcpu:
        type: integer
      scope:
        enum:
        - DEFAULT
        - ORG_PRIVATE
        type: string
      status:
        enum:
        - ACTIVE
        - DEPRECATED
        type: string
      template_code:
        type: string
      topology_summary:
        type: string
      update_time:
        type: string
      workload:
        $ref: '#/definitions/tenant.ReservedCapacityTemplateWorkload'
    type: object
  tenant.ReservedCapacityTemplateOperationResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      instance_id:
        type: integer
      trace_id:
        type: string
    type: object
  tenant.ReservedCapacityTemplateWorkload:
    properties:
      data_size_gib_max:
        type: integer
      data_size_gib_min:
        type: integer
      p99_response_latency_max:
        type: integer
      p99_response_latency_min:
        type: integer
      qps_max:
        type: integer
      qps_min:
        type: integer
      workload_type:
        enum:
        - READ
        - WRITE
        - MIXED
        type: string
    type: object
  tenant.SortByType:
    enum:
    - created_at
    - timezone
    type: string
    x-enum-varnames:
    - SortByTypeCreatedAt
    - SortByTypeTimezone
  tenant.TenantKind:
    enum:
    - internal
    - external
    type: string
    x-enum-varnames:
    - TenantKindInternal
    - TenantKindExternal
  tenant.TenantPlan:
    enum:
    - new_user
    - free_trial
    - poc
    - on_demand
    type: string
    x-enum-varnames:
    - TenantPlanNewUser
    - TenantPlanFreeTrial
    - TenantPlanPoc
    - TenantPlanOnDemand
  tenant.TenantQuota:
    properties:
      component:
        $ref: '#/definitions/tenant.ComponentType'
      quota:
        type: integer
    type: object
  tenant.TenantRegion:
    enum:
    - APAC
    - EMEA
    - JAPAN
    - LATAM
    - NA
    - RDG
    - UNKNOWN
    - TEST_INFRA
    type: string
    x-enum-varnames:
    - TenantRegionAPAC
    - TenantRegionEMEA
    - TenantRegionJapan
    - TenantRegionLATAM
    - TenantRegionNA
    - TenantRegionRDG
    - TenantRegionUnknown
    - TenantRegionTestInfra
  tenant.TenantResponse:
    properties:
      alias:
        type: string
      country:
        type: string
      created_at:
        type: string
      customer_id:
        type: string
      email:
        type: string
      id:
        example: "0"
        type: string
      kind:
        $ref: '#/definitions/tenant.TenantKind'
      name:
        type: string
      plan:
        $ref: '#/definitions/tenant.TenantPlan'
      region:
        $ref: '#/definitions/tenant.TenantRegion'
      sales_owner_email:
        type: string
      segmentation:
        $ref: '#/definitions/tenant.TenantSegmentation'
      status:
        $ref: '#/definitions/tenant.TenantStatus'
      tam_name:
        type: string
      time_zone:
        type: string
    type: object
  tenant.TenantSegmentation:
    enum:
    - SKA
    - KA
    - SMB
    - UNKNOWN
    type: string
    x-enum-varnames:
    - TenantSegmentationSKA
    - TenantSegmentationKA
    - TenantSegmentationSMB
    - TenantSegmentationUnknown
  tenant.TenantStatus:
    enum:
    - pending
    - active
    - inactive
    - deleted
    - cleared
    type: string
    x-enum-varnames:
    - TenantStatusPending
    - TenantStatusActive
    - TenantStatusInactive
    - TenantStatusDeleted
    - TenantStatusCleared
  tenant.UnitFilterSlim:
    properties:
      filter_id:
        type: integer
      name:
        type: string
      type_id:
        type: integer
    type: object
  tenant.UpdateRegionOpsAuditLogSettingReq:
    properties:
      enabled:
        type: boolean
      log_location:
        $ref: '#/definitions/tenant.LogLocation'
      log_rotation:
        $ref: '#/definitions/tenant.LogRotation'
      reason:
        type: string
      region_logical_name:
        type: string
    required:
    - enabled
    - reason
    - region_logical_name
    type: object
  tenant.UpdateReservedCapacityTemplateStatusReq:
    properties:
      reason:
        type: string
      status:
        enum:
        - ACTIVE
        - DEPRECATED
        type: string
    required:
    - reason
    - status
    type: object
  tenant.UpdateTenantReq:
    properties:
      reason:
        type: string
      tenant_email:
        type: string
      tenant_id:
        example: "0"
        type: string
      tenant_status:
        type: string
      tenant_type:
        type: string
    required:
    - reason
    - tenant_id
    type: object
  tidbtools.BackupExport:
    properties:
      backup_at:
        type: integer
      backup_id:
        type: string
      backup_name:
        type: string
      created_at:
        type: integer
      error_msg:
        type: string
      finished_at:
        type: integer
      id:
        type: string
      name:
        type: string
      provider:
        type: string
      region:
        type: string
      status:
        allOf:
        - $ref: '#/definitions/tidbtools.BackupExportStatus'
        enum:
        - pending
        - running
        - succeeded
        - failed
        - canceled
        - unknown
      status_msg:
        type: string
      storage_type:
        enum:
        - s3
        - gcs
        - azblob
        - oss
        type: string
      storage_uri:
        type: string
    type: object
  tidbtools.BackupExportStatus:
    enum:
    - pending
    - running
    - succeeded
    - failed
    - canceled
    - unknown
    type: string
    x-enum-varnames:
    - BackupExportStatusPending
    - BackupExportStatusRunning
    - BackupExportStatusSucceeded
    - BackupExportStatusFailed
    - BackupExportStatusCanceled
    - BackupExportStatusUnknown
  tidbtools.BackupScheduledStatus:
    enum:
    - enabled
    - paused
    - disabled
    type: string
    x-enum-varnames:
    - BackupScheduledStatusEnabled
    - BackupScheduledStatusPaused
    - BackupScheduledStatusDisabled
  tidbtools.BackupStatus:
    enum:
    - running
    - succeeded
    - failed
    - canceled
    - pending
    type: string
    x-enum-varnames:
    - BackupStatusRunning
    - BackupStatusSucceeded
    - BackupStatusFailed
    - BackupStatusCanceled
    - BackupStatusPending
  tidbtools.ChangefeedStatus:
    enum:
    - normal
    - warning
    - error
    - failed
    - creating
    - starting
    - stopping
    - stopped
    - scaling
    - editing
    - deleting
    - deleted
    - finished
    type: string
    x-enum-varnames:
    - ChangefeedStatusNormal
    - ChangefeedStatusWarning
    - ChangefeedStatusError
    - ChangefeedStatusFailed
    - ChangefeedStatusCreating
    - ChangefeedStatusStarting
    - ChangefeedStatusStopping
    - ChangefeedStatusStopped
    - ChangefeedStatusScaling
    - ChangefeedStatusEditing
    - ChangefeedStatusDeleting
    - ChangefeedStatusDeleted
    - ChangefeedStatusFinished
  tidbtools.ChangefeedSummary:
    properties:
      display_name:
        type: string
      id:
        type: string
      status:
        allOf:
        - $ref: '#/definitions/tidbtools.ChangefeedStatus'
        enum:
        - creating
        - normal
        - starting
        - stopping
        - stopped
        - scaling
        - editing
        - warning
        - error
        - failed
        - deleting
        - deleted
        - finished
    type: object
  tidbtools.DMJob:
    properties:
      conn_method:
        type: string
      created_at:
        type: integer
      error_msg:
        type: string
      id:
        type: string
      mode:
        allOf:
        - $ref: '#/definitions/tidbtools.DMJobMode'
        enum:
        - full
        - incremental
        - all
      name:
        type: string
      source_type:
        type: string
      status:
        allOf:
        - $ref: '#/definitions/tidbtools.DMJobStatus'
        enum:
        - running
        - paused
        - finished
        - failed
        - stopped
        - unknown
      target_cluster:
        type: string
      updated_at:
        type: integer
    type: object
  tidbtools.DMJobDetail:
    properties:
      conn_method:
        type: string
      created_at:
        type: integer
      error_msg:
        type: string
      id:
        type: string
      mode:
        allOf:
        - $ref: '#/definitions/tidbtools.DMJobMode'
        enum:
        - full
        - incremental
        - all
      name:
        type: string
      source_type:
        type: string
      status:
        allOf:
        - $ref: '#/definitions/tidbtools.DMJobStatus'
        enum:
        - running
        - paused
        - finished
        - failed
        - stopped
        - unknown
      sub_tasks:
        items:
          $ref: '#/definitions/tidbtools.DMSubTask'
        type: array
      target_cluster:
        type: string
      updated_at:
        type: integer
    type: object
  tidbtools.DMJobMode:
    enum:
    - full
    - incremental
    - all
    type: string
    x-enum-varnames:
    - DMJobModeFull
    - DMJobModeIncremental
    - DMJobModeAll
  tidbtools.DMJobStatus:
    enum:
    - running
    - paused
    - finished
    - failed
    - stopped
    - unknown
    type: string
    x-enum-varnames:
    - DMJobStatusRunning
    - DMJobStatusPaused
    - DMJobStatusFinished
    - DMJobStatusFailed
    - DMJobStatusStopped
    - DMJobStatusUnknown
  tidbtools.DMOverview:
    properties:
      version:
        type: string
      version_source:
        type: string
    type: object
  tidbtools.DMPrecheck:
    properties:
      dm_job_name:
        type: string
      errmsg:
        type: string
      finished:
        type: integer
      finished_at:
        type: integer
      id:
        type: string
      started_at:
        type: integer
      status:
        allOf:
        - $ref: '#/definitions/tidbtools.DMPrecheckStatus'
        enum:
        - passed
        - failed
        - warning
        - running
      total:
        type: integer
    type: object
  tidbtools.DMPrecheckDetail:
    properties:
      dm_job_name:
        type: string
      errmsg:
        type: string
      finished:
        type: integer
      finished_at:
        type: integer
      id:
        type: string
      items:
        items:
          $ref: '#/definitions/tidbtools.DMPrecheckItem'
        type: array
      started_at:
        type: integer
      status:
        allOf:
        - $ref: '#/definitions/tidbtools.DMPrecheckStatus'
        enum:
        - passed
        - failed
        - warning
        - running
      total:
        type: integer
    type: object
  tidbtools.DMPrecheckItem:
    properties:
      errmsg:
        type: string
      name:
        type: string
      result:
        type: string
      status:
        allOf:
        - $ref: '#/definitions/tidbtools.DMPrecheckStatus'
        enum:
        - passed
        - failed
        - warning
        - running
    type: object
  tidbtools.DMPrecheckStatus:
    enum:
    - passed
    - failed
    - warning
    - running
    type: string
    x-enum-varnames:
    - DMPrecheckStatusPassed
    - DMPrecheckStatusFailed
    - DMPrecheckStatusWarning
    - DMPrecheckStatusRunning
  tidbtools.DMSubTask:
    properties:
      binlog_position:
        type: string
      binlog_ts:
        type: integer
      mode:
        allOf:
        - $ref: '#/definitions/tidbtools.DMJobMode'
        enum:
        - full
        - incremental
        - all
      name:
        type: string
      progress_percent:
        type: integer
      rows_per_sec:
        type: integer
      status:
        allOf:
        - $ref: '#/definitions/tidbtools.DMJobStatus'
        enum:
        - running
        - paused
        - finished
        - failed
        - stopped
        - unknown
    type: object
  tidbtools.DedicatedBackupSetting:
    properties:
      current_actions:
        items:
          type: string
        type: array
      dual_region_enabled:
        type: boolean
      dual_regions:
        items:
          type: string
        type: array
      encryption_enabled:
        type: boolean
      log_backup_enabled:
        type: boolean
      next_run_at:
        type: integer
      retention_days:
        type: integer
      schedule:
        type: string
      scheduled_status:
        allOf:
        - $ref: '#/definitions/tidbtools.BackupScheduledStatus'
        enum:
        - enabled
        - paused
        - disabled
    type: object
  tidbtools.DedicatedImport:
    properties:
      completed_percent:
        type: integer
      completed_tables:
        type: integer
      conn_method:
        type: string
      created_at:
        type: integer
      error_msg:
        type: string
      file_type:
        allOf:
        - $ref: '#/definitions/tidbtools.ImportFileType'
        enum:
        - CSV
        - SQL
        - PARQUET
      filter:
        type: string
      finished_at:
        type: integer
      id:
        type: string
      imported_rows:
        type: integer
      name:
        type: string
      pending_tables:
        type: integer
      post_import_completed_percent:
        type: integer
      size_bytes:
        type: integer
      source_type:
        allOf:
        - $ref: '#/definitions/tidbtools.ImportSourceType'
        enum:
        - LOCAL_FILE
        - S3
        - GCS
      status:
        allOf:
        - $ref: '#/definitions/tidbtools.ImportStatus'
        enum:
        - pending
        - preparing
        - running
        - succeeded
        - failed
        - canceled
      target_database:
        type: string
      target_table:
        type: string
      total_rows:
        type: integer
      total_tables_count:
        type: integer
    type: object
  tidbtools.Export:
    properties:
      compression:
        type: string
      created_at:
        type: integer
      created_by:
        type: string
      csv_delimiter:
        type: string
      csv_null_value:
        type: string
      csv_separator:
        type: string
      csv_skip_header:
        type: boolean
      error_msg:
        type: string
      file_type:
        type: string
      filter_type:
        type: string
      finished_at:
        type: integer
      id:
        type: string
      name:
        type: string
      snapshot_at:
        type: integer
      snapshot_tso:
        type: string
      source_cluster_id:
        type: string
      status:
        allOf:
        - $ref: '#/definitions/tidbtools.ExportStatus'
        enum:
        - pending
        - running
        - succeeded
        - failed
        - canceled
        - unknown
      status_msg:
        type: string
      storage_auth_type:
        type: string
      storage_type:
        enum:
        - s3
        - gcs
        - azblob
        - oss
        type: string
      storage_uri:
        type: string
      table_patterns:
        items:
          type: string
        type: array
      updated_at:
        type: integer
    type: object
  tidbtools.ExportStatus:
    enum:
    - pending
    - running
    - succeeded
    - failed
    - canceled
    - unknown
    type: string
    x-enum-varnames:
    - ExportStatusPending
    - ExportStatusRunning
    - ExportStatusSucceeded
    - ExportStatusFailed
    - ExportStatusCanceled
    - ExportStatusUnknown
  tidbtools.GetImportIntoTaskResp:
    properties:
      completed_percent:
        type: integer
      completed_tables:
        type: integer
      conn_method:
        type: string
      created_at:
        type: integer
      error_msg:
        type: string
      finished_at:
        type: integer
      id:
        type: string
      name:
        type: string
      pending_tables:
        type: integer
      post_import_completed_percent:
        type: integer
      progress_percent:
        type: integer
      source_uri:
        type: string
      sql_statement:
        type: string
      status:
        allOf:
        - $ref: '#/definitions/tidbtools.ImportStatus'
        enum:
        - pending
        - preparing
        - running
        - succeeded
        - failed
        - canceled
      total_tables_count:
        type: integer
    type: object
  tidbtools.GetOverviewResp:
    properties:
      backup_exports:
        $ref: '#/definitions/tidbtools.ListBackupExportsResp'
      backups:
        $ref: '#/definitions/tidbtools.ListBackupsResp'
      changefeeds:
        $ref: '#/definitions/tidbtools.ListChangefeedsOverviewResp'
      dm_jobs:
        $ref: '#/definitions/tidbtools.ListDMJobsResp'
      dm_overview:
        $ref: '#/definitions/tidbtools.DMOverview'
      exports:
        $ref: '#/definitions/tidbtools.ListExportsResp'
      import_into_tasks:
        $ref: '#/definitions/tidbtools.ListImportIntoTasksResp'
      imports:
        $ref: '#/definitions/tidbtools.ListImportsResp'
      log_backups:
        $ref: '#/definitions/tidbtools.ListLogBackupsResp'
      restores:
        $ref: '#/definitions/tidbtools.ListRestoresResp'
      warnings:
        description: |-
          Warnings collects non-fatal errors from individual fan-out calls,
          so the overview never fails entirely because one tool is down.
        items:
          type: string
        type: array
    type: object
  tidbtools.ImportFileType:
    enum:
    - CSV
    - SQL
    - PARQUET
    type: string
    x-enum-varnames:
    - ImportFileTypeCSV
    - ImportFileTypeSQL
    - ImportFileTypeParquet
  tidbtools.ImportSourceType:
    enum:
    - LOCAL_FILE
    - S3
    - GCS
    type: string
    x-enum-varnames:
    - ImportSourceTypeLocalFile
    - ImportSourceTypeS3
    - ImportSourceTypeGCS
  tidbtools.ImportStatus:
    enum:
    - pending
    - preparing
    - running
    - succeeded
    - failed
    - canceled
    type: string
    x-enum-varnames:
    - ImportStatusPending
    - ImportStatusPreparing
    - ImportStatusRunning
    - ImportStatusSucceeded
    - ImportStatusFailed
    - ImportStatusCanceled
  tidbtools.ListBackupExportsResp:
    properties:
      items:
        items:
          $ref: '#/definitions/tidbtools.BackupExport'
        type: array
      total:
        type: integer
    type: object
  tidbtools.ListBackupsResp:
    properties:
      items:
        items:
          $ref: '#/definitions/tidbtools.SnapshotBackup'
        type: array
      total:
        type: integer
    type: object
  tidbtools.ListChangefeedsOverviewResp:
    properties:
      items:
        items:
          $ref: '#/definitions/tidbtools.ChangefeedSummary'
        type: array
      total:
        type: integer
    type: object
  tidbtools.ListChangefeedsResp:
    properties:
      items:
        items:
          $ref: '#/definitions/tidbtools.ChangefeedSummary'
        type: array
      total:
        type: integer
    type: object
  tidbtools.ListDMJobsResp:
    properties:
      items:
        items:
          $ref: '#/definitions/tidbtools.DMJob'
        type: array
      total:
        type: integer
    type: object
  tidbtools.ListDMPrechecksResp:
    properties:
      items:
        items:
          $ref: '#/definitions/tidbtools.DMPrecheck'
        type: array
      total:
        type: integer
    type: object
  tidbtools.ListExportsResp:
    properties:
      items:
        items:
          $ref: '#/definitions/tidbtools.Export'
        type: array
      total:
        type: integer
    type: object
  tidbtools.ListImportIntoTasksResp:
    properties:
      items:
        items:
          $ref: '#/definitions/tidbtools.PremiumImportIntoTask'
        type: array
      total:
        type: integer
    type: object
  tidbtools.ListImportsResp:
    properties:
      items:
        items:
          $ref: '#/definitions/tidbtools.DedicatedImport'
        type: array
      total:
        type: integer
    type: object
  tidbtools.ListLogBackupsResp:
    properties:
      items:
        items:
          $ref: '#/definitions/tidbtools.LogBackup'
        type: array
      total:
        type: integer
    type: object
  tidbtools.ListRestoresResp:
    properties:
      items:
        items:
          $ref: '#/definitions/tidbtools.Restore'
        type: array
      total:
        type: integer
    type: object
  tidbtools.LogBackup:
    properties:
      checkpoint_timestamp:
        type: integer
      created_at:
        type: integer
      error_msg:
        type: string
      id:
        type: string
      name:
        type: string
      regions:
        items:
          type: string
        type: array
      size_bytes:
        type: integer
      started_at:
        type: integer
      status:
        allOf:
        - $ref: '#/definitions/tidbtools.LogBackupStatus'
        enum:
        - pending
        - running
        - stopping
        - stopped
        - pausing
        - paused
        - resuming
        - failed
        - scheduled
      storage_uri:
        type: string
      truncate_until:
        type: integer
    type: object
  tidbtools.LogBackupStatus:
    enum:
    - pending
    - running
    - stopping
    - stopped
    - pausing
    - paused
    - resuming
    - failed
    - scheduled
    type: string
    x-enum-varnames:
    - LogBackupStatusPending
    - LogBackupStatusRunning
    - LogBackupStatusStopping
    - LogBackupStatusStopped
    - LogBackupStatusPausing
    - LogBackupStatusPaused
    - LogBackupStatusResuming
    - LogBackupStatusFailed
    - LogBackupStatusScheduled
  tidbtools.NextGenBackupPolicy:
    properties:
      daily_retention_days:
        type: integer
      daily_start_time_utc:
        type: string
      description:
        type: string
      hourly_retention_days:
        type: integer
      name:
        type: string
      pitr_retention_days:
        type: integer
    type: object
  tidbtools.NextGenBackupSetting:
    properties:
      backup_policies:
        items:
          $ref: '#/definitions/tidbtools.NextGenBackupPolicy'
        type: array
      daily_backup_time_utc:
        type: string
      last_modify_time:
        type: integer
      mode:
        enum:
        - standard_bundle
        - flexible_retention
        type: string
      pitr_end_time:
        type: integer
      pitr_start_time:
        type: integer
      retention_days:
        type: integer
      unavailable:
        description: |-
          Unavailable is true while a Premium or Essential v2 restore has not
          created the target instance's backup-setting record yet.
        type: boolean
    type: object
  tidbtools.PremiumImportIntoTask:
    properties:
      completed_percent:
        type: integer
      completed_tables:
        type: integer
      conn_method:
        type: string
      created_at:
        type: integer
      error_msg:
        type: string
      finished_at:
        type: integer
      id:
        type: string
      name:
        type: string
      pending_tables:
        type: integer
      post_import_completed_percent:
        type: integer
      progress_percent:
        type: integer
      source_uri:
        type: string
      sql_statement:
        type: string
      status:
        allOf:
        - $ref: '#/definitions/tidbtools.ImportStatus'
        enum:
        - pending
        - preparing
        - running
        - succeeded
        - failed
        - canceled
      total_tables_count:
        type: integer
    type: object
  tidbtools.Restore:
    properties:
      backup_id:
        type: string
      error_msg:
        type: string
      finished_at:
        type: integer
      id:
        type: string
      log_backup_id:
        type: string
      mode:
        allOf:
        - $ref: '#/definitions/tidbtools.RestoreMode'
        enum:
        - snapshot
        - pitr
      name:
        type: string
      progress_percent:
        type: integer
      restore_region:
        type: string
      restored_at:
        type: integer
      restored_ts:
        type: string
      source_backup_name:
        type: string
      started_at:
        type: integer
      status:
        allOf:
        - $ref: '#/definitions/tidbtools.RestoreStatus'
        enum:
        - pending
        - running
        - succeeded
        - failed
        - canceled
        - unknown
      target_cluster_id:
        type: string
    type: object
  tidbtools.RestoreAuditInfo:
    properties:
      event_at:
        type: integer
      point_in_time:
        type: integer
      restore_mode:
        type: string
    type: object
  tidbtools.RestoreBackupInfo:
    properties:
      created_at:
        type: integer
      finished_at:
        type: integer
      id:
        type: string
      name:
        type: string
      region:
        type: string
      size_bytes:
        type: integer
      status:
        type: string
      tso:
        type: string
      type:
        type: string
    type: object
  tidbtools.RestoreClusterInfo:
    properties:
      id:
        type: string
      name:
        type: string
      status:
        type: string
    type: object
  tidbtools.RestoreDetail:
    properties:
      backup_id:
        type: string
      cluster:
        $ref: '#/definitions/tidbtools.RestoreClusterInfo'
      cluster_id:
        type: string
      created_at:
        type: integer
      id:
        type: string
      status:
        allOf:
        - $ref: '#/definitions/tidbtools.RestoreStatus'
        enum:
        - pending
        - running
        - succeeded
        - failed
        - terminated
        - canceled
        - unknown
    type: object
  tidbtools.RestoreErrorDetail:
    properties:
      message:
        type: string
      retryable:
        type: boolean
    type: object
  tidbtools.RestoreMode:
    enum:
    - snapshot
    - pitr
    type: string
    x-enum-varnames:
    - RestoreModeSnapshot
    - RestoreModePITR
  tidbtools.RestoreProgress:
    properties:
      audit:
        $ref: '#/definitions/tidbtools.RestoreAuditInfo'
      backup:
        $ref: '#/definitions/tidbtools.RestoreBackupInfo'
      data_restore_duration_seconds:
        type: integer
      data_restore_step:
        type: string
      duration_seconds:
        type: integer
      error:
        $ref: '#/definitions/tidbtools.RestoreErrorDetail'
      eta_seconds:
        type: integer
      id:
        type: string
      message:
        type: string
      not_found:
        description: |-
          NotFound is true when no active restore record exists for the cluster.
          The HTTP status is still 200; callers should treat this as an empty state.
        type: boolean
      progress_percent:
        type: integer
      rate_bytes_per_sec:
        type: integer
      restore_bytes:
        type: integer
      restore_finished_at:
        type: integer
      restore_started_at:
        type: integer
      runtime_diagnostic:
        type: string
      source:
        $ref: '#/definitions/tidbtools.RestoreSourceInfo'
      source_cluster_id:
        type: string
      source_metadata_available:
        type: boolean
      source_metadata_note:
        type: string
      status:
        description: |-
          Stage is the human-readable current step name or overall status string.
          JSON field is "status" to match the FE RestoreProgress.status field.
        type: string
      steps:
        items:
          $ref: '#/definitions/tidbtools.RestoreStepProgress'
        type: array
      target:
        $ref: '#/definitions/tidbtools.RestoreTargetInfo'
      updated_at:
        type: integer
    type: object
  tidbtools.RestoreSourceInfo:
    properties:
      cloud_provider:
        type: string
      expected_restore_data_bytes:
        type: integer
      id:
        type: string
      region:
        type: string
      service_plan:
        type: string
    type: object
  tidbtools.RestoreStatus:
    enum:
    - pending
    - running
    - succeeded
    - failed
    - canceled
    - terminated
    - unknown
    type: string
    x-enum-varnames:
    - RestoreStatusPending
    - RestoreStatusRunning
    - RestoreStatusSucceeded
    - RestoreStatusFailed
    - RestoreStatusCanceled
    - RestoreStatusTerminated
    - RestoreStatusUnknown
  tidbtools.RestoreStepProgress:
    properties:
      progress:
        type: number
      step_name:
        type: string
    type: object
  tidbtools.RestoreTargetInfo:
    properties:
      cloud_provider:
        type: string
      create_ready_at:
        type: integer
      create_started_at:
        type: integer
      creator:
        type: string
      dataplane_id:
        type: string
      id:
        type: string
      name:
        type: string
      organization_id:
        type: string
      project_id:
        type: string
      region:
        type: string
      region_display:
        type: string
      service_plan:
        type: string
      shared_pool_id:
        type: string
      state:
        type: string
      tidb_version:
        type: string
      updated_at:
        type: integer
    type: object
  tidbtools.SnapshotBackup:
    properties:
      cluster_version:
        type: string
      error_msg:
        type: string
      expire_at:
        type: integer
      finished_at:
        type: integer
      id:
        type: string
      name:
        type: string
      protected:
        type: boolean
      regions:
        items:
          type: string
        type: array
      size_bytes:
        type: integer
      started_at:
        type: integer
      status:
        allOf:
        - $ref: '#/definitions/tidbtools.BackupStatus'
        enum:
        - running
        - succeeded
        - failed
        - canceled
        - pending
      storage_uri:
        type: string
      tso:
        type: string
      type:
        allOf:
        - $ref: '#/definitions/tidbtools.SnapshotBackupType'
        enum:
        - Manual
        - Auto
    type: object
  tidbtools.SnapshotBackupType:
    enum:
    - Manual
    - Auto
    type: string
    x-enum-varnames:
    - SnapshotBackupTypeManual
    - SnapshotBackupTypeAuto
  timestamppb.Timestamp:
    properties:
      nanos:
        description: |-
          Non-negative fractions of a second at nanosecond resolution. This field is
          the nanosecond portion of the duration, not an alternative to seconds.
          Negative second values with fractions must still have non-negative nanos
          values that count forward in time. Must be between 0 and 999,999,999
          inclusive.
        type: integer
      seconds:
        description: |-
          Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must
          be between -315576000000 and 315576000000 inclusive (which corresponds to
          0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z).
        type: integer
    type: object
  userbehavior.AddExternalLarkChatReq:
    properties:
      avatar:
        type: string
      chat_url:
        type: string
      name:
        type: string
    required:
    - chat_url
    - name
    type: object
  userbehavior.CreateSubscriptionReq:
    properties:
      detail_link:
        type: string
      event_type:
        $ref: '#/definitions/userbehavior.UBEventTp'
      lark_chats:
        items:
          $ref: '#/definitions/entity.LarkChatSimplified'
        type: array
      name:
        type: string
      selector:
        $ref: '#/definitions/userbehavior.SelectorTp'
      subscribe_type:
        $ref: '#/definitions/userbehavior.SubscribeTp'
      template:
        type: string
    type: object
  userbehavior.CreateSubscriptionResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      subscription_id:
        type: integer
      trace_id:
        type: string
    type: object
  userbehavior.EditSubscriptionReq:
    properties:
      event_type:
        $ref: '#/definitions/userbehavior.UBEventTp'
      lark_chats:
        items:
          $ref: '#/definitions/entity.LarkChatSimplified'
        type: array
      name:
        type: string
      selector:
        $ref: '#/definitions/userbehavior.SelectorTp'
      subscribe_type:
        $ref: '#/definitions/userbehavior.SubscribeTp'
      template:
        type: string
    type: object
  userbehavior.EditSubscriptionResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      subscription_id:
        type: integer
      trace_id:
        type: string
    type: object
  userbehavior.GetSubscriptionResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      subscription:
        $ref: '#/definitions/userbehavior.Subscription'
      trace_id:
        type: string
    type: object
  userbehavior.ListLarkChatOptionsResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/entity.LarkChatSimplified'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  userbehavior.ListSubscriptionsResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/userbehavior.Subscription'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  userbehavior.RegionSelectorTp:
    enum:
    - na
    - apac
    - emea
    - jp
    type: string
    x-enum-varnames:
    - RegionSelectorNA
    - RegionSelectorAPAC
    - RegionSelectorEMEA
    - RegionSelectorJP
  userbehavior.SelectorTp:
    properties:
      region_selectors:
        items:
          $ref: '#/definitions/userbehavior.RegionSelectorTp'
        type: array
      tenant_selectors:
        items:
          type: string
        type: array
    type: object
  userbehavior.SubscribeTp:
    enum:
    - by_chat
    type: string
    x-enum-varnames:
    - SubscribeByChat
  userbehavior.Subscription:
    properties:
      available:
        type: boolean
      creator:
        description: Creator email
        type: string
      detail_link:
        type: string
      event_type:
        $ref: '#/definitions/userbehavior.UBEventTp'
      id:
        type: integer
      lark_chats:
        items:
          $ref: '#/definitions/entity.LarkChatSimplified'
        type: array
      name:
        type: string
      only_dedicated_cluster:
        type: boolean
      only_external_tenant:
        type: boolean
      only_paid_tenant:
        type: boolean
      selector:
        $ref: '#/definitions/userbehavior.SelectorTp'
      subscribe_type:
        $ref: '#/definitions/userbehavior.SubscribeTp'
      template:
        type: string
      text_filter:
        type: string
    required:
    - id
    type: object
  userbehavior.SuppressGTMEmailReq:
    properties:
      campaign_name:
        type: string
      reason:
        type: string
      source:
        type: string
      tenant_id:
        type: integer
    required:
    - campaign_name
    - reason
    - source
    - tenant_id
    type: object
  userbehavior.SuppressGTMEmailResp:
    properties:
      cancelled_count:
        type: integer
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      status:
        type: string
      trace_id:
        type: string
    type: object
  userbehavior.UBEventTp:
    enum:
    - tenant
    - cluster
    - import
    - backup
    - restore
    - cdc
    - dmjob
    - startup
    type: string
    x-enum-comments:
      UBEventStartup: monitor new startup company tenants
      UBEventTenant: tenant creation, deletion and plan change
    x-enum-varnames:
    - UBEventTenant
    - UBEventCluster
    - UBEventImport
    - UBEventBackup
    - UBEventRestore
    - UBEventCDC
    - UBEventDMJob
    - UBEventStartup
  userv1.LarkType:
    enum:
    - 0
    - 1
    type: integer
    x-enum-varnames:
    - LarkType_LARK_TYPE_UNSPECIFIED
    - LarkType_LARK_TYPE_GLOBAL
  userv1.User:
    properties:
      available:
        type: boolean
      deleted_at:
        type: integer
      email:
        type: string
      github_id:
        type: string
      lark_department_id:
        type: string
      lark_department_name:
        type: string
      lark_type:
        $ref: '#/definitions/userv1.LarkType'
      lark_user_en_name:
        type: string
      lark_user_id:
        type: string
      lark_user_name:
        type: string
      lark_user_nick_name:
        type: string
      lark_user_open_id:
        type: string
      name_search_abbr:
        type: string
      name_search_text:
        type: string
      soc2_compliant:
        type: boolean
    type: object
  webhook.JiraBindLarkGroupWhenEscalationRequest:
    properties:
      issue_id:
        description: The ID of the Jira issue
        type: string
      issue_key:
        description: The key of the Jira issue
        type: string
      outward_issue_id:
        description: The ID of the outward issue to bind
        type: string
      outward_issue_key:
        description: The key of the outward issue to bind
        type: string
    required:
    - issue_id
    - issue_key
    - outward_issue_id
    - outward_issue_key
    type: object
  webhook.JiraCreateLarkGroupForS1TicketsRequest:
    properties:
      issue_key:
        description: The key of the Jira issue
        type: string
    required:
    - issue_key
    type: object
  webhook.JiraCreateLarkGroupForS1TicketsResponse:
    properties:
      detail:
        description: The detail message
        type: string
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      group_id:
        description: The ID of the created lark group
        type: string
      trace_id:
        type: string
    type: object
  webhook.JiraInviteAssigneeToLarkGroupRequest:
    properties:
      assignee_email:
        description: The email of the assignee to invite
        type: string
      issue_id:
        description: The ID of the Jira issue
        type: string
      issue_key:
        description: The key of the Jira issue
        type: string
    required:
    - assignee_email
    - issue_id
    - issue_key
    type: object
info:
  contact: {}
  description: devops server
  title: Devops API
  version: "1.0"
paths:
  /api/v1/devops-internal/controlplane/deployments/{deployment_id}/apply/complete:
    post:
      consumes:
      - application/json
      description: callback when apply workflow completes
      operationId: DeploymentControllerOnApplyComplete
      parameters:
      - description: deployment id
        in: path
        name: deployment_id
        required: true
        type: integer
      - description: request body
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/controlplane.OnApplyCompleteReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - DeploymentController
  /api/v1/devops-internal/controlplane/deployments/{deployment_id}/preview/complete:
    post:
      consumes:
      - application/json
      description: callback when preview workflow completes
      operationId: DeploymentControllerOnPreviewComplete
      parameters:
      - description: deployment id
        in: path
        name: deployment_id
        required: true
        type: integer
      - description: request body
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/controlplane.OnPreviewCompleteReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - DeploymentController
  /api/v1/devops-internal/github/pulls/sync:
    post:
      consumes:
      - application/json
      description: sync all pull requests manually
      operationId: GithubControllerSyncPullRequests
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - GithubController
  /api/v1/devops-internal/github/repos/sync:
    post:
      consumes:
      - application/json
      description: sync all repos manually
      operationId: GithubControllerSyncRepositories
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - GithubController
  /api/v1/devops-internal/itoken/.well-known/jwks.json:
    get:
      description: get jwks in standard format for token verification
      operationId: InternalTokenControllerGetWellKnownJWKS
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/itoken.JWKSet'
      tags:
      - InternalTokenController
  /api/v1/devops-internal/release/releases/sync:
    post:
      consumes:
      - application/json
      description: sync all releases manually
      operationId: ReleaseControllerSyncReleaseManually
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ReleaseController
  /api/v1/devops-internal/tenants:
    get:
      consumes:
      - application/json
      description: list tenants internal
      operationId: ListTenantsInternal
      parameters:
      - collectionFormat: csv
        in: query
        items:
          enum:
          - internal
          - external
          type: string
        name: kind
        type: array
      - enum:
        - asc
        - desc
        in: query
        name: order
        type: string
        x-enum-varnames:
        - OrderTypeASC
        - OrderTypeDESC
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - collectionFormat: csv
        in: query
        items:
          enum:
          - new_user
          - free_trial
          - poc
          - on_demand
          type: string
        name: plan
        type: array
      - collectionFormat: csv
        in: query
        items:
          enum:
          - APAC
          - EMEA
          - JAPAN
          - NA
          - UNKNOWN
          - RDG
          - TEST_INFRA
          - LATAM
          type: string
        name: region
        type: array
      - in: query
        name: search
        type: string
      - collectionFormat: csv
        in: query
        items:
          enum:
          - SKA
          - KA
          - SMB
          type: string
        name: segmentation
        type: array
      - enum:
        - created_at
        - timezone
        in: query
        name: sort_by
        type: string
        x-enum-varnames:
        - SortByTypeCreatedAt
        - SortByTypeTimezone
      - collectionFormat: csv
        in: query
        items:
          enum:
          - pending
          - active
          - inactive
          - deleted
          - cleared
          type: string
        name: status
        type: array
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.ListTenantResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TenantService
  /api/v1/devops-internal/tenants/{tenant_id}:
    get:
      consumes:
      - application/json
      description: get tenant internal
      operationId: GetTenantInternal
      parameters:
      - description: tenant_id
        in: path
        name: tenant_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.GetTenantResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TenantService
  /api/v1/devops/{cluster_id}/tidbtools/backup-exports:
    get:
      consumes:
      - application/json
      description: list Dedicated backup export jobs
      operationId: TidbToolsControllerListBackupExports
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      - description: page, default 1
        in: query
        name: page
        type: integer
      - description: page size, default 20, max 200
        in: query
        name: page_size
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tidbtools.ListBackupExportsResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TidbToolsController
  /api/v1/devops/{cluster_id}/tidbtools/backup-setting:
    get:
      consumes:
      - application/json
      description: get Dedicated backup setting
      operationId: TidbToolsControllerGetBackupSetting
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tidbtools.DedicatedBackupSetting'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TidbToolsController
  /api/v1/devops/{cluster_id}/tidbtools/backups:
    get:
      consumes:
      - application/json
      description: list Dedicated or Premium cluster backups
      operationId: TidbToolsControllerListBackups
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      - description: page, default 1
        in: query
        name: page
        type: integer
      - description: page size, default 20, max 200 for Dedicated and max 100 for
          Premium
        in: query
        name: page_size
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tidbtools.ListBackupsResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TidbToolsController
  /api/v1/devops/{cluster_id}/tidbtools/changefeeds:
    get:
      consumes:
      - application/json
      description: list internal changefeeds of a cluster
      operationId: TidbToolsControllerListChangefeeds
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tidbtools.ListChangefeedsResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TidbToolsController
  /api/v1/devops/{cluster_id}/tidbtools/dm/jobs:
    get:
      consumes:
      - application/json
      description: list DM jobs of a cluster
      operationId: TidbToolsControllerListDMJobs
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      - description: page, default 1
        in: query
        name: page
        type: integer
      - description: page size, default 20, max 200
        in: query
        name: page_size
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tidbtools.ListDMJobsResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TidbToolsController
  /api/v1/devops/{cluster_id}/tidbtools/dm/jobs/{job_id}:
    get:
      consumes:
      - application/json
      description: get a DM job by id
      operationId: TidbToolsControllerGetDMJob
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      - description: job id
        in: path
        name: job_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tidbtools.DMJobDetail'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TidbToolsController
  /api/v1/devops/{cluster_id}/tidbtools/dm/overview:
    get:
      consumes:
      - application/json
      description: get DM version/overview for a cluster
      operationId: TidbToolsControllerGetDMOverview
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tidbtools.DMOverview'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TidbToolsController
  /api/v1/devops/{cluster_id}/tidbtools/dm/prechecks:
    get:
      consumes:
      - application/json
      description: list DM prechecks of a cluster
      operationId: TidbToolsControllerListDMPrechecks
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      - description: page, default 1
        in: query
        name: page
        type: integer
      - description: page size, default 20, max 200
        in: query
        name: page_size
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tidbtools.ListDMPrechecksResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TidbToolsController
  /api/v1/devops/{cluster_id}/tidbtools/dm/prechecks/{precheck_id}:
    get:
      consumes:
      - application/json
      description: get a DM precheck by id
      operationId: TidbToolsControllerGetDMPrecheck
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      - description: precheck id
        in: path
        name: precheck_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tidbtools.DMPrecheckDetail'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TidbToolsController
  /api/v1/devops/{cluster_id}/tidbtools/exports:
    get:
      consumes:
      - application/json
      description: list Premium or Essential v2 data export tasks
      operationId: TidbToolsControllerListExports
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      - description: page, default 1
        in: query
        name: page
        type: integer
      - description: page size, default 20, max 200
        in: query
        name: page_size
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tidbtools.ListExportsResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TidbToolsController
  /api/v1/devops/{cluster_id}/tidbtools/import-into-tasks:
    get:
      consumes:
      - application/json
      description: list Premium IMPORT INTO tasks of a cluster (upstream RPC pending)
      operationId: TidbToolsControllerListImportIntoTasks
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      - description: page, default 1
        in: query
        name: page
        type: integer
      - description: page size, default 20, max 200
        in: query
        name: page_size
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tidbtools.ListImportIntoTasksResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TidbToolsController
  /api/v1/devops/{cluster_id}/tidbtools/import-into-tasks/{task_id}:
    get:
      consumes:
      - application/json
      description: get a Premium IMPORT INTO task by id (upstream RPC pending)
      operationId: TidbToolsControllerGetImportIntoTask
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      - description: task id
        in: path
        name: task_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tidbtools.GetImportIntoTaskResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TidbToolsController
  /api/v1/devops/{cluster_id}/tidbtools/imports:
    get:
      consumes:
      - application/json
      description: list Dedicated TiDB imports of a cluster (upstream RPC pending)
      operationId: TidbToolsControllerListImports
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      - description: page, default 1
        in: query
        name: page
        type: integer
      - description: page size, default 20, max 200
        in: query
        name: page_size
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tidbtools.ListImportsResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TidbToolsController
  /api/v1/devops/{cluster_id}/tidbtools/log-backups:
    get:
      consumes:
      - application/json
      description: list Dedicated log backups
      operationId: TidbToolsControllerListLogBackups
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      - description: page, default 1
        in: query
        name: page
        type: integer
      - description: page size, default 20, max 200
        in: query
        name: page_size
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tidbtools.ListLogBackupsResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TidbToolsController
  /api/v1/devops/{cluster_id}/tidbtools/nextgen-backup-setting:
    get:
      consumes:
      - application/json
      description: get Premium or Essential v2 backup setting
      operationId: TidbToolsControllerGetNextGenBackupSetting
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tidbtools.NextGenBackupSetting'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TidbToolsController
  /api/v1/devops/{cluster_id}/tidbtools/overview:
    get:
      consumes:
      - application/json
      description: aggregated overview across all tools for a cluster
      operationId: TidbToolsControllerGetOverview
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tidbtools.GetOverviewResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TidbToolsController
  /api/v1/devops/{cluster_id}/tidbtools/restores:
    get:
      consumes:
      - application/json
      description: list Dedicated or Premium restores
      operationId: TidbToolsControllerListRestores
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      - description: page, default 1
        in: query
        name: page
        type: integer
      - description: page size, default 20, max 200
        in: query
        name: page_size
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tidbtools.ListRestoresResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TidbToolsController
  /api/v1/devops/{cluster_id}/tidbtools/restores/{restore_id}:
    get:
      consumes:
      - application/json
      description: get a Dedicated restore by ID or the current Premium restore using
        its target cluster ID
      operationId: TidbToolsControllerGetRestore
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      - description: restore ID; for Premium, the target cluster ID
        in: path
        name: restore_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tidbtools.RestoreDetail'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TidbToolsController
  /api/v1/devops/{cluster_id}/tidbtools/restores/progress:
    get:
      consumes:
      - application/json
      description: get Dedicated or Premium restore progress
      operationId: TidbToolsControllerGetRestoreProgress
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tidbtools.RestoreProgress'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TidbToolsController
  /api/v1/devops/accountusers/{user_id}:
    delete:
      consumes:
      - application/json
      description: delete account user
      operationId: DeleteAccountUser
      parameters:
      - description: user_id
        in: path
        name: user_id
        required: true
        type: string
      - description: DeleteAccountUserReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/tenant.DeleteAccountUserReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.CommonResp'
      tags:
      - TenantService
  /api/v1/devops/application/applications:
    get:
      consumes:
      - application/json
      description: list applications
      operationId: ApplicationControllerListApplication
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/application.ListApplicationResp'
      tags:
      - ApplicationController
    post:
      consumes:
      - application/json
      description: create a application
      operationId: ApplicationControllerCreateApplication
      parameters:
      - description: request
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/application.CreateApplicationReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/application.CreateApplicationResp'
      tags:
      - ApplicationController
  /api/v1/devops/application/applications/{name}:
    delete:
      consumes:
      - application/json
      description: delete a application
      operationId: ApplicationControllerDeleteApplication
      parameters:
      - description: application name
        in: path
        name: name
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ApplicationController
    get:
      consumes:
      - application/json
      description: get a application
      operationId: ApplicationControllerGetApplication
      parameters:
      - description: application name
        in: path
        name: name
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/application.GetApplicationResp'
      tags:
      - ApplicationController
    put:
      consumes:
      - application/json
      description: update a application
      operationId: ApplicationControllerUpdateApplication
      parameters:
      - description: application name
        in: path
        name: name
        required: true
        type: string
      - description: request
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/application.CreateApplicationReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ApplicationController
  /api/v1/devops/approval/approvals:
    post:
      consumes:
      - application/json
      description: create a approval
      operationId: ApprovalControllerCreateApproval
      parameters:
      - description: create approval request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/approval.CreateApprovalReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/approval.CreateApprovalResp'
      tags:
      - ApprovalController
  /api/v1/devops/approval/approvals/{appr_id}:
    get:
      consumes:
      - application/json
      description: get a approval
      operationId: ApprovalControllerGetApproval
      parameters:
      - description: approval id
        in: path
        name: appr_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/approval.GetApprovalResp'
      tags:
      - ApprovalController
  /api/v1/devops/approval/approvals/{appr_id}/admin_approve:
    post:
      consumes:
      - application/json
      description: approve a approval by admin
      operationId: ApprovalControllerAdminApprove
      parameters:
      - description: approval id
        in: path
        name: appr_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ApprovalController
  /api/v1/devops/approval/approvals/{appr_id}/approve:
    post:
      consumes:
      - application/json
      description: approve a approval
      operationId: ApprovalControllerUserApprove
      parameters:
      - description: approval id
        in: path
        name: appr_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ApprovalController
  /api/v1/devops/approval/approvals/{appr_id}/cancel:
    post:
      consumes:
      - application/json
      description: cancel a approval
      operationId: ApprovalControllerCancelApproval
      parameters:
      - description: approval id
        in: path
        name: appr_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ApprovalController
  /api/v1/devops/approval/approvals/{appr_id}/reject:
    post:
      consumes:
      - application/json
      description: approve a approval
      operationId: ApprovalControllerUserReject
      parameters:
      - description: approval id
        in: path
        name: appr_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ApprovalController
  /api/v1/devops/audit:
    get:
      consumes:
      - application/json
      description: list audit logs
      operationId: AuditControllerListAuditLog
      parameters:
      - in: query
        name: instance_id
        type: string
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - enum:
        - change
        - ctl
        - cluster_maintenance
        - operation
        - jump
        - cloud_config_change
        - cloud_config_default_config_change
        - k8s_upgrade_task
        - tenant
        - spu_sku
        - rbac_role
        - rbac_rolebinding
        - iam_role
        - iam_rolebinding
        - iam_policy
        - iam_policybinding
        - iam_apikey
        in: query
        name: type
        type: string
        x-enum-varnames:
        - AuditLogTypeChange
        - AuditLogTypeCtl
        - AuditLogTypeClusterMaintenance
        - AuditLogTypeOperation
        - AuditLogTypeJump
        - AuditLogTypeCloudConfigChange
        - AuditLogTypeCloudConfigDefaultConfigChange
        - AuditLogTypeK8sUpgradetask
        - AuditLogTypeTenant
        - AuditLogTypeSpuSku
        - AuditLogTypeRBACRole
        - AuditLogTypeRBACRoleBinding
        - AuditLogTypeIAMRole
        - AuditLogTypeIAMRoleBinding
        - AuditLogTypeIAMPolicy
        - AuditLogTypeIAMPolicyBinding
        - AuditLogTypeIAMAPIKey
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/audit.ListAuditLogResp'
      tags:
      - AuditController
  /api/v1/devops/audit/changes:
    get:
      consumes:
      - application/json
      description: list audit logs for changes
      operationId: AuditControllerListChangeAuditLog
      parameters:
      - in: query
        name: change_id
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/audit.ListChangeAuditLogResp'
      tags:
      - AuditController
  /api/v1/devops/audit/cluster-maintenance:
    get:
      consumes:
      - application/json
      description: list audit logs for cluster maintenance
      operationId: AuditControllerListClusterMaintenanceAuditLog
      parameters:
      - in: query
        name: maintenance_id
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/audit.ListClusterMaintenanceAuditLogResp'
      tags:
      - AuditController
  /api/v1/devops/audit/ctl:
    get:
      consumes:
      - application/json
      description: list audit logs for ctl
      operationId: AuditControllerListCtlAuditLog
      parameters:
      - in: query
        name: cluster_id
        type: string
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/audit.ListCtlAuditLogResp'
      tags:
      - AuditController
  /api/v1/devops/audit/jumps:
    get:
      consumes:
      - application/json
      description: list audit logs for jump authorizations
      operationId: AuditControllerListJumpAuditLog
      parameters:
      - in: query
        name: authorization_id
        type: string
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/audit.ListJumpAuditLogResp'
      tags:
      - AuditController
  /api/v1/devops/audit/operations:
    get:
      consumes:
      - application/json
      description: list audit logs for operation instances
      operationId: AuditControllerListOperationAuditLog
      parameters:
      - in: query
        name: instance_id
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/audit.ListOperationAuditLogResp'
      tags:
      - AuditController
  /api/v1/devops/audit/types:
    get:
      consumes:
      - application/json
      description: list audit log types
      operationId: AuditControllerListAuditLogTypes
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/audit.ListAuditLogTypesResp'
      tags:
      - AuditController
  /api/v1/devops/cloudconfig-admin/parameter/attribute/{config_type}/{version}/{param_name}:
    put:
      consumes:
      - application/json
      description: update a parameter attribute
      operationId: CloudConfigControllerUpdateParameterAttribute
      parameters:
      - description: cluster_type
        enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - CHANGEFEED
        - SHARED_POOL
        - LOGICAL_CLUSTER
        - TICDC_NG
        - CHANGEFEED_NG
        - CHANGEFEED_ESSENTIAL
        in: query
        name: cluster_type
        required: true
        type: string
      - description: config_type
        in: path
        name: config_type
        required: true
        type: string
      - description: version
        in: path
        name: version
        required: true
        type: string
      - description: param_name
        in: path
        name: param_name
        required: true
        type: string
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cloudconfig.UpdateParamAttrReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig-admin/parameter/attribute/clone:
    post:
      consumes:
      - application/json
      description: clone paramter attributes from old version
      operationId: CloudConfigControllerCloneParameterAttribute
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cloudconfig.CloneParamAttrReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig-admin/parameter/attribute/create:
    post:
      consumes:
      - application/json
      description: create a paramter attribute
      operationId: CloudConfigControllerCreateParameterAttribute
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cloudconfig.CreateParamAttrReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/changes/{change_id}:
    get:
      consumes:
      - application/json
      description: get a config change of a cluster
      operationId: CloudConfigControllerGetConfigChange
      parameters:
      - description: change id
        in: path
        name: change_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.GetConfigurationChangeResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/changes/{change_id}/apply:
    post:
      consumes:
      - application/json
      description: aplly a config change
      operationId: CloudConfigControllerApplyConfigurationChange
      parameters:
      - description: change id
        in: path
        name: change_id
        required: true
        type: string
      - description: request param
        in: body
        name: req
        schema:
          $ref: '#/definitions/cloudconfig.ApplyConfigurationChangeReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/changes/{change_id}/cancel:
    post:
      consumes:
      - application/json
      description: cancel a config change
      operationId: CloudConfigControllerCancelConfigurationChange
      parameters:
      - description: change id
        in: path
        name: change_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/cluster-components/search:
    get:
      consumes:
      - application/json
      description: search cluster component versions
      operationId: CloudConfigControllerSearchClusterComponents
      parameters:
      - in: query
        name: cluster_id
        type: string
      - enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - CHANGEFEED
        - SHARED_POOL
        - LOGICAL_CLUSTER
        - TICDC_NG
        - CHANGEFEED_NG
        - CHANGEFEED_ESSENTIAL
        in: query
        name: cluster_type
        required: true
        type: string
        x-enum-varnames:
        - ClusterTypeUnknown
        - ClusterTypeDedicatedTiDB
        - ClusterTypeTiCDC
        - ClusterTypeChangefeed
        - ClusterTypeSharedPool
        - ClusterTypeLogicalCluster
        - ClusterTypeTiCDCNG
        - ClusterTypeChangefeedNG
        - ClusterTypeChangefeedEssential
      - in: query
        name: component_name
        type: string
      - in: query
        name: component_version
        type: string
      - in: query
        name: image_tag
        type: string
      - in: query
        name: logical_region
        type: string
      - in: query
        name: page
        type: integer
      - in: query
        maximum: 500
        name: per_page
        type: integer
      - in: query
        name: region_mode
        type: string
      - in: query
        name: tenant_id
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.SearchClusterComponentsResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/cluster/changes:
    get:
      consumes:
      - application/json
      description: list config changes
      operationId: CloudConfigControllerListClusterConfigurationChanges
      parameters:
      - in: query
        name: cluster_id
        required: true
        type: string
      - enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - CHANGEFEED
        - SHARED_POOL
        - LOGICAL_CLUSTER
        - TICDC_NG
        - CHANGEFEED_NG
        - CHANGEFEED_ESSENTIAL
        in: query
        name: cluster_type
        required: true
        type: string
        x-enum-varnames:
        - ClusterTypeUnknown
        - ClusterTypeDedicatedTiDB
        - ClusterTypeTiCDC
        - ClusterTypeChangefeed
        - ClusterTypeSharedPool
        - ClusterTypeLogicalCluster
        - ClusterTypeTiCDCNG
        - ClusterTypeChangefeedNG
        - ClusterTypeChangefeedEssential
      - in: query
        name: created_at_end_unix_sec
        type: integer
      - in: query
        name: created_at_start_unix_sec
        type: integer
      - in: query
        name: have_modified_param_like
        type: string
      - in: query
        name: id_only
        type: boolean
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.ListConfigurationChangeResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
    post:
      consumes:
      - application/json
      description: change the configuration of a cluster
      operationId: CloudConfigControllerCreateClusterConfigurationChange
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cloudconfig.CreateClusterConfigurationChangeReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.CreateConfigurationChangeResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/cluster/changes/preview:
    post:
      consumes:
      - application/json
      description: change the configuration of a cluster
      operationId: CloudConfigControllerPreviewClusterConfigurationChange
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cloudconfig.PreviewClusterConfigurationChangeReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.PreviewConfigurationChangeResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/cluster/config:
    get:
      consumes:
      - application/json
      description: get the current configuration of a cluster
      operationId: CloudConfigControllerGetClusterConfiguration
      parameters:
      - in: query
        name: cluster_id
        required: true
        type: string
      - enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - CHANGEFEED
        - SHARED_POOL
        - LOGICAL_CLUSTER
        - TICDC_NG
        - CHANGEFEED_NG
        - CHANGEFEED_ESSENTIAL
        in: query
        name: cluster_type
        required: true
        type: string
        x-enum-varnames:
        - ClusterTypeUnknown
        - ClusterTypeDedicatedTiDB
        - ClusterTypeTiCDC
        - ClusterTypeChangefeed
        - ClusterTypeSharedPool
        - ClusterTypeLogicalCluster
        - ClusterTypeTiCDCNG
        - ClusterTypeChangefeedNG
        - ClusterTypeChangefeedEssential
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.GetConfigurationResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/components:
    get:
      consumes:
      - application/json
      description: list available components
      operationId: CloudConfigControllerListComponents
      parameters:
      - description: cluster_type
        enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - CHANGEFEED
        - SHARED_POOL
        - LOGICAL_CLUSTER
        - TICDC_NG
        - CHANGEFEED_NG
        - CHANGEFEED_ESSENTIAL
        in: query
        name: cluster_type
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.ListComponentsResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/config-types/{cluster_type}:
    get:
      consumes:
      - application/json
      description: list available config types
      operationId: CloudConfigControllerListConfigTypes
      parameters:
      - description: cluster_type
        enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - CHANGEFEED
        - SHARED_POOL
        - LOGICAL_CLUSTER
        - TICDC_NG
        - CHANGEFEED_NG
        - CHANGEFEED_ESSENTIAL
        in: path
        name: cluster_type
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.ListConfigTypesResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/default-config/changes:
    get:
      consumes:
      - application/json
      description: list template changes
      operationId: CloudConfigControllerListDefaultConfigurationChanges
      parameters:
      - enum:
        - version_release
        - template_default_case_binding
        - default_component_config
        in: query
        name: contain_item_type
        type: string
        x-enum-varnames:
        - DefaultConfigurationChangeItemTypeVersionRelease
        - DefaultConfigurationChangeItemTypeTemplateDefaultCaseBinding
        - DefaultConfigurationChangeItemTypeDefaultComponentConfig
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.ListDefaultConfigurationChangesResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/default-config/changes/{change_id}:
    get:
      consumes:
      - application/json
      description: get a template change
      operationId: CloudConfigControllerGetDefaultConfigurationChange
      parameters:
      - description: change id
        in: path
        name: change_id
        required: true
        type: string
      - in: query
        name: with_change_items
        type: boolean
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.GetDefaultConfigurationChangeResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/default-config/changes/{change_id}/close:
    post:
      consumes:
      - application/json
      description: close a template change
      operationId: CloudConfigControllerCloseDefaultConfigurationChange
      parameters:
      - description: change id
        in: path
        name: change_id
        required: true
        type: string
      - description: request param
        in: body
        name: req
        schema:
          $ref: '#/definitions/cloudconfig.CloseDefaultConfigurationChangeReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/default-config/changes/{change_id}/items:
    get:
      consumes:
      - application/json
      description: list change items
      operationId: CloudConfigControllerListDefaultConfigurationChangeItems
      parameters:
      - description: change id
        in: path
        name: change_id
        required: true
        type: string
      - in: query
        name: data_is
        type: string
      - enum:
        - version_release
        - template_default_case_binding
        - default_component_config
        in: query
        name: type_is
        type: string
        x-enum-varnames:
        - DefaultConfigurationChangeItemTypeVersionRelease
        - DefaultConfigurationChangeItemTypeTemplateDefaultCaseBinding
        - DefaultConfigurationChangeItemTypeDefaultComponentConfig
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.ListDefaultConfigurationChangeItemsResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/default-config/changes/{change_id}/items/batchUpdate:
    post:
      consumes:
      - application/json
      description: batch update change items
      operationId: CloudConfigControllerBatchUpdateDefaultConfigurationChangeItems
      parameters:
      - description: change id
        in: path
        name: change_id
        required: true
        type: string
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cloudconfig.BatchUpdateDefaultConfigurationChangeItemsReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/default-config/changes/{change_id}/items/stat:
    get:
      consumes:
      - application/json
      description: stat change items
      operationId: CloudConfigControllerStatDefaultConfigurationChangeItems
      parameters:
      - description: change id
        in: path
        name: change_id
        required: true
        type: string
      - in: query
        name: config_types_of_template_default_case_binding
        type: boolean
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.StatDefaultConfigurationChangeItemsResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/default-config/changes/{change_id}/items/unreleased:
    get:
      consumes:
      - application/json
      description: list unreleased change items
      operationId: CloudConfigControllerListUnreleasedDefaultConfigurationChangeItems
      parameters:
      - description: change id
        in: path
        name: change_id
        required: true
        type: string
      - in: query
        name: environment_is
        required: true
        type: string
      - enum:
        - version_release
        - template_default_case_binding
        - default_component_config
        in: query
        name: type_is
        type: string
        x-enum-varnames:
        - DefaultConfigurationChangeItemTypeVersionRelease
        - DefaultConfigurationChangeItemTypeTemplateDefaultCaseBinding
        - DefaultConfigurationChangeItemTypeDefaultComponentConfig
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.ListUnreleasedDefaultConfigurationChangeItemsResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/default-config/changes/{change_id}/releases:
    get:
      consumes:
      - application/json
      description: list change releases
      operationId: CloudConfigControllerListDefaultConfigurationChangeReleases
      parameters:
      - description: change id
        in: path
        name: change_id
        required: true
        type: string
      - in: query
        name: environment_is
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.ListDefaultConfigurationChangeReleasesResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
    post:
      consumes:
      - application/json
      description: release a change to a environment
      operationId: CloudConfigControllerCreateDefaultConfigurationChangeRelease
      parameters:
      - description: change id
        in: path
        name: change_id
        required: true
        type: string
      - description: request param
        in: body
        name: req
        schema:
          $ref: '#/definitions/cloudconfig.CreateDefaultConfigurationChangeReleaseReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/default-config/changes/{change_id}/releases/{release_id}:
    get:
      consumes:
      - application/json
      description: list change releases
      operationId: CloudConfigControllerGetDefaultConfigurationChangeRelease
      parameters:
      - description: change id
        in: path
        name: change_id
        required: true
        type: string
      - description: release id
        in: path
        name: release_id
        required: true
        type: string
      - in: query
        name: with_released_items
        type: boolean
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.GetDefaultConfigurationChangeRelease'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/default-config/changes/{change_id}/releases/{release_id}/cancel:
    post:
      consumes:
      - application/json
      description: cancel a release
      operationId: CloudConfigControllerCancelDefaultConfigurationChangeRelease
      parameters:
      - description: change id
        in: path
        name: change_id
        required: true
        type: string
      - description: release id
        in: path
        name: release_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/default-config/changes/{change_id}/releases/{release_id}/items:
    get:
      consumes:
      - application/json
      description: list change item releases
      operationId: CloudConfigControllerListDefaultConfigurationChangeItemRelease
      parameters:
      - description: change id
        in: path
        name: change_id
        required: true
        type: string
      - description: release id
        in: path
        name: release_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.ListDefaultConfigurationChangeItemReleaseResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/default-config/changes/{change_id}/releases/rollback:
    post:
      consumes:
      - application/json
      description: rollback a change to a environment
      operationId: CloudConfigControllerRollbackDefaultConfigurationChangeRelease
      parameters:
      - description: change id
        in: path
        name: change_id
        required: true
        type: string
      - description: request param
        in: body
        name: req
        schema:
          $ref: '#/definitions/cloudconfig.RollbackDefaultConfigurationChangeReleaseReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/default-config/components:
    patch:
      consumes:
      - application/json
      description: update default components
      operationId: CloudConfigControllerUpdateDefaultComponents
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/default-config/components/change:
    post:
      consumes:
      - application/json
      description: create default components
      operationId: CloudConfigControllerChangeDefaultComponents
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cloudconfig.ChangeDefaultComponentsReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.CreateDefaultConfigurationChangeResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/default-config/template-bindings:
    get:
      consumes:
      - application/json
      description: list template default cases
      operationId: CloudConfigControllerListTemplateDefaultCaseBindings
      parameters:
      - enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - CHANGEFEED
        - SHARED_POOL
        - LOGICAL_CLUSTER
        - TICDC_NG
        - CHANGEFEED_NG
        - CHANGEFEED_ESSENTIAL
        in: query
        name: cluster_type
        required: true
        type: string
        x-enum-varnames:
        - ClusterTypeUnknown
        - ClusterTypeDedicatedTiDB
        - ClusterTypeTiCDC
        - ClusterTypeChangefeed
        - ClusterTypeSharedPool
        - ClusterTypeLogicalCluster
        - ClusterTypeTiCDCNG
        - ClusterTypeChangefeedNG
        - ClusterTypeChangefeedEssential
      - in: query
        name: config_type_is
        type: string
      - in: query
        name: default_for_cloud_provider
        type: string
      - in: query
        name: default_for_instance_type
        type: string
      - in: query
        name: default_for_tenant_id
        type: string
      - in: query
        name: default_for_version
        type: string
      - in: query
        name: exact_match
        type: boolean
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.ListTemplateDefaultCaseBindingsResp'
      tags:
      - CloudConfigController
    patch:
      consumes:
      - application/json
      description: update template default cases
      operationId: CloudConfigControllerUpdateTemplateDefaultCaseBindings
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cloudconfig.UpdateTemplateDefaultCaseBindingsReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/default-config/template-bindings/change:
    post:
      consumes:
      - application/json
      description: create a template change
      operationId: CloudConfigControllerChangeTemplateDefaultCaseBindings
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cloudconfig.ChangeTemplateDefaultCaseBindingsReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.CreateDefaultConfigurationChangeResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/default-config/template-bindings/delete-by-op:
    post:
      consumes:
      - application/json
      description: delete a template change
      operationId: CloudConfigControllerDeleteTemplateDefaultCaseBindingByOp
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cloudconfig.DeleteTemplateDefaultCaseBindingByOpReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.DeleteTemplateDefaultCaseBindingResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/default-config/template-bindings/update-by-op:
    post:
      consumes:
      - application/json
      description: create a template change
      operationId: CloudConfigControllerUpdateTemplateDefaultCaseBindingByOp
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cloudconfig.UpdateTemplateDefaultCaseBindingByOpReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.UpdateTemplateDefaultCaseBindingResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/default-config/versions/defaultrules:
    get:
      consumes:
      - application/json
      description: List rules for choose default version
      operationId: CloudConfigControllerListDefaultVersionRules
      parameters:
      - enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - CHANGEFEED
        - SHARED_POOL
        - LOGICAL_CLUSTER
        - TICDC_NG
        - CHANGEFEED_NG
        - CHANGEFEED_ESSENTIAL
        in: query
        name: cluster_type
        required: true
        type: string
        x-enum-varnames:
        - ClusterTypeUnknown
        - ClusterTypeDedicatedTiDB
        - ClusterTypeTiCDC
        - ClusterTypeChangefeed
        - ClusterTypeSharedPool
        - ClusterTypeLogicalCluster
        - ClusterTypeTiCDCNG
        - ClusterTypeChangefeedNG
        - ClusterTypeChangefeedEssential
      - in: query
        name: component
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.ListDefaultVersionRulesResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/default-config/versions/import:
    post:
      consumes:
      - application/json
      description: Import versions from gitops
      operationId: CloudConfigControllerImportVersions
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cloudconfig.ImportVersionsReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.ImportVersionsResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/default-config/versions/release:
    post:
      consumes:
      - application/json
      description: release a version
      operationId: CloudConfigControllerReleaseVersion
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cloudconfig.ReleaseVersionReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.CreateDefaultConfigurationChangeResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/defaultversion/dm/{version}:
    post:
      consumes:
      - application/json
      description: update default dm version
      operationId: CloudConfigControllerUpdateDefaultDmVersion
      parameters:
      - description: version
        in: path
        name: version
        required: true
        type: string
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cloudconfig.UpdateDefaultClusterVersionReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.UpdateDefaultClusterVersionResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/instance-types/{cluster_type}:
    get:
      consumes:
      - application/json
      description: list available instance types
      operationId: CloudConfigControllerListInstanceTypes
      parameters:
      - description: cluster_type
        enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - CHANGEFEED
        - SHARED_POOL
        - LOGICAL_CLUSTER
        - TICDC_NG
        - CHANGEFEED_NG
        - CHANGEFEED_ESSENTIAL
        in: path
        name: cluster_type
        required: true
        type: string
      - description: version
        in: query
        name: version
        type: string
      - description: config_type
        in: query
        name: config_type
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.ListInstanceTypesResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/meta_profile:
    get:
      consumes:
      - application/json
      description: list meta profiles
      operationId: CloudConfigControllerListMetaProfiles
      parameters:
      - enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - CHANGEFEED
        - SHARED_POOL
        - LOGICAL_CLUSTER
        - TICDC_NG
        - CHANGEFEED_NG
        - CHANGEFEED_ESSENTIAL
        in: query
        name: cluster_type
        type: string
        x-enum-varnames:
        - ClusterTypeUnknown
        - ClusterTypeDedicatedTiDB
        - ClusterTypeTiCDC
        - ClusterTypeChangefeed
        - ClusterTypeSharedPool
        - ClusterTypeLogicalCluster
        - ClusterTypeTiCDCNG
        - ClusterTypeChangefeedNG
        - ClusterTypeChangefeedEssential
      - in: query
        name: page
        type: integer
      - in: query
        maximum: 500
        name: per_page
        type: integer
      - in: query
        name: profile_name
        type: string
      - in: query
        name: tenant_id
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.ListMetaProfilesResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
    post:
      consumes:
      - application/json
      description: create a meta profile
      operationId: CloudConfigControllerCreateMetaProfile
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cloudconfig.CreateMetaProfileReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.OperationResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/meta_profile/{profile_id}:
    get:
      consumes:
      - application/json
      description: get the meta profile by id
      operationId: CloudConfigControllerGetMetaProfile
      parameters:
      - description: profile id
        in: path
        name: profile_id
        required: true
        type: string
      - description: cluster type
        in: query
        name: cluster_type
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.MetaProfile'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/parameter/attribute/{configtype}/{version}:
    get:
      consumes:
      - application/json
      description: list parameter attributes
      operationId: CloudConfigControllerListParameterAttributes
      parameters:
      - description: cluster_type
        enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - CHANGEFEED
        - SHARED_POOL
        - LOGICAL_CLUSTER
        - TICDC_NG
        - CHANGEFEED_NG
        - CHANGEFEED_ESSENTIAL
        in: query
        name: cluster_type
        required: true
        type: string
      - description: configtype
        in: path
        name: configtype
        required: true
        type: string
      - description: version
        in: path
        name: version
        required: true
        type: string
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: name_in
        type: array
      - in: query
        name: name_like
        type: string
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.ListParamAttrResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/parameter/attribute/{configtype}/{version}/{param_name}:
    get:
      consumes:
      - application/json
      description: get a parameter attribute
      operationId: CloudConfigControllerGetParameterAttribute
      parameters:
      - description: cluster_type
        enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - CHANGEFEED
        - SHARED_POOL
        - LOGICAL_CLUSTER
        - TICDC_NG
        - CHANGEFEED_NG
        - CHANGEFEED_ESSENTIAL
        in: query
        name: cluster_type
        required: true
        type: string
      - description: configtype
        in: path
        name: configtype
        required: true
        type: string
      - description: version
        in: path
        name: version
        required: true
        type: string
      - description: param_name
        in: path
        name: param_name
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.GetParamAttrResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/parameter/versions:
    get:
      consumes:
      - application/json
      description: list available versions from dict
      operationId: CloudConfigControllerListParameterVersions
      parameters:
      - description: cluster_type
        enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - CHANGEFEED
        - SHARED_POOL
        - LOGICAL_CLUSTER
        - TICDC_NG
        - CHANGEFEED_NG
        - CHANGEFEED_ESSENTIAL
        in: query
        name: cluster_type
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.ListParamVersionsResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/template/changes:
    get:
      consumes:
      - application/json
      description: list config template changes
      operationId: CloudConfigControllerListConfigurationTemplateChange
      parameters:
      - enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - CHANGEFEED
        - SHARED_POOL
        - LOGICAL_CLUSTER
        - TICDC_NG
        - CHANGEFEED_NG
        - CHANGEFEED_ESSENTIAL
        in: query
        name: cluster_type
        required: true
        type: string
        x-enum-varnames:
        - ClusterTypeUnknown
        - ClusterTypeDedicatedTiDB
        - ClusterTypeTiCDC
        - ClusterTypeChangefeed
        - ClusterTypeSharedPool
        - ClusterTypeLogicalCluster
        - ClusterTypeTiCDCNG
        - ClusterTypeChangefeedNG
        - ClusterTypeChangefeedEssential
      - in: query
        name: have_modified_param_like
        type: string
      - in: query
        name: id_only
        type: boolean
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - enum:
        - unspecified
        - custom
        - custom_part
        - tenant_default
        in: query
        name: template_type
        required: true
        type: string
        x-enum-comments:
          TemplateTypeCustomPart: internal use only
        x-enum-varnames:
        - TemplateTypeUnspecified
        - TemplateTypeCustom
        - TemplateTypeCustomPart
        - TemplateTypeTenantDefault
      - description: Own Tenant ID, only for TemplateTypeTenantDefault
        in: query
        name: tenant_id
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.ListConfigurationChangeResp'
      tags:
      - CloudConfigController
    post:
      consumes:
      - application/json
      description: update configuration template
      operationId: CloudConfigControllerCreateConfigurationTemplateChange
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cloudconfig.CreateConfigurationTemplateChangeReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.CreateConfigurationChangeResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/template/templates:
    get:
      consumes:
      - application/json
      description: list templates
      operationId: CloudConfigControllerListTemplates
      parameters:
      - enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - CHANGEFEED
        - SHARED_POOL
        - LOGICAL_CLUSTER
        - TICDC_NG
        - CHANGEFEED_NG
        - CHANGEFEED_ESSENTIAL
        in: query
        name: cluster_type
        required: true
        type: string
        x-enum-varnames:
        - ClusterTypeUnknown
        - ClusterTypeDedicatedTiDB
        - ClusterTypeTiCDC
        - ClusterTypeChangefeed
        - ClusterTypeSharedPool
        - ClusterTypeLogicalCluster
        - ClusterTypeTiCDCNG
        - ClusterTypeChangefeedNG
        - ClusterTypeChangefeedEssential
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: id_in
        type: array
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: name_in
        type: array
      - in: query
        name: template_type
        type: string
      - in: query
        name: tenant_id
        type: string
      - in: query
        name: version
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.ListTemplatesResp'
      tags:
      - CloudConfigController
    post:
      consumes:
      - application/json
      description: create a template
      operationId: CloudConfigControllerCreateTemplate
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cloudconfig.CreateTemplateReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.CreateTemplateResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/template/templates/{template_id}:
    get:
      consumes:
      - application/json
      description: get a template
      operationId: CloudConfigControllerGetTemplate
      parameters:
      - description: template_id
        in: path
        name: template_id
        required: true
        type: string
      - enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - CHANGEFEED
        - SHARED_POOL
        - LOGICAL_CLUSTER
        - TICDC_NG
        - CHANGEFEED_NG
        - CHANGEFEED_ESSENTIAL
        in: query
        name: cluster_type
        required: true
        type: string
        x-enum-varnames:
        - ClusterTypeUnknown
        - ClusterTypeDedicatedTiDB
        - ClusterTypeTiCDC
        - ClusterTypeChangefeed
        - ClusterTypeSharedPool
        - ClusterTypeLogicalCluster
        - ClusterTypeTiCDCNG
        - ClusterTypeChangefeedNG
        - ClusterTypeChangefeedEssential
      - in: query
        name: with_default_cases
        type: boolean
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.GetTemplateResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/template/templates/{template_id}/diff:
    get:
      consumes:
      - application/json
      description: diff a template
      operationId: CloudConfigControllerDiffTemplate
      parameters:
      - description: template_id
        in: path
        name: template_id
        required: true
        type: string
      - enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - CHANGEFEED
        - SHARED_POOL
        - LOGICAL_CLUSTER
        - TICDC_NG
        - CHANGEFEED_NG
        - CHANGEFEED_ESSENTIAL
        in: query
        name: cluster_type
        required: true
        type: string
        x-enum-varnames:
        - ClusterTypeUnknown
        - ClusterTypeDedicatedTiDB
        - ClusterTypeTiCDC
        - ClusterTypeChangefeed
        - ClusterTypeSharedPool
        - ClusterTypeLogicalCluster
        - ClusterTypeTiCDCNG
        - ClusterTypeChangefeedNG
        - ClusterTypeChangefeedEssential
      - in: query
        name: template_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.DiffTemplateResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/tenantinit/changes:
    get:
      consumes:
      - application/json
      description: list config changes
      operationId: CloudConfigControllerListTenantInitConfigurationChanges
      parameters:
      - enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - CHANGEFEED
        - SHARED_POOL
        - LOGICAL_CLUSTER
        - TICDC_NG
        - CHANGEFEED_NG
        - CHANGEFEED_ESSENTIAL
        in: query
        name: cluster_type
        required: true
        type: string
        x-enum-varnames:
        - ClusterTypeUnknown
        - ClusterTypeDedicatedTiDB
        - ClusterTypeTiCDC
        - ClusterTypeChangefeed
        - ClusterTypeSharedPool
        - ClusterTypeLogicalCluster
        - ClusterTypeTiCDCNG
        - ClusterTypeChangefeedNG
        - ClusterTypeChangefeedEssential
      - in: query
        name: have_modified_param_like
        type: string
      - in: query
        name: id_only
        type: boolean
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - in: query
        name: tenant_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.ListConfigurationChangeResp'
      tags:
      - CloudConfigController
    post:
      consumes:
      - application/json
      description: change a tenant init configuration
      operationId: CloudConfigControllerCreateTenantInitConfigurationChange
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cloudconfig.CreateTenantInitConfigurationChangeReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.CreateConfigurationChangeResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/tenantinit/changes/preview:
    post:
      consumes:
      - application/json
      description: change the configuration of a cluster
      operationId: CloudConfigControllerPreviewTenantInitConfigurationChange
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cloudconfig.PreviewTenantInitConfigurationChangeReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.PreviewConfigurationChangeResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/tenantinit/config:
    get:
      consumes:
      - application/json
      description: get a tenant init config
      operationId: CloudConfigControllerGetTenantInitConfiguration
      parameters:
      - enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - CHANGEFEED
        - SHARED_POOL
        - LOGICAL_CLUSTER
        - TICDC_NG
        - CHANGEFEED_NG
        - CHANGEFEED_ESSENTIAL
        in: query
        name: cluster_type
        required: true
        type: string
        x-enum-varnames:
        - ClusterTypeUnknown
        - ClusterTypeDedicatedTiDB
        - ClusterTypeTiCDC
        - ClusterTypeChangefeed
        - ClusterTypeSharedPool
        - ClusterTypeLogicalCluster
        - ClusterTypeTiCDCNG
        - ClusterTypeChangefeedNG
        - ClusterTypeChangefeedEssential
      - in: query
        name: tenant_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.GetConfigurationResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/tenantinit/images:
    get:
      consumes:
      - application/json
      description: get a tenant init images
      operationId: CloudConfigControllerGetTenantInitImages
      parameters:
      - enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - CHANGEFEED
        - SHARED_POOL
        - LOGICAL_CLUSTER
        - TICDC_NG
        - CHANGEFEED_NG
        - CHANGEFEED_ESSENTIAL
        in: query
        name: cluster_type
        required: true
        type: string
        x-enum-varnames:
        - ClusterTypeUnknown
        - ClusterTypeDedicatedTiDB
        - ClusterTypeTiCDC
        - ClusterTypeChangefeed
        - ClusterTypeSharedPool
        - ClusterTypeLogicalCluster
        - ClusterTypeTiCDCNG
        - ClusterTypeChangefeedNG
        - ClusterTypeChangefeedEssential
      - in: query
        name: tenant_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.TenantImages'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/versions/cluster/{cluster_type}:
    get:
      consumes:
      - application/json
      description: list available cluster versions
      operationId: CloudConfigControllerListAvailableClusterVersions
      parameters:
      - description: cluster_type
        in: path
        name: cluster_type
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.ListAvailableClusterVersionsResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/versions/cluster/{cluster_type}/{version}:
    patch:
      consumes:
      - application/json
      description: update a version
      operationId: CloudConfigControllerUpdateVersion
      parameters:
      - description: cluster_type
        enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - CHANGEFEED
        - SHARED_POOL
        - LOGICAL_CLUSTER
        - TICDC_NG
        - CHANGEFEED_NG
        - CHANGEFEED_ESSENTIAL
        in: path
        name: cluster_type
        required: true
        type: string
      - description: version
        in: path
        name: version
        required: true
        type: string
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cloudconfig.UpdateDefaultClusterVersionReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.UpdateDefaultClusterVersionResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/versions/component/{component}:
    get:
      consumes:
      - application/json
      description: list available component versions
      operationId: CloudConfigControllerListAvailableComponentVersions
      parameters:
      - description: component
        in: path
        name: component
        required: true
        type: string
      - description: cluster_type, default is DEDICATED_TIDB
        enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - CHANGEFEED
        - SHARED_POOL
        - LOGICAL_CLUSTER
        - TICDC_NG
        - CHANGEFEED_NG
        - CHANGEFEED_ESSENTIAL
        in: query
        name: cluster_type
        type: string
      - description: tenant_id, optional
        in: query
        name: tenant_id
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.ListAvailableComponentVersionsResp'
      tags:
      - CloudConfigController
    post:
      consumes:
      - application/json
      description: update component's image only for ng
      operationId: CloudConfigControllerUpdateComponentImage
      parameters:
      - description: component
        in: path
        name: component
        required: true
        type: string
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cloudconfig.UpdateComponentImageReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.OperationResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/versions/component/{component}/update-records:
    get:
      consumes:
      - application/json
      description: list component image update operation records
      operationId: CloudConfigControllerListComponentImageUpdateRecords
      parameters:
      - description: component
        in: path
        name: component
        required: true
        type: string
      - enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - CHANGEFEED
        - SHARED_POOL
        - LOGICAL_CLUSTER
        - TICDC_NG
        - CHANGEFEED_NG
        - CHANGEFEED_ESSENTIAL
        in: query
        name: cluster_type
        type: string
        x-enum-varnames:
        - ClusterTypeUnknown
        - ClusterTypeDedicatedTiDB
        - ClusterTypeTiCDC
        - ClusterTypeChangefeed
        - ClusterTypeSharedPool
        - ClusterTypeLogicalCluster
        - ClusterTypeTiCDCNG
        - ClusterTypeChangefeedNG
        - ClusterTypeChangefeedEssential
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.ListComponentImageUpdateRecordsResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cluster/dedicatedK8sResources:
    post:
      consumes:
      - application/json
      description: list dedicated k8s resources via regional-server
      operationId: ListDedicatedK8sResources
      parameters:
      - description: Dedicated logical region name (e.g. us-west-2); required with
          cloud_provider
        in: query
        name: region
        type: string
      - description: cloud provider (e.g. aws); required with region
        in: query
        name: cloud_provider
        type: string
      - description: Dedicated cluster id; alternative to region/cloud_provider
        in: query
        name: cluster_id
        type: string
      - description: same as regional-server ListK8sResourcesRequest
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/k8sresource.ListDedicatedK8sResourcesBody'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/k8sresource.ListDedicatedK8sResourcesResp'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/api.BaseResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/k8sInfos:
    get:
      consumes:
      - application/json
      description: list k8s infra information
      operationId: ListK8SInformation
      parameters:
      - enum:
        - aws
        - gcp
        in: query
        name: cloud_provider
        type: string
      - in: query
        name: version
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/k8supgrade.ListK8SInformationResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/k8sInfos/{cloud_provider}/{region}/{k8s_name}:
    get:
      consumes:
      - application/json
      description: get specific k8s infra information
      operationId: GetK8SInformation
      parameters:
      - description: cloud provider
        in: path
        name: cloud_provider
        required: true
        type: string
      - description: region
        in: path
        name: region
        required: true
        type: string
      - description: k8s name
        in: path
        name: k8s_name
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/k8supgrade.GetK8SInformationResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/k8sUpgradeAdmin:
    get:
      consumes:
      - application/json
      description: check whether the current user is a k8s upgrade admin
      operationId: GetK8sUpgradeAdmin
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/k8supgrade.GetK8sUpgradeAdminResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/k8sUpgradeSupportedVersions:
    get:
      consumes:
      - application/json
      description: list supported k8s upgrade target versions
      operationId: ListK8sUpgradeSupportedVersions
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/k8supgrade.ListK8sUpgradeSupportedVersionsResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/k8sUpgradeTasks:
    get:
      consumes:
      - application/json
      description: list k8s upgrade tasks
      operationId: ListK8sUpgradeTasks
      parameters:
      - collectionFormat: csv
        in: query
        items:
          enum:
          - aws
          - gcp
          type: string
        name: cloud_provider
        type: array
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: eos_version
        type: array
      - enum:
        - asc
        - desc
        in: query
        name: order
        type: string
        x-enum-varnames:
        - OrderTypeASC
        - OrderTypeDESC
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - in: query
        name: search
        type: string
      - enum:
        - created_at
        - timezone
        in: query
        name: sort_by
        type: string
        x-enum-varnames:
        - SortByTypeCreatedAt
        - SortByTypeTimezone
      - collectionFormat: csv
        in: query
        items:
          enum:
          - pending
          - reviewing
          - running
          - cancelled
          - completed
          type: string
        name: status
        type: array
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/k8supgrade.ListTasksResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
    post:
      consumes:
      - application/json
      description: create a k8s upgrade task
      operationId: CreateK8sUpgradeTask
      parameters:
      - description: request body
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/k8supgrade.CreateTaskReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/k8supgrade.CreateTaskResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/k8sUpgradeTasks/{task_id}:
    delete:
      consumes:
      - application/json
      description: delete a k8s upgrade task
      operationId: DeleteK8sUpgradeTask
      parameters:
      - description: task id
        in: path
        name: task_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
    get:
      consumes:
      - application/json
      description: get specific k8s upgrade task
      operationId: GetK8sUpgradeTask
      parameters:
      - description: task id
        in: path
        name: task_id
        required: true
        type: string
      - description: whether to include excluded k8s clusters in the response (default
          true)
        in: query
        name: with_excluded_k8s_clusters
        type: boolean
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/k8supgrade.GetTaskResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
    put:
      consumes:
      - application/json
      description: update a k8s upgrade task
      operationId: UpdateK8sUpgradeTask
      parameters:
      - description: task id
        in: path
        name: task_id
        required: true
        type: string
      - description: request body
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/k8supgrade.UpdateTaskReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/k8sUpgradeTasks/{task_id}/{k8s_name}:
    get:
      consumes:
      - application/json
      description: get specific k8s cluster of an upgrade task
      operationId: GetK8sUpgradeTaskCluster
      parameters:
      - description: task id
        in: path
        name: task_id
        required: true
        type: string
      - description: k8s name
        in: path
        name: k8s_name
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/k8supgrade.GetTaskK8sClusterResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
    put:
      consumes:
      - application/json
      description: update specific k8s cluster of an upgrade task
      operationId: UpdateK8sUpgradeTaskCluster
      parameters:
      - description: task id
        in: path
        name: task_id
        required: true
        type: string
      - description: k8s name
        in: path
        name: k8s_name
        required: true
        type: string
      - description: request
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/k8supgrade.UpdateTaskK8sClusterReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/k8supgrade.UpdateTaskK8sClusterResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/k8sUpgradeTasks/{task_id}/{k8s_name}/autoGeneration:
    put:
      consumes:
      - application/json
      description: update the DisableAutoGeneration field of a specific k8s cluster
        of an upgrade task
      operationId: UpdateK8sUpgradeTaskClusterAutoGeneration
      parameters:
      - description: task id
        in: path
        name: task_id
        required: true
        type: string
      - description: k8s name
        in: path
        name: k8s_name
        required: true
        type: string
      - description: request
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/k8supgrade.UpdateK8sUpgradeTaskClusterAutoGenerationReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/k8supgrade.UpdateK8sUpgradeTaskClusterAutoGenerationResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/k8sUpgradeTasks/{task_id}/{k8s_name}/cancel:
    put:
      consumes:
      - application/json
      description: cancel the upgrade of a specific k8s cluster for a running task
      operationId: CancelUpgradeK8sCluster
      parameters:
      - description: task id
        in: path
        name: task_id
        required: true
        type: string
      - description: k8s name
        in: path
        name: k8s_name
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/k8supgrade.CancelUpgradeK8sClusterResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/k8sUpgradeTasks/{task_id}/{k8s_name}/exclude:
    put:
      consumes:
      - application/json
      description: exclude a specific k8s cluster of an upgrade task
      operationId: ExcludeK8sUpgradeTaskCluster
      parameters:
      - description: task id
        in: path
        name: task_id
        required: true
        type: string
      - description: k8s name
        in: path
        name: k8s_name
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/k8supgrade.ExcludeK8sUpgradeTaskClusterResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/k8sUpgradeTasks/{task_id}/close:
    post:
      consumes:
      - application/json
      description: close a k8s upgrade task
      operationId: CloseK8sUpgradeTask
      parameters:
      - description: task id
        in: path
        name: task_id
        required: true
        type: string
      - description: request body
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/k8supgrade.CloseTaskReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/k8sUpgradeTasks/{task_id}/notice:
    get:
      consumes:
      - application/json
      description: get rendered notice content for a k8s upgrade task
      operationId: GetK8sUpgradeTaskNotice
      parameters:
      - description: task id
        in: path
        name: task_id
        required: true
        type: string
      - description: page URL used when rendering notice template placeholders
        in: query
        name: page_url
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/k8supgrade.RenderedNoticeResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
    put:
      consumes:
      - application/json
      description: update notice template (title and content) for a k8s upgrade task
      operationId: UpdateK8sUpgradeTaskNotice
      parameters:
      - description: task id
        in: path
        name: task_id
        required: true
        type: string
      - description: notice template
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/k8supgrade.NoticeTemplateReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/k8sUpgradeTasks/{task_id}/notify:
    post:
      consumes:
      - application/json
      description: Notify Sales Owner / TAM for matching clusters in an upgrade task
      operationId: NotifyK8sUpgradeTask
      parameters:
      - description: Task ID
        in: path
        name: task_id
        required: true
        type: integer
      - description: request body
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/k8supgrade.NotifyReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - Cluster
  /api/v1/devops/cluster/k8sUpgradeTasks/{task_id}/submit:
    post:
      consumes:
      - application/json
      description: submit a k8s upgrade task
      operationId: SubmitK8sUpgradeTask
      parameters:
      - description: task id
        in: path
        name: task_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/maintenances:
    get:
      consumes:
      - application/json
      description: list maintenances
      operationId: ListMaintenances
      parameters:
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: project_ids
        type: array
      - collectionFormat: csv
        in: query
        items:
          enum:
          - Pending
          - Running
          - Closed
          type: string
        name: statues
        type: array
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.ListMaintenancesResp'
      tags:
      - ClusterService
    post:
      consumes:
      - application/json
      description: create a maintenances
      operationId: CreateMaintenance
      parameters:
      - description: request param
        in: body
        name: req
        schema:
          $ref: '#/definitions/cluster.CreateMaintenanceReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.CreateMaintenanceResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/maintenances/{maintenance_id}:
    get:
      consumes:
      - application/json
      description: get a maintenances
      operationId: GetMaintenance
      parameters:
      - description: maintenance id
        in: path
        name: maintenance_id
        required: true
        type: integer
      - in: query
        name: with_executions
        type: boolean
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.GetMaintenanceResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/maintenances/{maintenance_id}/close:
    post:
      consumes:
      - application/json
      description: close a maintenances
      operationId: CloseMaintenance
      parameters:
      - description: maintenance id
        in: path
        name: maintenance_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/maintenances/{maintenance_id}/executions/{execution_id}/cancel:
    post:
      consumes:
      - application/json
      description: cancel a maintenance executions
      operationId: CancelMaintenanceExecution
      parameters:
      - description: maintenance id
        in: path
        name: maintenance_id
        required: true
        type: integer
      - description: execution id
        in: path
        name: execution_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/maintenances/{maintenance_id}/executions/{execution_id}/finish:
    post:
      consumes:
      - application/json
      description: finish a maintenance executions
      operationId: FinishMaintenanceExecution
      parameters:
      - description: maintenance id
        in: path
        name: maintenance_id
        required: true
        type: integer
      - description: execution id
        in: path
        name: execution_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/maintenances/{maintenance_id}/executions/{execution_id}/start:
    post:
      consumes:
      - application/json
      description: start a maintenance executions
      operationId: StartMaintenanceExecution
      parameters:
      - description: maintenance id
        in: path
        name: maintenance_id
        required: true
        type: integer
      - description: execution id
        in: path
        name: execution_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/migration/dedicate2premium/prechecks:
    get:
      consumes:
      - application/json
      description: list dedicated to premium migration prechecks
      operationId: ListDedicatedToPremiumPrechecks
      parameters:
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - in: query
        name: source_cluster_id
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.ListDedicatedToPremiumPrechecksResp'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/api.BaseResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
    post:
      consumes:
      - application/json
      description: create a dedicated to premium migration precheck
      operationId: CreateDedicatedToPremiumPrecheck
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cluster.CreateDedicatedToPremiumPrecheckReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.DedicatedToPremiumPrecheckResp'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/api.BaseResp'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/api.BaseResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/migration/dedicate2premium/prechecks/{precheck_id}:
    get:
      consumes:
      - application/json
      description: get a dedicated to premium migration precheck
      operationId: GetDedicatedToPremiumPrecheck
      parameters:
      - description: precheck id
        in: path
        name: precheck_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.DedicatedToPremiumPrecheckResp'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/api.BaseResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/ops-maintenance-windows:
    get:
      consumes:
      - application/json
      description: list cluster ops maintenance windows
      operationId: ClusterServiceListClusterOpsMaintenanceWindows
      parameters:
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: cluster_ids
        type: array
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.ListClusterOpsMaintenanceWindowsResp'
      tags:
      - ClusterService
    post:
      consumes:
      - application/json
      description: create a cluster ops maintenance window
      operationId: ClusterServiceCreateClusterOpsMaintenanceWindow
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cluster.CreateClusterOpsMaintenanceWindowReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.CreateClusterOpsMaintenanceWindowResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/ops-maintenance-windows/{cluster_id}:
    delete:
      consumes:
      - application/json
      description: delete a cluster ops maintenance window
      operationId: ClusterServiceDeleteClusterOpsMaintenanceWindow
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
    get:
      consumes:
      - application/json
      description: get a cluster ops maintenance window by cluster id
      operationId: ClusterServiceGetClusterOpsMaintenanceWindow
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.GetClusterOpsMaintenanceWindowResp'
      tags:
      - ClusterService
    put:
      consumes:
      - application/json
      description: update a cluster ops maintenance window
      operationId: ClusterServiceUpdateClusterOpsMaintenanceWindow
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cluster.UpdateClusterOpsMaintenanceWindowReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.UpdateClusterOpsMaintenanceWindowResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/ops-maintenance-windows/{cluster_id}/check:
    get:
      consumes:
      - application/json
      description: get a cluster ops maintenance window by cluster id
      operationId: ClusterServiceIsInClusterOpsMaintenanceWindow
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      - collectionFormat: csv
        description: ExecuteTimes are execute times as Unix timestamps in seconds.
          It supports repeated query keys and comma-separated values. If omitted,
          current server time is used.
        in: query
        items:
          type: integer
        name: execute_times
        type: array
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.IsInClusterOpsMaintenanceWindowResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/resource-pools:
    get:
      consumes:
      - application/json
      description: list resource pools
      operationId: ListResourcePools
      parameters:
      - in: query
        name: page
        type: integer
      - in: query
        name: pagesize
        type: integer
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: resource_pool_id
        type: array
      - enum:
        - BASIC
        - DETAIL
        in: query
        name: view
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.ListClustersResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/resource-pools/{resource_pool_id}:
    get:
      consumes:
      - application/json
      description: get resource pool
      operationId: GetResourcePool
      parameters:
      - description: resource_pool_id
        in: path
        name: resource_pool_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.GetClusterResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/shared-resource-pools:
    get:
      consumes:
      - application/json
      description: list shared resource pools
      operationId: ListSharedResourcePools
      parameters:
      - in: query
        name: page
        type: integer
      - in: query
        name: pagesize
        type: integer
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: resource_pool_id
        type: array
      - in: query
        name: service_plan
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.ListClustersResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/shared-resource-pools/{resource_pool_id}:
    get:
      consumes:
      - application/json
      description: get shared resource pool
      operationId: GetSharedResourcePool
      parameters:
      - description: resource_pool_id
        in: path
        name: resource_pool_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.GetClusterResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/traffic/replays:
    get:
      consumes:
      - application/json
      description: list replays
      operationId: ClusterServiceListTrafficReplays
      parameters:
      - in: query
        name: cluster_id
        required: true
        type: string
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - in: query
        name: tenant_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.ListTrafficReplaysResponse'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
    post:
      consumes:
      - application/json
      description: create a replay
      operationId: ClusterServiceCreateTrafficReplay
      parameters:
      - description: CreateReplayRequest
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cluster.CreateTrafficReplayRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.CreateTrafficReplayResponse'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/traffic/replays/{replay_id}:
    delete:
      consumes:
      - application/json
      description: delete a replay
      operationId: ClusterServiceDeleteTrafficReplay
      parameters:
      - description: replay id
        in: path
        name: replay_id
        required: true
        type: string
      - in: query
        name: cluster_id
        required: true
        type: string
      - in: query
        name: tenant_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.DeleteTrafficReplayResponse'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
    get:
      consumes:
      - application/json
      description: get a replay
      operationId: ClusterServiceGetTrafficReplay
      parameters:
      - description: replay id
        in: path
        name: replay_id
        required: true
        type: string
      - in: query
        name: cluster_id
        required: true
        type: string
      - in: query
        name: tenant_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.GetTrafficReplayResponse'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
    put:
      consumes:
      - application/json
      description: update a replay
      operationId: ClusterServiceUpdateTrafficReplay
      parameters:
      - description: replay id
        in: path
        name: replay_id
        required: true
        type: string
      - description: UpdateReplayRequest
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cluster.UpdateTrafficReplayRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.UpdateTrafficReplayResponse'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/traffic/replays/{replay_id}/start:
    post:
      consumes:
      - application/json
      description: start a replay
      operationId: ClusterServiceStartTrafficReplay
      parameters:
      - description: replay id
        in: path
        name: replay_id
        required: true
        type: string
      - description: StartReplayRequest
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cluster.StartTrafficReplayRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.StartTrafficReplayResponse'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/cluster/traffic/replays/{replay_id}/stop:
    post:
      consumes:
      - application/json
      description: stop a replay
      operationId: ClusterServiceStopTrafficReplay
      parameters:
      - description: replay id
        in: path
        name: replay_id
        required: true
        type: string
      - description: StopReplayRequest
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cluster.StopTrafficReplayRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.StopTrafficReplayResponse'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/clusters:
    get:
      consumes:
      - application/json
      description: list cluster
      operationId: ListClusters
      parameters:
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: cluster_id
        type: array
      - in: query
        name: deploy_type
        type: string
      - description: List Resource Pools instead of custom clusters
        in: query
        name: is_resource_pool
        type: boolean
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: project_id
        type: array
      - in: query
        name: service_plan
        type: string
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: tenant_id
        type: array
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.ListClustersResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/clusters/{cluster_id}:
    get:
      consumes:
      - application/json
      description: get cluster
      operationId: GetCluster
      parameters:
      - description: cluster_id
        in: path
        name: cluster_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.GetClusterResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/clusters/{cluster_id}/alert-summary:
    get:
      consumes:
      - application/json
      description: get alert summary
      operationId: GetAlertSummary
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      - in: query
        name: end_ts
        required: true
        type: integer
      - in: query
        name: start_ts
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.GetAlertSummaryResp'
      tags:
      - ClusterService
  /api/v1/devops/clusters/{cluster_id}/alerts:
    get:
      consumes:
      - application/json
      description: list alerts
      operationId: ListAlerts
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      - in: query
        name: end_ts
        required: true
        type: integer
      - in: query
        name: page_size
        type: integer
      - in: query
        name: page_token
        type: string
      - collectionFormat: csv
        in: query
        items:
          enum:
          - Major
          - Critical
          type: string
        name: priority
        type: array
      - in: query
        name: recovered
        type: boolean
      - in: query
        name: search
        type: string
      - in: query
        name: start_ts
        required: true
        type: integer
      - enum:
        - internal
        - external
        in: query
        name: type
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.ListAlertsResp'
      tags:
      - ClusterService
  /api/v1/devops/clusters/{cluster_id}/cluster-resources:
    get:
      consumes:
      - application/json
      description: list cluster resources
      operationId: ListClusterResources
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/k8sresource.ListClusterResourcesResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/clusters/{cluster_id}/components:
    get:
      consumes:
      - application/json
      description: get cluster components
      operationId: GetClusterComponents
      parameters:
      - description: cluster_id
        in: path
        name: cluster_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.GetClusterComponentsResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/clusters/{cluster_id}/controlplane:
    get:
      consumes:
      - application/json
      description: get controlplane k8s resource
      operationId: GetControlplaneK8SResource
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      - in: query
        name: namespace
        type: string
      - in: query
        name: resource_kind
        type: string
      - in: query
        name: resource_name
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/k8sresource.GetK8SResourceResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/clusters/{cluster_id}/ctl:
    post:
      consumes:
      - application/json
      description: execute ctl command on cluster
      operationId: ClusterControllerExecCtl
      parameters:
      - description: cluster_id
        in: path
        name: cluster_id
        required: true
        type: string
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cluster.ExecCtlReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.ExecCtlResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterController
  /api/v1/devops/clusters/{cluster_id}/dm-ns:
    get:
      consumes:
      - application/json
      description: get cluster dm namespace info
      operationId: GetDMNamespace
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.GetDMNamespaceResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/clusters/{cluster_id}/hetero-deploy/apply:
    post:
      consumes:
      - application/json
      description: apply heterogeneous deploy for a cluster
      operationId: ClusterServiceApplyHeterogeneousDeploy
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cluster.ApplyHeterogeneousDeployRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.ApplyHeterogeneousDeployResponse'
      tags:
      - ClusterService
  /api/v1/devops/clusters/{cluster_id}/hetero-deploy/delete:
    post:
      consumes:
      - application/json
      description: delete heterogeneous deploy for a cluster
      operationId: ClusterServiceDeleteHeterogeneousDeploy
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cluster.DeleteHeterogeneousDeployRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.DeleteHeterogeneousDeployResponse'
      tags:
      - ClusterService
  /api/v1/devops/clusters/{cluster_id}/hetero-deploy/query:
    get:
      consumes:
      - application/json
      description: get heterogeneous deploy for a cluster
      operationId: ClusterServiceGetHeterogeneousDeploy
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      - enum:
        - tikv
        - tidb
        - tiflash
        - pd
        - tiproxy
        - ticdc
        - cassandra
        in: query
        name: component_type
        required: true
        type: string
        x-enum-varnames:
        - ComponentTypeTikv
        - ComponentTypeTidb
        - ComponentTypeTiflash
        - ComponentTypePd
        - ComponentTypeTiproxy
        - ComponentTypeTicdc
        - ComponentTypeCassandra
      - in: query
        name: tidb_group_id
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.GetHeterogeneousDeployResponse'
      tags:
      - ClusterService
  /api/v1/devops/clusters/{cluster_id}/iam-info:
    get:
      consumes:
      - application/json
      description: get byoc cluster's cloud IAM info
      operationId: GetCloudIAMInfo
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.GetCloudIAMInfoResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/clusters/{cluster_id}/migration/create-migration-cluster:
    post:
      consumes:
      - application/json
      description: create a cluster for migration
      operationId: ClusterServiceCreateMigrationCluster
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cluster.CreateMigrationClusterRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.CreateMigrationClusterResponse'
      tags:
      - ClusterService
  /api/v1/devops/clusters/{cluster_id}/migration/migrate-privatelink:
    post:
      consumes:
      - application/json
      description: migrate cluster private link
      operationId: ClusterServiceMigratePrivateLink
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cluster.MigratePrivateLinkRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.MigratePrivateLinkResponse'
      tags:
      - ClusterService
  /api/v1/devops/clusters/{cluster_id}/topology:
    get:
      consumes:
      - application/json
      description: get cluster topology
      operationId: ClusterControllerGetTopology
      parameters:
      - description: cluster_id
        in: path
        name: cluster_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.GetTopologyResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterController
  /api/v1/devops/clusters/{cluster_id}/vpc-peerings:
    get:
      consumes:
      - application/json
      description: list vpc peerings
      operationId: ListVPCPeerings
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.ListVPCPeeringsResp'
      tags:
      - ClusterService
    post:
      consumes:
      - application/json
      description: create vpc peering
      operationId: CreateVPCPeering
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      - description: CreateVPCPeeringReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cluster.CreateVPCPeeringReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.CommonResp'
      tags:
      - ClusterService
  /api/v1/devops/clusters/{cluster_id}/vpc-peerings/{vpc_peering_id}:
    delete:
      consumes:
      - application/json
      description: delete vpc peering
      operationId: DeleteVPCPeering
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      - description: vpc peering id
        in: path
        name: vpc_peering_id
        required: true
        type: string
      - description: DeleteVPCPeeringReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cluster.DeleteVPCPeeringReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cluster.CommonResp'
      tags:
      - ClusterService
  /api/v1/devops/clusters/k8s-resources:
    get:
      consumes:
      - application/json
      description: list k8s resources
      operationId: ListK8SResources
      parameters:
      - in: query
        name: begin_time
        type: string
      - in: query
        name: cluster_id
        type: string
      - in: query
        name: end_time
        type: string
      - in: query
        name: namespace
        type: string
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - in: query
        name: region
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/k8sresource.ListK8SResourcesResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ClusterService
  /api/v1/devops/configcenter/add:
    post:
      consumes:
      - application/json
      description: Add Config Attribute for Some Version
      operationId: AddConfigAttribute
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/configcenter.AddAttributeReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ConfigCenterService
  /api/v1/devops/configcenter/copy:
    post:
      consumes:
      - application/json
      description: Copy All Config Attribute From Some Version
      operationId: CopyAttributeFromVersion
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/configcenter.CopyFromVersionReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ConfigCenterService
  /api/v1/devops/configcenter/list:
    get:
      consumes:
      - application/json
      description: List Config Attribute in Some Version
      operationId: ListConfigAttribute
      parameters:
      - in: query
        name: component
        type: string
      - in: query
        name: param_name
        type: string
      - in: query
        name: version
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/configcenter.ListAttributesResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ConfigCenterService
  /api/v1/devops/configcenter/modify:
    post:
      consumes:
      - application/json
      description: Modify some attribute
      operationId: ModifyAttribute
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/configcenter.ModifyReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ConfigCenterService
  /api/v1/devops/controlplane/deployments:
    get:
      consumes:
      - application/json
      description: list deployments
      operationId: DeploymentControllerListDeployments
      parameters:
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - in: query
        name: phase
        type: string
      - in: query
        name: scenario
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/controlplane.ListDeploymentResp'
      tags:
      - DeploymentController
    post:
      consumes:
      - application/json
      description: create a new deployment
      operationId: DeploymentControllerCreateDeployment
      parameters:
      - description: request body
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/controlplane.CreateDeploymentReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/controlplane.CreateDeploymentResp'
      tags:
      - DeploymentController
  /api/v1/devops/controlplane/deployments/{deployment_id}:
    get:
      consumes:
      - application/json
      description: get a deployment
      operationId: DeploymentControllerGetDeployment
      parameters:
      - description: deployment id
        in: path
        name: deployment_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/controlplane.GetDeploymentResp'
      tags:
      - DeploymentController
  /api/v1/devops/controlplane/deployments/{deployment_id}/apply:
    post:
      consumes:
      - application/json
      description: start apply workflow for a deployment (after approval)
      operationId: DeploymentControllerStartApply
      parameters:
      - description: deployment id
        in: path
        name: deployment_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - DeploymentController
  /api/v1/devops/controlplane/deployments/{deployment_id}/cancel:
    post:
      consumes:
      - application/json
      description: cancel a deployment
      operationId: DeploymentControllerCancel
      parameters:
      - description: deployment id
        in: path
        name: deployment_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - DeploymentController
  /api/v1/devops/controlplane/deployments/{deployment_id}/preview:
    post:
      consumes:
      - application/json
      description: start preview workflow for a deployment
      operationId: DeploymentControllerStartPreview
      parameters:
      - description: deployment id
        in: path
        name: deployment_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/controlplane.StartPreviewResp'
      tags:
      - DeploymentController
  /api/v1/devops/controlplane/deployments/{deployment_id}/retry:
    post:
      consumes:
      - application/json
      description: retry a failed apply using the same frozen snapshot
      operationId: DeploymentControllerRetryApply
      parameters:
      - description: deployment id
        in: path
        name: deployment_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - DeploymentController
  /api/v1/devops/dashboard/cloud-oncall:
    get:
      consumes:
      - application/json
      description: get cloud oncall info
      operationId: GetCloudOncallInfo
      parameters:
      - in: query
        name: endTs
        required: true
        type: integer
      - in: query
        name: startTs
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/dashboard.CloudOncallInfoResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - DashboardService
  /api/v1/devops/dashboard/critical-alert:
    get:
      consumes:
      - application/json
      description: get critical alert info
      operationId: GetCriticalAlertInfo
      parameters:
      - in: query
        name: endTs
        required: true
        type: integer
      - in: query
        name: startTs
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/dashboard.CriticalAlertInfoResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - DashboardService
  /api/v1/devops/dashboard/incident:
    get:
      consumes:
      - application/json
      description: get incident info
      operationId: GetIncidentInfo
      parameters:
      - in: query
        name: endTs
        required: true
        type: integer
      - in: query
        name: startTs
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/dashboard.IncidentInfoResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - DashboardService
  /api/v1/devops/dashboard/release:
    get:
      consumes:
      - application/json
      description: get release info
      operationId: GetReleaseInfo
      parameters:
      - in: query
        name: endTs
        required: true
        type: integer
      - in: query
        name: startTs
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/dashboard.ReleaseInfoResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - DashboardService
  /api/v1/devops/dashboard/sla:
    get:
      consumes:
      - application/json
      description: get sla info
      operationId: GetSLAInfo
      parameters:
      - in: query
        name: endTs
        required: true
        type: integer
      - in: query
        name: startTs
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/dashboard.SLAInfoResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - DashboardService
  /api/v1/devops/dashboard/sla-dedicated-detail:
    get:
      consumes:
      - application/json
      description: get cluster detail of dedicated sla
      operationId: GetClusterDetailOfDedicatedSLA
      parameters:
      - in: query
        name: clusterID
        required: true
        type: string
      - in: query
        name: includeFake
        type: boolean
      - in: query
        name: month
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/dashboard.GetClusterDetailOfDedicatedSLAResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - DashboardService
  /api/v1/devops/dashboard/sla-dedicated-monthly:
    get:
      consumes:
      - application/json
      description: get monthly summary of dedicated sla
      operationId: GetMonthlySummaryOfDedicatedSLA
      parameters:
      - in: query
        name: includeDeleted
        type: boolean
      - in: query
        name: month
        required: true
        type: string
      - in: query
        name: search
        type: string
      - collectionFormat: csv
        in: query
        items:
          enum:
          - perfect
          - warning
          - breach
          type: string
        name: status
        type: array
      - enum:
        - single
        - multi
        in: query
        name: tidbInstanceMode
        type: string
        x-enum-varnames:
        - TiDBInstanceSingle
        - TiDBInstanceMulti
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/dashboard.GetMonthlySummaryOfDedicatedSLAResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - DashboardService
  /api/v1/devops/dashboard/sla-next-gen-detail:
    get:
      consumes:
      - application/json
      description: get cluster detail of next-gen sla
      operationId: GetClusterDetailOfNextGenSLA
      parameters:
      - in: query
        name: clusterID
        required: true
        type: string
      - in: query
        name: includeFake
        type: boolean
      - in: query
        name: month
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/dashboard.GetClusterDetailOfNextGenSLAResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - DashboardService
  /api/v1/devops/dashboard/sla-next-gen-monthly:
    get:
      consumes:
      - application/json
      description: get monthly summary of next-gen sla
      operationId: GetMonthlySummaryOfNextGenSLA
      parameters:
      - enum:
        - premium
        - byoc
        in: query
        name: clusterDeployType
        type: string
      - in: query
        name: includeDeleted
        type: boolean
      - in: query
        name: month
        required: true
        type: string
      - in: query
        name: search
        type: string
      - collectionFormat: csv
        in: query
        items:
          enum:
          - perfect
          - warning
          - breach
          type: string
        name: status
        type: array
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/dashboard.GetMonthlySummaryOfNextGenSLAResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - DashboardService
  /api/v1/devops/dashboard/slo:
    get:
      consumes:
      - application/json
      description: get slo info
      operationId: GetSLOInfo
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/dashboard.SLOInfoResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - DashboardService
  /api/v1/devops/dashboard/top-qps-tenants:
    get:
      consumes:
      - application/json
      description: get top10 qps tenants
      operationId: GetTop10QPSTenants
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/dashboard.GetTop10QPSTenantsResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - DashboardService
  /api/v1/devops/dashboard/top-tiflash-storage-tenants:
    get:
      consumes:
      - application/json
      description: get top10 tiflash storage tenants
      operationId: GetTop10TiFlashStorageTenants
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/dashboard.GetTop10TiFlashStorageTenantsResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - DashboardService
  /api/v1/devops/dashboard/top-tikv-storage-tenants:
    get:
      consumes:
      - application/json
      description: get top10 tikv storage tenants
      operationId: GetTop10TiKVStorageTenants
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/dashboard.GetTop10TiKVStorageTenantsResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - DashboardService
  /api/v1/devops/feature-wl:
    get:
      consumes:
      - application/json
      description: list feature whitelists
      operationId: FeatureWhitelistControllerListFeatureWhitelists
      parameters:
      - in: query
        name: name
        type: string
      - in: query
        name: page
        type: integer
      - in: query
        name: page_size
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/feature_wl.ListFeatureWhitelistsResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - FeatureWhitelistController
    post:
      consumes:
      - application/json
      description: create feature whitelist
      operationId: FeatureWhitelistControllerCreateFeatureWhitelist
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/feature_wl.FeatureWhitelistInfo'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - FeatureWhitelistController
  /api/v1/devops/feature-wl/{name}:
    delete:
      consumes:
      - application/json
      description: delete feature whitelist
      operationId: FeatureWhitelistControllerDeleteFeatureWhitelist
      parameters:
      - description: feature name
        in: path
        name: name
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - FeatureWhitelistController
    put:
      consumes:
      - application/json
      description: update feature whitelist
      operationId: FeatureWhitelistControllerUpdateFeatureWhitelist
      parameters:
      - description: feature name
        in: path
        name: name
        required: true
        type: string
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/feature_wl.FeatureWhitelistInfo'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - FeatureWhitelistController
  /api/v1/devops/github/pulls:
    get:
      consumes:
      - application/json
      description: list pull requests.
      operationId: GithubControllerListPullRequests
      parameters:
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: pr_locations
        type: array
      - in: query
        name: repo_location
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/github.ListPullRequestsResp'
      tags:
      - GithubController
  /api/v1/devops/github/pulls/{owner}/{repo}/{pr_number}:
    get:
      consumes:
      - application/json
      description: get a pull request.
      operationId: GithubControllerGetPullRequest
      parameters:
      - description: owner name
        in: path
        name: owner
        required: true
        type: string
      - description: repo name
        in: path
        name: repo
        required: true
        type: string
      - description: pr number
        in: path
        name: pr_number
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/github.GetPullRequestResp'
      tags:
      - GithubController
  /api/v1/devops/github/raw/repos/{owner}/{repo}/labels:
    get:
      consumes:
      - application/json
      description: list labels of a repo from github directly
      operationId: GithubControllerRawListLabels
      parameters:
      - description: owner name
        in: path
        name: owner
        required: true
        type: string
      - description: repo name
        in: path
        name: repo
        required: true
        type: string
      - in: query
        name: cursor
        type: string
      - in: query
        name: per_page
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/github.RawListLabelsResp'
      tags:
      - GithubController
  /api/v1/devops/github/raw/repos/{owner}/{repo}/labels/{label_name}:
    get:
      consumes:
      - application/json
      description: get a label from github directly
      operationId: GithubControllerRawGetLabel
      parameters:
      - description: owner name
        in: path
        name: owner
        required: true
        type: string
      - description: repo name
        in: path
        name: repo
        required: true
        type: string
      - description: label name
        in: path
        name: label_name
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/github.RawGetLabelResp'
      tags:
      - GithubController
  /api/v1/devops/github/raw/repos/{owner}/{repo}/pulls:
    get:
      consumes:
      - application/json
      description: list pull requests from github directly
      operationId: GithubControllerRawListPullRequests
      parameters:
      - description: owner name
        in: path
        name: owner
        required: true
        type: string
      - description: repo name
        in: path
        name: repo
        required: true
        type: string
      - in: query
        name: cursor
        type: string
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: labels
        type: array
      - in: query
        name: per_page
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/github.RawListPullRequestsResp'
      tags:
      - GithubController
  /api/v1/devops/github/raw/repos/{owner}/{repo}/pulls/{pr_number}:
    get:
      consumes:
      - application/json
      description: get a pull request from github directly
      operationId: GithubControllerRawGetPullRequest
      parameters:
      - description: owner name
        in: path
        name: owner
        required: true
        type: string
      - description: repo name
        in: path
        name: repo
        required: true
        type: string
      - description: pr number
        in: path
        name: pr_number
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/github.RawGetPullRequestResp'
      tags:
      - GithubController
  /api/v1/devops/github/raw/repos/{owner}/{repo}/releases:
    get:
      consumes:
      - application/json
      description: list releases from github directly
      operationId: GithubControllerRawListReleases
      parameters:
      - description: owner name
        in: path
        name: owner
        required: true
        type: string
      - description: repo name
        in: path
        name: repo
        required: true
        type: string
      - in: query
        name: cursor
        type: string
      - in: query
        name: per_page
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/github.RawListReleasesResp'
      tags:
      - GithubController
  /api/v1/devops/github/raw/repos/{owner}/{repo}/releases/{release_tag}:
    get:
      consumes:
      - application/json
      description: get a release from github directly
      operationId: GithubControllerRawGetRelease
      parameters:
      - description: owner name
        in: path
        name: owner
        required: true
        type: string
      - description: repo name
        in: path
        name: repo
        required: true
        type: string
      - description: the tag name
        in: path
        name: release_tag
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/github.RawGetReleaseResp'
      tags:
      - GithubController
  /api/v1/devops/github/raw/repos/{owner}/{repo}/releases/diff:
    get:
      consumes:
      - application/json
      description: get pull requests between two releases from github directly
      operationId: GithubControllerRawDiffRelease
      parameters:
      - description: owner name
        in: path
        name: owner
        required: true
        type: string
      - description: repo name
        in: path
        name: repo
        required: true
        type: string
      - in: query
        name: prev
        required: true
        type: string
      - in: query
        name: target
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/github.RawDiffReleaseResp'
      tags:
      - GithubController
  /api/v1/devops/github/repos:
    get:
      consumes:
      - application/json
      description: list repositories of an org
      operationId: GithubControllerListRepositories
      parameters:
      - in: query
        name: location_like
        type: string
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: owners
        type: array
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/github.ListRepositoriesResp'
      tags:
      - GithubController
  /api/v1/devops/github/repos/{owner}/{repo}:
    get:
      consumes:
      - application/json
      description: get a repo
      operationId: GithubControllerGetRepo
      parameters:
      - description: owner name
        in: path
        name: owner
        required: true
        type: string
      - description: repo name
        in: path
        name: repo
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/github.GetRepositoryResp'
      tags:
      - GithubController
  /api/v1/devops/incidents:
    get:
      consumes:
      - application/json
      description: list incidents
      operationId: ListIncidents
      parameters:
      - description: page number
        in: query
        name: page
        type: integer
      - description: page size
        in: query
        name: per_page
        type: integer
      - description: war room ID
        in: query
        name: war_room_id
        type: integer
      - description: incident status
        enum:
        - running
        - completed
        in: query
        name: status
        type: string
      - description: incident tier
        enum:
        - t0
        - t1
        - t2
        - t3
        - t4
        in: query
        name: tier
        type: string
      - collectionFormat: multi
        description: components that every incident must contain
        in: query
        items:
          type: string
        name: components
        type: array
      - collectionFormat: multi
        description: business regions that every incident must contain
        in: query
        items:
          type: string
        name: biz_regions
        type: array
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/incident.ListIncidentsResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
    post:
      consumes:
      - application/json
      description: create Incident
      operationId: CreateIncident
      parameters:
      - description: request
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/incident.CreateIncidentReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/incident.CreateIncidentResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
  /api/v1/devops/incidents/{incident_id}:
    delete:
      consumes:
      - application/json
      description: delete incident
      operationId: DeleteIncident
      parameters:
      - description: incident id
        in: path
        name: incident_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/incident.DeleteIncidentResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
    get:
      consumes:
      - application/json
      description: get incident
      operationId: GetIncident
      parameters:
      - description: incident id
        in: path
        name: incident_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/entity.Incident'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
    put:
      consumes:
      - application/json
      description: update incident
      operationId: UpdateIncident
      parameters:
      - description: incident id
        in: path
        name: incident_id
        required: true
        type: integer
      - description: request
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/incident.UpdateIncidentReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/incident.UpdateIncidentResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
  /api/v1/devops/incidents/{incident_id}/log/{log_item_id}:
    put:
      consumes:
      - application/json
      description: update incident log item
      operationId: UpdateIncidentLogItem
      parameters:
      - description: incident id
        in: path
        name: incident_id
        required: true
        type: integer
      - description: log item id
        in: path
        name: log_item_id
        required: true
        type: integer
      - description: request
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/entity.IncidentLogItem'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.EmptyResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
  /api/v1/devops/incidents/{incident_id}/logs:
    get:
      consumes:
      - application/json
      description: list incident logs
      operationId: ListIncidentLogs
      parameters:
      - description: incident id
        in: path
        name: incident_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/incident.ListIncidentLogsResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
    post:
      consumes:
      - application/json
      description: create Incident log item
      operationId: CreateIncidentLogItem
      parameters:
      - description: incident id
        in: path
        name: incident_id
        required: true
        type: integer
      - description: request
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/entity.IncidentLogItem'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.EmptyResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
  /api/v1/devops/incidents/{incident_id}/logs/{log_item_id}:
    delete:
      consumes:
      - application/json
      description: delete incident log item
      operationId: DeleteIncidentLogItem
      parameters:
      - description: incident id
        in: path
        name: incident_id
        required: true
        type: integer
      - description: log item id
        in: path
        name: log_item_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/incident.DeleteIncidentLogItemResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
    get:
      consumes:
      - application/json
      description: get incident log item
      operationId: GetIncidentLogItem
      parameters:
      - description: incident id
        in: path
        name: incident_id
        required: true
        type: integer
      - description: log item id
        in: path
        name: log_item_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/entity.IncidentLogItem'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
  /api/v1/devops/incidents/{incident_id}/postmortem/todoactions/import:
    post:
      consumes:
      - application/json
      description: import todo actions from the incident's existing postmortem Feishu
        document
      operationId: ImportIncidentPostMortemToDoActions
      parameters:
      - description: incident id
        in: path
        name: incident_id
        required: true
        type: integer
      - description: force import even when todo actions already exist
        in: query
        name: force
        type: boolean
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/incident.ImportIncidentPostMortemToDoActionsResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
  /api/v1/devops/incidents/{incident_id}/postmortems:
    get:
      consumes:
      - application/json
      description: list incident postmortem items
      operationId: ListIncidentPostMortemItems
      parameters:
      - description: postmortem id
        in: path
        name: incident_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/incident.ListIncidentPostMortemItemsResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
    post:
      consumes:
      - application/json
      description: create incident postmortem
      operationId: CreateIncidentPostMortem
      parameters:
      - description: incident id
        in: path
        name: incident_id
        required: true
        type: integer
      - description: CreateIncidentPostMortemReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/incident.CreateIncidentPostMortemReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/incident.CreateIncidentPostMortemResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
  /api/v1/devops/incidents/{incident_id}/postmortems/{postmortem_id}:
    delete:
      consumes:
      - application/json
      description: delete incident postmortem
      operationId: DeleteIncidentPostMortem
      parameters:
      - description: incident id
        in: path
        name: incident_id
        required: true
        type: integer
      - description: postmortem id
        in: path
        name: postmortem_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/incident.DeleteIncidentPostMortemResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
    get:
      consumes:
      - application/json
      description: get incident postmortem
      operationId: GetIncidentPostMortem
      parameters:
      - description: incident id
        in: path
        name: incident_id
        required: true
        type: integer
      - description: postmortem id
        in: path
        name: postmortem_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/incident.GetIncidentPostMortemResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
    post:
      consumes:
      - application/json
      description: update incident postmortem
      operationId: UpdateIncidentPostMortem
      parameters:
      - description: incident id
        in: path
        name: incident_id
        required: true
        type: integer
      - description: postmortem id
        in: path
        name: postmortem_id
        required: true
        type: integer
      - description: UpdateIncidentPostMortemReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/incident.UpdateIncidentPostMortemReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/incident.UpdateIncidentPostMortemResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
  /api/v1/devops/incidents/{incident_id}/postmortems/{postmortem_id}/timelines:
    get:
      consumes:
      - application/json
      description: list incident postmortem timelines
      operationId: ListIncidentPostMortemTimelines
      parameters:
      - description: incident id
        in: path
        name: incident_id
        required: true
        type: integer
      - description: postmortem id
        in: path
        name: postmortem_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/incident.ListIncidentPostMortemTimelinesResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
    post:
      consumes:
      - application/json
      description: create incident postmortem timeline
      operationId: CreateIncidentPostMortemTimeline
      parameters:
      - description: incident id
        in: path
        name: incident_id
        required: true
        type: integer
      - description: postmortem id
        in: path
        name: postmortem_id
        required: true
        type: integer
      - description: CreateIncidentPostMortemTimelineReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/incident.CreateIncidentPostMortemTimelineReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/incident.CreateIncidentPostMortemTimelineResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
  /api/v1/devops/incidents/{incident_id}/postmortems/{postmortem_id}/timelines/{timeline_id}:
    delete:
      consumes:
      - application/json
      description: delete incident postmortem timeline
      operationId: DeleteIncidentPostMortemTimeline
      parameters:
      - description: incident id
        in: path
        name: incident_id
        required: true
        type: integer
      - description: postmortem id
        in: path
        name: postmortem_id
        required: true
        type: integer
      - description: timeline id
        in: path
        name: timeline_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/incident.DeleteIncidentPostMortemTimelineResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
    get:
      consumes:
      - application/json
      description: get incident postmortem timeline
      operationId: GetIncidentPostMortemTimeline
      parameters:
      - description: incident id
        in: path
        name: incident_id
        required: true
        type: integer
      - description: postmortem id
        in: path
        name: postmortem_id
        required: true
        type: integer
      - description: timeline id
        in: path
        name: timeline_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/incident.GetIncidentPostMortemTimelineResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
    post:
      consumes:
      - application/json
      description: update incident postmortem timeline
      operationId: UpdateIncidentPostMortemTimeline
      parameters:
      - description: incident id
        in: path
        name: incident_id
        required: true
        type: integer
      - description: postmortem id
        in: path
        name: postmortem_id
        required: true
        type: integer
      - description: action id
        in: path
        name: timeline_id
        required: true
        type: integer
      - description: UpdateIncidentPostMortemTimelineReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/incident.UpdateIncidentPostMortemTimelineReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/incident.UpdateIncidentPostMortemTimelineResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
  /api/v1/devops/incidents/{incident_id}/postmortems/{postmortem_id}/todoactions:
    get:
      consumes:
      - application/json
      description: list incident postmortem todo actions
      operationId: ListIncidentPostMortemToDoActions
      parameters:
      - description: incident id
        in: path
        name: incident_id
        required: true
        type: integer
      - description: postmortem id
        in: path
        name: postmortem_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/incident.ListIncidentPostMortemToDoActionsResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
    post:
      consumes:
      - application/json
      description: create incident postmortem todo action
      operationId: CreateIncidentPostMortemToDoAction
      parameters:
      - description: incident id
        in: path
        name: incident_id
        required: true
        type: integer
      - description: postmortem id
        in: path
        name: postmortem_id
        required: true
        type: integer
      - description: CreateIncidentPostMortemToDoActionReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/incident.CreateIncidentPostMortemToDoActionReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/incident.CreateIncidentPostMortemToDoActionResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
  /api/v1/devops/incidents/{incident_id}/postmortems/{postmortem_id}/todoactions/{action_id}:
    delete:
      consumes:
      - application/json
      description: delete incident postmortem todo action
      operationId: DeleteIncidentPostMortemToDoAction
      parameters:
      - description: incident id
        in: path
        name: incident_id
        required: true
        type: integer
      - description: postmortem id
        in: path
        name: postmortem_id
        required: true
        type: integer
      - description: action id
        in: path
        name: action_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/incident.DeleteIncidentPostMortemToDoActionResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
    get:
      consumes:
      - application/json
      description: get incident postmortem todo action
      operationId: GetIncidentPostMortemToDoAction
      parameters:
      - description: incident id
        in: path
        name: incident_id
        required: true
        type: integer
      - description: postmortem id
        in: path
        name: postmortem_id
        required: true
        type: integer
      - description: action id
        in: path
        name: action_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/incident.GetIncidentPostMortemToDoActionResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
    post:
      consumes:
      - application/json
      description: update incident postmortem todo action
      operationId: UpdateIncidentPostMortemToDoAction
      parameters:
      - description: incident id
        in: path
        name: incident_id
        required: true
        type: integer
      - description: postmortem id
        in: path
        name: postmortem_id
        required: true
        type: integer
      - description: action id
        in: path
        name: action_id
        required: true
        type: integer
      - description: UpdateIncidentPostMortemToDoActionReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/incident.UpdateIncidentPostMortemToDoActionReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/incident.UpdateIncidentPostMortemToDoActionResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
  /api/v1/devops/incidents/{incident_id}/postmortems/{postmortem_id}/todoactions/sync:
    post:
      consumes:
      - application/json
      description: sync incident postmortem todo action status from TCOCP
      operationId: SyncIncidentPostMortemToDoActionStatus
      parameters:
      - description: incident id
        in: path
        name: incident_id
        required: true
        type: integer
      - description: postmortem id
        in: path
        name: postmortem_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
  /api/v1/devops/incidents/component_options:
    get:
      consumes:
      - application/json
      description: get incident component options
      operationId: GetIncidentComponentOptions
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/incident.GetIncidentComponentOptionsResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - IncidentService
  /api/v1/devops/jira/issue/jira_issues:
    get:
      consumes:
      - application/json
      description: list issues from jira
      operationId: JiraControllerListIssuesFromJira
      parameters:
      - in: query
        name: jql
        required: true
        type: string
      - in: query
        name: page_token
        type: string
      - default: 50
        in: query
        name: per_page
        type: integer
      - default: false
        in: query
        name: with_comment
        type: boolean
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/jira.ListIssuesFromJiraResponse'
      tags:
      - JiraController
  /api/v1/devops/jira/issue/jira_issues/{key}:
    get:
      consumes:
      - application/json
      description: get issue from jira
      operationId: JiraControllerGetIssueFromJira
      parameters:
      - description: issue key
        in: path
        name: key
        required: true
        type: string
      - default: false
        in: query
        name: with_comments
        type: boolean
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/jira.GetIssueFromJiraResponse'
      tags:
      - JiraController
  /api/v1/devops/jira/issue/repo_issues:
    post:
      consumes:
      - application/json
      description: store issue into local repo by key
      operationId: JiraControllerSyncIssueSnapshotByKey
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/jira.SyncIssueSnapshotByKeyRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/jira.SyncIssueSnapshotByKeyResponse'
      tags:
      - JiraController
  /api/v1/devops/jira/issue/repo_issues/batch:
    post:
      consumes:
      - application/json
      description: store issues into local repo by JQL
      operationId: JiraControllerSyncIssueSnapshotByJQL
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/jira.SyncIssueSnapshotByJQLRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/jira.SyncIssueSnapshotByJQLResponse'
      tags:
      - JiraController
  /api/v1/devops/jira/issue/repo_issues/timeline_summary:
    post:
      consumes:
      - application/json
      description: set issue timeline summary
      operationId: JiraControllerSetTimelineSummary
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/jira.SetIssueTimelineSummaryRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - JiraController
  /api/v1/devops/jira/issue/repo_issues/triage:
    post:
      consumes:
      - application/json
      description: upsert issue triage
      operationId: JiraControllerUpsertIssueTriage
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/jira.UpsertIssueTriageRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - JiraController
  /api/v1/devops/jira/issue/repo_issues/triage/tag_definitions:
    delete:
      consumes:
      - application/json
      description: delete a issue triage tag
      operationId: JiraControllerDeleteIssueTriageTagDefinition
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/jira.DeleteIssueTriageTagDefinitionRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - JiraController
    get:
      consumes:
      - application/json
      description: list issue triage tags
      operationId: JiraControllerListIssueTriageTags
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/jira.ListIssueTriageTagDefinitionsRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/jira.ListIssueTriageTagDefinitionsResponse'
      tags:
      - JiraController
    post:
      consumes:
      - application/json
      description: create a issue triage tag
      operationId: JiraControllerCreateIssueTriageTagDefinition
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/jira.CreateIssueTriageTagDefinitionRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/jira.CreateIssueTriageTagDefinitionResponse'
      tags:
      - JiraController
  /api/v1/devops/jira/issue/unified_issues:
    get:
      consumes:
      - application/json
      description: list issues from local repo
      operationId: JiraControllerListUnifiedIssues
      parameters:
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: cluster_id_in
        type: array
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: component_in
        type: array
      - in: query
        name: created_after
        type: integer
      - in: query
        name: created_before
        type: integer
      - in: query
        name: customer_env_is
        type: string
      - in: query
        name: have_timeline_summary
        type: boolean
      - in: query
        name: have_triage
        type: boolean
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: issue_key_in
        type: array
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: project_in
        type: array
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: status_in
        type: array
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: tenant_id_in
        type: array
      - in: query
        name: with_jira
        type: boolean
      - in: query
        name: with_jira_comments
        type: boolean
      - in: query
        name: with_timeline_summary
        type: boolean
      - in: query
        name: with_triage
        type: boolean
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/jira.ListUnifiedIssuesResponse'
      tags:
      - JiraController
  /api/v1/devops/jira/issue/unified_issues/{key}:
    get:
      consumes:
      - application/json
      description: get issue from local repo by key
      operationId: JiraControllerGetUnifiedIssue
      parameters:
      - description: issue key
        in: path
        name: key
        required: true
        type: string
      - default: false
        in: query
        name: with_timeline_summary
        type: boolean
      - default: false
        in: query
        name: with_triage
        type: boolean
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/jira.GetUnifiedIssueResponse'
      tags:
      - JiraController
  /api/v1/devops/jira/issue/unified_issues/search:
    post:
      consumes:
      - application/json
      description: list issues from local repo
      operationId: JiraControllerListUnifiedIssuesAdvanced
      parameters:
      - description: request param
        in: body
        name: req
        schema:
          $ref: '#/definitions/jira.ListUnifiedIssuesRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/jira.ListUnifiedIssuesResponse'
      tags:
      - JiraController
  /api/v1/devops/jump-admin/invite-user:
    post:
      consumes:
      - application/json
      description: init a user
      operationId: JumpControllerInviteUser
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/jump.InviteUserReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/jump.InviteUserResp'
      tags:
      - JumpController
  /api/v1/devops/jump/authorizations:
    get:
      consumes:
      - application/json
      description: list authorizations
      operationId: JumpControllerListAuthorizations
      parameters:
      - in: query
        name: applicant
        type: string
      - in: query
        name: destination_id_like
        type: string
      - enum:
        - unspecified
        - controlplane
        - dedicated
        - serverless
        - byoc
        - premium
        - premium_resource_pool
        in: query
        name: destination_type_is
        type: string
        x-enum-varnames:
        - DestinationTypeUnspecified
        - DestinationTypeControlPlane
        - DestinationTypeDedicated
        - DestinationTypeServerless
        - DestinationTypeByoc
        - DestinationTypePremium
        - DestinationTypePremiumResourcePool
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - enum:
        - initialized
        - approving
        - creating
        - created
        - expired
        - notapproved
        - canceled
        in: query
        name: phase
        type: string
        x-enum-varnames:
        - AuthorizationPhaseInitialized
        - AuthorizationPhaseApproving
        - AuthorizationPhaseCreating
        - AuthorizationPhaseCreated
        - AuthorizationPhaseExpired
        - AuthorizationPhaseNotApproved
        - AuthorizationPhaseCanceled
      - in: query
        name: show_unaccessible
        type: boolean
      - in: query
        name: type
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/jump.ListAuthorizationsResp'
      tags:
      - JumpController
    post:
      consumes:
      - application/json
      description: create an authorization
      operationId: JumpControllerCreateInstance
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/jump.CreateAuthorizationReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/jump.CreateAuthorizationResp'
      tags:
      - JumpController
  /api/v1/devops/jump/authorizations/{authorization_id}:
    get:
      consumes:
      - application/json
      description: get an authorization
      operationId: JumpControllerGetAuthorization
      parameters:
      - description: authorization name
        in: path
        name: authorization_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/jump.GetAuthorizationResp'
      tags:
      - JumpController
  /api/v1/devops/jump/authorizations/{authorization_id}/cancel:
    post:
      consumes:
      - application/json
      description: cancel an authorization
      operationId: JumpControllerCancelAuthorization
      parameters:
      - description: authorization id
        in: path
        name: authorization_id
        required: true
        type: integer
      - description: request param
        in: body
        name: req
        schema:
          $ref: '#/definitions/jump.CancelAuthorizationReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - JumpController
  /api/v1/devops/jump/authorizations/{authorization_id}/connection:
    get:
      consumes:
      - application/json
      description: get connect jump pod params
      operationId: JumpControllerGetConnection
      parameters:
      - description: authorization id
        in: path
        name: authorization_id
        required: true
        type: integer
      - enum:
        - web_terminal
        - ssh
        - gateway
        in: query
        name: method
        required: true
        type: string
        x-enum-varnames:
        - ConnectionMethodWebTerminal
        - ConnectionMethodSSH
        - ConnectionMethodGateway
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/jump.GetConnectionResponse'
      tags:
      - JumpController
  /api/v1/devops/jump/destination/{destination_type}:
    get:
      consumes:
      - application/json
      description: list available destinations of a destination type
      operationId: JumpControllerListAvailableDestinations
      parameters:
      - description: destination type
        in: path
        name: destination_type
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/jump.ListAvailableDestinationsResp'
      tags:
      - JumpController
  /api/v1/devops/jump/jumpserver/users/{email}:
    get:
      consumes:
      - application/json
      description: get the user from the jump server.
      operationId: JumpControllerGetUser
      parameters:
      - description: user email
        in: path
        name: email
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/jump.GetUserResp'
      tags:
      - JumpController
  /api/v1/devops/jump/jumpserver/users/activate:
    post:
      consumes:
      - application/json
      description: activate the applicant in the jump server.
      operationId: JumpControllerActivateUserOfApplicant
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - JumpController
  /api/v1/devops/jump/jumpserver/users/me:
    get:
      consumes:
      - application/json
      description: get the applicant from the jump server.
      operationId: JumpControllerGetUserOfApplicant
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/jump.GetUserResp'
      tags:
      - JumpController
  /api/v1/devops/k8sCalendar/lifecycles:
    get:
      consumes:
      - application/json
      description: list k8s version lifecycles
      operationId: K8sCalendarControllerListLifecycles
      parameters:
      - in: query
        name: cloud_provider
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/k8scalendar.ListLifecyclesResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - K8sCalendarService
  /api/v1/devops/k8sCalendar/resetNotificationFlags:
    post:
      consumes:
      - application/json
      description: reset notification markers for a k8s version lifecycle (by cloud
        and version)
      operationId: K8sCalendarControllerResetNotificationFlags
      parameters:
      - description: ResetNotificationFlagsReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/k8scalendar.ResetNotificationFlagsReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/api.BaseResp'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/api.BaseResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - K8sCalendarService
  /api/v1/devops/k8sCalendar/syncNow:
    post:
      consumes:
      - application/json
      description: force sync k8s version calendar from cloud providers
      operationId: K8sCalendarControllerSyncNow
      parameters:
      - description: SyncNowReq
        in: body
        name: req
        schema:
          $ref: '#/definitions/k8scalendar.SyncNowReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - K8sCalendarService
  /api/v1/devops/k8sUpgradePlans:
    get:
      consumes:
      - application/json
      description: list k8s upgrade plans
      operationId: K8sUpgradePlanControllerListPlans
      parameters:
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: cloud_providers
        type: array
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: eos_versions
        type: array
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: statuses
        type: array
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/k8supgradeplan.ListPlansResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - K8sUpgradePlanService
    post:
      consumes:
      - application/json
      description: create a k8s upgrade plan
      operationId: K8sUpgradePlanControllerCreatePlan
      parameters:
      - description: CreatePlanReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/k8supgradeplan.CreatePlanReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/k8supgradeplan.CreatePlanResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - K8sUpgradePlanService
  /api/v1/devops/k8sUpgradePlans/{plan_id}:
    get:
      consumes:
      - application/json
      description: get a k8s upgrade plan
      operationId: K8sUpgradePlanControllerGetPlan
      parameters:
      - description: plan id
        in: path
        name: plan_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/k8supgradeplan.GetPlanResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - K8sUpgradePlanService
    put:
      consumes:
      - application/json
      description: update a k8s upgrade plan
      operationId: K8sUpgradePlanControllerUpdatePlan
      parameters:
      - description: plan id
        in: path
        name: plan_id
        required: true
        type: integer
      - description: UpdatePlanReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/k8supgradeplan.UpdatePlanReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - K8sUpgradePlanService
  /api/v1/devops/k8sUpgradePlans/{plan_id}/cancel:
    post:
      consumes:
      - application/json
      description: cancel a k8s upgrade plan
      operationId: K8sUpgradePlanControllerCancelPlan
      parameters:
      - description: plan id
        in: path
        name: plan_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - K8sUpgradePlanService
  /api/v1/devops/k8sUpgradePlans/{plan_id}/schedule:
    post:
      consumes:
      - application/json
      description: schedule a k8s upgrade plan
      operationId: K8sUpgradePlanControllerSchedulePlan
      parameters:
      - description: plan id
        in: path
        name: plan_id
        required: true
        type: integer
      - description: SchedulePlanReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/k8supgradeplan.SchedulePlanReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - K8sUpgradePlanService
  /api/v1/devops/k8sUpgradePlans/{plan_id}/triggerNow:
    post:
      consumes:
      - application/json
      description: trigger a k8s upgrade plan immediately
      operationId: K8sUpgradePlanControllerTriggerNow
      parameters:
      - description: plan id
        in: path
        name: plan_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - K8sUpgradePlanService
  /api/v1/devops/kernel-images/build-callback:
    post:
      consumes:
      - application/json
      description: accept an idempotent callback, store a batch of successfully built
        image artifacts, and create one DeliverKernelImage operation
      operationId: KernelImageControllerBuildCallback
      parameters:
      - description: build callback
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/kernelimage.BuildCallbackReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/kernelimage.BuildCallbackResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - KernelImageService
  /api/v1/devops/kernel-images/releases:
    get:
      consumes:
      - application/json
      description: list local kernel image release records
      operationId: KernelImageControllerListReleases
      parameters:
      - in: query
        name: masked
        type: boolean
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - in: query
        name: repository
        type: string
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: statuses
        type: array
      - in: query
        name: version
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/kernelimage.ListReleasesResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - KernelImageService
  /api/v1/devops/kernel-images/releases/{artifact_uid}:
    get:
      consumes:
      - application/json
      description: get a local kernel image release by artifact UID
      operationId: KernelImageControllerGetRelease
      parameters:
      - description: artifact UID
        in: path
        name: artifact_uid
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/kernelimage.GetReleaseResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - KernelImageService
  /api/v1/devops/kernel-images/releases/{artifact_uid}/availability-check:
    post:
      consumes:
      - application/json
      description: start an asynchronous registry availability check for every FID
        delivery target of a release
      operationId: KernelImageControllerRefreshAvailability
      parameters:
      - description: Artifact UID
        in: path
        name: artifact_uid
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/kernelimage.GetReleaseResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - KernelImageService
  /api/v1/devops/kernel-images/selection:
    get:
      consumes:
      - application/json
      description: calculate the local M x N kernel image selection
      operationId: KernelImageControllerGetSelection
      parameters:
      - in: query
        name: cluster_type
        required: true
        type: string
      - in: query
        name: component
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/kernelimage.SelectionResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - KernelImageService
  /api/v1/devops/message/email/records:
    get:
      consumes:
      - application/json
      description: list email records
      operationId: MessageControllerListEmailRecords
      parameters:
      - in: query
        name: from_address_is
        type: string
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - in: query
        name: reason_like
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/message.ListEmailRecordsResponse'
      tags:
      - MessageController
  /api/v1/devops/message/email/records/{record_id}:
    get:
      consumes:
      - application/json
      description: get a email record
      operationId: MessageControllerGetEmailRecord
      parameters:
      - description: id
        in: path
        name: record_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/message.GetEmailRecordResponse'
      tags:
      - MessageController
  /api/v1/devops/message/email/send:
    post:
      consumes:
      - application/json
      description: send email
      operationId: MessageControllerSendEmail
      parameters:
      - description: request
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/message.SendEmailRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - MessageController
  /api/v1/devops/message/email/send_batch:
    post:
      consumes:
      - application/json
      description: send emails batch
      operationId: MessageControllerSendEmailBatch
      parameters:
      - description: request
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/message.SendEmailBatchRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/message.SendEmailBatchResponse'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - MessageController
  /api/v1/devops/mgmt-portal/skus/{sku_id}:
    patch:
      consumes:
      - application/json
      description: path a sku
      operationId: PatchSku
      parameters:
      - description: sku_id
        in: path
        name: sku_id
        required: true
        type: string
      - description: request param
        in: body
        name: req
        schema:
          type: object
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/mgmtportal.CommonResp'
      tags:
      - MgmtPortalController
  /api/v1/devops/mgmt-portal/spus/{spu_id}:
    patch:
      consumes:
      - application/json
      description: path a spu
      operationId: PatchSpu
      parameters:
      - description: spu_id
        in: path
        name: spu_id
        required: true
        type: string
      - description: request param
        in: body
        name: req
        schema:
          type: object
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/mgmtportal.CommonResp'
      tags:
      - MgmtPortalController
  /api/v1/devops/monitoring/component-diff/reports:
    post:
      consumes:
      - application/json
      description: generate component diff reports
      operationId: MonitoringControllerPostComponentDiffReport
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - MonitoringController
  /api/v1/devops/monitoring/component-diff/reports/{type}:
    get:
      consumes:
      - application/json
      description: list component diff reports
      operationId: MonitoringControllerListComponentDiffReports
      parameters:
      - description: type
        in: path
        name: type
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/monitoring.ListReportsResponse'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - MonitoringController
  /api/v1/devops/monitoring/component-diff/reports/{type}/{name}:
    get:
      consumes:
      - application/json
      description: get component diff report by name
      operationId: MonitoringControllerGetComponentDiffReport
      parameters:
      - description: type
        in: path
        name: type
        required: true
        type: string
      - description: name
        in: path
        name: name
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/monitoring.GetReportResponse'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - MonitoringController
  /api/v1/devops/o11y/clusters:
    get:
      consumes:
      - application/json
      description: list clusters
      operationId: O11yControllerListClusters
      parameters:
      - in: query
        name: application_id
        type: string
      - in: query
        name: orgID
        required: true
        type: string
      - in: query
        name: project_id
        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:
            $ref: '#/definitions/o11y.ListClustersResponse'
      tags:
      - O11yController
    post:
      consumes:
      - application/json
      description: create a cluster
      operationId: O11yControllerCreateCluster
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/o11y.CreateClusterRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/o11y.CreateClusterResponse'
      tags:
      - O11yController
  /api/v1/devops/o11y/clusters/{id}:
    delete:
      consumes:
      - application/json
      description: delete a cluster
      operationId: O11yControllerDeleteCluster
      parameters:
      - description: id
        in: path
        name: id
        required: true
        type: string
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/o11y.DeleteClusterRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/o11y.DeleteClusterResponse'
      tags:
      - O11yController
    get:
      consumes:
      - application/json
      description: get clusters
      operationId: O11yControllerGetCluster
      parameters:
      - description: id
        in: path
        name: id
        required: true
        type: string
      - in: query
        name: orgID
        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:
            $ref: '#/definitions/o11y.GetClusterResponse'
      tags:
      - O11yController
  /api/v1/devops/operation/actions:
    get:
      consumes:
      - application/json
      description: list actions
      operationId: OperationControllerListActions
      parameters:
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/operation.ListActionResp'
      tags:
      - OperationController
  /api/v1/devops/operation/actions/{action_name}:
    get:
      consumes:
      - application/json
      description: get a action
      operationId: OperationControllerGetAction
      parameters:
      - description: action name
        in: path
        name: action_name
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/operation.GetActionResp'
      tags:
      - OperationController
  /api/v1/devops/operation/instances:
    get:
      consumes:
      - application/json
      description: list instances
      operationId: OperationControllerListInstances
      parameters:
      - in: query
        name: applicant
        type: string
      - in: query
        name: create_after
        type: integer
      - in: query
        name: create_before
        type: integer
      - in: query
        name: operation
        type: string
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - enum:
        - draft
        - created
        - approving
        - withdrawn
        - pending
        - running
        - succeeded
        - failed
        - canceled
        in: query
        name: phase
        type: string
        x-enum-varnames:
        - InstancePhaseDraft
        - InstancePhaseCreated
        - InstancePhaseApproving
        - InstancePhaseWithdrawn
        - InstancePhasePending
        - InstancePhaseRunning
        - InstancePhaseSucceeded
        - InstancePhaseFailed
        - InstancePhaseCanceled
      - in: query
        name: target_id
        type: string
      - in: query
        name: type
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/operation.ListInstanceResp'
      tags:
      - OperationController
    post:
      consumes:
      - application/json
      description: create a instance
      operationId: OperationControllerCreateInstance
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/operation.CreateInstanceReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/operation.CreateInstanceResp'
      tags:
      - OperationController
  /api/v1/devops/operation/instances/{instance_id}:
    get:
      consumes:
      - application/json
      description: get a instance
      operationId: OperationControllerGetInstance
      parameters:
      - description: instance id
        in: path
        name: instance_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/operation.GetInstanceResp'
      tags:
      - OperationController
    patch:
      consumes:
      - application/json
      description: update a instance
      operationId: OperationControllerUpdateInstance
      parameters:
      - description: instance id
        in: path
        name: instance_id
        required: true
        type: integer
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/operation.UpdateInstanceReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - OperationController
  /api/v1/devops/operation/instances/{instance_id}/actions/{action_order}/finish:
    post:
      consumes:
      - application/json
      description: finish a instance action
      operationId: OperationControllerFinishInstanceAction
      parameters:
      - description: instance id
        in: path
        name: instance_id
        required: true
        type: integer
      - description: instance action order
        in: path
        name: action_order
        required: true
        type: integer
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/operation.FinishInstanceActionReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - OperationController
  /api/v1/devops/operation/instances/{instance_id}/actions/{action_order}/start:
    post:
      consumes:
      - application/json
      description: start a instance action maunally
      operationId: OperationControllerStartInstanceAction
      parameters:
      - description: instance id
        in: path
        name: instance_id
        required: true
        type: integer
      - description: instance action order
        in: path
        name: action_order
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - OperationController
  /api/v1/devops/operation/instances/{instance_id}/cancel:
    post:
      consumes:
      - application/json
      description: cancel a instance
      operationId: OperationControllerCancelInstance
      parameters:
      - description: instance id
        in: path
        name: instance_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - OperationController
  /api/v1/devops/operation/instances/{instance_id}/submit:
    post:
      consumes:
      - application/json
      description: submit a instance
      operationId: OperationControllerSubmitInstance
      parameters:
      - description: instance id
        in: path
        name: instance_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - OperationController
  /api/v1/devops/operation/instances/preview:
    post:
      consumes:
      - application/json
      description: 'preview a instance: runs PreCheck and returns advisories without
        creating'
      operationId: OperationControllerPreviewInstance
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/operation.CreateInstanceReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/operation.PreviewInstanceResp'
      tags:
      - OperationController
  /api/v1/devops/operation/operations:
    get:
      consumes:
      - application/json
      description: list operations
      operationId: OperationControllerListOperations
      parameters:
      - collectionFormat: csv
        description: filter by categories
        in: query
        items:
          type: string
        name: categories
        type: array
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - description: filter by target
        enum:
        - cluster
        - tenant
        - project
        - user
        - region
        - resource_pool
        - undefined
        in: query
        name: target
        type: string
        x-enum-varnames:
        - OperationTargetCluster
        - OperationTargetTenant
        - OperationTargetProject
        - OperationTargetUser
        - OperationTargetRegion
        - OperationTargetResourcePool
        - OperationTargetUndefined
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/operation.ListOperationResp'
      tags:
      - OperationController
  /api/v1/devops/operation/operations/{operation_name}:
    get:
      consumes:
      - application/json
      description: get a operation
      operationId: OperationControllerGetOperation
      parameters:
      - description: operation name
        in: path
        name: operation_name
        required: true
        type: string
      - description: inject param into operation
        in: query
        name: inject_param
        type: boolean
      - description: service plan for param injection
        in: query
        name: service_plan
        type: string
      - description: target id
        in: query
        name: target_id
        type: string
      - description: target type
        enum:
        - cluster
        - tenant
        - project
        - user
        - region
        - resource_pool
        - undefined
        in: query
        name: target_type
        type: string
        x-enum-varnames:
        - OperationTargetCluster
        - OperationTargetTenant
        - OperationTargetProject
        - OperationTargetUser
        - OperationTargetRegion
        - OperationTargetResourcePool
        - OperationTargetUndefined
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/operation.GetOperationResp'
      tags:
      - OperationController
  /api/v1/devops/operation/operations/categories:
    get:
      consumes:
      - application/json
      description: list operation categories
      operationId: OperationControllerListOperationCategories
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/operation.ListOperationCategoryResp'
      tags:
      - OperationController
  /api/v1/devops/premiumUpgradePlans:
    get:
      operationId: PremiumUpgradeControllerListPlans
      parameters:
      - in: query
        name: applicant
        type: string
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: statuses
        type: array
      - in: query
        name: tenant_id
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/premiumupgrade.ListPlansResp'
      tags:
      - PremiumUpgradeService
    post:
      consumes:
      - application/json
      description: Create one immutable Premium upgrade plan and one aggregate approval
      operationId: PremiumUpgradeControllerCreatePlan
      parameters:
      - description: Idempotency key
        in: header
        name: Idempotency-Key
        required: true
        type: string
      - description: CreatePlanReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/premiumupgrade.CreatePlanReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/premiumupgrade.CreatePlanResp'
      tags:
      - PremiumUpgradeService
  /api/v1/devops/premiumUpgradePlans/{plan_id}:
    get:
      operationId: PremiumUpgradeControllerGetPlan
      parameters:
      - description: Plan ID
        in: path
        name: plan_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/premiumupgrade.GetPlanResp'
      tags:
      - PremiumUpgradeService
  /api/v1/devops/premiumUpgradePlans/{plan_id}/apply:
    post:
      description: Start an approved plan that is configured to run all steps in sequence
      operationId: PremiumUpgradeControllerApplyPlan
      parameters:
      - description: Plan ID
        in: path
        name: plan_id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - PremiumUpgradeService
  /api/v1/devops/premiumUpgradePlans/{plan_id}/cancel:
    post:
      operationId: PremiumUpgradeControllerCancelPlan
      parameters:
      - description: Plan ID
        in: path
        name: plan_id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - PremiumUpgradeService
  /api/v1/devops/premiumUpgradePlans/{plan_id}/steps/{step_id}/apply:
    post:
      description: Apply one managed ConfigurationChange in a step-by-step plan
      operationId: PremiumUpgradeControllerApplyStep
      parameters:
      - description: Plan ID
        in: path
        name: plan_id
        required: true
        type: integer
      - description: Step ID
        in: path
        name: step_id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - PremiumUpgradeService
  /api/v1/devops/premiumUpgradePlans/{plan_id}/steps/{step_id}/retry:
    post:
      operationId: PremiumUpgradeControllerRetryStep
      parameters:
      - description: Plan ID
        in: path
        name: plan_id
        required: true
        type: integer
      - description: Step ID
        in: path
        name: step_id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - PremiumUpgradeService
  /api/v1/devops/premiumUpgradePlans/componentPolicies:
    get:
      operationId: PremiumUpgradeControllerListComponentPolicies
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/premiumupgrade.ListComponentPoliciesResp'
      tags:
      - PremiumUpgradeService
  /api/v1/devops/premiumUpgradePlans/preview:
    post:
      consumes:
      - application/json
      description: Resolve Premium cluster locators, components and fixed execution
        order
      operationId: PremiumUpgradeControllerPreviewPlan
      parameters:
      - description: PreviewPlanReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/premiumupgrade.PreviewPlanReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/premiumupgrade.PreviewPlanResp'
      tags:
      - PremiumUpgradeService
  /api/v1/devops/premiumUpgradePlans/targetConflicts:
    post:
      consumes:
      - application/json
      description: Check whether selected Premium clusters already belong to active
        upgrade plans
      operationId: PremiumUpgradeControllerCheckTargetConflicts
      parameters:
      - description: CheckTargetConflictsReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/premiumupgrade.CheckTargetConflictsReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/premiumupgrade.CheckTargetConflictsResp'
      tags:
      - PremiumUpgradeService
  /api/v1/devops/privilege/privileges:
    get:
      consumes:
      - application/json
      description: list privileges
      operationId: PrivilegeControllerListPrivileges
      parameters:
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/privilege.ListPrivilegesResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - PrivilegeController
    post:
      consumes:
      - application/json
      description: request privileges
      operationId: PrivilegeControllerRequestPrivilege
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/privilege.RequestPrivilegeReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/privilege.RequestPrivilegeResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - PrivilegeController
  /api/v1/devops/privilege/privileges/{priv_id}:
    get:
      consumes:
      - application/json
      description: get a privilege
      operationId: PrivilegeControllerGetPrivilege
      parameters:
      - description: id
        in: path
        name: priv_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/privilege.GetPrivilegeResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - PrivilegeController
  /api/v1/devops/privilege/privileges/{priv_id}/revoke:
    post:
      consumes:
      - application/json
      description: revoke a privilege
      operationId: PrivilegeControllerRevokePrivilege
      parameters:
      - description: id
        in: path
        name: priv_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - PrivilegeController
  /api/v1/devops/region/regions/get:
    get:
      consumes:
      - application/json
      description: get region
      operationId: RegionControllerGetRegion
      parameters:
      - in: query
        name: cloud_provider
        type: string
      - in: query
        name: deploy_type
        type: string
      - in: query
        name: logical_name
        type: string
      - in: query
        name: service_plan
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/region.GetRegionResponse'
      tags:
      - RegionController
  /api/v1/devops/region/regions/list:
    get:
      consumes:
      - application/json
      description: list regions
      operationId: RegionControllerListRegions
      parameters:
      - in: query
        name: deploy_type
        type: string
      - in: query
        name: service_plan
        type: string
      - in: query
        name: tenant_id
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/region.ListRegionsResponse'
      tags:
      - RegionController
  /api/v1/devops/region/regions/provider-identities:
    post:
      consumes:
      - application/json
      description: register a provider identity for a nextgen region
      operationId: RegionControllerRegisterRegionProviderIdentity
      parameters:
      - description: RegisterRegionProviderIdentityRequest
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/region.RegisterRegionProviderIdentityRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/region.RegisterRegionProviderIdentityResponse'
      tags:
      - RegionController
  /api/v1/devops/region/regions/register:
    post:
      consumes:
      - application/json
      description: register region
      operationId: RegionControllerRegisterRegion
      parameters:
      - description: RegisterRegionRequest
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/region.RegisterRegionRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/region.RegisterRegionResponse'
      tags:
      - RegionController
  /api/v1/devops/region/regions/update:
    post:
      consumes:
      - application/json
      description: update region
      operationId: RegionControllerUpdateRegion
      parameters:
      - description: UpdateRegionRequest
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/region.UpdateRegionRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/region.UpdateRegionResponse'
      tags:
      - RegionController
  /api/v1/devops/release/changes:
    post:
      consumes:
      - application/json
      description: create a new change
      operationId: ReleaseControllerCreateChange
      parameters:
      - description: request body
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/release.CreateChangeReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/release.CreateChangeResp'
      tags:
      - ReleaseController
  /api/v1/devops/release/changes/{change_id}:
    get:
      consumes:
      - application/json
      description: get a change
      operationId: ReleaseControllerGetChange
      parameters:
      - description: change id
        in: path
        name: change_id
        required: true
        type: integer
      - in: query
        name: with_applicant
        type: boolean
      - in: query
        name: with_application
        type: boolean
      - in: query
        name: with_change_items
        type: boolean
      - in: query
        name: with_detail
        type: boolean
      - in: query
        name: with_release
        type: boolean
      - in: query
        name: with_tickets
        type: boolean
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/release.GetChangeResp'
      tags:
      - ReleaseController
    put:
      consumes:
      - application/json
      description: update a change
      operationId: ReleaseControllerUpdateChange
      parameters:
      - description: change id
        in: path
        name: change_id
        required: true
        type: integer
      - description: request body
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/release.UpdateChangeReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ReleaseController
  /api/v1/devops/release/changes/{change_id}/cancel:
    post:
      consumes:
      - application/json
      description: cancel a change
      operationId: ReleaseControllerCancelChange
      parameters:
      - description: change id
        in: path
        name: change_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ReleaseController
  /api/v1/devops/release/changes/{change_id}/close:
    post:
      consumes:
      - application/json
      description: close a change
      operationId: ReleaseControllerCloseChange
      parameters:
      - description: change id
        in: path
        name: change_id
        required: true
        type: integer
      - description: request body
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/release.CloseChangeReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ReleaseController
  /api/v1/devops/release/changes/{change_id}/deployments/{deployment_order}/deploy:
    post:
      consumes:
      - application/json
      description: exeuete a deployment of a change
      operationId: ReleaseControllerExecuteDeployment
      parameters:
      - description: change id
        in: path
        name: change_id
        required: true
        type: integer
      - description: deployment id
        in: path
        name: deployment_order
        required: true
        type: integer
      - description: request body
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/release.ExecuteDeploymentReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ReleaseController
  /api/v1/devops/release/changes/{change_id}/deployments/{deployment_order}/ready:
    get:
      consumes:
      - application/json
      description: return if a deployment of a change is ready to execute
      operationId: ReleaseControllerIsDeploymentReady
      parameters:
      - description: change id
        in: path
        name: change_id
        required: true
        type: integer
      - description: deployment id
        in: path
        name: deployment_order
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/release.IsDeploymentReadyResp'
      tags:
      - ReleaseController
  /api/v1/devops/release/changes/{change_id}/deployments/{deployment_order}/verify:
    post:
      consumes:
      - application/json
      description: verify a deployment of a change
      operationId: ReleaseControllerVerifyDeployment
      parameters:
      - description: change id
        in: path
        name: change_id
        required: true
        type: integer
      - description: deployment id
        in: path
        name: deployment_order
        required: true
        type: integer
      - description: request body
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/release.VerifyDeploymentReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ReleaseController
  /api/v1/devops/release/changes/{change_id}/submit:
    post:
      consumes:
      - application/json
      description: submit a change
      operationId: ReleaseControllerSubmitChange
      parameters:
      - description: change id
        in: path
        name: change_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ReleaseController
  /api/v1/devops/release/changes/default:
    get:
      consumes:
      - application/json
      description: get a default change
      operationId: ReleaseControllerDefaultChange
      parameters:
      - in: query
        name: application_name
        required: true
        type: string
      - in: query
        name: release_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/release.DefaultChangeResp'
      tags:
      - ReleaseController
  /api/v1/devops/release/releases:
    get:
      consumes:
      - application/json
      description: list releases
      operationId: ReleaseControllerListReleases
      parameters:
      - in: query
        name: name
        type: string
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - description: timestamp
        in: query
        name: release_after
        type: integer
      - description: timestamp
        in: query
        name: release_before
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/release.ListReleaseResp'
      tags:
      - ReleaseController
  /api/v1/devops/release/releases/{release_id}:
    get:
      consumes:
      - application/json
      description: get a release
      operationId: ReleaseControllerGetRelease
      parameters:
      - description: release id
        in: path
        name: release_id
        required: true
        type: integer
      - in: query
        name: with_tickets
        type: boolean
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/release.GetReleaseResp'
      tags:
      - ReleaseController
  /api/v1/devops/release/releases/{release_id}/changes:
    get:
      consumes:
      - application/json
      description: list all change of a release
      operationId: ReleaseControllerListChangesOfRelease
      parameters:
      - description: release id
        in: path
        name: release_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/release.ListChangeResp'
      tags:
      - ReleaseController
  /api/v1/devops/release/tickets:
    get:
      consumes:
      - application/json
      description: list tickets
      operationId: ReleaseControllerListTickets
      parameters:
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: name
        type: array
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: release
        type: array
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: status
        type: array
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/release.ListTicketsResp'
      tags:
      - ReleaseController
  /api/v1/devops/release/tickets/{ticket_name}:
    get:
      consumes:
      - application/json
      description: get a ticket
      operationId: ReleaseControllerGetTicket
      parameters:
      - description: ticket name
        in: path
        name: ticket_name
        required: true
        type: string
      - in: query
        name: with_github_pr
        type: boolean
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/release.GetTicketResp'
      tags:
      - ReleaseController
    put:
      consumes:
      - application/json
      description: update a ticket
      operationId: ReleaseControllerUpdateTicket
      parameters:
      - description: ticket name
        in: path
        name: ticket_name
        required: true
        type: string
      - description: request body
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/release.UpdateTicketReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ReleaseController
  /api/v1/devops/release/tickets/{ticket_name}/sync_async:
    post:
      consumes:
      - application/json
      description: sync a ticket
      operationId: ReleaseControllerSyncTicketAsync
      parameters:
      - description: ticket name
        in: path
        name: ticket_name
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - ReleaseController
  /api/v1/devops/remediationtickets:
    get:
      consumes:
      - application/json
      description: list remediation tickets
      operationId: RemediationTicketControllerListTickets
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/remediationticket.ListRemediationTicketsResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - RemediationTicketService
    post:
      consumes:
      - application/json
      description: create Ticket
      operationId: RemediationTicketControllerCreateTicket
      parameters:
      - description: request
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/remediationticket.CreateRemediationTicketReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/remediationticket.CreateRemediationTicketResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - RemediationTicketService
  /api/v1/devops/remediationtickets/{ticket_id}:
    get:
      consumes:
      - application/json
      description: get a remediation ticket
      operationId: RemediationTicketControllerGetTicket
      parameters:
      - description: ticket id
        in: path
        name: ticket_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/remediationticket.GetRemediationTicketResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - RemediationTicketController
  /api/v1/devops/remediationtickets/{ticket_id}/approval_flow:
    get:
      consumes:
      - application/json
      description: get remediation approval flow
      operationId: RemediationTicketControllerGetApprovalFlow
      parameters:
      - description: ticket id
        in: path
        name: ticket_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/remediationticket.GetApprovalFlowResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - RemediationTicketService
  /api/v1/devops/remediationtickets/{ticket_id}/approve:
    post:
      consumes:
      - application/json
      description: transfer a remediation ticket phase
      operationId: RemediationTicketControllerApproveTicketPhase
      parameters:
      - description: ticket id
        in: path
        name: ticket_id
        required: true
        type: integer
      - description: request
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/remediationticket.ApproveTicketPhaseReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - RemediationTicketController
  /api/v1/devops/remediationtickets/{ticket_id}/cancel:
    post:
      consumes:
      - application/json
      description: cancel a remediation ticket
      operationId: RemediationTicketControllerCancelTicket
      parameters:
      - description: ticket id
        in: path
        name: ticket_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - RemediationTicketController
  /api/v1/devops/remediationtickets/{ticket_id}/generate_doc:
    post:
      consumes:
      - application/json
      description: generate final doc for the remediation ticket
      operationId: RemediationTicketControllerGenerateFinalDoc
      parameters:
      - description: ticket id
        in: path
        name: ticket_id
        required: true
        type: integer
      - description: request
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/remediationticket.GenerateFinalDocReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - RemediationTicketController
  /api/v1/devops/remediationtickets/{ticket_id}/progress:
    get:
      consumes:
      - application/json
      description: get remediation ticket progress
      operationId: RemediationTicketControllerGetTicketProgress
      parameters:
      - description: ticket id
        in: path
        name: ticket_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/remediationticket.GetProgressResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - RemediationTicketService
  /api/v1/devops/remediationtickets/{ticket_id}/reject:
    post:
      consumes:
      - application/json
      description: transfer a remediation ticket phase
      operationId: RemediationTicketControllerRejectTicketPhase
      parameters:
      - description: ticket id
        in: path
        name: ticket_id
        required: true
        type: integer
      - description: request
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/remediationticket.RejectTicketPhaseReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - RemediationTicketController
  /api/v1/devops/remediationtickets/{ticket_id}/submit:
    post:
      consumes:
      - application/json
      description: transfer a remediation ticket phase
      operationId: RemediationTicketControllerSubmitTicketPhase
      parameters:
      - description: ticket id
        in: path
        name: ticket_id
        required: true
        type: integer
      - description: request
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/remediationticket.SubmitTicketPhaseReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - RemediationTicketController
  /api/v1/devops/remediationtickets/{ticket_id}/ticket_approvals:
    get:
      consumes:
      - application/json
      description: get remediation ticket approvals
      operationId: RemediationTicketControllerGetTicketApprovals
      parameters:
      - description: ticket id
        in: path
        name: ticket_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/remediationticket.GetTicketApprovalsResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - RemediationTicketService
  /api/v1/devops/tenants:
    get:
      consumes:
      - application/json
      description: list tenants
      operationId: ListTenants
      parameters:
      - collectionFormat: csv
        in: query
        items:
          enum:
          - internal
          - external
          type: string
        name: kind
        type: array
      - enum:
        - asc
        - desc
        in: query
        name: order
        type: string
        x-enum-varnames:
        - OrderTypeASC
        - OrderTypeDESC
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - collectionFormat: csv
        in: query
        items:
          enum:
          - new_user
          - free_trial
          - poc
          - on_demand
          type: string
        name: plan
        type: array
      - collectionFormat: csv
        in: query
        items:
          enum:
          - APAC
          - EMEA
          - JAPAN
          - NA
          - UNKNOWN
          - RDG
          - TEST_INFRA
          - LATAM
          type: string
        name: region
        type: array
      - in: query
        name: search
        type: string
      - collectionFormat: csv
        in: query
        items:
          enum:
          - SKA
          - KA
          - SMB
          type: string
        name: segmentation
        type: array
      - enum:
        - created_at
        - timezone
        in: query
        name: sort_by
        type: string
        x-enum-varnames:
        - SortByTypeCreatedAt
        - SortByTypeTimezone
      - collectionFormat: csv
        in: query
        items:
          enum:
          - pending
          - active
          - inactive
          - deleted
          - cleared
          type: string
        name: status
        type: array
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.ListTenantResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TenantService
  /api/v1/devops/tenants/{tenant_id}:
    delete:
      consumes:
      - application/json
      description: delete tenant
      operationId: DeleteTenant
      parameters:
      - description: tenant_id
        in: path
        name: tenant_id
        required: true
        type: string
      - description: DeleteTenantReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/tenant.DeleteTenantReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.CommonResp'
      tags:
      - TenantService
    get:
      consumes:
      - application/json
      description: get tenant
      operationId: GetTenant
      parameters:
      - description: tenant_id
        in: path
        name: tenant_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.GetTenantResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TenantService
    post:
      consumes:
      - application/json
      description: update tenant
      operationId: UpdateTenant
      parameters:
      - description: tenant_id
        in: path
        name: tenant_id
        required: true
        type: string
      - description: UpdateTenantReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/tenant.UpdateTenantReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.CommonResp'
      tags:
      - TenantService
  /api/v1/devops/tenants/{tenant_id}/accountusers:
    get:
      consumes:
      - application/json
      description: get tenant users
      operationId: GetTenantUsers
      parameters:
      - description: tenant_id
        in: path
        name: tenant_id
        required: true
        type: string
      - in: query
        name: full_email
        type: boolean
      - in: query
        name: page
        type: integer
      - in: query
        name: page_size
        type: integer
      - in: query
        name: search
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.GetUsersResp'
      tags:
      - TenantService
  /api/v1/devops/tenants/{tenant_id}/accountusers/{user_id}:
    delete:
      consumes:
      - application/json
      description: remove user from tenant
      operationId: RemoveUserFromTenant
      parameters:
      - description: tenant_id
        in: path
        name: tenant_id
        required: true
        type: string
      - description: user_id
        in: path
        name: user_id
        required: true
        type: string
      - description: RemoveUserFromTenantReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/tenant.RemoveUserFromTenantReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.CommonResp'
      tags:
      - TenantService
    post:
      consumes:
      - application/json
      description: add user to tenant
      operationId: AddUserToTenant
      parameters:
      - description: tenant_id
        in: path
        name: tenant_id
        required: true
        type: string
      - description: user_id
        in: path
        name: user_id
        required: true
        type: string
      - description: AddUserToTenantReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/tenant.AddUserToTenantReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.CommonResp'
      tags:
      - TenantService
  /api/v1/devops/tenants/{tenant_id}/billing_config_id/{billing_config_id}/invoices/{invoice_id}/recalculate:
    post:
      consumes:
      - application/json
      description: create an approval operation to recalculate a tenant invoice
      operationId: RecalculateInvoice
      parameters:
      - description: tenant_id
        in: path
        name: tenant_id
        required: true
        type: string
      - description: billing_config_id
        in: path
        name: billing_config_id
        required: true
        type: string
      - description: invoice_id
        in: path
        name: invoice_id
        required: true
        type: string
      - description: RecalculateInvoiceReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/tenant.RecalculateInvoiceReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.CommonResp'
      tags:
      - TenantService
  /api/v1/devops/tenants/{tenant_id}/billing_config_id/{billing_config_id}/recalculate:
    post:
      consumes:
      - application/json
      description: create an approval operation to recalculate bills for a tenant
        billing config
      operationId: RecalculateBills
      parameters:
      - description: tenant_id
        in: path
        name: tenant_id
        required: true
        type: string
      - description: billing_config_id
        in: path
        name: billing_config_id
        required: true
        type: string
      - description: RecalculateBillsReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/tenant.RecalculateBillsReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.CommonResp'
      tags:
      - TenantService
  /api/v1/devops/tenants/{tenant_id}/byoc_regions:
    get:
      consumes:
      - application/json
      description: list byoc regions for a tenant
      operationId: ListByocRegions
      parameters:
      - description: tenant_id
        in: path
        name: tenant_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.ListByocRegionsResp'
      tags:
      - TenantService
  /api/v1/devops/tenants/{tenant_id}/credits:
    post:
      consumes:
      - application/json
      description: add credits for tenant
      operationId: AddCredits
      parameters:
      - description: tenant_id
        in: path
        name: tenant_id
        required: true
        type: string
      - description: AddCreditsReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/tenant.AddCreditsReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.CommonResp'
      tags:
      - TenantService
  /api/v1/devops/tenants/{tenant_id}/credits/internal:
    post:
      consumes:
      - application/json
      description: add credits for tenant directly without operation workflow
      operationId: AddCreditsInternal
      parameters:
      - description: tenant_id
        in: path
        name: tenant_id
        required: true
        type: string
      - description: AddCreditsInternalReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/tenant.AddCreditsInternalReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.CommonResp'
      tags:
      - TenantService
  /api/v1/devops/tenants/{tenant_id}/ops_audit_log_settings:
    post:
      consumes:
      - application/json
      description: update region ops audit log settings
      operationId: UpdateRegionOpsAuditLogSettings
      parameters:
      - description: tenant_id
        in: path
        name: tenant_id
        required: true
        type: string
      - description: UpdateRegionOpsAuditLogSettingReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/tenant.UpdateRegionOpsAuditLogSettingReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.CommonResp'
      tags:
      - TenantService
  /api/v1/devops/tenants/{tenant_id}/projects/{project_id}:
    delete:
      consumes:
      - application/json
      description: delete project
      operationId: DeleteProject
      parameters:
      - description: tenant_id
        in: path
        name: tenant_id
        required: true
        type: string
      - description: project_id
        in: path
        name: project_id
        required: true
        type: string
      - description: DeleteProjectReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/tenant.DeleteProjectReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.CommonResp'
      tags:
      - TenantService
    get:
      consumes:
      - application/json
      description: get project
      operationId: GetProject
      parameters:
      - description: tenant_id
        in: path
        name: tenant_id
        required: true
        type: string
      - description: project_id
        in: path
        name: project_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.GetProjectResp'
      tags:
      - TenantService
  /api/v1/devops/tenants/{tenant_id}/projects/{project_id}/accountusers:
    get:
      consumes:
      - application/json
      description: get project users
      operationId: GetProjectUsers
      parameters:
      - description: tenant_id
        in: path
        name: tenant_id
        required: true
        type: string
      - description: project_id
        in: path
        name: project_id
        required: true
        type: string
      - in: query
        name: full_email
        type: boolean
      - in: query
        name: page
        type: integer
      - in: query
        name: page_size
        type: integer
      - in: query
        name: search
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.GetUsersResp'
      tags:
      - TenantService
  /api/v1/devops/tenants/{tenant_id}/projects/{project_id}/accountusers/{user_id}:
    delete:
      consumes:
      - application/json
      description: remove user from project
      operationId: RemoveUserFromProject
      parameters:
      - description: tenant_id
        in: path
        name: tenant_id
        required: true
        type: string
      - description: project_id
        in: path
        name: project_id
        required: true
        type: string
      - description: user_id
        in: path
        name: user_id
        required: true
        type: string
      - description: RemoveUserFromTenantReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/tenant.RemoveUserFromProjectReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.CommonResp'
      tags:
      - TenantService
    post:
      consumes:
      - application/json
      description: add user to project
      operationId: AddUserToProject
      parameters:
      - description: tenant_id
        in: path
        name: tenant_id
        required: true
        type: string
      - description: project_id
        in: path
        name: project_id
        required: true
        type: string
      - description: user_id
        in: path
        name: user_id
        required: true
        type: string
      - description: AddUserToProjectReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/tenant.AddUserToProjectReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.CommonResp'
      tags:
      - TenantService
  /api/v1/devops/tenants/{tenant_id}/projects/{project_id}/vpc:
    get:
      consumes:
      - application/json
      description: list vpcs of the project
      operationId: ProjectControllerListVPCs
      parameters:
      - description: tenant id
        in: path
        name: tenant_id
        required: true
        type: string
      - description: project id
        in: path
        name: project_id
        required: true
        type: string
      - in: query
        name: provider
        type: string
      - in: query
        name: region
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/project.ListVPCsResp'
      tags:
      - ProjectController
  /api/v1/devops/tenants/{tenant_id}/projects/{project_id}/vpc/{vpc_id}/cidr:
    post:
      consumes:
      - application/json
      description: add a secondary cidr for a project
      operationId: ProjectControllerAddSecondaryCIDR
      parameters:
      - description: tenant id
        in: path
        name: tenant_id
        required: true
        type: string
      - description: project id
        in: path
        name: project_id
        required: true
        type: string
      - description: vpc id
        in: path
        name: vpc_id
        required: true
        type: string
      - description: request body
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/project.AddSecondaryCIDRReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/project.CommonResp'
      tags:
      - ProjectController
  /api/v1/devops/tenants/{tenant_id}/quota:
    get:
      consumes:
      - application/json
      description: list tenant quota
      operationId: ListTenantQuota
      parameters:
      - description: tenant_id
        in: path
        name: tenant_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.ListTenantQuotaResp'
      tags:
      - TenantService
  /api/v1/devops/tenants/impersonate:
    delete:
      consumes:
      - application/json
      description: delete impersonate
      operationId: DeleteImpersonate
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TenantService
    get:
      consumes:
      - application/json
      description: get impersonate
      operationId: GetImpersonate
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.GetImpersonateResp'
      tags:
      - TenantService
    post:
      consumes:
      - application/json
      description: add impersonate
      operationId: AddImpersonate
      parameters:
      - description: ImpersonateReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/tenant.AddImpersonateReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.AddImpersonateResp'
      tags:
      - TenantService
  /api/v1/devops/tenants/reservedCapacityTemplates:
    get:
      consumes:
      - application/json
      description: list reserved capacity templates
      operationId: ListReservedCapacityTemplates
      parameters:
      - in: query
        name: data_size_gib
        type: integer
      - in: query
        name: organization_id
        type: string
      - in: query
        name: p99_response_latency
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - in: query
        name: qps
        type: integer
      - enum:
        - DEFAULT
        - ORG_PRIVATE
        in: query
        name: scope
        type: string
      - enum:
        - Starter
        - Essential
        - Premium
        - BYOC
        - Premium_Reserved
        - Essential_V2
        in: query
        name: service_plan
        type: string
      - enum:
        - ACTIVE
        - DEPRECATED
        in: query
        name: status
        type: string
      - enum:
        - READ
        - WRITE
        - MIXED
        in: query
        name: workload_type
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.ListReservedCapacityTemplatesResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TenantService
    post:
      consumes:
      - application/json
      description: create reserved capacity template by operation
      operationId: CreateReservedCapacityTemplate
      parameters:
      - description: CreateReservedCapacityTemplateReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/tenant.CreateReservedCapacityTemplateReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.ReservedCapacityTemplateOperationResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TenantService
  /api/v1/devops/tenants/reservedCapacityTemplates/{capacity_template_id}:
    delete:
      consumes:
      - application/json
      description: delete reserved capacity template by operation
      operationId: DeleteReservedCapacityTemplate
      parameters:
      - description: capacity template id
        in: path
        name: capacity_template_id
        required: true
        type: string
      - description: DeleteReservedCapacityTemplateReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/tenant.DeleteReservedCapacityTemplateReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.ReservedCapacityTemplateOperationResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TenantService
    get:
      consumes:
      - application/json
      description: get reserved capacity template
      operationId: GetReservedCapacityTemplate
      parameters:
      - description: capacity template id
        in: path
        name: capacity_template_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.GetReservedCapacityTemplateResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TenantService
  /api/v1/devops/tenants/reservedCapacityTemplates/{capacity_template_id}/status:
    patch:
      consumes:
      - application/json
      description: update reserved capacity template status by operation
      operationId: UpdateReservedCapacityTemplateStatus
      parameters:
      - description: capacity template id
        in: path
        name: capacity_template_id
        required: true
        type: string
      - description: UpdateReservedCapacityTemplateStatusReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/tenant.UpdateReservedCapacityTemplateStatusReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/tenant.ReservedCapacityTemplateOperationResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - TenantService
  /api/v1/devops/ticdc-meta/{cluster_type}/internal-changefeed/{changefeed_id}:
    get:
      consumes:
      - application/json
      description: get one changefeed by kernel/internal changefeed id
      operationId: CloudConfigControllerGetInternalChangefeed
      parameters:
      - description: kernel/internal changefeed id
        in: path
        name: changefeed_id
        required: true
        type: string
      - description: cluster type
        in: path
        name: cluster_type
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.GetInternalChangefeedResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
    post:
      consumes:
      - application/json
      description: restart one changefeed by changefeed id
      operationId: CloudConfigControllerRestartChangefeed
      parameters:
      - description: changefeed id
        in: path
        name: changefeed_id
        required: true
        type: string
      - description: cluster type
        in: path
        name: cluster_type
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.OperationResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/ticdc-meta/{cluster_type}/internal-changefeed/pause/{changefeed_id}:
    post:
      consumes:
      - application/json
      description: pause one changefeed by changefeed id
      operationId: CloudConfigControllerPauseChangefeed
      parameters:
      - description: changefeed id
        in: path
        name: changefeed_id
        required: true
        type: string
      - description: cluster type
        in: path
        name: cluster_type
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.OperationResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/ticdc-meta/{cluster_type}/internal-changefeed/resume/{changefeed_id}:
    post:
      consumes:
      - application/json
      description: resume one changefeed by changefeed id
      operationId: CloudConfigControllerResumeChangefeed
      parameters:
      - description: changefeed id
        in: path
        name: changefeed_id
        required: true
        type: string
      - description: cluster type
        in: path
        name: cluster_type
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.OperationResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/ticdc-meta/{cluster_type}/internal-changefeeds/{cluster_id}:
    get:
      consumes:
      - application/json
      description: list business changefeeds of a cluster
      operationId: CloudConfigControllerListInternalChangefeeds
      parameters:
      - description: cluster id
        in: path
        name: cluster_id
        required: true
        type: string
      - description: cluster type
        in: path
        name: cluster_type
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.ListInternalChangefeedsResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/ticdc-meta/{cluster_type}/internal-ticdc/{ticdc_cluster_id}:
    get:
      consumes:
      - application/json
      description: get one ticdc cluster by ticdc cluster id
      operationId: CloudConfigControllerGetInternalTiCDCCluster
      parameters:
      - description: ticdc cluster id
        in: path
        name: ticdc_cluster_id
        required: true
        type: string
      - description: ticdc cluster type
        in: path
        name: cluster_type
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.GetInternalTiCDCClusterResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
    post:
      consumes:
      - application/json
      description: restart one ticdc cluster by ticdc cluster id
      operationId: CloudConfigControllerRestartTiCDCCluster
      parameters:
      - description: ticdc cluster id
        in: path
        name: ticdc_cluster_id
        required: true
        type: string
      - description: cluster type
        in: path
        name: cluster_type
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.OperationResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/ticdc-meta/internal-ticdc/{ticdc_cluster_id}/shutdown:
    post:
      consumes:
      - application/json
      description: shutdown ticdc cluster
      operationId: CloudConfigControllerShutdownTiCDCCluster
      parameters:
      - description: ticdc cluster id
        in: path
        name: ticdc_cluster_id
        required: true
        type: string
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/cloudconfig.ShutdownTiCDCReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.OperationResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - CloudConfigController
  /api/v1/devops/userbehavior/gtm/emails/suppress:
    post:
      consumes:
      - application/json
      description: suppress a GTM email campaign for a tenant
      operationId: UserBehaviorControllerSuppressGTMEmail
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/userbehavior.SuppressGTMEmailReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/userbehavior.SuppressGTMEmailResp'
      tags:
      - UserBehaviorController
  /api/v1/devops/userbehavior/subscriptions:
    get:
      consumes:
      - application/json
      description: list subscriptions
      operationId: UserBehaviorControllerListSubscriptions
      parameters:
      - in: query
        name: applicant
        type: string
      - in: query
        name: cluster_id
        type: string
      - in: query
        name: filter_by_creator
        type: boolean
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - in: query
        name: show_unaccessible
        type: boolean
      - in: query
        name: type
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/userbehavior.ListSubscriptionsResp'
      tags:
      - UserBehaviorController
    post:
      consumes:
      - application/json
      description: create an subscription
      operationId: UserBehaviorControllerCreateSubscription
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/userbehavior.CreateSubscriptionReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/userbehavior.CreateSubscriptionResp'
      tags:
      - UserBehaviorController
  /api/v1/devops/userbehavior/subscriptions/{subscription_id}:
    get:
      consumes:
      - application/json
      description: get an subscription
      operationId: UserBehaviorControllerGetSubscription
      parameters:
      - description: subscription name
        in: path
        name: subscription_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/userbehavior.GetSubscriptionResp'
      tags:
      - UserBehaviorController
    put:
      consumes:
      - application/json
      description: edit subscription
      operationId: UserBehaviorControllerEditSubscription
      parameters:
      - description: subscription id
        in: path
        name: subscription_id
        required: true
        type: integer
      - description: request
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/userbehavior.EditSubscriptionReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/userbehavior.EditSubscriptionResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - UserBehaviorService
  /api/v1/devops/userbehavior/subscriptions/{subscription_id}/cancel:
    post:
      consumes:
      - application/json
      description: cancel an subscription
      operationId: UserBehaviorControllerCancelSubscription
      parameters:
      - description: subscription id
        in: path
        name: subscription_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - UserBehaviorController
  /api/v1/devops/userbehavior/subscriptions/{subscription_id}/mock:
    post:
      consumes:
      - application/json
      description: send a mock event to subscription
      operationId: UserBehaviorControllerSendMockEvent
      parameters:
      - description: subscription name
        in: path
        name: subscription_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - UserBehaviorController
  /api/v1/devops/userbehavior/subscriptions/add_chat:
    post:
      consumes:
      - application/json
      description: add an external lark chat to lark chat list
      operationId: UserBehaviorControllerAddExternalLarkChat
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/userbehavior.AddExternalLarkChatReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - UserBehaviorController
  /api/v1/devops/userbehavior/subscriptions/larkchat_options:
    get:
      consumes:
      - application/json
      description: get lark chat options
      operationId: UserBehaviorControllerGetLarkChatOptions
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/userbehavior.ListLarkChatOptionsResp'
      tags:
      - UserBehaviorController
  /api/v1/devops/webhook/jira/create-lark-group-for-s1-tickets:
    post:
      consumes:
      - application/json
      description: create a lark group for s1 jira tickets and bind the group to the
        ticket
      operationId: WebhookControllerJiraCreateLarkGroupForS1Tickets
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/webhook.JiraCreateLarkGroupForS1TicketsRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/webhook.JiraCreateLarkGroupForS1TicketsResponse'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - WebhookController
  /api/v1/devops/webhook/jira/invite-assignee:
    post:
      consumes:
      - application/json
      description: invite assignee to the lark group if the issue binded to a lark
        group
      operationId: WebhookControllerJiraInviteAssigneeToLarkGroup
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/webhook.JiraInviteAssigneeToLarkGroupRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - WebhookController
  /api/v1/devops/webhook/jira/sync-lark-group:
    post:
      consumes:
      - application/json
      description: bind escalated Jira ticket to Lark group
      operationId: WebhookControllerJiraBindLarkGroupWhenEscalation
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/webhook.JiraBindLarkGroupWhenEscalationRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        default:
          description: ""
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - WebhookController
swagger: "2.0"
