1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6 #pragma once 7 #include <aws/ivs/IVS_EXPORTS.h> 8 #include <aws/ivs/IVSErrors.h> 9 #include <aws/core/client/AWSError.h> 10 #include <aws/core/client/ClientConfiguration.h> 11 #include <aws/core/client/AWSClient.h> 12 #include <aws/core/utils/memory/stl/AWSString.h> 13 #include <aws/core/utils/json/JsonSerializer.h> 14 #include <aws/ivs/model/BatchGetChannelResult.h> 15 #include <aws/ivs/model/BatchGetStreamKeyResult.h> 16 #include <aws/ivs/model/CreateChannelResult.h> 17 #include <aws/ivs/model/CreateRecordingConfigurationResult.h> 18 #include <aws/ivs/model/CreateStreamKeyResult.h> 19 #include <aws/ivs/model/DeletePlaybackKeyPairResult.h> 20 #include <aws/ivs/model/GetChannelResult.h> 21 #include <aws/ivs/model/GetPlaybackKeyPairResult.h> 22 #include <aws/ivs/model/GetRecordingConfigurationResult.h> 23 #include <aws/ivs/model/GetStreamResult.h> 24 #include <aws/ivs/model/GetStreamKeyResult.h> 25 #include <aws/ivs/model/ImportPlaybackKeyPairResult.h> 26 #include <aws/ivs/model/ListChannelsResult.h> 27 #include <aws/ivs/model/ListPlaybackKeyPairsResult.h> 28 #include <aws/ivs/model/ListRecordingConfigurationsResult.h> 29 #include <aws/ivs/model/ListStreamKeysResult.h> 30 #include <aws/ivs/model/ListStreamsResult.h> 31 #include <aws/ivs/model/ListTagsForResourceResult.h> 32 #include <aws/ivs/model/StopStreamResult.h> 33 #include <aws/ivs/model/TagResourceResult.h> 34 #include <aws/ivs/model/UntagResourceResult.h> 35 #include <aws/ivs/model/UpdateChannelResult.h> 36 #include <aws/core/NoResult.h> 37 #include <aws/core/client/AsyncCallerContext.h> 38 #include <aws/core/http/HttpTypes.h> 39 #include <future> 40 #include <functional> 41 42 namespace Aws 43 { 44 45 namespace Http 46 { 47 class HttpClient; 48 class HttpClientFactory; 49 } // namespace Http 50 51 namespace Utils 52 { 53 template< typename R, typename E> class Outcome; 54 namespace Threading 55 { 56 class Executor; 57 } // namespace Threading 58 } // namespace Utils 59 60 namespace Auth 61 { 62 class AWSCredentials; 63 class AWSCredentialsProvider; 64 } // namespace Auth 65 66 namespace Client 67 { 68 class RetryStrategy; 69 } // namespace Client 70 71 namespace IVS 72 { 73 74 namespace Model 75 { 76 class BatchGetChannelRequest; 77 class BatchGetStreamKeyRequest; 78 class CreateChannelRequest; 79 class CreateRecordingConfigurationRequest; 80 class CreateStreamKeyRequest; 81 class DeleteChannelRequest; 82 class DeletePlaybackKeyPairRequest; 83 class DeleteRecordingConfigurationRequest; 84 class DeleteStreamKeyRequest; 85 class GetChannelRequest; 86 class GetPlaybackKeyPairRequest; 87 class GetRecordingConfigurationRequest; 88 class GetStreamRequest; 89 class GetStreamKeyRequest; 90 class ImportPlaybackKeyPairRequest; 91 class ListChannelsRequest; 92 class ListPlaybackKeyPairsRequest; 93 class ListRecordingConfigurationsRequest; 94 class ListStreamKeysRequest; 95 class ListStreamsRequest; 96 class ListTagsForResourceRequest; 97 class PutMetadataRequest; 98 class StopStreamRequest; 99 class TagResourceRequest; 100 class UntagResourceRequest; 101 class UpdateChannelRequest; 102 103 typedef Aws::Utils::Outcome<BatchGetChannelResult, IVSError> BatchGetChannelOutcome; 104 typedef Aws::Utils::Outcome<BatchGetStreamKeyResult, IVSError> BatchGetStreamKeyOutcome; 105 typedef Aws::Utils::Outcome<CreateChannelResult, IVSError> CreateChannelOutcome; 106 typedef Aws::Utils::Outcome<CreateRecordingConfigurationResult, IVSError> CreateRecordingConfigurationOutcome; 107 typedef Aws::Utils::Outcome<CreateStreamKeyResult, IVSError> CreateStreamKeyOutcome; 108 typedef Aws::Utils::Outcome<Aws::NoResult, IVSError> DeleteChannelOutcome; 109 typedef Aws::Utils::Outcome<DeletePlaybackKeyPairResult, IVSError> DeletePlaybackKeyPairOutcome; 110 typedef Aws::Utils::Outcome<Aws::NoResult, IVSError> DeleteRecordingConfigurationOutcome; 111 typedef Aws::Utils::Outcome<Aws::NoResult, IVSError> DeleteStreamKeyOutcome; 112 typedef Aws::Utils::Outcome<GetChannelResult, IVSError> GetChannelOutcome; 113 typedef Aws::Utils::Outcome<GetPlaybackKeyPairResult, IVSError> GetPlaybackKeyPairOutcome; 114 typedef Aws::Utils::Outcome<GetRecordingConfigurationResult, IVSError> GetRecordingConfigurationOutcome; 115 typedef Aws::Utils::Outcome<GetStreamResult, IVSError> GetStreamOutcome; 116 typedef Aws::Utils::Outcome<GetStreamKeyResult, IVSError> GetStreamKeyOutcome; 117 typedef Aws::Utils::Outcome<ImportPlaybackKeyPairResult, IVSError> ImportPlaybackKeyPairOutcome; 118 typedef Aws::Utils::Outcome<ListChannelsResult, IVSError> ListChannelsOutcome; 119 typedef Aws::Utils::Outcome<ListPlaybackKeyPairsResult, IVSError> ListPlaybackKeyPairsOutcome; 120 typedef Aws::Utils::Outcome<ListRecordingConfigurationsResult, IVSError> ListRecordingConfigurationsOutcome; 121 typedef Aws::Utils::Outcome<ListStreamKeysResult, IVSError> ListStreamKeysOutcome; 122 typedef Aws::Utils::Outcome<ListStreamsResult, IVSError> ListStreamsOutcome; 123 typedef Aws::Utils::Outcome<ListTagsForResourceResult, IVSError> ListTagsForResourceOutcome; 124 typedef Aws::Utils::Outcome<Aws::NoResult, IVSError> PutMetadataOutcome; 125 typedef Aws::Utils::Outcome<StopStreamResult, IVSError> StopStreamOutcome; 126 typedef Aws::Utils::Outcome<TagResourceResult, IVSError> TagResourceOutcome; 127 typedef Aws::Utils::Outcome<UntagResourceResult, IVSError> UntagResourceOutcome; 128 typedef Aws::Utils::Outcome<UpdateChannelResult, IVSError> UpdateChannelOutcome; 129 130 typedef std::future<BatchGetChannelOutcome> BatchGetChannelOutcomeCallable; 131 typedef std::future<BatchGetStreamKeyOutcome> BatchGetStreamKeyOutcomeCallable; 132 typedef std::future<CreateChannelOutcome> CreateChannelOutcomeCallable; 133 typedef std::future<CreateRecordingConfigurationOutcome> CreateRecordingConfigurationOutcomeCallable; 134 typedef std::future<CreateStreamKeyOutcome> CreateStreamKeyOutcomeCallable; 135 typedef std::future<DeleteChannelOutcome> DeleteChannelOutcomeCallable; 136 typedef std::future<DeletePlaybackKeyPairOutcome> DeletePlaybackKeyPairOutcomeCallable; 137 typedef std::future<DeleteRecordingConfigurationOutcome> DeleteRecordingConfigurationOutcomeCallable; 138 typedef std::future<DeleteStreamKeyOutcome> DeleteStreamKeyOutcomeCallable; 139 typedef std::future<GetChannelOutcome> GetChannelOutcomeCallable; 140 typedef std::future<GetPlaybackKeyPairOutcome> GetPlaybackKeyPairOutcomeCallable; 141 typedef std::future<GetRecordingConfigurationOutcome> GetRecordingConfigurationOutcomeCallable; 142 typedef std::future<GetStreamOutcome> GetStreamOutcomeCallable; 143 typedef std::future<GetStreamKeyOutcome> GetStreamKeyOutcomeCallable; 144 typedef std::future<ImportPlaybackKeyPairOutcome> ImportPlaybackKeyPairOutcomeCallable; 145 typedef std::future<ListChannelsOutcome> ListChannelsOutcomeCallable; 146 typedef std::future<ListPlaybackKeyPairsOutcome> ListPlaybackKeyPairsOutcomeCallable; 147 typedef std::future<ListRecordingConfigurationsOutcome> ListRecordingConfigurationsOutcomeCallable; 148 typedef std::future<ListStreamKeysOutcome> ListStreamKeysOutcomeCallable; 149 typedef std::future<ListStreamsOutcome> ListStreamsOutcomeCallable; 150 typedef std::future<ListTagsForResourceOutcome> ListTagsForResourceOutcomeCallable; 151 typedef std::future<PutMetadataOutcome> PutMetadataOutcomeCallable; 152 typedef std::future<StopStreamOutcome> StopStreamOutcomeCallable; 153 typedef std::future<TagResourceOutcome> TagResourceOutcomeCallable; 154 typedef std::future<UntagResourceOutcome> UntagResourceOutcomeCallable; 155 typedef std::future<UpdateChannelOutcome> UpdateChannelOutcomeCallable; 156 } // namespace Model 157 158 class IVSClient; 159 160 typedef std::function<void(const IVSClient*, const Model::BatchGetChannelRequest&, const Model::BatchGetChannelOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > BatchGetChannelResponseReceivedHandler; 161 typedef std::function<void(const IVSClient*, const Model::BatchGetStreamKeyRequest&, const Model::BatchGetStreamKeyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > BatchGetStreamKeyResponseReceivedHandler; 162 typedef std::function<void(const IVSClient*, const Model::CreateChannelRequest&, const Model::CreateChannelOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateChannelResponseReceivedHandler; 163 typedef std::function<void(const IVSClient*, const Model::CreateRecordingConfigurationRequest&, const Model::CreateRecordingConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateRecordingConfigurationResponseReceivedHandler; 164 typedef std::function<void(const IVSClient*, const Model::CreateStreamKeyRequest&, const Model::CreateStreamKeyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateStreamKeyResponseReceivedHandler; 165 typedef std::function<void(const IVSClient*, const Model::DeleteChannelRequest&, const Model::DeleteChannelOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteChannelResponseReceivedHandler; 166 typedef std::function<void(const IVSClient*, const Model::DeletePlaybackKeyPairRequest&, const Model::DeletePlaybackKeyPairOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeletePlaybackKeyPairResponseReceivedHandler; 167 typedef std::function<void(const IVSClient*, const Model::DeleteRecordingConfigurationRequest&, const Model::DeleteRecordingConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteRecordingConfigurationResponseReceivedHandler; 168 typedef std::function<void(const IVSClient*, const Model::DeleteStreamKeyRequest&, const Model::DeleteStreamKeyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteStreamKeyResponseReceivedHandler; 169 typedef std::function<void(const IVSClient*, const Model::GetChannelRequest&, const Model::GetChannelOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetChannelResponseReceivedHandler; 170 typedef std::function<void(const IVSClient*, const Model::GetPlaybackKeyPairRequest&, const Model::GetPlaybackKeyPairOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetPlaybackKeyPairResponseReceivedHandler; 171 typedef std::function<void(const IVSClient*, const Model::GetRecordingConfigurationRequest&, const Model::GetRecordingConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetRecordingConfigurationResponseReceivedHandler; 172 typedef std::function<void(const IVSClient*, const Model::GetStreamRequest&, const Model::GetStreamOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetStreamResponseReceivedHandler; 173 typedef std::function<void(const IVSClient*, const Model::GetStreamKeyRequest&, const Model::GetStreamKeyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetStreamKeyResponseReceivedHandler; 174 typedef std::function<void(const IVSClient*, const Model::ImportPlaybackKeyPairRequest&, const Model::ImportPlaybackKeyPairOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ImportPlaybackKeyPairResponseReceivedHandler; 175 typedef std::function<void(const IVSClient*, const Model::ListChannelsRequest&, const Model::ListChannelsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListChannelsResponseReceivedHandler; 176 typedef std::function<void(const IVSClient*, const Model::ListPlaybackKeyPairsRequest&, const Model::ListPlaybackKeyPairsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListPlaybackKeyPairsResponseReceivedHandler; 177 typedef std::function<void(const IVSClient*, const Model::ListRecordingConfigurationsRequest&, const Model::ListRecordingConfigurationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListRecordingConfigurationsResponseReceivedHandler; 178 typedef std::function<void(const IVSClient*, const Model::ListStreamKeysRequest&, const Model::ListStreamKeysOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListStreamKeysResponseReceivedHandler; 179 typedef std::function<void(const IVSClient*, const Model::ListStreamsRequest&, const Model::ListStreamsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListStreamsResponseReceivedHandler; 180 typedef std::function<void(const IVSClient*, const Model::ListTagsForResourceRequest&, const Model::ListTagsForResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTagsForResourceResponseReceivedHandler; 181 typedef std::function<void(const IVSClient*, const Model::PutMetadataRequest&, const Model::PutMetadataOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutMetadataResponseReceivedHandler; 182 typedef std::function<void(const IVSClient*, const Model::StopStreamRequest&, const Model::StopStreamOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > StopStreamResponseReceivedHandler; 183 typedef std::function<void(const IVSClient*, const Model::TagResourceRequest&, const Model::TagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > TagResourceResponseReceivedHandler; 184 typedef std::function<void(const IVSClient*, const Model::UntagResourceRequest&, const Model::UntagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UntagResourceResponseReceivedHandler; 185 typedef std::function<void(const IVSClient*, const Model::UpdateChannelRequest&, const Model::UpdateChannelOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateChannelResponseReceivedHandler; 186 187 /** 188 * <p> <b>Introduction</b> </p> <p>The Amazon Interactive Video Service (IVS) API 189 * is REST compatible, using a standard HTTP API and an Amazon Web Services 190 * EventBridge event stream for responses. JSON is used for both requests and 191 * responses, including errors.</p> <p>The API is an Amazon Web Services regional 192 * service. For a list of supported regions and Amazon IVS HTTPS service endpoints, 193 * see the <a href="https://docs.aws.amazon.com/general/latest/gr/ivs.html">Amazon 194 * IVS page</a> in the <i>Amazon Web Services General Reference</i>.</p> <p> <i> 195 * <b>All API request parameters and URLs are case sensitive. </b> </i> </p> <p>For 196 * a summary of notable documentation changes in each release, see <a 197 * href="https://docs.aws.amazon.com/ivs/latest/userguide/doc-history.html"> 198 * Document History</a>.</p> <pre><code> <p> <b>Allowed Header 199 * Values</b> </p> <ul> <li> <p> <code> 200 * <b>Accept:</b> </code> application/json</p> </li> 201 * <li> <p> <code> <b>Accept-Encoding:</b> 202 * </code> gzip, deflate</p> </li> <li> <p> 203 * <code> <b>Content-Type:</b> 204 * </code>application/json</p> </li> </ul> <p> 205 * <b>Resources</b> </p> <p>The following resources contain 206 * information about your IVS live stream (see <a 207 * href="https://docs.aws.amazon.com/ivs/latest/userguide/getting-started.html"> 208 * Getting Started with Amazon IVS</a>):</p> <ul> <li> 209 * <p>Channel — Stores configuration data related to your live stream. You 210 * first create a channel and then use the channel’s stream key to start your live 211 * stream. See the Channel endpoints for more information. </p> </li> 212 * <li> <p>Stream key — An identifier assigned by Amazon IVS when you 213 * create a channel, which is then used to authorize streaming. See the StreamKey 214 * endpoints for more information. <i> <b>Treat the stream key like a 215 * secret, since it allows anyone to stream to the channel.</b> </i> 216 * </p> </li> <li> <p>Playback key pair — Video playback 217 * may be restricted using playback-authorization tokens, which use public-key 218 * encryption. A playback key pair is the public-private pair of keys used to sign 219 * and validate the playback-authorization token. See the PlaybackKeyPair endpoints 220 * for more information.</p> </li> <li> <p>Recording 221 * configuration — Stores configuration related to recording a live stream and 222 * where to store the recorded content. Multiple channels can reference the same 223 * recording configuration. See the Recording Configuration endpoints for more 224 * information.</p> </li> </ul> <p> 225 * <b>Tagging</b> </p> <p>A <i>tag</i> is a 226 * metadata label that you assign to an Amazon Web Services resource. A tag 227 * comprises a <i>key</i> and a <i>value</i>, both set by 228 * you. For example, you might set a tag as <code>topic:nature</code> 229 * to label a particular video category. See <a 230 * href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging 231 * Amazon Web Services Resources</a> for more information, including 232 * restrictions that apply to tags.</p> <p>Tags can help you identify 233 * and organize your Amazon Web Services resources. For example, you can use the 234 * same tag for different resources to indicate that they are related. You can also 235 * use tags to manage access (see <a 236 * href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html"> 237 * Access Tags</a>). </p> <p>The Amazon IVS API has these 238 * tag-related endpoints: <a>TagResource</a>, 239 * <a>UntagResource</a>, and <a>ListTagsForResource</a>. 240 * The following resources support tagging: Channels, Stream Keys, Playback Key 241 * Pairs, and Recording Configurations.</p> <p>At most 50 tags can be 242 * applied to a resource. </p> <p> <b>Authentication versus 243 * Authorization</b> </p> <p>Note the differences between these 244 * concepts:</p> <ul> <li> <p> 245 * <i>Authentication</i> is about verifying identity. You need to be 246 * authenticated to sign Amazon IVS API requests.</p> </li> <li> 247 * <p> <i>Authorization</i> is about granting permissions. You 248 * need to be authorized to view <a 249 * href="https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html">Amazon 250 * IVS private channels</a>. (Private channels are channels that are enabled 251 * for "playback authorization.")</p> </li> </ul> 252 * <p> <b>Authentication</b> </p> <p>All Amazon IVS 253 * API requests must be authenticated with a signature. The Amazon Web Services 254 * Command-Line Interface (CLI) and Amazon IVS Player SDKs take care of signing the 255 * underlying API calls for you. However, if your application calls the Amazon IVS 256 * API directly, it’s your responsibility to sign the requests.</p> 257 * <p>You generate a signature using valid Amazon Web Services credentials 258 * that have permission to perform the requested action. For example, you must sign 259 * PutMetadata requests with a signature generated from an IAM user account that 260 * has the <code>ivs:PutMetadata</code> permission.</p> 261 * <p>For more information:</p> <ul> <li> 262 * <p>Authentication and generating signatures — See <a 263 * href="https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html">Authenticating 264 * Requests (Amazon Web Services Signature Version 4)</a> in the 265 * <i>Amazon Web Services General Reference</i>.</p> </li> 266 * <li> <p>Managing Amazon IVS permissions — See <a 267 * href="https://docs.aws.amazon.com/ivs/latest/userguide/security-iam.html">Identity 268 * and Access Management</a> on the Security page of the <i>Amazon IVS 269 * User Guide</i>.</p> </li> </ul> <p> 270 * <b>Channel Endpoints</b> </p> <ul> <li> <p> 271 * <a>CreateChannel</a> — Creates a new channel and an associated 272 * stream key to start streaming.</p> </li> <li> <p> 273 * <a>GetChannel</a> — Gets the channel configuration for the specified 274 * channel ARN (Amazon Resource Name).</p> </li> <li> <p> 275 * <a>BatchGetChannel</a> — Performs <a>GetChannel</a> on 276 * multiple ARNs simultaneously.</p> </li> <li> <p> 277 * <a>ListChannels</a> — Gets summary information about all channels in 278 * your account, in the Amazon Web Services region where the API request is 279 * processed. This list can be filtered to match a specified name or 280 * recording-configuration ARN. Filters are mutually exclusive and cannot be used 281 * together. If you try to use both filters, you will get an error (409 Conflict 282 * Exception).</p> </li> <li> <p> 283 * <a>UpdateChannel</a> — Updates a channel's configuration. This does 284 * not affect an ongoing stream of this channel. You must stop and restart the 285 * stream for the changes to take effect.</p> </li> <li> 286 * <p> <a>DeleteChannel</a> — Deletes the specified 287 * channel.</p> </li> </ul> <p> <b>StreamKey 288 * Endpoints</b> </p> <ul> <li> <p> 289 * <a>CreateStreamKey</a> — Creates a stream key, used to initiate a 290 * stream, for the specified channel ARN.</p> </li> <li> 291 * <p> <a>GetStreamKey</a> — Gets stream key information for the 292 * specified ARN.</p> </li> <li> <p> 293 * <a>BatchGetStreamKey</a> — Performs <a>GetStreamKey</a> 294 * on multiple ARNs simultaneously.</p> </li> <li> <p> 295 * <a>ListStreamKeys</a> — Gets summary information about stream keys 296 * for the specified channel.</p> </li> <li> <p> 297 * <a>DeleteStreamKey</a> — Deletes the stream key for the specified 298 * ARN, so it can no longer be used to stream.</p> </li> </ul> 299 * <p> <b>Stream Endpoints</b> </p> <ul> <li> 300 * <p> <a>GetStream</a> — Gets information about the active 301 * (live) stream on a specified channel.</p> </li> <li> <p> 302 * <a>ListStreams</a> — Gets summary information about live streams in 303 * your account, in the Amazon Web Services region where the API request is 304 * processed.</p> </li> <li> <p> 305 * <a>StopStream</a> — Disconnects the incoming RTMPS stream for the 306 * specified channel. Can be used in conjunction with 307 * <a>DeleteStreamKey</a> to prevent further streaming to a 308 * channel.</p> </li> <li> <p> 309 * <a>PutMetadata</a> — Inserts metadata into the active stream of the 310 * specified channel. At most 5 requests per second per channel are allowed, each 311 * with a maximum 1 KB payload. (If 5 TPS is not sufficient for your needs, we 312 * recommend batching your data into a single PutMetadata call.) At most 155 313 * requests per second per account are allowed.</p> </li> </ul> 314 * <p> <b>PlaybackKeyPair Endpoints</b> </p> <p>For 315 * more information, see <a 316 * href="https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html">Setting 317 * Up Private Channels</a> in the <i>Amazon IVS User 318 * Guide</i>.</p> <ul> <li> <p> 319 * <a>ImportPlaybackKeyPair</a> — Imports the public portion of a new 320 * key pair and returns its <code>arn</code> and 321 * <code>fingerprint</code>. The <code>privateKey</code> 322 * can then be used to generate viewer authorization tokens, to grant viewers 323 * access to private channels (channels enabled for playback 324 * authorization).</p> </li> <li> <p> 325 * <a>GetPlaybackKeyPair</a> — Gets a specified playback authorization 326 * key pair and returns the <code>arn</code> and 327 * <code>fingerprint</code>. The <code>privateKey</code> 328 * held by the caller can be used to generate viewer authorization tokens, to grant 329 * viewers access to private channels.</p> </li> <li> <p> 330 * <a>ListPlaybackKeyPairs</a> — Gets summary information about 331 * playback key pairs.</p> </li> <li> <p> 332 * <a>DeletePlaybackKeyPair</a> — Deletes a specified authorization key 333 * pair. This invalidates future viewer tokens generated using the key pair’s 334 * <code>privateKey</code>.</p> </li> </ul> <p> 335 * <b>RecordingConfiguration Endpoints</b> </p> <ul> 336 * <li> <p> <a>CreateRecordingConfiguration</a> — Creates a 337 * new recording configuration, used to enable recording to Amazon S3.</p> 338 * </li> <li> <p> <a>GetRecordingConfiguration</a> — 339 * Gets the recording-configuration metadata for the specified ARN.</p> 340 * </li> <li> <p> <a>ListRecordingConfigurations</a> 341 * — Gets summary information about all recording configurations in your account, 342 * in the Amazon Web Services region where the API request is processed.</p> 343 * </li> <li> <p> <a>DeleteRecordingConfiguration</a> 344 * — Deletes the recording configuration for the specified ARN.</p> 345 * </li> </ul> <p> <b>Amazon Web Services Tags 346 * Endpoints</b> </p> <ul> <li> <p> 347 * <a>TagResource</a> — Adds or updates tags for the Amazon Web 348 * Services resource with the specified ARN.</p> </li> <li> 349 * <p> <a>UntagResource</a> — Removes tags from the resource with 350 * the specified ARN.</p> </li> <li> <p> 351 * <a>ListTagsForResource</a> — Gets information about Amazon Web 352 * Services tags for the specified ARN.</p> </li> </ul> 353 * </code></pre> 354 */ 355 class AWS_IVS_API IVSClient : public Aws::Client::AWSJsonClient 356 { 357 public: 358 typedef Aws::Client::AWSJsonClient BASECLASS; 359 360 /** 361 * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config 362 * is not specified, it will be initialized to default values. 363 */ 364 IVSClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); 365 366 /** 367 * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config 368 * is not specified, it will be initialized to default values. 369 */ 370 IVSClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); 371 372 /** 373 * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, 374 * the default http client factory will be used 375 */ 376 IVSClient(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider, 377 const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); 378 379 virtual ~IVSClient(); 380 381 382 /** 383 * <p>Performs <a>GetChannel</a> on multiple ARNs simultaneously.</p><p><h3>See 384 * Also:</h3> <a 385 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/BatchGetChannel">AWS 386 * API Reference</a></p> 387 */ 388 virtual Model::BatchGetChannelOutcome BatchGetChannel(const Model::BatchGetChannelRequest& request) const; 389 390 /** 391 * <p>Performs <a>GetChannel</a> on multiple ARNs simultaneously.</p><p><h3>See 392 * Also:</h3> <a 393 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/BatchGetChannel">AWS 394 * API Reference</a></p> 395 * 396 * returns a future to the operation so that it can be executed in parallel to other requests. 397 */ 398 virtual Model::BatchGetChannelOutcomeCallable BatchGetChannelCallable(const Model::BatchGetChannelRequest& request) const; 399 400 /** 401 * <p>Performs <a>GetChannel</a> on multiple ARNs simultaneously.</p><p><h3>See 402 * Also:</h3> <a 403 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/BatchGetChannel">AWS 404 * API Reference</a></p> 405 * 406 * Queues the request into a thread executor and triggers associated callback when operation has finished. 407 */ 408 virtual void BatchGetChannelAsync(const Model::BatchGetChannelRequest& request, const BatchGetChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 409 410 /** 411 * <p>Performs <a>GetStreamKey</a> on multiple ARNs simultaneously.</p><p><h3>See 412 * Also:</h3> <a 413 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/BatchGetStreamKey">AWS 414 * API Reference</a></p> 415 */ 416 virtual Model::BatchGetStreamKeyOutcome BatchGetStreamKey(const Model::BatchGetStreamKeyRequest& request) const; 417 418 /** 419 * <p>Performs <a>GetStreamKey</a> on multiple ARNs simultaneously.</p><p><h3>See 420 * Also:</h3> <a 421 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/BatchGetStreamKey">AWS 422 * API Reference</a></p> 423 * 424 * returns a future to the operation so that it can be executed in parallel to other requests. 425 */ 426 virtual Model::BatchGetStreamKeyOutcomeCallable BatchGetStreamKeyCallable(const Model::BatchGetStreamKeyRequest& request) const; 427 428 /** 429 * <p>Performs <a>GetStreamKey</a> on multiple ARNs simultaneously.</p><p><h3>See 430 * Also:</h3> <a 431 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/BatchGetStreamKey">AWS 432 * API Reference</a></p> 433 * 434 * Queues the request into a thread executor and triggers associated callback when operation has finished. 435 */ 436 virtual void BatchGetStreamKeyAsync(const Model::BatchGetStreamKeyRequest& request, const BatchGetStreamKeyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 437 438 /** 439 * <p>Creates a new channel and an associated stream key to start 440 * streaming.</p><p><h3>See Also:</h3> <a 441 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/CreateChannel">AWS 442 * API Reference</a></p> 443 */ 444 virtual Model::CreateChannelOutcome CreateChannel(const Model::CreateChannelRequest& request) const; 445 446 /** 447 * <p>Creates a new channel and an associated stream key to start 448 * streaming.</p><p><h3>See Also:</h3> <a 449 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/CreateChannel">AWS 450 * API Reference</a></p> 451 * 452 * returns a future to the operation so that it can be executed in parallel to other requests. 453 */ 454 virtual Model::CreateChannelOutcomeCallable CreateChannelCallable(const Model::CreateChannelRequest& request) const; 455 456 /** 457 * <p>Creates a new channel and an associated stream key to start 458 * streaming.</p><p><h3>See Also:</h3> <a 459 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/CreateChannel">AWS 460 * API Reference</a></p> 461 * 462 * Queues the request into a thread executor and triggers associated callback when operation has finished. 463 */ 464 virtual void CreateChannelAsync(const Model::CreateChannelRequest& request, const CreateChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 465 466 /** 467 * <p>Creates a new recording configuration, used to enable recording to Amazon 468 * S3.</p> <p> <b>Known issue:</b> In the us-east-1 region, if you use the Amazon 469 * Web Services CLI to create a recording configuration, it returns success even if 470 * the S3 bucket is in a different region. In this case, the <code>state</code> of 471 * the recording configuration is <code>CREATE_FAILED</code> (instead of 472 * <code>ACTIVE</code>). (In other regions, the CLI correctly returns failure if 473 * the bucket is in a different region.)</p> <p> <b>Workaround:</b> Ensure that 474 * your S3 bucket is in the same region as the recording configuration. If you 475 * create a recording configuration in a different region as your S3 bucket, delete 476 * that recording configuration and create a new one with an S3 bucket from the 477 * correct region.</p><p><h3>See Also:</h3> <a 478 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/CreateRecordingConfiguration">AWS 479 * API Reference</a></p> 480 */ 481 virtual Model::CreateRecordingConfigurationOutcome CreateRecordingConfiguration(const Model::CreateRecordingConfigurationRequest& request) const; 482 483 /** 484 * <p>Creates a new recording configuration, used to enable recording to Amazon 485 * S3.</p> <p> <b>Known issue:</b> In the us-east-1 region, if you use the Amazon 486 * Web Services CLI to create a recording configuration, it returns success even if 487 * the S3 bucket is in a different region. In this case, the <code>state</code> of 488 * the recording configuration is <code>CREATE_FAILED</code> (instead of 489 * <code>ACTIVE</code>). (In other regions, the CLI correctly returns failure if 490 * the bucket is in a different region.)</p> <p> <b>Workaround:</b> Ensure that 491 * your S3 bucket is in the same region as the recording configuration. If you 492 * create a recording configuration in a different region as your S3 bucket, delete 493 * that recording configuration and create a new one with an S3 bucket from the 494 * correct region.</p><p><h3>See Also:</h3> <a 495 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/CreateRecordingConfiguration">AWS 496 * API Reference</a></p> 497 * 498 * returns a future to the operation so that it can be executed in parallel to other requests. 499 */ 500 virtual Model::CreateRecordingConfigurationOutcomeCallable CreateRecordingConfigurationCallable(const Model::CreateRecordingConfigurationRequest& request) const; 501 502 /** 503 * <p>Creates a new recording configuration, used to enable recording to Amazon 504 * S3.</p> <p> <b>Known issue:</b> In the us-east-1 region, if you use the Amazon 505 * Web Services CLI to create a recording configuration, it returns success even if 506 * the S3 bucket is in a different region. In this case, the <code>state</code> of 507 * the recording configuration is <code>CREATE_FAILED</code> (instead of 508 * <code>ACTIVE</code>). (In other regions, the CLI correctly returns failure if 509 * the bucket is in a different region.)</p> <p> <b>Workaround:</b> Ensure that 510 * your S3 bucket is in the same region as the recording configuration. If you 511 * create a recording configuration in a different region as your S3 bucket, delete 512 * that recording configuration and create a new one with an S3 bucket from the 513 * correct region.</p><p><h3>See Also:</h3> <a 514 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/CreateRecordingConfiguration">AWS 515 * API Reference</a></p> 516 * 517 * Queues the request into a thread executor and triggers associated callback when operation has finished. 518 */ 519 virtual void CreateRecordingConfigurationAsync(const Model::CreateRecordingConfigurationRequest& request, const CreateRecordingConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 520 521 /** 522 * <p>Creates a stream key, used to initiate a stream, for the specified channel 523 * ARN.</p> <p>Note that <a>CreateChannel</a> creates a stream key. If you 524 * subsequently use CreateStreamKey on the same channel, it will fail because a 525 * stream key already exists and there is a limit of 1 stream key per channel. To 526 * reset the stream key on a channel, use <a>DeleteStreamKey</a> and then 527 * CreateStreamKey.</p><p><h3>See Also:</h3> <a 528 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/CreateStreamKey">AWS 529 * API Reference</a></p> 530 */ 531 virtual Model::CreateStreamKeyOutcome CreateStreamKey(const Model::CreateStreamKeyRequest& request) const; 532 533 /** 534 * <p>Creates a stream key, used to initiate a stream, for the specified channel 535 * ARN.</p> <p>Note that <a>CreateChannel</a> creates a stream key. If you 536 * subsequently use CreateStreamKey on the same channel, it will fail because a 537 * stream key already exists and there is a limit of 1 stream key per channel. To 538 * reset the stream key on a channel, use <a>DeleteStreamKey</a> and then 539 * CreateStreamKey.</p><p><h3>See Also:</h3> <a 540 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/CreateStreamKey">AWS 541 * API Reference</a></p> 542 * 543 * returns a future to the operation so that it can be executed in parallel to other requests. 544 */ 545 virtual Model::CreateStreamKeyOutcomeCallable CreateStreamKeyCallable(const Model::CreateStreamKeyRequest& request) const; 546 547 /** 548 * <p>Creates a stream key, used to initiate a stream, for the specified channel 549 * ARN.</p> <p>Note that <a>CreateChannel</a> creates a stream key. If you 550 * subsequently use CreateStreamKey on the same channel, it will fail because a 551 * stream key already exists and there is a limit of 1 stream key per channel. To 552 * reset the stream key on a channel, use <a>DeleteStreamKey</a> and then 553 * CreateStreamKey.</p><p><h3>See Also:</h3> <a 554 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/CreateStreamKey">AWS 555 * API Reference</a></p> 556 * 557 * Queues the request into a thread executor and triggers associated callback when operation has finished. 558 */ 559 virtual void CreateStreamKeyAsync(const Model::CreateStreamKeyRequest& request, const CreateStreamKeyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 560 561 /** 562 * <p>Deletes the specified channel and its associated stream keys.</p> <p>If you 563 * try to delete a live channel, you will get an error (409 ConflictException). To 564 * delete a channel that is live, call <a>StopStream</a>, wait for the Amazon 565 * EventBridge "Stream End" event (to verify that the stream's state was changed 566 * from Live to Offline), then call DeleteChannel. (See <a 567 * href="https://docs.aws.amazon.com/ivs/latest/userguide/eventbridge.html"> Using 568 * EventBridge with Amazon IVS</a>.) </p><p><h3>See Also:</h3> <a 569 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/DeleteChannel">AWS 570 * API Reference</a></p> 571 */ 572 virtual Model::DeleteChannelOutcome DeleteChannel(const Model::DeleteChannelRequest& request) const; 573 574 /** 575 * <p>Deletes the specified channel and its associated stream keys.</p> <p>If you 576 * try to delete a live channel, you will get an error (409 ConflictException). To 577 * delete a channel that is live, call <a>StopStream</a>, wait for the Amazon 578 * EventBridge "Stream End" event (to verify that the stream's state was changed 579 * from Live to Offline), then call DeleteChannel. (See <a 580 * href="https://docs.aws.amazon.com/ivs/latest/userguide/eventbridge.html"> Using 581 * EventBridge with Amazon IVS</a>.) </p><p><h3>See Also:</h3> <a 582 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/DeleteChannel">AWS 583 * API Reference</a></p> 584 * 585 * returns a future to the operation so that it can be executed in parallel to other requests. 586 */ 587 virtual Model::DeleteChannelOutcomeCallable DeleteChannelCallable(const Model::DeleteChannelRequest& request) const; 588 589 /** 590 * <p>Deletes the specified channel and its associated stream keys.</p> <p>If you 591 * try to delete a live channel, you will get an error (409 ConflictException). To 592 * delete a channel that is live, call <a>StopStream</a>, wait for the Amazon 593 * EventBridge "Stream End" event (to verify that the stream's state was changed 594 * from Live to Offline), then call DeleteChannel. (See <a 595 * href="https://docs.aws.amazon.com/ivs/latest/userguide/eventbridge.html"> Using 596 * EventBridge with Amazon IVS</a>.) </p><p><h3>See Also:</h3> <a 597 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/DeleteChannel">AWS 598 * API Reference</a></p> 599 * 600 * Queues the request into a thread executor and triggers associated callback when operation has finished. 601 */ 602 virtual void DeleteChannelAsync(const Model::DeleteChannelRequest& request, const DeleteChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 603 604 /** 605 * <p>Deletes a specified authorization key pair. This invalidates future viewer 606 * tokens generated using the key pair’s <code>privateKey</code>. For more 607 * information, see <a 608 * href="https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html">Setting 609 * Up Private Channels</a> in the <i>Amazon IVS User Guide</i>.</p><p><h3>See 610 * Also:</h3> <a 611 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/DeletePlaybackKeyPair">AWS 612 * API Reference</a></p> 613 */ 614 virtual Model::DeletePlaybackKeyPairOutcome DeletePlaybackKeyPair(const Model::DeletePlaybackKeyPairRequest& request) const; 615 616 /** 617 * <p>Deletes a specified authorization key pair. This invalidates future viewer 618 * tokens generated using the key pair’s <code>privateKey</code>. For more 619 * information, see <a 620 * href="https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html">Setting 621 * Up Private Channels</a> in the <i>Amazon IVS User Guide</i>.</p><p><h3>See 622 * Also:</h3> <a 623 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/DeletePlaybackKeyPair">AWS 624 * API Reference</a></p> 625 * 626 * returns a future to the operation so that it can be executed in parallel to other requests. 627 */ 628 virtual Model::DeletePlaybackKeyPairOutcomeCallable DeletePlaybackKeyPairCallable(const Model::DeletePlaybackKeyPairRequest& request) const; 629 630 /** 631 * <p>Deletes a specified authorization key pair. This invalidates future viewer 632 * tokens generated using the key pair’s <code>privateKey</code>. For more 633 * information, see <a 634 * href="https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html">Setting 635 * Up Private Channels</a> in the <i>Amazon IVS User Guide</i>.</p><p><h3>See 636 * Also:</h3> <a 637 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/DeletePlaybackKeyPair">AWS 638 * API Reference</a></p> 639 * 640 * Queues the request into a thread executor and triggers associated callback when operation has finished. 641 */ 642 virtual void DeletePlaybackKeyPairAsync(const Model::DeletePlaybackKeyPairRequest& request, const DeletePlaybackKeyPairResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 643 644 /** 645 * <p>Deletes the recording configuration for the specified ARN.</p> <p>If you try 646 * to delete a recording configuration that is associated with a channel, you will 647 * get an error (409 ConflictException). To avoid this, for all channels that 648 * reference the recording configuration, first use <a>UpdateChannel</a> to set the 649 * <code>recordingConfigurationArn</code> field to an empty string, then use 650 * DeleteRecordingConfiguration.</p><p><h3>See Also:</h3> <a 651 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/DeleteRecordingConfiguration">AWS 652 * API Reference</a></p> 653 */ 654 virtual Model::DeleteRecordingConfigurationOutcome DeleteRecordingConfiguration(const Model::DeleteRecordingConfigurationRequest& request) const; 655 656 /** 657 * <p>Deletes the recording configuration for the specified ARN.</p> <p>If you try 658 * to delete a recording configuration that is associated with a channel, you will 659 * get an error (409 ConflictException). To avoid this, for all channels that 660 * reference the recording configuration, first use <a>UpdateChannel</a> to set the 661 * <code>recordingConfigurationArn</code> field to an empty string, then use 662 * DeleteRecordingConfiguration.</p><p><h3>See Also:</h3> <a 663 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/DeleteRecordingConfiguration">AWS 664 * API Reference</a></p> 665 * 666 * returns a future to the operation so that it can be executed in parallel to other requests. 667 */ 668 virtual Model::DeleteRecordingConfigurationOutcomeCallable DeleteRecordingConfigurationCallable(const Model::DeleteRecordingConfigurationRequest& request) const; 669 670 /** 671 * <p>Deletes the recording configuration for the specified ARN.</p> <p>If you try 672 * to delete a recording configuration that is associated with a channel, you will 673 * get an error (409 ConflictException). To avoid this, for all channels that 674 * reference the recording configuration, first use <a>UpdateChannel</a> to set the 675 * <code>recordingConfigurationArn</code> field to an empty string, then use 676 * DeleteRecordingConfiguration.</p><p><h3>See Also:</h3> <a 677 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/DeleteRecordingConfiguration">AWS 678 * API Reference</a></p> 679 * 680 * Queues the request into a thread executor and triggers associated callback when operation has finished. 681 */ 682 virtual void DeleteRecordingConfigurationAsync(const Model::DeleteRecordingConfigurationRequest& request, const DeleteRecordingConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 683 684 /** 685 * <p>Deletes the stream key for the specified ARN, so it can no longer be used to 686 * stream.</p><p><h3>See Also:</h3> <a 687 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/DeleteStreamKey">AWS 688 * API Reference</a></p> 689 */ 690 virtual Model::DeleteStreamKeyOutcome DeleteStreamKey(const Model::DeleteStreamKeyRequest& request) const; 691 692 /** 693 * <p>Deletes the stream key for the specified ARN, so it can no longer be used to 694 * stream.</p><p><h3>See Also:</h3> <a 695 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/DeleteStreamKey">AWS 696 * API Reference</a></p> 697 * 698 * returns a future to the operation so that it can be executed in parallel to other requests. 699 */ 700 virtual Model::DeleteStreamKeyOutcomeCallable DeleteStreamKeyCallable(const Model::DeleteStreamKeyRequest& request) const; 701 702 /** 703 * <p>Deletes the stream key for the specified ARN, so it can no longer be used to 704 * stream.</p><p><h3>See Also:</h3> <a 705 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/DeleteStreamKey">AWS 706 * API Reference</a></p> 707 * 708 * Queues the request into a thread executor and triggers associated callback when operation has finished. 709 */ 710 virtual void DeleteStreamKeyAsync(const Model::DeleteStreamKeyRequest& request, const DeleteStreamKeyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 711 712 /** 713 * <p>Gets the channel configuration for the specified channel ARN. See also 714 * <a>BatchGetChannel</a>.</p><p><h3>See Also:</h3> <a 715 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/GetChannel">AWS API 716 * Reference</a></p> 717 */ 718 virtual Model::GetChannelOutcome GetChannel(const Model::GetChannelRequest& request) const; 719 720 /** 721 * <p>Gets the channel configuration for the specified channel ARN. See also 722 * <a>BatchGetChannel</a>.</p><p><h3>See Also:</h3> <a 723 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/GetChannel">AWS API 724 * Reference</a></p> 725 * 726 * returns a future to the operation so that it can be executed in parallel to other requests. 727 */ 728 virtual Model::GetChannelOutcomeCallable GetChannelCallable(const Model::GetChannelRequest& request) const; 729 730 /** 731 * <p>Gets the channel configuration for the specified channel ARN. See also 732 * <a>BatchGetChannel</a>.</p><p><h3>See Also:</h3> <a 733 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/GetChannel">AWS API 734 * Reference</a></p> 735 * 736 * Queues the request into a thread executor and triggers associated callback when operation has finished. 737 */ 738 virtual void GetChannelAsync(const Model::GetChannelRequest& request, const GetChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 739 740 /** 741 * <p>Gets a specified playback authorization key pair and returns the 742 * <code>arn</code> and <code>fingerprint</code>. The <code>privateKey</code> held 743 * by the caller can be used to generate viewer authorization tokens, to grant 744 * viewers access to private channels. For more information, see <a 745 * href="https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html">Setting 746 * Up Private Channels</a> in the <i>Amazon IVS User Guide</i>.</p><p><h3>See 747 * Also:</h3> <a 748 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/GetPlaybackKeyPair">AWS 749 * API Reference</a></p> 750 */ 751 virtual Model::GetPlaybackKeyPairOutcome GetPlaybackKeyPair(const Model::GetPlaybackKeyPairRequest& request) const; 752 753 /** 754 * <p>Gets a specified playback authorization key pair and returns the 755 * <code>arn</code> and <code>fingerprint</code>. The <code>privateKey</code> held 756 * by the caller can be used to generate viewer authorization tokens, to grant 757 * viewers access to private channels. For more information, see <a 758 * href="https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html">Setting 759 * Up Private Channels</a> in the <i>Amazon IVS User Guide</i>.</p><p><h3>See 760 * Also:</h3> <a 761 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/GetPlaybackKeyPair">AWS 762 * API Reference</a></p> 763 * 764 * returns a future to the operation so that it can be executed in parallel to other requests. 765 */ 766 virtual Model::GetPlaybackKeyPairOutcomeCallable GetPlaybackKeyPairCallable(const Model::GetPlaybackKeyPairRequest& request) const; 767 768 /** 769 * <p>Gets a specified playback authorization key pair and returns the 770 * <code>arn</code> and <code>fingerprint</code>. The <code>privateKey</code> held 771 * by the caller can be used to generate viewer authorization tokens, to grant 772 * viewers access to private channels. For more information, see <a 773 * href="https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html">Setting 774 * Up Private Channels</a> in the <i>Amazon IVS User Guide</i>.</p><p><h3>See 775 * Also:</h3> <a 776 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/GetPlaybackKeyPair">AWS 777 * API Reference</a></p> 778 * 779 * Queues the request into a thread executor and triggers associated callback when operation has finished. 780 */ 781 virtual void GetPlaybackKeyPairAsync(const Model::GetPlaybackKeyPairRequest& request, const GetPlaybackKeyPairResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 782 783 /** 784 * <p>Gets the recording configuration for the specified ARN.</p><p><h3>See 785 * Also:</h3> <a 786 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/GetRecordingConfiguration">AWS 787 * API Reference</a></p> 788 */ 789 virtual Model::GetRecordingConfigurationOutcome GetRecordingConfiguration(const Model::GetRecordingConfigurationRequest& request) const; 790 791 /** 792 * <p>Gets the recording configuration for the specified ARN.</p><p><h3>See 793 * Also:</h3> <a 794 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/GetRecordingConfiguration">AWS 795 * API Reference</a></p> 796 * 797 * returns a future to the operation so that it can be executed in parallel to other requests. 798 */ 799 virtual Model::GetRecordingConfigurationOutcomeCallable GetRecordingConfigurationCallable(const Model::GetRecordingConfigurationRequest& request) const; 800 801 /** 802 * <p>Gets the recording configuration for the specified ARN.</p><p><h3>See 803 * Also:</h3> <a 804 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/GetRecordingConfiguration">AWS 805 * API Reference</a></p> 806 * 807 * Queues the request into a thread executor and triggers associated callback when operation has finished. 808 */ 809 virtual void GetRecordingConfigurationAsync(const Model::GetRecordingConfigurationRequest& request, const GetRecordingConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 810 811 /** 812 * <p>Gets information about the active (live) stream on a specified 813 * channel.</p><p><h3>See Also:</h3> <a 814 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/GetStream">AWS API 815 * Reference</a></p> 816 */ 817 virtual Model::GetStreamOutcome GetStream(const Model::GetStreamRequest& request) const; 818 819 /** 820 * <p>Gets information about the active (live) stream on a specified 821 * channel.</p><p><h3>See Also:</h3> <a 822 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/GetStream">AWS API 823 * Reference</a></p> 824 * 825 * returns a future to the operation so that it can be executed in parallel to other requests. 826 */ 827 virtual Model::GetStreamOutcomeCallable GetStreamCallable(const Model::GetStreamRequest& request) const; 828 829 /** 830 * <p>Gets information about the active (live) stream on a specified 831 * channel.</p><p><h3>See Also:</h3> <a 832 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/GetStream">AWS API 833 * Reference</a></p> 834 * 835 * Queues the request into a thread executor and triggers associated callback when operation has finished. 836 */ 837 virtual void GetStreamAsync(const Model::GetStreamRequest& request, const GetStreamResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 838 839 /** 840 * <p>Gets stream-key information for a specified ARN.</p><p><h3>See Also:</h3> 841 * <a href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/GetStreamKey">AWS 842 * API Reference</a></p> 843 */ 844 virtual Model::GetStreamKeyOutcome GetStreamKey(const Model::GetStreamKeyRequest& request) const; 845 846 /** 847 * <p>Gets stream-key information for a specified ARN.</p><p><h3>See Also:</h3> 848 * <a href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/GetStreamKey">AWS 849 * API Reference</a></p> 850 * 851 * returns a future to the operation so that it can be executed in parallel to other requests. 852 */ 853 virtual Model::GetStreamKeyOutcomeCallable GetStreamKeyCallable(const Model::GetStreamKeyRequest& request) const; 854 855 /** 856 * <p>Gets stream-key information for a specified ARN.</p><p><h3>See Also:</h3> 857 * <a href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/GetStreamKey">AWS 858 * API Reference</a></p> 859 * 860 * Queues the request into a thread executor and triggers associated callback when operation has finished. 861 */ 862 virtual void GetStreamKeyAsync(const Model::GetStreamKeyRequest& request, const GetStreamKeyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 863 864 /** 865 * <p>Imports the public portion of a new key pair and returns its <code>arn</code> 866 * and <code>fingerprint</code>. The <code>privateKey</code> can then be used to 867 * generate viewer authorization tokens, to grant viewers access to private 868 * channels. For more information, see <a 869 * href="https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html">Setting 870 * Up Private Channels</a> in the <i>Amazon IVS User Guide</i>.</p><p><h3>See 871 * Also:</h3> <a 872 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/ImportPlaybackKeyPair">AWS 873 * API Reference</a></p> 874 */ 875 virtual Model::ImportPlaybackKeyPairOutcome ImportPlaybackKeyPair(const Model::ImportPlaybackKeyPairRequest& request) const; 876 877 /** 878 * <p>Imports the public portion of a new key pair and returns its <code>arn</code> 879 * and <code>fingerprint</code>. The <code>privateKey</code> can then be used to 880 * generate viewer authorization tokens, to grant viewers access to private 881 * channels. For more information, see <a 882 * href="https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html">Setting 883 * Up Private Channels</a> in the <i>Amazon IVS User Guide</i>.</p><p><h3>See 884 * Also:</h3> <a 885 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/ImportPlaybackKeyPair">AWS 886 * API Reference</a></p> 887 * 888 * returns a future to the operation so that it can be executed in parallel to other requests. 889 */ 890 virtual Model::ImportPlaybackKeyPairOutcomeCallable ImportPlaybackKeyPairCallable(const Model::ImportPlaybackKeyPairRequest& request) const; 891 892 /** 893 * <p>Imports the public portion of a new key pair and returns its <code>arn</code> 894 * and <code>fingerprint</code>. The <code>privateKey</code> can then be used to 895 * generate viewer authorization tokens, to grant viewers access to private 896 * channels. For more information, see <a 897 * href="https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html">Setting 898 * Up Private Channels</a> in the <i>Amazon IVS User Guide</i>.</p><p><h3>See 899 * Also:</h3> <a 900 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/ImportPlaybackKeyPair">AWS 901 * API Reference</a></p> 902 * 903 * Queues the request into a thread executor and triggers associated callback when operation has finished. 904 */ 905 virtual void ImportPlaybackKeyPairAsync(const Model::ImportPlaybackKeyPairRequest& request, const ImportPlaybackKeyPairResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 906 907 /** 908 * <p>Gets summary information about all channels in your account, in the Amazon 909 * Web Services region where the API request is processed. This list can be 910 * filtered to match a specified name or recording-configuration ARN. Filters are 911 * mutually exclusive and cannot be used together. If you try to use both filters, 912 * you will get an error (409 ConflictException).</p><p><h3>See Also:</h3> <a 913 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/ListChannels">AWS 914 * API Reference</a></p> 915 */ 916 virtual Model::ListChannelsOutcome ListChannels(const Model::ListChannelsRequest& request) const; 917 918 /** 919 * <p>Gets summary information about all channels in your account, in the Amazon 920 * Web Services region where the API request is processed. This list can be 921 * filtered to match a specified name or recording-configuration ARN. Filters are 922 * mutually exclusive and cannot be used together. If you try to use both filters, 923 * you will get an error (409 ConflictException).</p><p><h3>See Also:</h3> <a 924 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/ListChannels">AWS 925 * API Reference</a></p> 926 * 927 * returns a future to the operation so that it can be executed in parallel to other requests. 928 */ 929 virtual Model::ListChannelsOutcomeCallable ListChannelsCallable(const Model::ListChannelsRequest& request) const; 930 931 /** 932 * <p>Gets summary information about all channels in your account, in the Amazon 933 * Web Services region where the API request is processed. This list can be 934 * filtered to match a specified name or recording-configuration ARN. Filters are 935 * mutually exclusive and cannot be used together. If you try to use both filters, 936 * you will get an error (409 ConflictException).</p><p><h3>See Also:</h3> <a 937 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/ListChannels">AWS 938 * API Reference</a></p> 939 * 940 * Queues the request into a thread executor and triggers associated callback when operation has finished. 941 */ 942 virtual void ListChannelsAsync(const Model::ListChannelsRequest& request, const ListChannelsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 943 944 /** 945 * <p>Gets summary information about playback key pairs. For more information, see 946 * <a 947 * href="https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html">Setting 948 * Up Private Channels</a> in the <i>Amazon IVS User Guide</i>.</p><p><h3>See 949 * Also:</h3> <a 950 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/ListPlaybackKeyPairs">AWS 951 * API Reference</a></p> 952 */ 953 virtual Model::ListPlaybackKeyPairsOutcome ListPlaybackKeyPairs(const Model::ListPlaybackKeyPairsRequest& request) const; 954 955 /** 956 * <p>Gets summary information about playback key pairs. For more information, see 957 * <a 958 * href="https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html">Setting 959 * Up Private Channels</a> in the <i>Amazon IVS User Guide</i>.</p><p><h3>See 960 * Also:</h3> <a 961 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/ListPlaybackKeyPairs">AWS 962 * API Reference</a></p> 963 * 964 * returns a future to the operation so that it can be executed in parallel to other requests. 965 */ 966 virtual Model::ListPlaybackKeyPairsOutcomeCallable ListPlaybackKeyPairsCallable(const Model::ListPlaybackKeyPairsRequest& request) const; 967 968 /** 969 * <p>Gets summary information about playback key pairs. For more information, see 970 * <a 971 * href="https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html">Setting 972 * Up Private Channels</a> in the <i>Amazon IVS User Guide</i>.</p><p><h3>See 973 * Also:</h3> <a 974 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/ListPlaybackKeyPairs">AWS 975 * API Reference</a></p> 976 * 977 * Queues the request into a thread executor and triggers associated callback when operation has finished. 978 */ 979 virtual void ListPlaybackKeyPairsAsync(const Model::ListPlaybackKeyPairsRequest& request, const ListPlaybackKeyPairsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 980 981 /** 982 * <p>Gets summary information about all recording configurations in your account, 983 * in the Amazon Web Services region where the API request is 984 * processed.</p><p><h3>See Also:</h3> <a 985 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/ListRecordingConfigurations">AWS 986 * API Reference</a></p> 987 */ 988 virtual Model::ListRecordingConfigurationsOutcome ListRecordingConfigurations(const Model::ListRecordingConfigurationsRequest& request) const; 989 990 /** 991 * <p>Gets summary information about all recording configurations in your account, 992 * in the Amazon Web Services region where the API request is 993 * processed.</p><p><h3>See Also:</h3> <a 994 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/ListRecordingConfigurations">AWS 995 * API Reference</a></p> 996 * 997 * returns a future to the operation so that it can be executed in parallel to other requests. 998 */ 999 virtual Model::ListRecordingConfigurationsOutcomeCallable ListRecordingConfigurationsCallable(const Model::ListRecordingConfigurationsRequest& request) const; 1000 1001 /** 1002 * <p>Gets summary information about all recording configurations in your account, 1003 * in the Amazon Web Services region where the API request is 1004 * processed.</p><p><h3>See Also:</h3> <a 1005 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/ListRecordingConfigurations">AWS 1006 * API Reference</a></p> 1007 * 1008 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1009 */ 1010 virtual void ListRecordingConfigurationsAsync(const Model::ListRecordingConfigurationsRequest& request, const ListRecordingConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1011 1012 /** 1013 * <p>Gets summary information about stream keys for the specified 1014 * channel.</p><p><h3>See Also:</h3> <a 1015 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/ListStreamKeys">AWS 1016 * API Reference</a></p> 1017 */ 1018 virtual Model::ListStreamKeysOutcome ListStreamKeys(const Model::ListStreamKeysRequest& request) const; 1019 1020 /** 1021 * <p>Gets summary information about stream keys for the specified 1022 * channel.</p><p><h3>See Also:</h3> <a 1023 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/ListStreamKeys">AWS 1024 * API Reference</a></p> 1025 * 1026 * returns a future to the operation so that it can be executed in parallel to other requests. 1027 */ 1028 virtual Model::ListStreamKeysOutcomeCallable ListStreamKeysCallable(const Model::ListStreamKeysRequest& request) const; 1029 1030 /** 1031 * <p>Gets summary information about stream keys for the specified 1032 * channel.</p><p><h3>See Also:</h3> <a 1033 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/ListStreamKeys">AWS 1034 * API Reference</a></p> 1035 * 1036 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1037 */ 1038 virtual void ListStreamKeysAsync(const Model::ListStreamKeysRequest& request, const ListStreamKeysResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1039 1040 /** 1041 * <p>Gets summary information about live streams in your account, in the Amazon 1042 * Web Services region where the API request is processed.</p><p><h3>See Also:</h3> 1043 * <a href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/ListStreams">AWS 1044 * API Reference</a></p> 1045 */ 1046 virtual Model::ListStreamsOutcome ListStreams(const Model::ListStreamsRequest& request) const; 1047 1048 /** 1049 * <p>Gets summary information about live streams in your account, in the Amazon 1050 * Web Services region where the API request is processed.</p><p><h3>See Also:</h3> 1051 * <a href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/ListStreams">AWS 1052 * API Reference</a></p> 1053 * 1054 * returns a future to the operation so that it can be executed in parallel to other requests. 1055 */ 1056 virtual Model::ListStreamsOutcomeCallable ListStreamsCallable(const Model::ListStreamsRequest& request) const; 1057 1058 /** 1059 * <p>Gets summary information about live streams in your account, in the Amazon 1060 * Web Services region where the API request is processed.</p><p><h3>See Also:</h3> 1061 * <a href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/ListStreams">AWS 1062 * API Reference</a></p> 1063 * 1064 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1065 */ 1066 virtual void ListStreamsAsync(const Model::ListStreamsRequest& request, const ListStreamsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1067 1068 /** 1069 * <p>Gets information about Amazon Web Services tags for the specified 1070 * ARN.</p><p><h3>See Also:</h3> <a 1071 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/ListTagsForResource">AWS 1072 * API Reference</a></p> 1073 */ 1074 virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const; 1075 1076 /** 1077 * <p>Gets information about Amazon Web Services tags for the specified 1078 * ARN.</p><p><h3>See Also:</h3> <a 1079 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/ListTagsForResource">AWS 1080 * API Reference</a></p> 1081 * 1082 * returns a future to the operation so that it can be executed in parallel to other requests. 1083 */ 1084 virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const; 1085 1086 /** 1087 * <p>Gets information about Amazon Web Services tags for the specified 1088 * ARN.</p><p><h3>See Also:</h3> <a 1089 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/ListTagsForResource">AWS 1090 * API Reference</a></p> 1091 * 1092 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1093 */ 1094 virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1095 1096 /** 1097 * <p>Inserts metadata into the active stream of the specified channel. At most 5 1098 * requests per second per channel are allowed, each with a maximum 1 KB payload. 1099 * (If 5 TPS is not sufficient for your needs, we recommend batching your data into 1100 * a single PutMetadata call.) At most 155 requests per second per account are 1101 * allowed. Also see <a 1102 * href="https://docs.aws.amazon.com/ivs/latest/userguide/metadata.html">Embedding 1103 * Metadata within a Video Stream</a> in the <i>Amazon IVS User 1104 * Guide</i>.</p><p><h3>See Also:</h3> <a 1105 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/PutMetadata">AWS API 1106 * Reference</a></p> 1107 */ 1108 virtual Model::PutMetadataOutcome PutMetadata(const Model::PutMetadataRequest& request) const; 1109 1110 /** 1111 * <p>Inserts metadata into the active stream of the specified channel. At most 5 1112 * requests per second per channel are allowed, each with a maximum 1 KB payload. 1113 * (If 5 TPS is not sufficient for your needs, we recommend batching your data into 1114 * a single PutMetadata call.) At most 155 requests per second per account are 1115 * allowed. Also see <a 1116 * href="https://docs.aws.amazon.com/ivs/latest/userguide/metadata.html">Embedding 1117 * Metadata within a Video Stream</a> in the <i>Amazon IVS User 1118 * Guide</i>.</p><p><h3>See Also:</h3> <a 1119 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/PutMetadata">AWS API 1120 * Reference</a></p> 1121 * 1122 * returns a future to the operation so that it can be executed in parallel to other requests. 1123 */ 1124 virtual Model::PutMetadataOutcomeCallable PutMetadataCallable(const Model::PutMetadataRequest& request) const; 1125 1126 /** 1127 * <p>Inserts metadata into the active stream of the specified channel. At most 5 1128 * requests per second per channel are allowed, each with a maximum 1 KB payload. 1129 * (If 5 TPS is not sufficient for your needs, we recommend batching your data into 1130 * a single PutMetadata call.) At most 155 requests per second per account are 1131 * allowed. Also see <a 1132 * href="https://docs.aws.amazon.com/ivs/latest/userguide/metadata.html">Embedding 1133 * Metadata within a Video Stream</a> in the <i>Amazon IVS User 1134 * Guide</i>.</p><p><h3>See Also:</h3> <a 1135 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/PutMetadata">AWS API 1136 * Reference</a></p> 1137 * 1138 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1139 */ 1140 virtual void PutMetadataAsync(const Model::PutMetadataRequest& request, const PutMetadataResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1141 1142 /** 1143 * <p>Disconnects the incoming RTMPS stream for the specified channel. Can be used 1144 * in conjunction with <a>DeleteStreamKey</a> to prevent further streaming to a 1145 * channel.</p> <p>Many streaming client-software libraries automatically 1146 * reconnect a dropped RTMPS session, so to stop the stream permanently, you may 1147 * want to first revoke the <code>streamKey</code> attached to the channel.</p> 1148 * <p><h3>See Also:</h3> <a 1149 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/StopStream">AWS API 1150 * Reference</a></p> 1151 */ 1152 virtual Model::StopStreamOutcome StopStream(const Model::StopStreamRequest& request) const; 1153 1154 /** 1155 * <p>Disconnects the incoming RTMPS stream for the specified channel. Can be used 1156 * in conjunction with <a>DeleteStreamKey</a> to prevent further streaming to a 1157 * channel.</p> <p>Many streaming client-software libraries automatically 1158 * reconnect a dropped RTMPS session, so to stop the stream permanently, you may 1159 * want to first revoke the <code>streamKey</code> attached to the channel.</p> 1160 * <p><h3>See Also:</h3> <a 1161 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/StopStream">AWS API 1162 * Reference</a></p> 1163 * 1164 * returns a future to the operation so that it can be executed in parallel to other requests. 1165 */ 1166 virtual Model::StopStreamOutcomeCallable StopStreamCallable(const Model::StopStreamRequest& request) const; 1167 1168 /** 1169 * <p>Disconnects the incoming RTMPS stream for the specified channel. Can be used 1170 * in conjunction with <a>DeleteStreamKey</a> to prevent further streaming to a 1171 * channel.</p> <p>Many streaming client-software libraries automatically 1172 * reconnect a dropped RTMPS session, so to stop the stream permanently, you may 1173 * want to first revoke the <code>streamKey</code> attached to the channel.</p> 1174 * <p><h3>See Also:</h3> <a 1175 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/StopStream">AWS API 1176 * Reference</a></p> 1177 * 1178 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1179 */ 1180 virtual void StopStreamAsync(const Model::StopStreamRequest& request, const StopStreamResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1181 1182 /** 1183 * <p>Adds or updates tags for the Amazon Web Services resource with the specified 1184 * ARN.</p><p><h3>See Also:</h3> <a 1185 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/TagResource">AWS API 1186 * Reference</a></p> 1187 */ 1188 virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const; 1189 1190 /** 1191 * <p>Adds or updates tags for the Amazon Web Services resource with the specified 1192 * ARN.</p><p><h3>See Also:</h3> <a 1193 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/TagResource">AWS API 1194 * Reference</a></p> 1195 * 1196 * returns a future to the operation so that it can be executed in parallel to other requests. 1197 */ 1198 virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const; 1199 1200 /** 1201 * <p>Adds or updates tags for the Amazon Web Services resource with the specified 1202 * ARN.</p><p><h3>See Also:</h3> <a 1203 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/TagResource">AWS API 1204 * Reference</a></p> 1205 * 1206 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1207 */ 1208 virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1209 1210 /** 1211 * <p>Removes tags from the resource with the specified ARN.</p><p><h3>See 1212 * Also:</h3> <a 1213 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/UntagResource">AWS 1214 * API Reference</a></p> 1215 */ 1216 virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const; 1217 1218 /** 1219 * <p>Removes tags from the resource with the specified ARN.</p><p><h3>See 1220 * Also:</h3> <a 1221 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/UntagResource">AWS 1222 * API Reference</a></p> 1223 * 1224 * returns a future to the operation so that it can be executed in parallel to other requests. 1225 */ 1226 virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const; 1227 1228 /** 1229 * <p>Removes tags from the resource with the specified ARN.</p><p><h3>See 1230 * Also:</h3> <a 1231 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/UntagResource">AWS 1232 * API Reference</a></p> 1233 * 1234 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1235 */ 1236 virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1237 1238 /** 1239 * <p>Updates a channel's configuration. This does not affect an ongoing stream of 1240 * this channel. You must stop and restart the stream for the changes to take 1241 * effect.</p><p><h3>See Also:</h3> <a 1242 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/UpdateChannel">AWS 1243 * API Reference</a></p> 1244 */ 1245 virtual Model::UpdateChannelOutcome UpdateChannel(const Model::UpdateChannelRequest& request) const; 1246 1247 /** 1248 * <p>Updates a channel's configuration. This does not affect an ongoing stream of 1249 * this channel. You must stop and restart the stream for the changes to take 1250 * effect.</p><p><h3>See Also:</h3> <a 1251 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/UpdateChannel">AWS 1252 * API Reference</a></p> 1253 * 1254 * returns a future to the operation so that it can be executed in parallel to other requests. 1255 */ 1256 virtual Model::UpdateChannelOutcomeCallable UpdateChannelCallable(const Model::UpdateChannelRequest& request) const; 1257 1258 /** 1259 * <p>Updates a channel's configuration. This does not affect an ongoing stream of 1260 * this channel. You must stop and restart the stream for the changes to take 1261 * effect.</p><p><h3>See Also:</h3> <a 1262 * href="http://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14/UpdateChannel">AWS 1263 * API Reference</a></p> 1264 * 1265 * Queues the request into a thread executor and triggers associated callback when operation has finished. 1266 */ 1267 virtual void UpdateChannelAsync(const Model::UpdateChannelRequest& request, const UpdateChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const; 1268 1269 1270 void OverrideEndpoint(const Aws::String& endpoint); 1271 private: 1272 void init(const Aws::Client::ClientConfiguration& clientConfiguration); 1273 void BatchGetChannelAsyncHelper(const Model::BatchGetChannelRequest& request, const BatchGetChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 1274 void BatchGetStreamKeyAsyncHelper(const Model::BatchGetStreamKeyRequest& request, const BatchGetStreamKeyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 1275 void CreateChannelAsyncHelper(const Model::CreateChannelRequest& request, const CreateChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 1276 void CreateRecordingConfigurationAsyncHelper(const Model::CreateRecordingConfigurationRequest& request, const CreateRecordingConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 1277 void CreateStreamKeyAsyncHelper(const Model::CreateStreamKeyRequest& request, const CreateStreamKeyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 1278 void DeleteChannelAsyncHelper(const Model::DeleteChannelRequest& request, const DeleteChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 1279 void DeletePlaybackKeyPairAsyncHelper(const Model::DeletePlaybackKeyPairRequest& request, const DeletePlaybackKeyPairResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 1280 void DeleteRecordingConfigurationAsyncHelper(const Model::DeleteRecordingConfigurationRequest& request, const DeleteRecordingConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 1281 void DeleteStreamKeyAsyncHelper(const Model::DeleteStreamKeyRequest& request, const DeleteStreamKeyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 1282 void GetChannelAsyncHelper(const Model::GetChannelRequest& request, const GetChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 1283 void GetPlaybackKeyPairAsyncHelper(const Model::GetPlaybackKeyPairRequest& request, const GetPlaybackKeyPairResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 1284 void GetRecordingConfigurationAsyncHelper(const Model::GetRecordingConfigurationRequest& request, const GetRecordingConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 1285 void GetStreamAsyncHelper(const Model::GetStreamRequest& request, const GetStreamResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 1286 void GetStreamKeyAsyncHelper(const Model::GetStreamKeyRequest& request, const GetStreamKeyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 1287 void ImportPlaybackKeyPairAsyncHelper(const Model::ImportPlaybackKeyPairRequest& request, const ImportPlaybackKeyPairResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 1288 void ListChannelsAsyncHelper(const Model::ListChannelsRequest& request, const ListChannelsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 1289 void ListPlaybackKeyPairsAsyncHelper(const Model::ListPlaybackKeyPairsRequest& request, const ListPlaybackKeyPairsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 1290 void ListRecordingConfigurationsAsyncHelper(const Model::ListRecordingConfigurationsRequest& request, const ListRecordingConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 1291 void ListStreamKeysAsyncHelper(const Model::ListStreamKeysRequest& request, const ListStreamKeysResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 1292 void ListStreamsAsyncHelper(const Model::ListStreamsRequest& request, const ListStreamsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 1293 void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 1294 void PutMetadataAsyncHelper(const Model::PutMetadataRequest& request, const PutMetadataResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 1295 void StopStreamAsyncHelper(const Model::StopStreamRequest& request, const StopStreamResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 1296 void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 1297 void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 1298 void UpdateChannelAsyncHelper(const Model::UpdateChannelRequest& request, const UpdateChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const; 1299 1300 Aws::String m_uri; 1301 Aws::String m_configScheme; 1302 std::shared_ptr<Aws::Utils::Threading::Executor> m_executor; 1303 }; 1304 1305 } // namespace IVS 1306 } // namespace Aws 1307