definitions:
  config.CSVConfig:
    properties:
      binary-encoding-method:
        description: encoding method of binary type
        type: string
      delimiter:
        description: |-
          delimiter between fields, it can be 1 character or at most 2 characters
          It can not be CR or LF or contains CR or LF.
          It should have exclusive characters with quote.
        type: string
      include-commit-ts:
        description: whether to include commit ts
        type: boolean
      "null":
        description: representation of null values
        type: string
      output-handle-key:
        description: output handle key
        type: boolean
      output-old-value:
        description: output old value
        type: boolean
      quote:
        description: quoting character
        type: string
    type: object
  config.CloudStorageConfig:
    properties:
      file-cleanup-cron-spec:
        type: string
      file-expiration-days:
        type: integer
      file-size:
        type: integer
      flush-concurrency:
        type: integer
      flush-interval:
        type: string
      output-column-id:
        type: boolean
      output-raw-change-event:
        description: OutputRawChangeEvent controls whether to split the update pk/uk
          events.
        type: boolean
      worker-count:
        type: integer
    type: object
  config.CodecConfig:
    properties:
      avro-bigint-unsigned-handling-mode:
        type: string
      avro-decimal-handling-mode:
        type: string
      avro-enable-watermark:
        type: boolean
      enable-tidb-extension:
        type: boolean
      encoding-format:
        type: string
      max-batch-size:
        type: integer
    type: object
  config.ColumnSelector:
    properties:
      columns:
        items:
          type: string
        type: array
      matcher:
        items:
          type: string
        type: array
    type: object
  config.DebeziumConfig:
    properties:
      output-old-value:
        type: boolean
    type: object
  config.DispatchRule:
    properties:
      columns:
        description: Columns are set when using columns dispatcher.
        items:
          type: string
        type: array
      dispatcher:
        description: Deprecated, please use PartitionRule.
        type: string
      index:
        description: IndexName is set when using index-value dispatcher with specified
          index.
        type: string
      matcher:
        items:
          type: string
        type: array
      partition:
        description: |-
          PartitionRule is an alias added for DispatcherRule to mitigate confusions.
          In the future release, the DispatcherRule is expected to be removed .
        type: string
      topic:
        type: string
    type: object
  config.GlueSchemaRegistryConfig:
    properties:
      access-key:
        description: AccessKey of the schema registry
        type: string
      region:
        description: Region of the schema registry
        type: string
      registry-name:
        description: Name of the schema registry
        type: string
      secret-access-key:
        description: SecretAccessKey of the schema registry
        type: string
      token:
        type: string
    type: object
  config.KafkaConfig:
    properties:
      auto-create-topic:
        type: boolean
      ca:
        type: string
      cert:
        type: string
      codec-config:
        $ref: '#/definitions/config.CodecConfig'
      compression:
        type: string
      dial-timeout:
        type: string
      enable-tls:
        type: boolean
      glue-schema-registry-config:
        $ref: '#/definitions/config.GlueSchemaRegistryConfig'
      insecure-skip-verify:
        type: boolean
      kafka-client-id:
        type: string
      kafka-version:
        type: string
      key:
        type: string
      large-message-handle:
        $ref: '#/definitions/config.LargeMessageHandleConfig'
      max-message-bytes:
        type: integer
      output-raw-change-event:
        description: OutputRawChangeEvent controls whether to split the update pk/uk
          events.
        type: boolean
      partition-num:
        type: integer
      read-timeout:
        type: string
      replication-factor:
        type: integer
      required-acks:
        type: integer
      sasl-gssapi-auth-type:
        type: string
      sasl-gssapi-disable-pafxfast:
        type: boolean
      sasl-gssapi-kerberos-config-path:
        type: string
      sasl-gssapi-keytab-path:
        type: string
      sasl-gssapi-password:
        type: string
      sasl-gssapi-realm:
        type: string
      sasl-gssapi-service-name:
        type: string
      sasl-gssapi-user:
        type: string
      sasl-mechanism:
        type: string
      sasl-oauth-audience:
        type: string
      sasl-oauth-client-id:
        type: string
      sasl-oauth-client-secret:
        type: string
      sasl-oauth-grant-type:
        type: string
      sasl-oauth-scopes:
        items:
          type: string
        type: array
      sasl-oauth-token-url:
        type: string
      sasl-password:
        type: string
      sasl-user:
        type: string
      write-timeout:
        type: string
    type: object
  config.LargeMessageHandleConfig:
    properties:
      claim-check-raw-value:
        type: boolean
      claim-check-storage-uri:
        type: string
      large-message-handle-compression:
        type: string
      large-message-handle-option:
        type: string
    type: object
  config.MySQLConfig:
    properties:
      enable-batch-dml:
        type: boolean
      enable-cache-prepared-statement:
        type: boolean
      enable-multi-statement:
        type: boolean
      max-multi-update-row:
        type: integer
      max-multi-update-row-size:
        type: integer
      max-txn-row:
        type: integer
      read-timeout:
        type: string
      ssl-ca:
        type: string
      ssl-cert:
        type: string
      ssl-key:
        type: string
      tidb-txn-mode:
        type: string
      time-zone:
        type: string
      timeout:
        type: string
      worker-count:
        type: integer
      write-timeout:
        type: string
    type: object
  config.OAuth2:
    properties:
      oauth2-audience:
        description: OAuth2Audience  the URL of the resource server.
        type: string
      oauth2-client-id:
        description: OAuth2ClientID  the client ID of the application.
        type: string
      oauth2-issuer-url:
        description: OAuth2IssuerURL  the URL of the authorization server.
        type: string
      oauth2-private-key:
        description: OAuth2PrivateKey the private key used to sign the server.
        type: string
      oauth2-scope:
        description: OAuth2Scope scope
        type: string
    type: object
  config.OpenProtocolConfig:
    properties:
      output-old-value:
        type: boolean
    type: object
  config.PulsarConfig:
    properties:
      auth-tls-certificate-path:
        description: AuthTLSCertificatePath  create new pulsar authentication provider
          with specified TLS certificate and private key
        type: string
      auth-tls-private-key-path:
        description: AuthTLSPrivateKeyPath private key
        type: string
      authentication-token:
        description: AuthenticationToken the token for the Pulsar server
        type: string
      basic-password:
        description: BasicPassword with account
        type: string
      basic-user-name:
        description: BasicUserName Account name for pulsar basic authentication (the
          second priority authentication method)
        type: string
      batching-max-messages:
        description: 'BatchingMaxMessages specifies the maximum number of messages
          permitted in a batch. (default: 1000)'
        type: integer
      batching-max-publish-delay:
        description: |-
          BatchingMaxPublishDelay specifies the time period within which the messages sent will be batched (default: 10ms)
          if batch messages are enabled. If set to a non zero value, messages will be queued until this time
          interval or until
        type: integer
      compression-type:
        description: pulsar client compression
        type: string
      connection-timeout:
        description: 'ConnectionTimeout Timeout for the establishment of a TCP connection
          (default: 5 seconds)'
        type: integer
      oauth2:
        $ref: '#/definitions/config.OAuth2'
        description: |-
          Oauth2 include  oauth2-issuer-url oauth2-audience oauth2-private-key oauth2-client-id
          and 'type' always use 'client_credentials'
      operation-timeout:
        description: |-
          Set the operation timeout (default: 30 seconds)
          Producer-create, subscribe and unsubscribe operations will be retried until this interval, after which the
          operation will be marked as failed
        type: integer
      output-raw-change-event:
        description: OutputRawChangeEvent controls whether to split the update pk/uk
          events.
        type: boolean
      pulsar-producer-cache-size:
        description: PulsarProducerCacheSize is the size of the cache of pulsar producers
        type: integer
      pulsar-version:
        description: PulsarVersion print the version of pulsar
        type: string
      send-timeout:
        description: |-
          SendTimeout specifies the timeout for a message that has not been acknowledged by the server since sent.
          Send and SendAsync returns an error after timeout.
          default: 30s
        type: integer
      tls-certificate-file:
        type: string
      tls-key-file-path:
        type: string
      tls-trust-certs-file-path:
        type: string
      token-from-file:
        description: |-
          TokenFromFile Authentication from the file token,
          the path name of the file (the third priority authentication method)
        type: string
    type: object
  config.SinkConfig:
    properties:
      advance-timeout-in-sec:
        description: |-
          AdvanceTimeoutInSec is a duration in second. If a table sink progress hasn't been
          advanced for this given duration, the sink will be canceled and re-established.
          Deprecated since v8.1.1
        type: integer
      cloud-storage-config:
        $ref: '#/definitions/config.CloudStorageConfig'
      column-selectors:
        items:
          $ref: '#/definitions/config.ColumnSelector'
        type: array
      content-compatible:
        description: ContentCompatible is only available when the downstream is MQ.
        type: boolean
      csv:
        $ref: '#/definitions/config.CSVConfig'
        description: CSVConfig is only available when the downstream is Storage.
      date-separator:
        description: DateSeparator is only available when the downstream is Storage.
        type: string
      debezium:
        $ref: '#/definitions/config.DebeziumConfig'
        description: DebeziumConfig related configurations
      debezium-disable-schema:
        description: Debezium only. Whether schema should be excluded in the output.
        type: boolean
      delete-only-output-handle-key-columns:
        description: DeleteOnlyOutputHandleKeyColumns is only available when the downstream
          is MQ.
        type: boolean
      dispatchers:
        description: DispatchRules is only available when the downstream is MQ.
        items:
          $ref: '#/definitions/config.DispatchRule'
        type: array
      enable-kafka-sink-v2:
        description: |-
          EnableKafkaSinkV2 enabled then the kafka-go sink will be used.
          It is only available when the downstream is MQ.
        type: boolean
      enable-partition-separator:
        description: EnablePartitionSeparator is only available when the downstream
          is Storage.
        type: boolean
      encoder-concurrency:
        description: EncoderConcurrency is only available when the downstream is MQ.
        type: integer
      file-index-digit:
        description: FileIndexWidth is only available when the downstream is Storage
        type: integer
      kafka-config:
        $ref: '#/definitions/config.KafkaConfig'
      mysql-config:
        $ref: '#/definitions/config.MySQLConfig'
      only-output-updated-columns:
        description: OnlyOutputUpdatedColumns is only available when the downstream
          is MQ.
        type: boolean
      open:
        $ref: '#/definitions/config.OpenProtocolConfig'
        description: OpenProtocol related configurations
      protocol:
        description: Protocol is NOT available when the downstream is DB.
        type: string
      pulsar-config:
        $ref: '#/definitions/config.PulsarConfig'
      safe-mode:
        description: SafeMode is only available when the downstream is DB.
        type: boolean
      schema-registry:
        description: SchemaRegistry is only available when the downstream is MQ using
          avro protocol.
        type: string
      send-all-bootstrap-at-start:
        description: SendAllBootstrapAtStart determines whether to send all tables
          bootstrap message at changefeed start.
        type: boolean
      send-bootstrap-in-msg-count:
        description: SendBootstrapInMsgCount means bootstrap messages are being sent
          every SendBootstrapInMsgCount row change messages.
        type: integer
      send-bootstrap-interval-in-sec:
        description: |-
          Simple Protocol only config, use to control the behavior of sending bootstrap message.
          Note: When one of the following conditions is set to negative value,
          bootstrap sending function will be disabled.
          SendBootstrapIntervalInSec is the interval in seconds to send bootstrap message.
        type: integer
      send-bootstrap-to-all-partition:
        description: |-
          SendBootstrapToAllPartition determines whether to send bootstrap message to all partitions.
          If set to false, bootstrap message will only be sent to the first partition of each topic.
          Default value is true.
        type: boolean
      terminator:
        description: Terminator is NOT available when the downstream is DB.
        type: string
      transaction-atomicity:
        type: string
    type: object
  model.Capture:
    properties:
      address:
        type: string
      cluster_id:
        type: string
      id:
        type: string
      is_owner:
        type: boolean
    type: object
  model.CaptureTaskStatus:
    properties:
      capture_id:
        type: string
      table_ids:
        description: Table list, containing tables that processor should process
        items:
          type: integer
        type: array
      table_operations:
        additionalProperties:
          $ref: '#/definitions/model.TableOperation'
        type: object
    type: object
  model.ChangefeedCommonInfo:
    properties:
      checkpoint_time:
        type: string
      checkpoint_tso:
        type: integer
      error:
        $ref: '#/definitions/model.RunningError'
      id:
        type: string
      namespace:
        type: string
      state:
        type: string
      upstream_id:
        type: integer
    type: object
  model.ChangefeedConfig:
    properties:
      changefeed_id:
        type: string
      filter_rules:
        items:
          type: string
        type: array
      force_replicate:
        default: false
        description: if true, force to replicate some ineligible tables
        type: boolean
      ignore_ineligible_table:
        default: false
        type: boolean
      ignore_txn_start_ts:
        items:
          type: integer
        type: array
      mounter_worker_num:
        default: 16
        type: integer
      namespace:
        type: string
      sink_config:
        $ref: '#/definitions/config.SinkConfig'
      sink_uri:
        type: string
      start_ts:
        type: integer
      target_ts:
        type: integer
      timezone:
        default: system
        description: timezone used when checking sink uri
        type: string
    type: object
  model.ChangefeedDetail:
    properties:
      checkpoint_time:
        type: string
      checkpoint_tso:
        type: integer
      create_time:
        type: string
      creator_version:
        type: string
      error:
        $ref: '#/definitions/model.RunningError'
      error_history:
        items:
          type: integer
        type: array
      id:
        type: string
      namespace:
        type: string
      resolved_ts:
        type: integer
      sink_uri:
        type: string
      sort_engine:
        type: string
      start_ts:
        type: integer
      state:
        type: string
      target_ts:
        type: integer
      task_status:
        items:
          $ref: '#/definitions/model.CaptureTaskStatus'
        type: array
      upstream_id:
        type: integer
    type: object
  model.HTTPError:
    properties:
      error_code:
        type: string
      error_msg:
        type: string
    type: object
  model.MoveTableReq:
    properties:
      capture_id:
        type: string
      table_id:
        type: integer
    type: object
  model.ProcessorCommonInfo:
    properties:
      capture_id:
        type: string
      changefeed_id:
        type: string
      namespace:
        type: string
    type: object
  model.ProcessorDetail:
    properties:
      table_ids:
        description: All table ids that this processor are replicating.
        items:
          type: integer
        type: array
    type: object
  model.RunningError:
    properties:
      addr:
        type: string
      code:
        type: string
      message:
        type: string
      time:
        type: string
    type: object
  model.ServerStatus:
    properties:
      cluster_id:
        type: string
      git_hash:
        type: string
      id:
        type: string
      is_owner:
        type: boolean
      liveness:
        type: integer
      pid:
        type: integer
      version:
        type: string
    type: object
  model.TableOperation:
    properties:
      boundary_ts:
        description: |-
          if the operation is a delete operation, BoundaryTs is checkpoint ts
          if the operation is an add operation, BoundaryTs is start ts
        type: integer
      delete:
        type: boolean
      flag:
        type: integer
      status:
        type: integer
    type: object
  v2.CSVConfig:
    properties:
      binary_encoding_method:
        type: string
      delimiter:
        type: string
      include_commit_ts:
        type: boolean
      "null":
        type: string
      output_handle_key:
        type: boolean
      output_old_value:
        type: boolean
      quote:
        type: string
    type: object
  v2.Capture:
    properties:
      address:
        type: string
      cluster_id:
        type: string
      id:
        type: string
      is_owner:
        type: boolean
    type: object
  v2.ChangeFeedInfo:
    properties:
      admin_job_type:
        description: used for admin job notification, trigger watch event in capture
        type: integer
      checkpoint_time:
        type: string
      checkpoint_ts:
        type: integer
      config:
        $ref: '#/definitions/v2.ReplicaConfig'
      create_time:
        type: string
      creator_version:
        type: string
      error:
        $ref: '#/definitions/v2.RunningError'
      id:
        type: string
      namespace:
        type: string
      resolved_ts:
        type: integer
      sink_uri:
        type: string
      start_ts:
        description: Start sync at this commit ts if `StartTs` is specify or using
          the CreateTime of changefeed.
        type: integer
      state:
        type: string
      target_ts:
        description: The ChangeFeed will exits until sync to timestamp TargetTs
        type: integer
      task_status:
        items:
          $ref: '#/definitions/model.CaptureTaskStatus'
        type: array
      upstream_id:
        type: integer
    type: object
  v2.ChangefeedCommonInfo:
    properties:
      checkpoint_time:
        type: string
      checkpoint_tso:
        type: integer
      error:
        $ref: '#/definitions/model.RunningError'
      id:
        type: string
      namespace:
        type: string
      state:
        type: string
      upstream_id:
        type: integer
    type: object
  v2.ChangefeedConfig:
    properties:
      ca_path:
        type: string
      cert_allowed_cn:
        items:
          type: string
        type: array
      cert_path:
        type: string
      changefeed_id:
        type: string
      key_path:
        type: string
      namespace:
        type: string
      pd_addrs:
        items:
          type: string
        type: array
      replica_config:
        $ref: '#/definitions/v2.ReplicaConfig'
      sink_uri:
        type: string
      start_ts:
        type: integer
      target_ts:
        type: integer
    type: object
  v2.ChangefeedSchedulerConfig:
    properties:
      enable_table_across_nodes:
        description: |-
          EnableTableAcrossNodes set true to split one table to multiple spans and
          distribute to multiple TiCDC nodes.
        type: boolean
      region_threshold:
        description: RegionThreshold is the region count threshold of splitting a
          table.
        type: integer
      write_key_threshold:
        description: WriteKeyThreshold is the written keys threshold of splitting
          a table.
        type: integer
    type: object
  v2.CloudStorageConfig:
    properties:
      file_cleanup_cron_spec:
        type: string
      file_expiration_days:
        type: integer
      file_size:
        type: integer
      flush_concurrency:
        type: integer
      flush_interval:
        type: string
      output_column_id:
        type: boolean
      output_raw_change_event:
        type: boolean
      worker_count:
        type: integer
    type: object
  v2.CodecConfig:
    properties:
      avro_bigint_unsigned_handling_mode:
        type: string
      avro_decimal_handling_mode:
        type: string
      avro_enable_watermark:
        type: boolean
      enable_tidb_extension:
        type: boolean
      encoding_format:
        type: string
      max_batch_size:
        type: integer
    type: object
  v2.ColumnSelector:
    properties:
      columns:
        items:
          type: string
        type: array
      matcher:
        items:
          type: string
        type: array
    type: object
  v2.ConsistentConfig:
    properties:
      compression:
        type: string
      encoding_worker_num:
        type: integer
      flush_concurrency:
        type: integer
      flush_interval:
        type: integer
      flush_worker_num:
        type: integer
      level:
        type: string
      max_log_size:
        type: integer
      memory_usage:
        $ref: '#/definitions/v2.ConsistentMemoryUsage'
      meta_flush_interval:
        type: integer
      storage:
        type: string
      use_file_backend:
        type: boolean
    type: object
  v2.ConsistentMemoryUsage:
    properties:
      memory_quota_percentage:
        type: integer
    type: object
  v2.DebeziumConfig:
    properties:
      output_old_value:
        type: boolean
    type: object
  v2.DispatchRule:
    properties:
      columns:
        items:
          type: string
        type: array
      index:
        type: string
      matcher:
        items:
          type: string
        type: array
      partition:
        type: string
      topic:
        type: string
    type: object
  v2.EmptyResponse:
    type: object
  v2.EventFilterRule:
    properties:
      ignore_delete_value_expr:
        type: string
      ignore_event:
        items:
          type: string
        type: array
      ignore_insert_value_expr:
        description: sql expression
        type: string
      ignore_sql:
        description: regular expression
        items:
          type: string
        type: array
      ignore_update_new_value_expr:
        type: string
      ignore_update_old_value_expr:
        type: string
      matcher:
        items:
          type: string
        type: array
    type: object
  v2.FilterConfig:
    properties:
      event_filters:
        items:
          $ref: '#/definitions/v2.EventFilterRule'
        type: array
      ignore_txn_start_ts:
        items:
          type: integer
        type: array
      rules:
        items:
          type: string
        type: array
    type: object
  v2.GlueSchemaRegistryConfig:
    properties:
      access_key:
        description: AccessKey of the schema registry
        type: string
      region:
        description: Region of the schema registry
        type: string
      registry_name:
        description: Name of the schema registry
        type: string
      secret_access_key:
        description: SecretAccessKey of the schema registry
        type: string
      token:
        type: string
    type: object
  v2.IntegrityConfig:
    properties:
      corruption_handle_level:
        type: string
      integrity_check_level:
        type: string
    type: object
  v2.JSONDuration:
    type: object
  v2.KafkaConfig:
    properties:
      auto_create_topic:
        type: boolean
      ca:
        type: string
      cert:
        type: string
      codec_config:
        $ref: '#/definitions/v2.CodecConfig'
      compression:
        type: string
      dial_timeout:
        type: string
      enable_tls:
        type: boolean
      glue_schema_registry_config:
        $ref: '#/definitions/v2.GlueSchemaRegistryConfig'
      insecure_skip_verify:
        type: boolean
      kafka_client_id:
        type: string
      kafka_version:
        type: string
      key:
        type: string
      large_message_handle:
        $ref: '#/definitions/v2.LargeMessageHandleConfig'
      max_message_bytes:
        type: integer
      output_raw_change_event:
        type: boolean
      partition_num:
        type: integer
      read_timeout:
        type: string
      replication_factor:
        type: integer
      required_acks:
        type: integer
      sasl_gssapi_auth_type:
        type: string
      sasl_gssapi_disable_pafxfast:
        type: boolean
      sasl_gssapi_kerberos_config_path:
        type: string
      sasl_gssapi_keytab_path:
        type: string
      sasl_gssapi_password:
        type: string
      sasl_gssapi_realm:
        type: string
      sasl_gssapi_service_name:
        type: string
      sasl_gssapi_user:
        type: string
      sasl_mechanism:
        type: string
      sasl_oauth_audience:
        type: string
      sasl_oauth_client_id:
        type: string
      sasl_oauth_client_secret:
        type: string
      sasl_oauth_grant_type:
        type: string
      sasl_oauth_scopes:
        items:
          type: string
        type: array
      sasl_oauth_token_url:
        type: string
      sasl_password:
        type: string
      sasl_user:
        type: string
      write_timeout:
        type: string
    type: object
  v2.LargeMessageHandleConfig:
    properties:
      claim_check_raw_value:
        type: boolean
      claim_check_storage_uri:
        type: string
      large_message_handle_compression:
        type: string
      large_message_handle_option:
        type: string
    type: object
  v2.LogLevelReq:
    properties:
      log_level:
        type: string
    type: object
  v2.MounterConfig:
    properties:
      worker_num:
        type: integer
    type: object
  v2.MySQLConfig:
    properties:
      enable_batch_dml:
        type: boolean
      enable_cache_prepared_statement:
        type: boolean
      enable_multi_statement:
        type: boolean
      max_multi_update_row_count:
        type: integer
      max_multi_update_row_size:
        type: integer
      max_txn_row:
        type: integer
      read_timeout:
        type: string
      ssl_ca:
        type: string
      ssl_cert:
        type: string
      ssl_key:
        type: string
      tidb_txn_mode:
        type: string
      time_zone:
        type: string
      timeout:
        type: string
      worker_count:
        type: integer
      write_timeout:
        type: string
    type: object
  v2.OpenProtocolConfig:
    properties:
      output_old_value:
        type: boolean
    type: object
  v2.ProcessorCommonInfo:
    properties:
      capture_id:
        type: string
      changefeed_id:
        type: string
      namespace:
        type: string
    type: object
  v2.ProcessorDetail:
    properties:
      table_ids:
        description: All table ids that this processor are replicating.
        items:
          type: integer
        type: array
    type: object
  v2.PulsarConfig:
    properties:
      auth-tls-certificate-path:
        type: string
      auth-tls-private-key-path:
        type: string
      authentication-token:
        type: string
      basic-password:
        type: string
      basic-user-name:
        type: string
      batching-max-messages:
        type: integer
      batching-max-publish-delay:
        type: integer
      compression-type:
        type: string
      connection-timeout:
        type: integer
      oauth2:
        $ref: '#/definitions/v2.PulsarOAuth2'
      operation-timeout:
        type: integer
      output-raw-change-event:
        type: boolean
      pulsar-producer-cache-size:
        type: integer
      pulsar-version:
        type: string
      send-timeout:
        type: integer
      tls-certificate-path:
        type: string
      tls-private-key-path:
        type: string
      tls-trust-certs-file-path:
        type: string
      token-from-file:
        type: string
    type: object
  v2.PulsarOAuth2:
    properties:
      oauth2-audience:
        type: string
      oauth2-client-id:
        type: string
      oauth2-issuer-url:
        type: string
      oauth2-private-key:
        type: string
      oauth2-scope:
        type: string
    type: object
  v2.ReplicaConfig:
    properties:
      bdr_mode:
        type: boolean
      case_sensitive:
        type: boolean
      changefeed_error_stuck_duration:
        $ref: '#/definitions/v2.JSONDuration'
      check_gc_safe_point:
        type: boolean
      consistent:
        $ref: '#/definitions/v2.ConsistentConfig'
      enable_sync_point:
        type: boolean
      enable_table_monitor:
        type: boolean
      filter:
        $ref: '#/definitions/v2.FilterConfig'
      force_replicate:
        type: boolean
      ignore_ineligible_table:
        type: boolean
      integrity:
        $ref: '#/definitions/v2.IntegrityConfig'
      memory_quota:
        type: integer
      mounter:
        $ref: '#/definitions/v2.MounterConfig'
      scheduler:
        $ref: '#/definitions/v2.ChangefeedSchedulerConfig'
      sink:
        $ref: '#/definitions/v2.SinkConfig'
      sql_mode:
        description: 'Deprecated: we don''t use this field since v8.0.0.'
        type: string
      sync_point_interval:
        type: string
      sync_point_retention:
        type: string
      synced_status:
        $ref: '#/definitions/v2.SyncedStatusConfig'
    type: object
  v2.ResumeChangefeedConfig:
    properties:
      ca_path:
        type: string
      cert_allowed_cn:
        items:
          type: string
        type: array
      cert_path:
        type: string
      key_path:
        type: string
      overwrite_checkpoint_ts:
        type: integer
      pd_addrs:
        items:
          type: string
        type: array
    type: object
  v2.RunningError:
    properties:
      addr:
        type: string
      code:
        type: string
      message:
        type: string
      time:
        type: string
    type: object
  v2.ServerStatus:
    properties:
      cluster_id:
        type: string
      git_hash:
        type: string
      id:
        type: string
      is_owner:
        type: boolean
      liveness:
        type: integer
      pid:
        type: integer
      version:
        type: string
    type: object
  v2.SinkConfig:
    properties:
      advance_timeout:
        type: integer
      cloud_storage_config:
        $ref: '#/definitions/v2.CloudStorageConfig'
      column_selectors:
        items:
          $ref: '#/definitions/v2.ColumnSelector'
        type: array
      content_compatible:
        type: boolean
      csv:
        $ref: '#/definitions/v2.CSVConfig'
      date_separator:
        type: string
      debezium:
        $ref: '#/definitions/v2.DebeziumConfig'
      debezium_disable_schema:
        type: boolean
      delete_only_output_handle_key_columns:
        type: boolean
      dispatchers:
        items:
          $ref: '#/definitions/v2.DispatchRule'
        type: array
      enable_kafka_sink_v2:
        type: boolean
      enable_partition_separator:
        type: boolean
      encoder_concurrency:
        type: integer
      file_index_width:
        type: integer
      kafka_config:
        $ref: '#/definitions/v2.KafkaConfig'
      mysql_config:
        $ref: '#/definitions/v2.MySQLConfig'
      only_output_updated_columns:
        type: boolean
      open:
        $ref: '#/definitions/v2.OpenProtocolConfig'
      protocol:
        type: string
      pulsar_config:
        $ref: '#/definitions/v2.PulsarConfig'
      safe_mode:
        type: boolean
      schema_registry:
        type: string
      send-all-bootstrap-at-start:
        type: boolean
      send_bootstrap_in_msg_count:
        type: integer
      send_bootstrap_interval_in_sec:
        type: integer
      send_bootstrap_to_all_partition:
        type: boolean
      terminator:
        type: string
      transaction_atomicity:
        type: string
    type: object
  v2.SyncedStatus:
    properties:
      info:
        type: string
      last_synced_ts:
        type: string
      now_ts:
        type: string
      puller_resolved_ts:
        type: string
      sink_checkpoint_ts:
        type: string
      synced:
        type: boolean
    type: object
  v2.SyncedStatusConfig:
    properties:
      checkpoint_interval:
        description: |-
          The maximum interval between latest checkpoint ts and now or
          between latest sink's checkpoint ts and puller's checkpoint ts required to reach synced state
        type: integer
      synced_check_interval:
        description: The minimum interval between the latest synced ts and now required
          to reach synced state
        type: integer
    type: object
info:
  contact: {}
paths:
  /api/v1/captures:
    get:
      consumes:
      - application/json
      description: list all captures in cdc cluster
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: '#/definitions/model.Capture'
            type: array
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: List captures
      tags:
      - capture
  /api/v1/captures/drain:
    put:
      consumes:
      - application/json
      description: Drain all tables at the target captures in cdc cluster
      produces:
      - application/json
      responses:
        "200":
          description: ""
        "202":
          description: ""
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
        "503":
          description: Service Unavailable
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: Drain captures
      tags:
      - capture
  /api/v1/changefeeds:
    get:
      consumes:
      - application/json
      description: list all changefeeds in cdc cluster
      parameters:
      - description: state
        in: query
        name: state
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: '#/definitions/model.ChangefeedCommonInfo'
            type: array
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: List changefeed
      tags:
      - changefeed
    post:
      consumes:
      - application/json
      description: create a new changefeed
      parameters:
      - description: changefeed config
        in: body
        name: changefeed
        required: true
        schema:
          $ref: '#/definitions/model.ChangefeedConfig'
      produces:
      - application/json
      responses:
        "202":
          description: ""
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: Create changefeed
      tags:
      - changefeed
  /api/v1/changefeeds/{changefeed_id}:
    delete:
      consumes:
      - application/json
      description: Remove a changefeed
      parameters:
      - description: changefeed_id
        in: path
        name: changefeed_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "202":
          description: ""
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: Remove a changefeed
      tags:
      - changefeed
    get:
      consumes:
      - application/json
      description: get detail information of a changefeed
      parameters:
      - description: changefeed_id
        in: path
        name: changefeed_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/model.ChangefeedDetail'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: Get changefeed
      tags:
      - changefeed
    put:
      consumes:
      - application/json
      description: Update a changefeed
      parameters:
      - description: changefeed_id
        in: path
        name: changefeed_id
        required: true
        type: string
      - description: changefeed config
        in: body
        name: changefeedConfig
        required: true
        schema:
          $ref: '#/definitions/model.ChangefeedConfig'
      produces:
      - application/json
      responses:
        "202":
          description: ""
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: Update a changefeed
      tags:
      - changefeed
  /api/v1/changefeeds/{changefeed_id}/pause:
    post:
      consumes:
      - application/json
      description: Pause a changefeed
      parameters:
      - description: changefeed_id
        in: path
        name: changefeed_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "202":
          description: ""
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: Pause a changefeed
      tags:
      - changefeed
  /api/v1/changefeeds/{changefeed_id}/resume:
    post:
      consumes:
      - application/json
      description: Resume a changefeed
      parameters:
      - description: changefeed_id
        in: path
        name: changefeed_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "202":
          description: ""
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: Resume a changefeed
      tags:
      - changefeed
  /api/v1/changefeeds/{changefeed_id}/tables/move_table:
    post:
      consumes:
      - application/json
      description: move one table to the target capture
      parameters:
      - description: changefeed_id
        in: path
        name: changefeed_id
        required: true
        type: string
      - description: move table request
        in: body
        name: MoveTable
        required: true
        schema:
          $ref: '#/definitions/model.MoveTableReq'
      produces:
      - application/json
      responses:
        "202":
          description: ""
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: move table
      tags:
      - changefeed
  /api/v1/changefeeds/{changefeed_id}/tables/rebalance_table:
    post:
      consumes:
      - application/json
      description: rebalance all tables of a changefeed
      parameters:
      - description: changefeed_id
        in: path
        name: changefeed_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "202":
          description: ""
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: rebalance tables
      tags:
      - changefeed
  /api/v1/health:
    get:
      consumes:
      - application/json
      description: check if CDC cluster is health
      produces:
      - application/json
      responses:
        "200":
          description: ""
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: Check if CDC cluster is health
      tags:
      - common
  /api/v1/log:
    post:
      consumes:
      - application/json
      description: change TiCDC log level dynamically
      parameters:
      - description: log level
        in: body
        name: log_level
        required: true
        schema:
          type: string
      produces:
      - application/json
      responses:
        "200":
          description: ""
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: Change TiCDC log level
      tags:
      - common
  /api/v1/owner/resign:
    post:
      consumes:
      - application/json
      description: notify the current controller to resign
      produces:
      - application/json
      responses:
        "202":
          description: ""
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: notify the ticdc cluster controller to resign
      tags:
      - owner
  /api/v1/processors:
    get:
      consumes:
      - application/json
      description: list all processors in the TiCDC cluster
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: '#/definitions/model.ProcessorCommonInfo'
            type: array
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: List processors
      tags:
      - processor
  /api/v1/processors/{changefeed_id}/{capture_id}:
    get:
      consumes:
      - application/json
      description: get the detail information of a processor
      parameters:
      - description: changefeed ID
        in: path
        name: changefeed_id
        required: true
        type: string
      - description: capture ID
        in: path
        name: capture_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/model.ProcessorDetail'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: Get processor detail information
      tags:
      - processor
  /api/v1/status:
    get:
      consumes:
      - application/json
      description: get the status of a server(capture)
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/model.ServerStatus'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: Get server status
      tags:
      - common
  /api/v2/captures:
    get:
      description: list all captures in cdc cluster
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: '#/definitions/v2.Capture'
            type: array
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: List captures
      tags:
      - capture
      - v2
  /api/v2/changefeeds:
    get:
      consumes:
      - application/json
      description: list all changefeeds in cdc cluster
      parameters:
      - description: state
        in: query
        name: state
        type: string
      - description: default
        in: query
        name: namespace
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: '#/definitions/v2.ChangefeedCommonInfo'
            type: array
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: List changefeed
      tags:
      - changefeed
      - v2
    post:
      consumes:
      - application/json
      description: create a new changefeed
      parameters:
      - description: changefeed config
        in: body
        name: changefeed
        required: true
        schema:
          $ref: '#/definitions/v2.ChangefeedConfig'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/v2.ChangeFeedInfo'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: Create changefeed
      tags:
      - changefeed
      - v2
  /api/v2/changefeeds/{changefeed_id}:
    delete:
      consumes:
      - application/json
      description: Remove a changefeed
      parameters:
      - description: changefeed_id
        in: path
        name: changefeed_id
        required: true
        type: string
      - description: default
        in: query
        name: namespace
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/v2.EmptyResponse'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: Remove a changefeed
      tags:
      - changefeed
      - v2
    get:
      consumes:
      - application/json
      description: get detail information of a changefeed
      parameters:
      - description: changefeed_id
        in: path
        name: changefeed_id
        required: true
        type: string
      - description: default
        in: query
        name: namespace
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/v2.ChangeFeedInfo'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: Get changefeed
      tags:
      - changefeed
      - v2
    put:
      consumes:
      - application/json
      description: Update a changefeed
      parameters:
      - description: changefeed_id
        in: path
        name: changefeed_id
        required: true
        type: string
      - description: default
        in: query
        name: namespace
        type: string
      - description: changefeed config
        in: body
        name: changefeedConfig
        required: true
        schema:
          $ref: '#/definitions/v2.ChangefeedConfig'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/v2.ChangeFeedInfo'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: Update a changefeed
      tags:
      - changefeed
      - v2
  /api/v2/changefeeds/{changefeed_id}/pause:
    post:
      consumes:
      - application/json
      description: Pause a changefeed
      parameters:
      - description: changefeed_id
        in: path
        name: changefeed_id
        required: true
        type: string
      - description: default
        in: query
        name: namespace
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/v2.EmptyResponse'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: Pause a changefeed
      tags:
      - changefeed
      - v2
  /api/v2/changefeeds/{changefeed_id}/resume:
    post:
      consumes:
      - application/json
      description: Resume a changefeed
      parameters:
      - description: changefeed_id
        in: path
        name: changefeed_id
        required: true
        type: string
      - description: default
        in: query
        name: namespace
        type: string
      - description: resume config
        in: body
        name: resumeConfig
        required: true
        schema:
          $ref: '#/definitions/v2.ResumeChangefeedConfig'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/v2.EmptyResponse'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: Resume a changefeed
      tags:
      - changefeed
      - v2
  /api/v2/changefeeds/{changefeed_id}/synced:
    get:
      consumes:
      - application/json
      description: get the synced status of a changefeed
      parameters:
      - description: changefeed_id
        in: path
        name: changefeed_id
        required: true
        type: string
      - description: default
        in: query
        name: namespace
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/v2.SyncedStatus'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: Get synced status
      tags:
      - changefeed
      - v2
  /api/v2/health:
    get:
      description: Check the health status of a TiCDC cluster
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/v2.EmptyResponse'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: Check the health status of a TiCDC cluster
      tags:
      - common
      - v2
  /api/v2/log:
    post:
      consumes:
      - application/json
      description: change TiCDC log level dynamically
      parameters:
      - description: log level
        in: body
        name: log_level
        required: true
        schema:
          $ref: '#/definitions/v2.LogLevelReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/v2.EmptyResponse'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: Change TiCDC log level
      tags:
      - common
      - v2
  /api/v2/owner/resign:
    post:
      consumes:
      - application/json
      description: Notify the current controller to resign
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/v2.EmptyResponse'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: Notify the controller to resign
      tags:
      - owner
      - v2
  /api/v2/processors:
    get:
      description: list all processors in the TiCDC cluster
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: '#/definitions/v2.ProcessorCommonInfo'
            type: array
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: List processors
      tags:
      - processor
      - v2
  /api/v2/processors/{changefeed_id}/{capture_id}:
    get:
      description: get the detail information of a processor
      parameters:
      - description: changefeed ID
        in: path
        name: changefeed_id
        required: true
        type: string
      - description: default
        in: query
        name: namespace
        type: string
      - description: capture ID
        in: path
        name: capture_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/v2.ProcessorDetail'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: Get processor detail information
      tags:
      - processor
      - v2
  /api/v2/status:
    get:
      consumes:
      - application/json
      description: This API is a synchronous interface. If the request is successful,
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/v2.ServerStatus'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/model.HTTPError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/model.HTTPError'
      summary: Get the status information of a TiCDC node
      tags:
      - common
      - v2
swagger: "2.0"
