definitions:
  api.BaseResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        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
  approval.GetApprovalResp:
    properties:
      approval:
        $ref: '#/definitions/entity.Approval'
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
    type: object
  audit.AuditLogType:
    enum:
    - change
    - ctl
    - gitops_secondary_confirm
    - cluster_maintenance
    - operation
    - jump
    - cloud_config_change
    type: string
    x-enum-varnames:
    - AuditLogTypeChange
    - AuditLogTypeCtl
    - AuditLogTypeSecondary
    - AuditLogTypeClusterMaintenance
    - AuditLogTypeOperation
    - AuditLogTypeJump
    - AuditLogTypeCloudConfigChange
  audit.ListAuditLogResp:
    properties:
      audit_logs:
        items:
          $ref: '#/definitions/github_com_tidbcloud_devops_entity_audit.AuditLog'
        type: array
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      total:
        type: integer
      trace_id:
        type: string
    type: object
  audit.ListChangeAuditLogResp:
    properties:
      audit_logs:
        items:
          $ref: '#/definitions/github_com_tidbcloud_devops_entity_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/github_com_tidbcloud_devops_entity_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/github_com_tidbcloud_devops_entity_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/github_com_tidbcloud_devops_entity_audit.AuditLog'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  audit.ListOperationAuditLogResp:
    properties:
      audit_logs:
        items:
          $ref: '#/definitions/github_com_tidbcloud_devops_entity_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.ChangeComponentReq:
    properties:
      component:
        type: string
      overwrite_image_tag:
        $ref: '#/definitions/cloudconfig.ChangeImageTagReq'
    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.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
      to: {}
      to_source:
        $ref: '#/definitions/cloudconfig.ParameterSource'
    type: object
  cloudconfig.ChangedTemplate:
    properties:
      from:
        type: integer
      to:
        type: integer
    type: object
  cloudconfig.CloneParamAttrReq:
    properties:
      from_version:
        type: string
      to_version:
        type: string
    required:
    - from_version
    - to_version
    type: object
  cloudconfig.CloudInstanceType:
    properties:
      cloud_provider:
        type: string
      instance_type:
        type: string
    type: object
  cloudconfig.ClusterType:
    enum:
    - ""
    - DEDICATED_TIDB
    - TICDC
    - TIPROXY
    type: string
    x-enum-varnames:
    - ClusterTypeUnknown
    - ClusterTypeDedicatedTiDB
    - ClusterTypeTiCDC
    - ClusterTypeTiProxy
  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
    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/github_com_tidbcloud_devops_entity_cloudconfig.ClusterConfigurationLocator'
      target_tenant:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_cloudconfig.TenantInitConfigurationLocator'
      version:
        type: string
    type: object
  cloudconfig.ConfigurationChangePhase:
    enum:
    - created
    - approving
    - wait_for_apply
    - applied
    - cancelled
    - withdrawn
    type: string
    x-enum-varnames:
    - ConfigurationChangePhaseCreated
    - ConfigurationChangePhaseApproving
    - ConfigurationChangePhaseWaitForApply
    - ConfigurationChangePhaseApplied
    - ConfigurationChangePhaseCancelled
    - ConfigurationChangePhaseWithdrawn
  cloudconfig.ConfigurationChangeScope:
    properties:
      components:
        description: |-
          Components contains changes for components
          NOTE: not contain the unchanged components.
        items:
          $ref: '#/definitions/github_com_tidbcloud_devops_entity_cloudconfig.ConfigurationComponentChange'
        type: array
      files:
        description: |-
          Files contains changes for configuration files.
          NOTE: not contain the unchanged files.
        items:
          $ref: '#/definitions/github_com_tidbcloud_devops_entity_cloudconfig.ConfigurationFileChange'
        type: array
      version:
        allOf:
        - $ref: '#/definitions/github_com_tidbcloud_devops_entity_cloudconfig.ConfigurationVersionChange'
        description: Version means the change for cluster version
    type: object
  cloudconfig.ConfigurationChangeTargetType:
    enum:
    - cluster
    - tenant_init
    type: string
    x-enum-varnames:
    - ConfigurationChangeTargetTypeCluster
    - ConfigurationChangeTargetTypeTenantInit
  cloudconfig.ConfigurationChangeable:
    properties:
      changeable:
        type: boolean
      reason:
        type: string
    type: object
  cloudconfig.ConfigurationTemplate:
    properties:
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      filename:
        type: string
      id:
        description: id in the config center
        type: integer
      name:
        type: string
      parameters:
        additionalProperties:
          $ref: '#/definitions/cloudconfig.NamedParameter'
        description: 'key: parameter name'
        type: object
    type: object
  cloudconfig.ConfigurationTemplateDefaultFor:
    properties:
      cloud_provider:
        type: string
      cluster_version:
        type: string
      node_instance:
        type: string
    type: object
  cloudconfig.ConfigurationTemplateUsage:
    properties:
      cluster_id:
        items:
          type: string
        type: array
      default_for:
        items:
          $ref: '#/definitions/cloudconfig.ConfigurationTemplateDefaultFor'
        type: array
    type: object
  cloudconfig.CreateClusterConfigurationChangeReq:
    properties:
      apply_policy:
        $ref: '#/definitions/cloudconfig.ParameterApplyPolicy'
      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
      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.CreateParamAttrReq:
    properties:
      attribute:
        $ref: '#/definitions/cloudconfig.ParameterAttribute'
    required:
    - attribute
    type: object
  cloudconfig.CreateTenantInitConfigurationChangeReq:
    properties:
      apply_policy:
        $ref: '#/definitions/cloudconfig.ParameterApplyPolicy'
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      components:
        items:
          $ref: '#/definitions/cloudconfig.ChangeComponentReq'
        type: array
      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.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.GetConfigTemplateResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      template:
        $ref: '#/definitions/cloudconfig.ConfigurationTemplate'
      trace_id:
        type: string
      usage:
        $ref: '#/definitions/cloudconfig.ConfigurationTemplateUsage'
    type: object
  cloudconfig.GetConfigurationChangeResp:
    properties:
      change:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_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'
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
    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.ListConfigTemplatesResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/cloudconfig.ConfigurationTemplate'
        type: array
      trace_id:
        type: string
    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/github_com_tidbcloud_devops_entity_cloudconfig.ConfigurationChange'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  cloudconfig.ListInstanceTypesResp:
    properties:
      instance_types:
        items:
          $ref: '#/definitions/cloudconfig.CloudInstanceType'
        type: array
    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.ListVersionsResp:
    properties:
      versions:
        items:
          type: string
        type: array
    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.ParameterApplyPolicy:
    enum:
    - None
    - HotReload
    - RollingRestart
    type: string
    x-enum-varnames:
    - ParameterApplyPolicyNone
    - ParameterApplyPolicyHotReload
    - ParameterApplyPolicyRestart
  cloudconfig.ParameterAttribute:
    properties:
      apply_policy:
        $ref: '#/definitions/cloudconfig.ParameterApplyPolicy'
      config_type:
        type: string
      default_value: {}
      description:
        type: string
      name:
        type: string
      type:
        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:
      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_policy:
        $ref: '#/definitions/cloudconfig.ParameterApplyPolicy'
      change:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_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:
      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.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.UpdateParamAttrReq:
    properties:
      apply_policy:
        $ref: '#/definitions/cloudconfig.ParameterApplyPolicy'
      default_value: {}
    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
  cluster.Cluster:
    properties:
      cluster_components:
        $ref: '#/definitions/cluster.ClusterComponent'
      create_time:
        type: integer
      cross_account_deployment_id:
        type: integer
      id:
        example: "0"
        type: string
      is_dev_tier:
        type: boolean
      is_new_arch:
        type: boolean
      name:
        type: string
      profile:
        type: string
      project_id:
        example: "0"
        type: string
      project_name:
        type: string
      provider:
        type: string
      region:
        type: string
      serverless_details:
        $ref: '#/definitions/cluster.ServerlessDetails'
      status:
        type: string
      tenant_id:
        example: "0"
        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'
    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
    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.GetAlertSummaryResp:
    properties:
      trends:
        items:
          $ref: '#/definitions/jira.SeriesTrend'
        type: array
    type: object
  cluster.GetClusterResp:
    properties:
      cluster_components:
        $ref: '#/definitions/cluster.ClusterComponent'
      create_time:
        type: integer
      cross_account_deployment_id:
        type: integer
      id:
        example: "0"
        type: string
      is_dev_tier:
        type: boolean
      is_new_arch:
        type: boolean
      name:
        type: string
      profile:
        type: string
      project_id:
        example: "0"
        type: string
      project_name:
        type: string
      provider:
        type: string
      region:
        type: string
      serverless_details:
        $ref: '#/definitions/cluster.ServerlessDetails'
      status:
        type: string
      tenant_id:
        example: "0"
        type: string
      version:
        type: string
    type: object
  cluster.GetMaintenanceResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      maintenance:
        $ref: '#/definitions/entity.ClusterMaintenance'
      trace_id:
        type: string
    type: object
  cluster.ListAlertsResp:
    properties:
      items:
        items:
          $ref: '#/definitions/jira.Alert'
        type: array
      total:
        type: integer
    type: object
  cluster.ListClustersResp:
    properties:
      items:
        items:
          $ref: '#/definitions/cluster.Cluster'
        type: array
      total:
        type: integer
    type: object
  cluster.ListMaintenancesResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/entity.ClusterMaintenance'
        type: array
      total:
        type: integer
      trace_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.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
      request_unit:
        type: integer
      row_storage:
        type: number
    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
  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.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'
      serverlessSLA:
        $ref: '#/definitions/entity.SLA'
    type: object
  dashboard.SLOInfoResp:
    properties:
      currentSummary:
        items:
          $ref: '#/definitions/entity.ApplicationSLOSummary'
        type: array
    type: object
  entity.Application:
    properties:
      cdType:
        type: string
      name:
        type: string
      owners:
        description: User Email
        items:
          type: string
        type: array
      slis:
        items:
          $ref: '#/definitions/entity.SLIMeta'
        type: array
    type: object
  entity.ApplicationSLOSummary:
    properties:
      application:
        type: string
      slos:
        items:
          $ref: '#/definitions/entity.SLO'
        type: array
    type: object
  entity.ApplyStrategy:
    enum:
    - HotReload
    - RollingRestart
    - ChangeCMOnly
    type: string
    x-enum-varnames:
    - Hotreload
    - Restart
    - ChangeCMOnly
  entity.Approval:
    properties:
      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
      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
      id:
        type: integer
      name:
        description: Name is the name of the approval request used to categorize approvals.
        type: string
      nodes:
        description: Nodes defines the approval workflow.
        items:
          $ref: '#/definitions/entity.ApprovalNode'
        type: array
      parameters:
        additionalProperties:
          type: string
        description: Parameters is the parameters showed in the detail page.
        type: object
      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.ApprovalCCTask:
    properties:
      id:
        type: integer
      user_email:
        description: email
        type: string
    type: object
  entity.ApprovalNode:
    properties:
      id:
        type: integer
      method:
        $ref: '#/definitions/entity.ApproveMethod'
      order:
        description: first is 0, must be equal to the index of slices.
        type: integer
      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/entity.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.ClusterMaintenance:
    properties:
      id:
        type: integer
      instance_id:
        description: the id of MaintenanceTask in the core svc
        type: integer
      lark_notified_at:
        type: string
      task:
        $ref: '#/definitions/entity.ClusterMaintenanceTask'
    type: object
  entity.ClusterMaintenanceExecution:
    properties:
      cancel_reason:
        type: string
      cluster_id:
        example: "0"
        type: string
      id:
        type: integer
      status:
        $ref: '#/definitions/entity.ClusterMaintenanceExecutionStatus'
      task_id:
        description: the id of MaintenanceTaskExecution in the core svc
        type: integer
    type: object
  entity.ClusterMaintenanceExecutionStatus:
    enum:
    - Pending
    - Running
    - Done
    - Canceled
    type: string
    x-enum-varnames:
    - ClusterMaintenanceExecutionStatusPending
    - ClusterMaintenanceExecutionStatusRunning
    - ClusterMaintenanceExecutionStatusDone
    - ClusterMaintenanceExecutionStatusCanceled
  entity.ClusterMaintenanceTask:
    properties:
      create_at:
        type: string
      deadline:
        type: string
      description:
        type: string
      executions:
        items:
          $ref: '#/definitions/entity.ClusterMaintenanceExecution'
        type: array
      id:
        type: integer
      project_id:
        example: "0"
        type: string
      schedule_time:
        type: string
      status:
        $ref: '#/definitions/entity.ClusterMaintenanceTaskStatus'
    type: object
  entity.ClusterMaintenanceTaskStatus:
    enum:
    - Pending
    - Running
    - Closed
    type: string
    x-enum-varnames:
    - ClusterMaintenanceTaskStatusPending
    - ClusterMaintenanceTaskStatusRunning
    - ClusterMaintenanceTaskStatusClosed
  entity.ConfigAttributes:
    properties:
      apply_policy:
        $ref: '#/definitions/entity.ApplyStrategy'
      id:
        type: integer
      param_name:
        type: string
      version:
        type: integer
    type: object
  entity.ConfigPair:
    properties:
      current_image:
        type: string
      current_toml:
        type: string
      next_image:
        type: string
      next_toml:
        type: string
    type: object
  entity.ConfigPairs:
    properties:
      config_pair_map:
        additionalProperties:
          $ref: '#/definitions/entity.ConfigPair'
        type: object
      creation_timestamp_unix:
        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/entity.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_issues:
        type: string
      leaders:
        items:
          $ref: '#/definitions/entity.User'
        type: array
      log_items:
        items:
          $ref: '#/definitions/entity.IncidentLogItem'
        type: array
      name:
        type: string
      oncallers:
        items:
          $ref: '#/definitions/entity.User'
        type: array
      postmortem_available:
        type: boolean
      status:
        $ref: '#/definitions/entity.IncidentStatus'
      tier:
        $ref: '#/definitions/entity.IncidentTier'
    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/entity.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
      id:
        type: integer
      incident_id:
        type: integer
      persons:
        items:
          $ref: '#/definitions/entity.User'
        type: array
      postmortem_id:
        type: integer
      status:
        description: InProgress or Done or Canceled
        type: string
      title:
        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.LarkChatSimplified:
    properties:
      avatar_url:
        type: string
      id:
        type: integer
      is_external:
        type: boolean
      name:
        type: string
    required:
    - id
    type: object
  entity.LarkType:
    enum:
    - cn
    - global
    type: string
    x-enum-varnames:
    - LarkTypeCN
    - LarkTypeGlobal
  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.Privilege:
    properties:
      description:
        type: string
      operation:
        type: string
      resource:
        type: string
    required:
    - operation
    - resource
    type: object
  entity.Role:
    properties:
      description:
        type: string
      id:
        type: integer
      name:
        type: string
      privileges:
        items:
          $ref: '#/definitions/entity.Privilege'
        type: array
    required:
    - name
    - privileges
    type: object
  entity.SLA:
    properties:
      current:
        type: number
      monthlyTrends:
        items:
          $ref: '#/definitions/entity.SeriesMonthlyTrend'
        type: array
    type: object
  entity.SLIMeta:
    properties:
      name:
        type: string
      objectives:
        items:
          $ref: '#/definitions/entity.SLOMeta'
        type: array
      type:
        type: string
    type: object
  entity.SLO:
    properties:
      met:
        type: boolean
      name:
        type: string
      reason:
        type: string
    type: object
  entity.SLOMeta:
    properties:
      name:
        type: string
      op:
        type: string
      promql:
        type: string
      value:
        type: string
    type: object
  entity.SecondaryConfirmInRepo:
    properties:
      applied_policy:
        $ref: '#/definitions/entity.ApplyStrategy'
      cluster_id:
        type: string
      cluster_name:
        type: string
      created:
        type: string
      diff_info:
        $ref: '#/definitions/entity.ConfigPairs'
      hot_reloadable:
        type: boolean
      id:
        type: integer
      project_id:
        type: string
      revision_id:
        type: string
      status:
        $ref: '#/definitions/entity.SecondaryConfirmStatus'
      tenant_name:
        type: string
    type: object
  entity.SecondaryConfirmStatus:
    enum:
    - generated
    - outdated
    - applying
    - applied
    type: string
    x-enum-varnames:
    - SecondaryConfirmGenerated
    - SecondaryConfirmOutdated
    - SecondaryConfirmApplying
    - SecondaryConfirmApplied
  entity.SeriesMonthlyTrend:
    properties:
      month:
        type: string
      series:
        type: string
      value:
        type: integer
    type: object
  entity.TenantKind:
    enum:
    - internal
    - external
    type: string
    x-enum-varnames:
    - TenantKindInternal
    - TenantKindExternal
  entity.TenantPlan:
    enum:
    - new_user
    - free_trial
    - poc
    - on_demand
    type: string
    x-enum-varnames:
    - TenantPlanNewUser
    - TenantPlanFreeTrial
    - TenantPlanPoc
    - TenantPlanOnDemand
  entity.TenantRegion:
    enum:
    - APAC
    - EMEA
    - JAPAN
    - NA
    - UNKNOWN
    type: string
    x-enum-varnames:
    - TenantRegionAPAC
    - TenantRegionEMEA
    - TenantRegionJapan
    - TenantRegionNA
    - TenantRegionUnknown
  entity.TenantSegmentation:
    enum:
    - SKA
    - KA
    - SMB
    - UNKNOWN
    type: string
    x-enum-varnames:
    - TenantSegmentationSKA
    - TenantSegmentationKA
    - TenantSegmentationSMB
    - TenantSegmentationUnknown
  entity.TenantStatus:
    enum:
    - pending
    - active
    - inactive
    - deleted
    - cleared
    type: string
    x-enum-varnames:
    - TenantStatusPending
    - TenantStatusActive
    - TenantStatusInactive
    - TenantStatusDeleted
    - TenantStatusCleared
  entity.TopTenant:
    properties:
      alias:
        type: string
      id:
        example: "0"
        type: string
      name:
        type: string
      region:
        $ref: '#/definitions/entity.TenantRegion'
      value:
        type: integer
    type: object
  entity.User:
    properties:
      available:
        type: boolean
      delete_at:
        type: string
      email:
        type: string
      github_id:
        description: empty means unset
        type: string
      lark_department_id:
        type: string
      lark_department_name:
        type: string
      lark_type:
        $ref: '#/definitions/entity.LarkType'
      lark_user_id:
        type: string
      lark_user_name:
        type: string
    type: object
  entity.UserGroup:
    properties:
      created_at:
        type: string
      description:
        type: string
      name:
        type: string
      source:
        $ref: '#/definitions/entity.UserGroupSource'
    type: object
  entity.UserGroupSource:
    enum:
    - custom
    - lark
    type: string
    x-enum-varnames:
    - UserGroupSourceCustom
    - UserGroupSourceLark
  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_release.Change:
    properties:
      applicant:
        $ref: '#/definitions/entity.User'
      applicant_email:
        type: string
      application:
        $ref: '#/definitions/entity.Application'
      application_id:
        type: string
      approval_id:
        type: integer
      change_id:
        type: integer
      change_item_names:
        description: release ticket names
        items:
          type: string
        type: array
      change_items:
        items:
          $ref: '#/definitions/github_com_tidbcloud_devops_entity_release.ReleaseTicket'
        type: array
      closed_at:
        type: string
      created_at:
        type: string
      deployment:
        items:
          $ref: '#/definitions/github_com_tidbcloud_devops_entity_release.ChangeDeployment'
        type: array
      detail:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_release.ChangeDetail'
      name:
        type: string
      notification:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_release.ChangeNotification'
      release:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_release.Release'
      release_id:
        description: release id
        type: integer
      result:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_release.ChangeResult'
      risk_level:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_release.RiskLevel'
      status:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_release.ChangeStatus'
      tier:
        items:
          $ref: '#/definitions/release.ChangeTier'
        type: array
      type:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_release.ChangeType'
      window_end_at:
        description: zero means unlimited
        type: integer
      window_start_at:
        description: zero means unlimited
        type: integer
    type: object
  github_com_tidbcloud_devops_entity_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
  github_com_tidbcloud_devops_entity_cloudconfig.ClusterConfigurationLocator:
    properties:
      cluster_id:
        type: string
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
    type: object
  github_com_tidbcloud_devops_entity_cloudconfig.ConfigurationChange:
    properties:
      applicant:
        type: string
      applied_at:
        type: integer
      apply_policy:
        $ref: '#/definitions/cloudconfig.ParameterApplyPolicy'
      approval_id:
        type: integer
      closed_at:
        type: integer
      created_at:
        type: integer
      id:
        type: integer
      phase:
        $ref: '#/definitions/cloudconfig.ConfigurationChangePhase'
      reason:
        type: string
      scope:
        $ref: '#/definitions/cloudconfig.ConfigurationChangeScope'
      target_cluster:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_cloudconfig.ClusterConfigurationLocator'
      target_tenant:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_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
  github_com_tidbcloud_devops_entity_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
    type: object
  github_com_tidbcloud_devops_entity_cloudconfig.ConfigurationFileChange:
    properties:
      all_parameters:
        description: AllParameters contain all used parameters.
        items:
          $ref: '#/definitions/cloudconfig.UsedParameter'
        type: array
      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
  github_com_tidbcloud_devops_entity_cloudconfig.ConfigurationVersionChange:
    properties:
      from:
        type: string
      id:
        description: ID is the id in the database.
        type: integer
      to:
        type: string
    type: object
  github_com_tidbcloud_devops_entity_cloudconfig.TenantInitConfigurationLocator:
    properties:
      cluster_type:
        $ref: '#/definitions/cloudconfig.ClusterType'
      tenant_id:
        example: "0"
        type: string
    type: object
  github_com_tidbcloud_devops_entity_release.Change:
    properties:
      applicant:
        $ref: '#/definitions/entity.User'
      applicant_email:
        type: string
      application:
        $ref: '#/definitions/entity.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/github_com_tidbcloud_devops_entity_release.ReleaseTicket'
        type: array
      closed_at:
        type: string
      created_at:
        description: readonly
        type: string
      deployments:
        items:
          $ref: '#/definitions/github_com_tidbcloud_devops_entity_release.ChangeDeployment'
        type: array
      detail:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_release.ChangeDetail'
      id:
        type: integer
      name:
        type: string
      notification:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_release.ChangeNotification'
      prev_approval_ids:
        description: the previous approval ids
        items:
          type: integer
        type: array
      release:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_release.Release'
      release_id:
        description: release id
        type: integer
      result:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_release.ChangeResult'
      risk_level:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_release.RiskLevel'
      status:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_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/github_com_tidbcloud_devops_entity_release.ChangeType'
      window_end_at:
        description: timestamp, zero means unlimited
        type: integer
      window_start_at:
        description: timestamp, zero means unlimited
        type: integer
    type: object
  github_com_tidbcloud_devops_entity_release.ChangeDeployMethod:
    enum:
    - argocd
    - manual
    type: string
    x-enum-varnames:
    - ChangeDeployMethodArgoCD
    - ChangeDeployMethodManual
  github_com_tidbcloud_devops_entity_release.ChangeDeployStatus:
    enum:
    - created
    - deployed
    - verified
    type: string
    x-enum-varnames:
    - ChangeDeployStatusCreated
    - ChangeDeployStatusDeployed
    - ChangeDeployStatusVerified
  github_com_tidbcloud_devops_entity_release.ChangeDeployment:
    properties:
      deployed_at:
        type: string
      id:
        type: integer
      info:
        $ref: '#/definitions/release.ChangeDeployInfo'
      method:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_release.ChangeDeployMethod'
      note:
        type: string
      order:
        type: integer
      regions:
        items:
          $ref: '#/definitions/release.RegionName'
        type: array
      status:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_release.ChangeDeployStatus'
    type: object
  github_com_tidbcloud_devops_entity_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
  github_com_tidbcloud_devops_entity_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
  github_com_tidbcloud_devops_entity_release.ChangeResult:
    enum:
    - cancel
    - successful
    - failed
    - failed_partially
    - rollback
    type: string
    x-enum-varnames:
    - ChangeResultCancel
    - ChangeResultSuccessful
    - ChangeResultFailed
    - ChangeResultFailedPartially
    - ChangeResultRollback
  github_com_tidbcloud_devops_entity_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
  github_com_tidbcloud_devops_entity_release.ChangeType:
    enum:
    - sprint
    - hotfix
    type: string
    x-enum-varnames:
    - ChangeTypeSprint
    - ChangeTypeHotfix
  github_com_tidbcloud_devops_entity_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/github_com_tidbcloud_devops_entity_release.ReleaseStatus'
      tickets:
        items:
          $ref: '#/definitions/github_com_tidbcloud_devops_entity_release.ReleaseTicket'
        type: array
      type:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_release.ReleaseType'
      window_end_at:
        type: string
      window_start_at:
        type: string
    type: object
  github_com_tidbcloud_devops_entity_release.ReleaseStatus:
    enum:
    - before_release
    - open
    - finished
    type: string
    x-enum-varnames:
    - ReleaseStatusBeforeRelease
    - ReleaseStatusOpen
    - ReleaseStatusFinished
  github_com_tidbcloud_devops_entity_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:
        description: 'ex: DM-8580'
        type: string
      release_id:
        type: integer
      release_name:
        type: string
      status:
        type: string
      summary:
        type: string
      type:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_release.ReleaseTicketType'
    type: object
  github_com_tidbcloud_devops_entity_release.ReleaseTicketType:
    enum:
    - dm
    type: string
    x-enum-varnames:
    - ReleaseTicketTypeDM
  github_com_tidbcloud_devops_entity_release.ReleaseType:
    enum:
    - periodic
    type: string
    x-enum-varnames:
    - ReleaseTypePeriodic
  github_com_tidbcloud_devops_entity_release.RiskLevel:
    enum:
    - low
    - high
    type: string
    x-enum-varnames:
    - RiskLevelLow
    - RiskLevelHigh
  github_com_tidbcloud_devops_entity_userbehavior.Subscription:
    properties:
      available:
        type: boolean
      creator:
        description: Creator email
        type: string
      event_type:
        $ref: '#/definitions/userbehavior.UBEventTp'
      id:
        type: integer
      lark_chats:
        items:
          $ref: '#/definitions/entity.LarkChatSimplified'
        type: array
      name:
        type: string
      only_paid_tenant:
        type: boolean
      selector:
        $ref: '#/definitions/userbehavior.SelectorTp'
      subscribe_type:
        $ref: '#/definitions/userbehavior.SubscribeTp'
      template:
        type: string
    required:
    - id
    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/entity.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
      feishu_task_id:
        type: string
      id:
        type: integer
      persons:
        items:
          $ref: '#/definitions/entity.User'
        type: array
      postmortem_id:
        type: integer
      status:
        description: InProgress or Done or Canceled
        type: string
      title:
        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_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
    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.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.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:
      items:
        items:
          $ref: '#/definitions/entity.Incident'
        type: array
    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/entity.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
      feishu_task_id:
        type: string
      id:
        type: integer
      persons:
        items:
          $ref: '#/definitions/entity.User'
        type: array
      postmortem_id:
        type: integer
      status:
        description: InProgress or Done or Canceled
        type: string
      title:
        type: string
    type: object
  incident.UpdateIncidentPostMortemToDoActionResp:
    type: object
  incident.UpdateIncidentReq:
    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_issues:
        type: string
      leaders:
        items:
          type: string
        type: array
      name:
        type: string
      oncallers:
        items:
          type: string
        type: array
      status:
        type: string
      tier:
        type: string
    type: object
  incident.UpdateIncidentResp:
    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.SeriesTrend:
    properties:
      name:
        type: string
      series:
        type: string
      value:
        type: integer
    type: object
  jump.Authorization:
    properties:
      applicant:
        description: email
        type: string
      approval_id:
        type: integer
      closed_at:
        type: integer
      cluster_deploy_type:
        $ref: '#/definitions/jump.JumpClusterDeployType'
      cluster_id:
        type: string
      created_at:
        type: integer
      expiration:
        $ref: '#/definitions/jump.JumpExpiration'
      expire_at:
        type: integer
      id:
        type: integer
      phase:
        allOf:
        - $ref: '#/definitions/jump.AuthorizationPhase'
        description: status
      plane:
        $ref: '#/definitions/jump.JumpPlane'
      privilege:
        $ref: '#/definitions/jump.JumpPrivilege'
      reason:
        type: string
      token_refresh_at:
        description: jump token expire time, nil means no expire
        type: integer
    type: object
  jump.AuthorizationPhase:
    enum:
    - initialized
    - approving
    - creating
    - created
    - expired
    - notapproved
    - creationfailed
    - canceled
    type: string
    x-enum-varnames:
    - AuthorizationPhaseInitialized
    - AuthorizationPhaseApproving
    - AuthorizationPhaseCreating
    - AuthorizationPhaseCreated
    - AuthorizationPhaseExpired
    - AuthorizationPhaseNotApproved
    - AuthorizationPhaseCreationFailed
    - AuthorizationPhaseCanceled
  jump.CreateAuthorizationReq:
    properties:
      cluster_deploy_type:
        $ref: '#/definitions/jump.JumpClusterDeployType'
      cluster_id:
        type: string
      expiration:
        $ref: '#/definitions/jump.JumpExpiration'
      plane:
        $ref: '#/definitions/jump.JumpPlane'
      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.GetAuthorizationResp:
    properties:
      authorization:
        $ref: '#/definitions/jump.Authorization'
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      trace_id:
        type: string
    type: object
  jump.GetConnectJumpPodParamsResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      params:
        $ref: '#/definitions/jump.JumppodConnectParam'
      trace_id:
        type: string
    type: object
  jump.GetControlPlaneOptionsResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      options:
        items:
          type: string
        type: array
      trace_id:
        type: string
    type: object
  jump.GetServerlessOptionsResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      options:
        items:
          type: string
        type: array
      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.JumpClusterDeployType:
    enum:
    - dedicated
    - serverless
    type: string
    x-enum-varnames:
    - JumpClusterDeployTypeDedicated
    - JumpClusterDeployTypeServerless
  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.JumpPlane:
    enum:
    - control_plane
    - data_plane
    type: string
    x-enum-varnames:
    - JumpPlaneControlPlane
    - JumpPlaneDataPlane
  jump.JumpPrivilege:
    enum:
    - read_only
    - read_write
    - admin
    type: string
    x-enum-varnames:
    - JumpPrivilegeReadOnly
    - JumpPrivilegeReadWrite
    - JumpPrivilegeAdmin
  jump.JumppodConnectParam:
    properties:
      connection_token:
        type: string
      ctx_name:
        type: string
      jumppod_name:
        type: string
      jumpserver_accessurl:
        type: string
      jumpserver_ssh_addr:
        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
  k8supgrade.GetK8SInformationResp:
    properties:
      admin_nodes:
        items:
          $ref: '#/definitions/k8supgrade.Node'
        type: array
      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
      k8s_name:
        type: string
      number_of_tidb_clusters:
        type: integer
      project_id:
        type: string
      region:
        type: string
      tenant_id:
        type: string
      trace_id:
        type: string
    type: object
  k8supgrade.K8sInfo:
    properties:
      admin_nodes:
        items:
          $ref: '#/definitions/k8supgrade.Node'
        type: array
      cloud_account:
        type: string
      cloud_provider:
        type: string
      clusters:
        items:
          $ref: '#/definitions/k8supgrade.TiDBClusterInfraInfo'
        type: array
      control_plane_version:
        $ref: '#/definitions/k8supgrade.Version'
      k8s_name:
        type: string
      number_of_tidb_clusters:
        type: integer
      project_id:
        type: string
      region:
        type: string
      tenant_id:
        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.Node:
    properties:
      count:
        type: integer
      kind:
        description: admin-nodes, tidb-nodes, cdc-nodes, dm-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.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.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
  operation.ActionMetadata:
    properties:
      name:
        type: string
      type:
        $ref: '#/definitions/operation.ActionType'
    type: object
  operation.ActionStartPolicy:
    enum:
    - manual
    - immediate
    - schedule
    type: string
    x-enum-varnames:
    - ActionStartPolicyMaunal
    - ActionStartPolicyImmediate
    - ActionStartPolicySchedule
  operation.ActionStatus:
    enum:
    - created
    - running
    - succeeded
    - failed
    - unknown
    type: string
    x-enum-varnames:
    - ActionStatusCreated
    - ActionStatusRunning
    - ActionStatusSucceeded
    - ActionStatusFailed
    - ActionStatusUnknown
  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
      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
      id:
        type: integer
      operation:
        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:
    - created
    - approving
    - withdrawn
    - pending
    - running
    - succeeded
    - failed
    - canceled
    type: string
    x-enum-varnames:
    - 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_cc:
        allOf:
        - $ref: '#/definitions/operation.OperationApprover'
        description: ApprovalCC defines who can receive the approval cc after approved.
      approval_tips:
        description: ApprovalTips is the text shown on approval page.
        type: string
      approvers:
        description: |-
          Approver defines who can approve this operation.
          The index of array is the level of approver, max is 3.
        items:
          $ref: '#/definitions/operation.OperationApprover'
        type: array
      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
      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.OperationApprover:
    properties:
      applicant_leader:
        description: The applicant leader is approver
        type: boolean
      emails:
        description: Emails of approvers
        items:
          type: string
        type: array
      from_param:
        allOf:
        - $ref: '#/definitions/operation.OperationApproverForParam'
        description: The approver is generated from param
      user_group:
        description: User group of approvers, defined in user service
        type: string
    type: object
  operation.OperationApproverForParam:
    properties:
      param_name:
        allOf:
        - $ref: '#/definitions/operation.ParamName'
        description: The name of param
      param_value_mapping:
        additionalProperties:
          $ref: '#/definitions/operation.OperationApprover'
        description: The value of param to approver
        type: object
    type: object
  operation.OperationTarget:
    enum:
    - cluster
    - tenant
    - undefined
    type: string
    x-enum-varnames:
    - OperationTargetCluster
    - OperationTargetTenant
    - 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.ParamName:
    enum:
    - cluster_id
    - project_id
    - tenant_id
    - tenant_region
    - oncall_category
    - plane_type
    - cluster_components_to_scale
    - tidb_node_quota
    - tikv_node_quota
    - tiflash_node_quota
    - jump_auth_id
    - configuration_change_id
    - secondary_confirm_link
    - force_restart
    - restart_target
    - restart_target_type
    - component_type
    - node_size
    - replicas
    - storage_size_gi
    type: string
    x-enum-comments:
      ParamClusterComponentsToScale: 'value: ClusterComponentsToScale, used by scale
        cluster'
      ParamClusterID: 'value: uint64'
      ParamConfigurationChangeID: 'value: uint64'
      ParamForceRestart: 'value: string'
      ParamJumpAuthorizationID: 'value: uint64'
      ParamOncallCategory: 'value: string'
      ParamPlaneType: 'value: string, ex: control_plane, data_plane'
      ParamProjectID: 'value: uint64'
      ParamRestartTarget: 'value: string'
      ParamRestartTargetType: 'value: string'
      ParamSecondaryConfirmLink: 'value: string, generated by gitops, and you can
        get it from github PR comment'
      ParamTenantID: 'value: uint64'
      ParamTenantRegion: 'value: TenantRegion, ex: APAC'
      ParamTiDBNodeQuota: 'value: int, used by update tenant quota'
      ParamTiFlashNodeQuota: 'value: int, used by update tenant quota'
      ParamTiKVNodeQuota: 'value: int, used by update tenant quota'
    x-enum-varnames:
    - ParamClusterID
    - ParamProjectID
    - ParamTenantID
    - ParamTenantRegion
    - ParamOncallCategory
    - ParamPlaneType
    - ParamClusterComponentsToScale
    - ParamTiDBNodeQuota
    - ParamTiKVNodeQuota
    - ParamTiFlashNodeQuota
    - ParamJumpAuthorizationID
    - ParamConfigurationChangeID
    - ParamSecondaryConfirmLink
    - ParamForceRestart
    - ParamRestartTarget
    - ParamRestartTargetType
    - ParamComponentType
    - ParamNodeSize
    - ParamReplicas
    - ParamStorageSizeGi
  operation.ParamType:
    enum:
    - string
    - int
    type: string
    x-enum-varnames:
    - ParamTypeString
    - ParamTypeInt
  rbac.CreateRoleReq:
    properties:
      description:
        type: string
      name:
        type: string
      privileges:
        items:
          $ref: '#/definitions/entity.Privilege'
        type: array
    required:
    - name
    - privileges
    type: object
  rbac.GenerateAPIKeyReq:
    properties:
      comment:
        type: string
      owner:
        type: string
    required:
    - comment
    - owner
    type: object
  rbac.GenerateAPIKeyResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      k:
        type: string
      trace_id:
        type: string
    type: object
  rbac.GetRoleResp:
    properties:
      description:
        type: string
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      id:
        type: integer
      name:
        type: string
      privileges:
        items:
          $ref: '#/definitions/entity.Privilege'
        type: array
      trace_id:
        type: string
    required:
    - name
    - privileges
    type: object
  rbac.ListRolesResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/entity.Role'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  rbac.UpdateRoleReq:
    properties:
      description:
        type: string
      name:
        type: string
      privileges:
        items:
          $ref: '#/definitions/entity.Privilege'
        type: array
    required:
    - name
    - privileges
    type: object
  release.ChangeDeployArgoCD:
    properties:
      deploy_prs:
        items:
          $ref: '#/definitions/release.GithubPR'
        type: array
    type: object
  release.ChangeDeployInfo:
    properties:
      argocd:
        $ref: '#/definitions/release.ChangeDeployArgoCD'
      manual:
        $ref: '#/definitions/release.ChangeDeployManual'
    type: object
  release.ChangeDeployManual:
    properties:
      description:
        type: string
    type: object
  release.ChangeTier:
    enum:
    - dedicated
    - serverless
    type: string
    x-enum-varnames:
    - ChangeTierDedicated
    - ChangeTierServerless
  release.CloseChangeReq:
    properties:
      result:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_release.ChangeResult'
      summary:
        type: string
    required:
    - result
    - summary
    type: object
  release.CreateChangeReq:
    properties:
      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/github_com_tidbcloud_devops_entity_release.RiskLevel'
      rollback_plan:
        type: string
      staging_test_report:
        type: string
      tier:
        items:
          $ref: '#/definitions/release.ChangeTier'
        type: array
      type:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_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:
      deploy_cd_link:
        type: string
      deploy_description:
        type: string
      deploy_method:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_release.ChangeDeployMethod'
      order:
        type: integer
      regions:
        items:
          $ref: '#/definitions/release.RegionName'
        type: array
    required:
    - deploy_method
    - order
    - regions
    type: object
  release.ExecuteDeploymentReq:
    properties:
      force:
        type: boolean
    type: object
  release.GetChangeResp:
    properties:
      change:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_release.Change'
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      release_tickets:
        description: 'FIXME: remove this hack, required by FE now.'
        items:
          $ref: '#/definitions/github_com_tidbcloud_devops_entity_release.ReleaseTicket'
        type: array
      trace_id:
        type: string
    type: object
  release.GetReleaseResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      release:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_release.Release'
      trace_id:
        type: string
    type: object
  release.GetTicketResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      ticket:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_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/github_com_tidbcloud_devops_api_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/github_com_tidbcloud_devops_entity_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/github_com_tidbcloud_devops_entity_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.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/github_com_tidbcloud_devops_entity_release.RiskLevel'
      rollback_plan:
        type: string
      staging_test_report:
        type: string
      tier:
        items:
          $ref: '#/definitions/release.ChangeTier'
        type: array
      type:
        $ref: '#/definitions/github_com_tidbcloud_devops_entity_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
  secondaryconfirm.ApplyReq:
    properties:
      apply_strategy:
        $ref: '#/definitions/entity.ApplyStrategy'
      cluster_id:
        type: string
      config_revision_id:
        type: string
      created_time:
        type: integer
      project_id:
        type: string
    type: object
  secondaryconfirm.DiffResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      secondary:
        $ref: '#/definitions/entity.SecondaryConfirmInRepo'
      trace_id:
        type: string
    type: object
  secondaryconfirm.ListResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      history_secondarys:
        items:
          $ref: '#/definitions/entity.SecondaryConfirmInRepo'
        type: array
      trace_id:
        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.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.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/entity.TenantKind'
      name:
        type: string
      plan:
        $ref: '#/definitions/entity.TenantPlan'
      region:
        $ref: '#/definitions/entity.TenantRegion'
      sales_owner_email:
        type: string
      segmentation:
        $ref: '#/definitions/entity.TenantSegmentation'
      status:
        $ref: '#/definitions/entity.TenantStatus'
      time_zone:
        type: string
    type: object
  tenant.ListTenantResp:
    properties:
      items:
        items:
          $ref: '#/definitions/tenant.Tenant'
        type: array
      total:
        type: integer
    type: object
  tenant.OrderType:
    enum:
    - asc
    - desc
    type: string
    x-enum-varnames:
    - OrderTypeASC
    - OrderTypeDESC
  tenant.SortByType:
    enum:
    - created_at
    - timezone
    type: string
    x-enum-varnames:
    - SortByTypeCreatedAt
    - SortByTypeTimezone
  tenant.Tenant:
    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/entity.TenantKind'
      name:
        type: string
      plan:
        $ref: '#/definitions/entity.TenantPlan'
      region:
        $ref: '#/definitions/entity.TenantRegion'
      sales_owner_email:
        type: string
      segmentation:
        $ref: '#/definitions/entity.TenantSegmentation'
      status:
        $ref: '#/definitions/entity.TenantStatus'
      time_zone:
        type: string
    type: object
  user.CreateGroupReq:
    properties:
      description:
        type: string
      name:
        type: string
    required:
    - name
    type: object
  user.DeleteGroupReq:
    properties:
      force:
        type: boolean
    type: object
  user.GetGroupResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      group:
        $ref: '#/definitions/entity.UserGroup'
      trace_id:
        type: string
    type: object
  user.GetUserResp:
    properties:
      available:
        type: boolean
      delete_at:
        type: string
      email:
        type: string
      github_id:
        description: empty means unset
        type: string
      lark_department_id:
        type: string
      lark_department_name:
        type: string
      lark_type:
        $ref: '#/definitions/entity.LarkType'
      lark_user_id:
        type: string
      lark_user_name:
        type: string
      role_ids:
        items:
          type: integer
        type: array
    type: object
  user.ListGroupsResp:
    properties:
      errcode:
        $ref: '#/definitions/api.ErrCode'
      errmsg:
        type: string
      items:
        items:
          $ref: '#/definitions/entity.UserGroup'
        type: array
      total:
        type: integer
      trace_id:
        type: string
    type: object
  user.ListUserResp:
    properties:
      items:
        items:
          $ref: '#/definitions/user.User'
        type: array
      total:
        type: integer
    type: object
  user.MapUsersToGroupReq:
    properties:
      group_name:
        type: string
      user_emails:
        items:
          type: string
        type: array
    required:
    - group_name
    - user_emails
    type: object
  user.RegionInfo:
    properties:
      global:
        type: boolean
      regions:
        items:
          $ref: '#/definitions/entity.TenantRegion'
        type: array
    type: object
  user.UnmapUsersFromGroupReq:
    properties:
      group_name:
        type: string
      user_emails:
        items:
          type: string
        type: array
    required:
    - group_name
    - user_emails
    type: object
  user.UpdateGroupReq:
    properties:
      description:
        type: string
    type: object
  user.UpdateUserRoleBindingsReq:
    properties:
      email:
        type: string
      role_ids:
        items:
          type: integer
        type: array
    required:
    - email
    - role_ids
    type: object
  user.User:
    properties:
      available:
        type: boolean
      delete_at:
        type: string
      email:
        type: string
      github_id:
        description: empty means unset
        type: string
      lark_department_id:
        type: string
      lark_department_name:
        type: string
      lark_type:
        $ref: '#/definitions/entity.LarkType'
      lark_user_id:
        type: string
      lark_user_name:
        type: string
      role_ids:
        items:
          type: integer
        type: array
    type: object
  user.UserProfileResp:
    properties:
      email:
        type: string
      name:
        type: string
      region_info:
        $ref: '#/definitions/user.RegionInfo'
      roles:
        items:
          type: string
        type: array
    type: object
  userbehavior.AddExternalLarkChatReq:
    properties:
      avatar:
        type: string
      chat_url:
        type: string
      name:
        type: string
    required:
    - chat_url
    - name
    type: object
  userbehavior.CreateSubscriptionReq:
    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.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/github_com_tidbcloud_devops_entity_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/github_com_tidbcloud_devops_entity_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.UBEventTp:
    enum:
    - tenant
    - cluster
    type: string
    x-enum-comments:
      UBEventTenant: tenant creation, deletion and plan change
    x-enum-varnames:
    - UBEventTenant
    - UBEventCluster
info:
  contact: {}
  description: devops server
  title: Devops API
  version: "1.0"
paths:
  /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/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/release/tickets/sync:
    post:
      consumes:
      - application/json
      description: sync all tickets manually
      operationId: ReleaseControllerSyncTicketManually
      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
          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/api-keys:
    post:
      consumes:
      - application/json
      description: generate a api key
      operationId: GenerateAPIKey
      parameters:
      - description: request
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/rbac.GenerateAPIKeyReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/rbac.GenerateAPIKeyResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - RbacService
  /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}/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}/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
        - gitops_secondary_confirm
        - cluster_maintenance
        - operation
        - jump
        - cloud_config_change
        in: query
        name: type
        type: string
        x-enum-varnames:
        - AuditLogTypeChange
        - AuditLogTypeCtl
        - AuditLogTypeSecondary
        - AuditLogTypeClusterMaintenance
        - AuditLogTypeOperation
        - AuditLogTypeJump
        - AuditLogTypeCloudConfigChange
      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/cloudconfig-admin/parameter/attribute/{config_type}/{version}/{param_name}:
    put:
      consumes:
      - application/json
      description: update a parameter attribute
      operationId: CloudConfigControllerUpdateParameterAttribute
      parameters:
      - 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/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
        - TIPROXY
        in: query
        name: cluster_type
        required: true
        type: string
        x-enum-varnames:
        - ClusterTypeUnknown
        - ClusterTypeDedicatedTiDB
        - ClusterTypeTiCDC
        - ClusterTypeTiProxy
      - 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
        - TIPROXY
        in: query
        name: cluster_type
        required: true
        type: string
        x-enum-varnames:
        - ClusterTypeUnknown
        - ClusterTypeDedicatedTiDB
        - ClusterTypeTiCDC
        - ClusterTypeTiProxy
      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/config-types/{cluster_type}:
    get:
      consumes:
      - application/json
      description: list available config types
      operationId: CloudConfigControllerListConfigTypes
      parameters:
      - description: cluster_type
        enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - TIPROXY
        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/instance-types/{cluster_type}/{version}/{component}:
    get:
      consumes:
      - application/json
      description: list available instance types
      operationId: CloudConfigControllerListInstanceTypes
      parameters:
      - description: cluster_type
        enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - TIPROXY
        in: path
        name: cluster_type
        required: true
        type: string
      - description: version
        in: path
        name: version
        required: true
        type: string
      - description: component
        in: path
        name: component
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.ListInstanceTypesResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/parameter/attribute/{configtype}/{version}:
    get:
      consumes:
      - application/json
      description: list parameter attributes
      operationId: CloudConfigControllerListParameterAttributes
      parameters:
      - 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: 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/templates:
    get:
      consumes:
      - application/json
      description: list templates
      operationId: CloudConfigControllerListConfigTemplates
      parameters:
      - in: query
        name: cloud_provider
        required: true
        type: string
      - enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - TIPROXY
        in: query
        name: cluster_type
        required: true
        type: string
        x-enum-varnames:
        - ClusterTypeUnknown
        - ClusterTypeDedicatedTiDB
        - ClusterTypeTiCDC
        - ClusterTypeTiProxy
      - in: query
        name: cluster_version
        required: true
        type: string
      - in: query
        name: node_instance
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.ListConfigTemplatesResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/templates/{template_id}:
    get:
      consumes:
      - application/json
      description: get a template
      operationId: CloudConfigControllerGetConfigTemplate
      parameters:
      - description: template_id
        in: path
        name: template_id
        required: true
        type: string
      - enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - TIPROXY
        in: query
        name: cluster_type
        required: true
        type: string
        x-enum-varnames:
        - ClusterTypeUnknown
        - ClusterTypeDedicatedTiDB
        - ClusterTypeTiCDC
        - ClusterTypeTiProxy
      - in: query
        name: usage
        type: boolean
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.GetConfigTemplateResp'
      tags:
      - CloudConfigController
  /api/v1/devops/cloudconfig/tenantinit/changes:
    get:
      consumes:
      - application/json
      description: list config changes
      operationId: CloudConfigControllerListTenantInitConfigurationChanges
      parameters:
      - enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - TIPROXY
        in: query
        name: cluster_type
        required: true
        type: string
        x-enum-varnames:
        - ClusterTypeUnknown
        - ClusterTypeDedicatedTiDB
        - ClusterTypeTiCDC
        - ClusterTypeTiProxy
      - 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
        - TIPROXY
        in: query
        name: cluster_type
        required: true
        type: string
        x-enum-varnames:
        - ClusterTypeUnknown
        - ClusterTypeDedicatedTiDB
        - ClusterTypeTiCDC
        - ClusterTypeTiProxy
      - 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/versions/{cluster_type}:
    get:
      consumes:
      - application/json
      description: list available versions
      operationId: CloudConfigControllerListVersions
      parameters:
      - description: cluster_type
        enum:
        - ""
        - DEDICATED_TIDB
        - TICDC
        - TIPROXY
        in: path
        name: cluster_type
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/cloudconfig.ListVersionsResp'
      tags:
      - CloudConfigController
  /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
      - enum:
        - "1.26"
        - "1.27"
        - "1.28"
        - "1.29"
        - "1.30"
        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}/{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: 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/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: integer
        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/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: is_dev_tier
        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
      - 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
        type: integer
      - in: query
        name: per_page
        type: integer
      - 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/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/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/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/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
      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}/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/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: cluster_id
        type: string
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - enum:
        - initialized
        - approving
        - creating
        - created
        - expired
        - notapproved
        - creationfailed
        - canceled
        in: query
        name: phase
        type: string
        x-enum-varnames:
        - AuthorizationPhaseInitialized
        - AuthorizationPhaseApproving
        - AuthorizationPhaseCreating
        - AuthorizationPhaseCreated
        - AuthorizationPhaseExpired
        - AuthorizationPhaseNotApproved
        - AuthorizationPhaseCreationFailed
        - 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
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - JumpController
  /api/v1/devops/jump/authorizations/{authorization_id}/jumppod_param:
    get:
      consumes:
      - application/json
      description: get connect jump pod params
      operationId: JumpControllerGetConnectJumpPodParams
      parameters:
      - description: authorization id
        in: path
        name: authorization_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/jump.GetConnectJumpPodParamsResp'
      tags:
      - JumpController
  /api/v1/devops/jump/authorizations/controlplane_options:
    get:
      consumes:
      - application/json
      description: get available options for control planejumps
      operationId: JumpControllerGetControlPlaneOptions
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/jump.GetControlPlaneOptionsResp'
      tags:
      - JumpController
  /api/v1/devops/jump/authorizations/serverless_options:
    get:
      consumes:
      - application/json
      description: get available options for serverless jumps
      operationId: JumpControllerGetServerlessOptions
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/jump.GetServerlessOptionsResp'
      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/me:
    get:
      consumes:
      - application/json
      description: get current user profile
      operationId: CurrentUserProfile
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/user.UserProfileResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - UserService
  /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: cluster_id
        type: string
      - in: query
        name: operation
        type: string
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - enum:
        - created
        - approving
        - withdrawn
        - pending
        - running
        - succeeded
        - failed
        - canceled
        in: query
        name: phase
        type: string
        x-enum-varnames:
        - InstancePhaseCreated
        - InstancePhaseApproving
        - InstancePhaseWithdrawn
        - InstancePhasePending
        - InstancePhaseRunning
        - InstancePhaseSucceeded
        - InstancePhaseFailed
        - InstancePhaseCanceled
      - in: query
        name: tenant_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
  /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/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
        - undefined
        in: query
        name: target
        type: string
        x-enum-varnames:
        - OperationTargetCluster
        - OperationTargetTenant
        - 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: cluster id
        in: query
        name: cluster_id
        type: string
      - description: inject param into operation
        in: query
        name: inject_param
        type: boolean
      - description: tenant id
        in: query
        name: tenant_id
        type: string
      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/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
      - description: 'FIXME: remove this hack, required by FE now.'
        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/roles:
    get:
      consumes:
      - application/json
      description: list roles
      operationId: ListRoles
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/rbac.ListRolesResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - RbacService
    post:
      consumes:
      - application/json
      description: create role
      operationId: CreateRole
      parameters:
      - description: request
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/rbac.CreateRoleReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.EmptyResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - RbacService
  /api/v1/devops/roles/{role_id}:
    delete:
      consumes:
      - application/json
      description: delete role
      operationId: DeleteRole
      parameters:
      - description: role id
        in: path
        name: role_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.EmptyResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - RbacService
    get:
      consumes:
      - application/json
      description: get role by id
      operationId: GetRole
      parameters:
      - description: role id
        in: path
        name: role_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/rbac.GetRoleResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - RbacService
    put:
      consumes:
      - application/json
      description: update role
      operationId: UpdateRole
      parameters:
      - description: role id
        in: path
        name: role_id
        required: true
        type: integer
      - description: request
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/rbac.UpdateRoleReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.EmptyResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - RbacService
  /api/v1/devops/secondaryconfirm/apply:
    post:
      consumes:
      - application/json
      description: Apply a Secondary Confirm
      operationId: ApplySecondaryConfirm
      parameters:
      - description: request param
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/secondaryconfirm.ApplyReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - SecondaryConfirmService
  /api/v1/devops/secondaryconfirm/diff:
    get:
      consumes:
      - application/json
      description: Get Secondary-Confirm Diff Info
      operationId: GetSecondaryConfirmDiff
      parameters:
      - in: query
        name: cluster_id
        type: string
      - in: query
        name: config_revision_id
        type: string
      - in: query
        name: project_id
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/secondaryconfirm.DiffResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - SecondaryConfirmService
  /api/v1/devops/secondaryconfirm/list:
    get:
      consumes:
      - application/json
      description: List Secondary Confirms
      operationId: ListSecondaryConfirms
      parameters:
      - in: query
        name: cluster_id
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/secondaryconfirm.ListResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - SecondaryConfirmService
  /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
          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
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.EmptyResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      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
  /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/user/groups:
    get:
      consumes:
      - application/json
      description: list user groups
      operationId: UserControllerListGroups
      parameters:
      - in: query
        name: name_like
        type: string
      - in: query
        name: page
        type: integer
      - in: query
        name: per_page
        type: integer
      - in: query
        name: user_have
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/user.ListGroupsResp'
      tags:
      - UserService
    post:
      consumes:
      - application/json
      description: create a user group
      operationId: UserControllerCreateGroup
      parameters:
      - description: request
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/user.CreateGroupReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - UserService
  /api/v1/devops/user/groups/{group_name}:
    delete:
      consumes:
      - application/json
      description: delete a user group
      operationId: UserControllerDeleteGroup
      parameters:
      - description: group name
        in: path
        name: group_name
        required: true
        type: string
      - description: request
        in: body
        name: req
        schema:
          $ref: '#/definitions/user.DeleteGroupReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - UserService
    get:
      consumes:
      - application/json
      description: get a user group
      operationId: UserControllerGetGroup
      parameters:
      - description: group name
        in: path
        name: group_name
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/user.GetGroupResp'
      tags:
      - UserService
    put:
      consumes:
      - application/json
      description: update a user group
      operationId: UserControllerUpdateGroup
      parameters:
      - description: group name
        in: path
        name: group_name
        required: true
        type: string
      - description: request
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/user.UpdateGroupReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - UserService
  /api/v1/devops/user/user-group-mappings:
    delete:
      consumes:
      - application/json
      description: unmap users to a group
      operationId: UserControllerUnmapUsersFromGroup
      parameters:
      - description: request
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/user.UnmapUsersFromGroupReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - UserService
    post:
      consumes:
      - application/json
      description: map users to a group
      operationId: UserControllerMapUsersToGroup
      parameters:
      - description: request
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/user.MapUsersToGroupReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - UserService
  /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/users:
    get:
      consumes:
      - application/json
      description: list users
      operationId: ListUsers
      parameters:
      - in: query
        name: email
        type: string
      - in: query
        name: group_is
        type: string
      - in: query
        name: include_unavailable
        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/user.ListUserResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - UserService
  /api/v1/devops/users/detail:
    get:
      consumes:
      - application/json
      description: get user by email
      operationId: GetUser
      parameters:
      - description: email
        in: query
        name: email
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/user.GetUserResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - UserService
  /api/v1/devops/users/roles:
    put:
      consumes:
      - application/json
      description: update user role bindings
      operationId: UpdateUserRoleBindings
      parameters:
      - description: UpdateUserRoleBindingsReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/user.UpdateUserRoleBindingsReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.EmptyResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - UserService
  /api/v1/devops/users/sync:
    post:
      consumes:
      - application/json
      description: sync users manually
      operationId: SyncUsersManually
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/api.EmptyResp'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/api.BaseResp'
      tags:
      - UserService
swagger: "2.0"
