package com.amazonaws.kvsmlinference; /* *

Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.

* * Permission is hereby granted, free of charge, to any person obtaining a copy of this * software and associated documentation files (the "Software"), to deal in the Software * without restriction, including without limitation the rights to use, copy, modify, * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so. *

* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ import java.util.Optional; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class AudioPredictionRequest { String streamARN = null; String inputFileName = null; String startFragmentNum = null; String connectContactId = null; boolean transcriptionEnabled = false; Optional saveCallRecording = Optional.empty(); boolean streamAudioFromCustomer = true; boolean streamAudioToCustomer = true; public String getStreamARN() { return this.streamARN; } public void setStreamARN(String streamARN) { this.streamARN = streamARN; } public String getInputFileName() { return this.inputFileName; } public void setInputFileName(String inputFileName) { this.inputFileName = inputFileName; } public String getStartFragmentNum() { return this.startFragmentNum; } public void setStartFragmentNum(String startFragmentNum) { this.startFragmentNum = startFragmentNum; } public String getConnectContactId() { return this.connectContactId; } public void setConnectContactId(String connectContactId) { this.connectContactId = connectContactId; } public void setTranscriptionEnabled(boolean enabled) { transcriptionEnabled = enabled; } public void setStreamAudioFromCustomer(boolean enabled) { streamAudioFromCustomer = enabled; } public boolean isStreamAudioFromCustomer() { return streamAudioFromCustomer; } public void setStreamAudioToCustomer(boolean enabled) { streamAudioToCustomer = enabled; } public boolean isStreamAudioToCustomer() { return streamAudioToCustomer; } public void setSaveCallRecording(boolean shouldSaveCallRecording) { saveCallRecording = Optional.of(shouldSaveCallRecording); } public Optional getSaveCallRecording() { return saveCallRecording; } public boolean isSaveCallRecordingEnabled() { return (saveCallRecording.isPresent() ? saveCallRecording.get() : false); } public String toString() { return String.format("streamARN=%s, startFragmentNum=%s, connectContactId=%s, saveCallRecording=%s, streamAudioFromCustomer=%s, streamAudioToCustomer=%s", getStreamARN(), getStartFragmentNum(), getConnectContactId(), isSaveCallRecordingEnabled(), isStreamAudioFromCustomer(), isStreamAudioToCustomer()); } public void validate() throws IllegalArgumentException { // complain if both are provided if ((getStreamARN() != null) && (getInputFileName() != null)) throw new IllegalArgumentException("At most one of streamARN or inputFileName must be provided"); // complain if none are provided if ((getStreamARN() == null) && (getInputFileName() == null)) throw new IllegalArgumentException("One of streamARN or inputFileName must be provided"); } }