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

com.sinch.sdk.domains.conversation.models.v1.events.ConversationEventBase Maven / Gradle / Ivy

There is a newer version: 1.4.0
Show newest version
/*
 * Conversation API | Sinch
 *
 * OpenAPI document version: 1.0
 * Contact: [email protected]
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * Do not edit the class manually.
 */

package com.sinch.sdk.domains.conversation.models.v1.events;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.sinch.sdk.domains.conversation.models.v1.ChannelIdentity;
import com.sinch.sdk.domains.conversation.models.v1.ProcessingMode;
import com.sinch.sdk.domains.conversation.models.v1.events.internal.AppEventInternal;
import java.time.Instant;

/** Common properties to ConversationEvent management */
@JsonDeserialize(builder = ConversationEventBaseImpl.Builder.class)
public interface ConversationEventBase {

  /**
   * Get appEvent
   *
   * @return appEvent
   */
  AppEventInternal getAppEvent();

  /**
   * Optional. The ID of the event's conversation. Will not be present for apps in Dispatch Mode.
   *
   * @return conversationId
   */
  String getConversationId();

  /**
   * Optional. The ID of the contact. Will not be present for apps in Dispatch Mode.
   *
   * @return contactId
   */
  String getContactId();

  /**
   * Get channelIdentity
   *
   * @return channelIdentity
   */
  ChannelIdentity getChannelIdentity();

  /**
   * The processed time of the message in UTC timezone. Must be less than current_time and greater
   * than (current_time - 30 days).
   *
   * @return acceptTime
   */
  Instant getAcceptTime();

  /**
   * Get processingMode
   *
   * @return processingMode
   */
  ProcessingMode getProcessingMode();

  /**
   * Getting builder
   *
   * @return New Builder instance
   */
  static Builder builder() {
    return new ConversationEventBaseImpl.Builder();
  }

  /** Dedicated Builder */
  interface Builder {

    /**
     * see getter
     *
     * @param appEvent see getter
     * @return Current builder
     * @see #getAppEvent
     */
    Builder setAppEvent(AppEventInternal appEvent);

    /**
     * see getter
     *
     * @param conversationId see getter
     * @return Current builder
     * @see #getConversationId
     */
    Builder setConversationId(String conversationId);

    /**
     * see getter
     *
     * @param contactId see getter
     * @return Current builder
     * @see #getContactId
     */
    Builder setContactId(String contactId);

    /**
     * see getter
     *
     * @param channelIdentity see getter
     * @return Current builder
     * @see #getChannelIdentity
     */
    Builder setChannelIdentity(ChannelIdentity channelIdentity);

    /**
     * see getter
     *
     * @param acceptTime see getter
     * @return Current builder
     * @see #getAcceptTime
     */
    Builder setAcceptTime(Instant acceptTime);

    /**
     * see getter
     *
     * @param processingMode see getter
     * @return Current builder
     * @see #getProcessingMode
     */
    Builder setProcessingMode(ProcessingMode processingMode);

    /**
     * Create instance
     *
     * @return The instance build with current builder values
     */
    ConversationEventBase build();
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy