/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace LexRuntimeV2 { namespace Model { /** *

Represents a chunk of audio sent from the client application to Amazon Lex * V2. The audio is all or part of an utterance from the user.

Amazon Lex V2 * accumulates audio chunks until it recognizes a natural pause in speech before * processing the input.

See Also:

AWS * API Reference

*/ class AudioInputEvent { public: AWS_LEXRUNTIMEV2_API AudioInputEvent(); AWS_LEXRUNTIMEV2_API AudioInputEvent(Aws::Utils::Json::JsonView jsonValue); AWS_LEXRUNTIMEV2_API AudioInputEvent& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_LEXRUNTIMEV2_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

An encoded stream of audio.

*/ inline const Aws::Utils::ByteBuffer& GetAudioChunk() const{ return m_audioChunk; } /** *

An encoded stream of audio.

*/ inline bool AudioChunkHasBeenSet() const { return m_audioChunkHasBeenSet; } /** *

An encoded stream of audio.

*/ inline void SetAudioChunk(const Aws::Utils::ByteBuffer& value) { m_audioChunkHasBeenSet = true; m_audioChunk = value; } /** *

An encoded stream of audio.

*/ inline void SetAudioChunk(Aws::Utils::ByteBuffer&& value) { m_audioChunkHasBeenSet = true; m_audioChunk = std::move(value); } /** *

An encoded stream of audio.

*/ inline AudioInputEvent& WithAudioChunk(const Aws::Utils::ByteBuffer& value) { SetAudioChunk(value); return *this;} /** *

An encoded stream of audio.

*/ inline AudioInputEvent& WithAudioChunk(Aws::Utils::ByteBuffer&& value) { SetAudioChunk(std::move(value)); return *this;} /** *

The encoding used for the audio chunk. You must use 8 KHz PCM 16-bit * mono-channel little-endian format. The value of the field should be:

* audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-count=1; * is-big-endian=false

*/ inline const Aws::String& GetContentType() const{ return m_contentType; } /** *

The encoding used for the audio chunk. You must use 8 KHz PCM 16-bit * mono-channel little-endian format. The value of the field should be:

* audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-count=1; * is-big-endian=false

*/ inline bool ContentTypeHasBeenSet() const { return m_contentTypeHasBeenSet; } /** *

The encoding used for the audio chunk. You must use 8 KHz PCM 16-bit * mono-channel little-endian format. The value of the field should be:

* audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-count=1; * is-big-endian=false

*/ inline void SetContentType(const Aws::String& value) { m_contentTypeHasBeenSet = true; m_contentType = value; } /** *

The encoding used for the audio chunk. You must use 8 KHz PCM 16-bit * mono-channel little-endian format. The value of the field should be:

* audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-count=1; * is-big-endian=false

*/ inline void SetContentType(Aws::String&& value) { m_contentTypeHasBeenSet = true; m_contentType = std::move(value); } /** *

The encoding used for the audio chunk. You must use 8 KHz PCM 16-bit * mono-channel little-endian format. The value of the field should be:

* audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-count=1; * is-big-endian=false

*/ inline void SetContentType(const char* value) { m_contentTypeHasBeenSet = true; m_contentType.assign(value); } /** *

The encoding used for the audio chunk. You must use 8 KHz PCM 16-bit * mono-channel little-endian format. The value of the field should be:

* audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-count=1; * is-big-endian=false

*/ inline AudioInputEvent& WithContentType(const Aws::String& value) { SetContentType(value); return *this;} /** *

The encoding used for the audio chunk. You must use 8 KHz PCM 16-bit * mono-channel little-endian format. The value of the field should be:

* audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-count=1; * is-big-endian=false

*/ inline AudioInputEvent& WithContentType(Aws::String&& value) { SetContentType(std::move(value)); return *this;} /** *

The encoding used for the audio chunk. You must use 8 KHz PCM 16-bit * mono-channel little-endian format. The value of the field should be:

* audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-count=1; * is-big-endian=false

*/ inline AudioInputEvent& WithContentType(const char* value) { SetContentType(value); return *this;} /** *

A unique identifier that your application assigns to the event. You can use * this to identify events in logs.

*/ inline const Aws::String& GetEventId() const{ return m_eventId; } /** *

A unique identifier that your application assigns to the event. You can use * this to identify events in logs.

*/ inline bool EventIdHasBeenSet() const { return m_eventIdHasBeenSet; } /** *

A unique identifier that your application assigns to the event. You can use * this to identify events in logs.

*/ inline void SetEventId(const Aws::String& value) { m_eventIdHasBeenSet = true; m_eventId = value; } /** *

A unique identifier that your application assigns to the event. You can use * this to identify events in logs.

*/ inline void SetEventId(Aws::String&& value) { m_eventIdHasBeenSet = true; m_eventId = std::move(value); } /** *

A unique identifier that your application assigns to the event. You can use * this to identify events in logs.

*/ inline void SetEventId(const char* value) { m_eventIdHasBeenSet = true; m_eventId.assign(value); } /** *

A unique identifier that your application assigns to the event. You can use * this to identify events in logs.

*/ inline AudioInputEvent& WithEventId(const Aws::String& value) { SetEventId(value); return *this;} /** *

A unique identifier that your application assigns to the event. You can use * this to identify events in logs.

*/ inline AudioInputEvent& WithEventId(Aws::String&& value) { SetEventId(std::move(value)); return *this;} /** *

A unique identifier that your application assigns to the event. You can use * this to identify events in logs.

*/ inline AudioInputEvent& WithEventId(const char* value) { SetEventId(value); return *this;} /** *

A timestamp set by the client of the date and time that the event was sent to * Amazon Lex V2.

*/ inline long long GetClientTimestampMillis() const{ return m_clientTimestampMillis; } /** *

A timestamp set by the client of the date and time that the event was sent to * Amazon Lex V2.

*/ inline bool ClientTimestampMillisHasBeenSet() const { return m_clientTimestampMillisHasBeenSet; } /** *

A timestamp set by the client of the date and time that the event was sent to * Amazon Lex V2.

*/ inline void SetClientTimestampMillis(long long value) { m_clientTimestampMillisHasBeenSet = true; m_clientTimestampMillis = value; } /** *

A timestamp set by the client of the date and time that the event was sent to * Amazon Lex V2.

*/ inline AudioInputEvent& WithClientTimestampMillis(long long value) { SetClientTimestampMillis(value); return *this;} private: Aws::Utils::ByteBuffer m_audioChunk; bool m_audioChunkHasBeenSet = false; Aws::String m_contentType; bool m_contentTypeHasBeenSet = false; Aws::String m_eventId; bool m_eventIdHasBeenSet = false; long long m_clientTimestampMillis; bool m_clientTimestampMillisHasBeenSet = false; }; } // namespace Model } // namespace LexRuntimeV2 } // namespace Aws