All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.snowflake.ingest.streaming.internal.OpenChannelRequestInternal Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (c) 2024 Snowflake Computing Inc. All rights reserved.
 */

package net.snowflake.ingest.streaming.internal;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import net.snowflake.ingest.streaming.OpenChannelRequest;
import net.snowflake.ingest.utils.Constants;

/** Class used to serialize the {@link OpenChannelRequest} */
class OpenChannelRequestInternal implements IStreamingIngestRequest {
  @JsonProperty("request_id")
  private String requestId;

  @JsonProperty("role")
  private String role;

  @JsonProperty("channel")
  private String channel;

  @JsonProperty("table")
  private String table;

  @JsonProperty("database")
  private String database;

  @JsonProperty("schema")
  private String schema;

  @JsonProperty("write_mode")
  private String writeMode;

  @JsonInclude(JsonInclude.Include.NON_NULL)
  @JsonProperty("is_iceberg")
  private boolean enableIcebergStreaming;

  @JsonInclude(JsonInclude.Include.NON_NULL)
  @JsonProperty("offset_token")
  private String offsetToken;

  OpenChannelRequestInternal(
      String requestId,
      String role,
      String database,
      String schema,
      String table,
      String channel,
      Constants.WriteMode writeMode,
      boolean enableIcebergStreaming,
      String offsetToken) {
    this.requestId = requestId;
    this.role = role;
    this.database = database;
    this.schema = schema;
    this.table = table;
    this.channel = channel;
    this.writeMode = writeMode.name();
    this.enableIcebergStreaming = enableIcebergStreaming;
    this.offsetToken = offsetToken;
  }

  String getRequestId() {
    return requestId;
  }

  String getRole() {
    return role;
  }

  String getChannel() {
    return channel;
  }

  String getTable() {
    return table;
  }

  String getDatabase() {
    return database;
  }

  String getSchema() {
    return schema;
  }

  String getWriteMode() {
    return writeMode;
  }

  boolean getEnableIcebergStreaming() {
    return enableIcebergStreaming;
  }

  String getOffsetToken() {
    return offsetToken;
  }

  @Override
  public String getStringForLogging() {
    return String.format(
        "OpenChannelRequestInternal(requestId=%s, role=%s, db=%s, schema=%s, table=%s, channel=%s,"
            + " writeMode=%s, enableIcebergStreaming=%s)",
        requestId, role, database, schema, table, channel, writeMode, enableIcebergStreaming);
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy