Class Contact

java.lang.Object
software.amazon.awssdk.services.connect.model.Contact
All Implemented Interfaces:
Serializable, SdkPojo, ToCopyableBuilder<Contact.Builder,Contact>

@Generated("software.amazon.awssdk:codegen") public final class Contact extends Object implements SdkPojo, Serializable, ToCopyableBuilder<Contact.Builder,Contact>

Contains information about a contact.

See Also:
  • Method Details

    • arn

      public final String arn()

      The Amazon Resource Name (ARN) for the contact.

      Returns:
      The Amazon Resource Name (ARN) for the contact.
    • id

      public final String id()

      The identifier for the contact.

      Returns:
      The identifier for the contact.
    • initialContactId

      public final String initialContactId()

      If this contact is related to other contacts, this is the ID of the initial contact.

      Returns:
      If this contact is related to other contacts, this is the ID of the initial contact.
    • previousContactId

      public final String previousContactId()

      If this contact is not the first contact, this is the ID of the previous contact.

      Returns:
      If this contact is not the first contact, this is the ID of the previous contact.
    • contactAssociationId

      public final String contactAssociationId()

      This is the root contactId which is used as a unique identifier for all subsequent contacts in a contact tree.

      Returns:
      This is the root contactId which is used as a unique identifier for all subsequent contacts in a contact tree.
    • initiationMethod

      public final ContactInitiationMethod initiationMethod()

      Indicates how the contact was initiated.

      If the service returns an enum value that is not available in the current SDK version, initiationMethod will return ContactInitiationMethod.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from initiationMethodAsString().

      Returns:
      Indicates how the contact was initiated.
      See Also:
    • initiationMethodAsString

      public final String initiationMethodAsString()

      Indicates how the contact was initiated.

      If the service returns an enum value that is not available in the current SDK version, initiationMethod will return ContactInitiationMethod.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from initiationMethodAsString().

      Returns:
      Indicates how the contact was initiated.
      See Also:
    • name

      public final String name()

      The name of the contact.

      Returns:
      The name of the contact.
    • description

      public final String description()

      The description of the contact.

      Returns:
      The description of the contact.
    • channel

      public final Channel channel()

      How the contact reached your contact center.

      If the service returns an enum value that is not available in the current SDK version, channel will return Channel.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from channelAsString().

      Returns:
      How the contact reached your contact center.
      See Also:
    • channelAsString

      public final String channelAsString()

      How the contact reached your contact center.

      If the service returns an enum value that is not available in the current SDK version, channel will return Channel.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from channelAsString().

      Returns:
      How the contact reached your contact center.
      See Also:
    • queueInfo

      public final QueueInfo queueInfo()

      If this contact was queued, this contains information about the queue.

      Returns:
      If this contact was queued, this contains information about the queue.
    • agentInfo

      public final AgentInfo agentInfo()

      Information about the agent who accepted the contact.

      Returns:
      Information about the agent who accepted the contact.
    • initiationTimestamp

      public final Instant initiationTimestamp()

      The date and time this contact was initiated, in UTC time. For INBOUND, this is when the contact arrived. For OUTBOUND, this is when the agent began dialing. For CALLBACK, this is when the callback contact was created. For TRANSFER and QUEUE_TRANSFER, this is when the transfer was initiated. For API, this is when the request arrived. For EXTERNAL_OUTBOUND, this is when the agent started dialing the external participant. For MONITOR, this is when the supervisor started listening to a contact.

      Returns:
      The date and time this contact was initiated, in UTC time. For INBOUND, this is when the contact arrived. For OUTBOUND, this is when the agent began dialing. For CALLBACK, this is when the callback contact was created. For TRANSFER and QUEUE_TRANSFER, this is when the transfer was initiated. For API, this is when the request arrived. For EXTERNAL_OUTBOUND, this is when the agent started dialing the external participant. For MONITOR, this is when the supervisor started listening to a contact.
    • disconnectTimestamp

      public final Instant disconnectTimestamp()

      The date and time that the customer endpoint disconnected from the current contact, in UTC time. In transfer scenarios, the DisconnectTimestamp of the previous contact indicates the date and time when that contact ended.

      Returns:
      The date and time that the customer endpoint disconnected from the current contact, in UTC time. In transfer scenarios, the DisconnectTimestamp of the previous contact indicates the date and time when that contact ended.
    • lastUpdateTimestamp

      public final Instant lastUpdateTimestamp()

      The timestamp when contact was last updated.

      Returns:
      The timestamp when contact was last updated.
    • lastPausedTimestamp

      public final Instant lastPausedTimestamp()

      The timestamp when the contact was last paused.

      Returns:
      The timestamp when the contact was last paused.
    • lastResumedTimestamp

      public final Instant lastResumedTimestamp()

      The timestamp when the contact was last resumed.

      Returns:
      The timestamp when the contact was last resumed.
    • totalPauseCount

      public final Integer totalPauseCount()

      Total pause count for a contact.

      Returns:
      Total pause count for a contact.
    • totalPauseDurationInSeconds

      public final Integer totalPauseDurationInSeconds()

      Total pause duration for a contact in seconds.

      Returns:
      Total pause duration for a contact in seconds.
    • scheduledTimestamp

      public final Instant scheduledTimestamp()

      The timestamp, in Unix epoch time format, at which to start running the inbound flow.

      Returns:
      The timestamp, in Unix epoch time format, at which to start running the inbound flow.
    • relatedContactId

      public final String relatedContactId()

      The contactId that is related to this contact.

      Returns:
      The contactId that is related to this contact.
    • wisdomInfo

      public final WisdomInfo wisdomInfo()

      Information about Amazon Connect Wisdom.

      Returns:
      Information about Amazon Connect Wisdom.
    • customerId

      public final String customerId()

      The customer's identification number. For example, the CustomerId may be a customer number from your CRM. You can create a Lambda function to pull the unique customer ID of the caller from your CRM system. If you enable Amazon Connect Voice ID capability, this attribute is populated with the CustomerSpeakerId of the caller.

      Returns:
      The customer's identification number. For example, the CustomerId may be a customer number from your CRM. You can create a Lambda function to pull the unique customer ID of the caller from your CRM system. If you enable Amazon Connect Voice ID capability, this attribute is populated with the CustomerSpeakerId of the caller.
    • customerEndpoint

      public final EndpointInfo customerEndpoint()

      The customer or external third party participant endpoint.

      Returns:
      The customer or external third party participant endpoint.
    • systemEndpoint

      public final EndpointInfo systemEndpoint()

      The system endpoint. For INBOUND, this is the phone number or email address that the customer dialed. For OUTBOUND and EXTERNAL_OUTBOUND, this is the outbound caller ID number assigned to the outbound queue that is used to dial the customer. For callback, this shows up as Softphone for calls handled by agents with softphone.

      Returns:
      The system endpoint. For INBOUND, this is the phone number or email address that the customer dialed. For OUTBOUND and EXTERNAL_OUTBOUND, this is the outbound caller ID number assigned to the outbound queue that is used to dial the customer. For callback, this shows up as Softphone for calls handled by agents with softphone.
    • queueTimeAdjustmentSeconds

      public final Integer queueTimeAdjustmentSeconds()

      An integer that represents the queue time adjust to be applied to the contact, in seconds (longer / larger queue time are routed preferentially). Cannot be specified if the QueuePriority is specified. Must be statically defined and a valid integer value.

      Returns:
      An integer that represents the queue time adjust to be applied to the contact, in seconds (longer / larger queue time are routed preferentially). Cannot be specified if the QueuePriority is specified. Must be statically defined and a valid integer value.
    • queuePriority

      public final Long queuePriority()

      An integer that represents the queue priority to be applied to the contact (lower priorities are routed preferentially). Cannot be specified if the QueueTimeAdjustmentSeconds is specified. Must be statically defined, must be larger than zero, and a valid integer value. Default Value is 5.

      Returns:
      An integer that represents the queue priority to be applied to the contact (lower priorities are routed preferentially). Cannot be specified if the QueueTimeAdjustmentSeconds is specified. Must be statically defined, must be larger than zero, and a valid integer value. Default Value is 5.
    • hasTags

      public final boolean hasTags()
      For responses, this returns true if the service returned a value for the Tags property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • tags

      public final Map<String,String> tags()

      Tags associated with the contact. This contains both Amazon Web Services generated and user-defined tags.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasTags() method.

      Returns:
      Tags associated with the contact. This contains both Amazon Web Services generated and user-defined tags.
    • connectedToSystemTimestamp

      public final Instant connectedToSystemTimestamp()

      The timestamp when customer endpoint connected to Amazon Connect.

      Returns:
      The timestamp when customer endpoint connected to Amazon Connect.
    • routingCriteria

      public final RoutingCriteria routingCriteria()

      Latest routing criteria on the contact.

      Returns:
      Latest routing criteria on the contact.
    • customer

      public final Customer customer()

      Information about the Customer on the contact.

      Returns:
      Information about the Customer on the contact.
    • campaign

      public final Campaign campaign()
      Returns the value of the Campaign property for this object.
      Returns:
      The value of the Campaign property for this object.
    • answeringMachineDetectionStatus

      public final AnsweringMachineDetectionStatus answeringMachineDetectionStatus()

      Indicates how an outbound campaign call is actually disposed if the contact is connected to Amazon Connect.

      If the service returns an enum value that is not available in the current SDK version, answeringMachineDetectionStatus will return AnsweringMachineDetectionStatus.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from answeringMachineDetectionStatusAsString().

      Returns:
      Indicates how an outbound campaign call is actually disposed if the contact is connected to Amazon Connect.
      See Also:
    • answeringMachineDetectionStatusAsString

      public final String answeringMachineDetectionStatusAsString()

      Indicates how an outbound campaign call is actually disposed if the contact is connected to Amazon Connect.

      If the service returns an enum value that is not available in the current SDK version, answeringMachineDetectionStatus will return AnsweringMachineDetectionStatus.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from answeringMachineDetectionStatusAsString().

      Returns:
      Indicates how an outbound campaign call is actually disposed if the contact is connected to Amazon Connect.
      See Also:
    • customerVoiceActivity

      public final CustomerVoiceActivity customerVoiceActivity()

      Information about customer’s voice activity.

      Returns:
      Information about customer’s voice activity.
    • qualityMetrics

      public final QualityMetrics qualityMetrics()

      Information about the quality of the participant's media connection.

      Returns:
      Information about the quality of the participant's media connection.
    • chatMetrics

      public final ChatMetrics chatMetrics()

      Information about how agent, bot, and customer interact in a chat contact.

      Returns:
      Information about how agent, bot, and customer interact in a chat contact.
    • disconnectDetails

      public final DisconnectDetails disconnectDetails()

      Information about the call disconnect experience.

      Returns:
      Information about the call disconnect experience.
    • additionalEmailRecipients

      public final AdditionalEmailRecipients additionalEmailRecipients()

      List of additional email addresses for an email contact.

      Returns:
      List of additional email addresses for an email contact.
    • hasSegmentAttributes

      public final boolean hasSegmentAttributes()
      For responses, this returns true if the service returned a value for the SegmentAttributes property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • segmentAttributes

      public final Map<String,SegmentAttributeValue> segmentAttributes()

      A set of system defined key-value pairs stored on individual contact segments using an attribute map. The attributes are standard Amazon Connect attributes and can be accessed in flows. Attribute keys can include only alphanumeric, -, and _ characters. This field can be used to show channel subtype. For example, connect:Guide or connect:SMS.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasSegmentAttributes() method.

      Returns:
      A set of system defined key-value pairs stored on individual contact segments using an attribute map. The attributes are standard Amazon Connect attributes and can be accessed in flows. Attribute keys can include only alphanumeric, -, and _ characters. This field can be used to show channel subtype. For example, connect:Guide or connect:SMS.
    • hasRecordings

      public final boolean hasRecordings()
      For responses, this returns true if the service returned a value for the Recordings property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • recordings

      public final List<RecordingInfo> recordings()

      If recording was enabled, this is information about the recordings.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasRecordings() method.

      Returns:
      If recording was enabled, this is information about the recordings.
    • disconnectReason

      public final String disconnectReason()

      The disconnect reason for the contact.

      Returns:
      The disconnect reason for the contact.
    • hasContactEvaluations

      public final boolean hasContactEvaluations()
      For responses, this returns true if the service returned a value for the ContactEvaluations property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • contactEvaluations

      public final Map<String,ContactEvaluation> contactEvaluations()

      Information about the contact evaluations where the key is the FormId, which is a unique identifier for the form.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasContactEvaluations() method.

      Returns:
      Information about the contact evaluations where the key is the FormId, which is a unique identifier for the form.
    • contactDetails

      public final ContactDetails contactDetails()

      A map of string key/value pairs that contain user-defined attributes which are lightly typed within the contact. This object is used only for task contacts.

      Returns:
      A map of string key/value pairs that contain user-defined attributes which are lightly typed within the contact. This object is used only for task contacts.
    • hasAttributes

      public final boolean hasAttributes()
      For responses, this returns true if the service returned a value for the Attributes property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • attributes

      public final Map<String,String> attributes()

      The attributes of the contact.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasAttributes() method.

      Returns:
      The attributes of the contact.
    • toBuilder

      public Contact.Builder toBuilder()
      Description copied from interface: ToCopyableBuilder
      Take this object and create a builder that contains all of the current property values of this object.
      Specified by:
      toBuilder in interface ToCopyableBuilder<Contact.Builder,Contact>
      Returns:
      a builder for type T
    • builder

      public static Contact.Builder builder()
    • serializableBuilderClass

      public static Class<? extends Contact.Builder> serializableBuilderClass()
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public final boolean equals(Object obj)
      Overrides:
      equals in class Object
    • equalsBySdkFields

      public final boolean equalsBySdkFields(Object obj)
      Description copied from interface: SdkPojo
      Indicates whether some other object is "equal to" this one by SDK fields. An SDK field is a modeled, non-inherited field in an SdkPojo class, and is generated based on a service model.

      If an SdkPojo class does not have any inherited fields, equalsBySdkFields and equals are essentially the same.

      Specified by:
      equalsBySdkFields in interface SdkPojo
      Parameters:
      obj - the object to be compared with
      Returns:
      true if the other object equals to this object by sdk fields, false otherwise.
    • toString

      public final String toString()
      Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be redacted from this string using a placeholder value.
      Overrides:
      toString in class Object
    • getValueForField

      public final <T> Optional<T> getValueForField(String fieldName, Class<T> clazz)
    • sdkFields

      public final List<SdkField<?>> sdkFields()
      Specified by:
      sdkFields in interface SdkPojo
      Returns:
      List of SdkField in this POJO. May be empty list but should never be null.
    • sdkFieldNameToField

      public final Map<String,SdkField<?>> sdkFieldNameToField()
      Specified by:
      sdkFieldNameToField in interface SdkPojo
      Returns:
      The mapping between the field name and its corresponding field.