/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace ChimeSDKMeetings { /** *

The Amazon Chime SDK meetings APIs in this section allow software developers * to create Amazon Chime SDK meetings, set the AWS Regions for meetings, create * and manage users, and send and receive meeting notifications. For more * information about the meeting APIs, see Amazon * Chime SDK meetings.

*/ class AWS_CHIMESDKMEETINGS_API ChimeSDKMeetingsClient : public Aws::Client::AWSJsonClient, public Aws::Client::ClientWithAsyncTemplateMethods { public: typedef Aws::Client::AWSJsonClient BASECLASS; static const char* SERVICE_NAME; static const char* ALLOCATION_TAG; typedef ChimeSDKMeetingsClientConfiguration ClientConfigurationType; typedef ChimeSDKMeetingsEndpointProvider EndpointProviderType; /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ ChimeSDKMeetingsClient(const Aws::ChimeSDKMeetings::ChimeSDKMeetingsClientConfiguration& clientConfiguration = Aws::ChimeSDKMeetings::ChimeSDKMeetingsClientConfiguration(), std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG)); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ ChimeSDKMeetingsClient(const Aws::Auth::AWSCredentials& credentials, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::ChimeSDKMeetings::ChimeSDKMeetingsClientConfiguration& clientConfiguration = Aws::ChimeSDKMeetings::ChimeSDKMeetingsClientConfiguration()); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ ChimeSDKMeetingsClient(const std::shared_ptr& credentialsProvider, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::ChimeSDKMeetings::ChimeSDKMeetingsClientConfiguration& clientConfiguration = Aws::ChimeSDKMeetings::ChimeSDKMeetingsClientConfiguration()); /* Legacy constructors due deprecation */ /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ ChimeSDKMeetingsClient(const Aws::Client::ClientConfiguration& clientConfiguration); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ ChimeSDKMeetingsClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ ChimeSDKMeetingsClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration); /* End of legacy constructors due deprecation */ virtual ~ChimeSDKMeetingsClient(); /** *

Creates up to 100 attendees for an active Amazon Chime SDK meeting. For more * information about the Amazon Chime SDK, see Using the * Amazon Chime SDK in the Amazon Chime Developer Guide.

See * Also:

AWS * API Reference

*/ virtual Model::BatchCreateAttendeeOutcome BatchCreateAttendee(const Model::BatchCreateAttendeeRequest& request) const; /** * A Callable wrapper for BatchCreateAttendee that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::BatchCreateAttendeeOutcomeCallable BatchCreateAttendeeCallable(const BatchCreateAttendeeRequestT& request) const { return SubmitCallable(&ChimeSDKMeetingsClient::BatchCreateAttendee, request); } /** * An Async wrapper for BatchCreateAttendee that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void BatchCreateAttendeeAsync(const BatchCreateAttendeeRequestT& request, const BatchCreateAttendeeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ChimeSDKMeetingsClient::BatchCreateAttendee, request, handler, context); } /** *

Updates AttendeeCapabilities except the capabilities listed in * an ExcludedAttendeeIds table.

You use the * capabilities with a set of values that control what the capabilities can do, * such as SendReceive data. For more information about those values, * see .

When using capabilities, be aware of these corner * cases:

  • You can't set content capabilities to * SendReceive or Receive unless you also set * video capabilities to SendReceive or * Receive. If you don't set the video capability to * receive, the response will contain an HTTP 400 Bad Request status code. However, * you can set your video capability to receive and you set your * content capability to not receive.

  • When you * change an audio capability from None or * Receive to Send or SendReceive , and if * the attendee left their microphone unmuted, audio will flow from the attendee to * the other meeting participants.

  • When you change a * video or content capability from None or * Receive to Send or SendReceive , and if * the attendee turned on their video or content streams, remote attendees can * receive those streams, but only after media renegotiation between the client and * the Amazon Chime back-end server.

See Also:

AWS * API Reference

*/ virtual Model::BatchUpdateAttendeeCapabilitiesExceptOutcome BatchUpdateAttendeeCapabilitiesExcept(const Model::BatchUpdateAttendeeCapabilitiesExceptRequest& request) const; /** * A Callable wrapper for BatchUpdateAttendeeCapabilitiesExcept that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::BatchUpdateAttendeeCapabilitiesExceptOutcomeCallable BatchUpdateAttendeeCapabilitiesExceptCallable(const BatchUpdateAttendeeCapabilitiesExceptRequestT& request) const { return SubmitCallable(&ChimeSDKMeetingsClient::BatchUpdateAttendeeCapabilitiesExcept, request); } /** * An Async wrapper for BatchUpdateAttendeeCapabilitiesExcept that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void BatchUpdateAttendeeCapabilitiesExceptAsync(const BatchUpdateAttendeeCapabilitiesExceptRequestT& request, const BatchUpdateAttendeeCapabilitiesExceptResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ChimeSDKMeetingsClient::BatchUpdateAttendeeCapabilitiesExcept, request, handler, context); } /** *

Creates a new attendee for an active Amazon Chime SDK meeting. For more * information about the Amazon Chime SDK, see Using the * Amazon Chime SDK in the Amazon Chime Developer Guide.

See * Also:

AWS * API Reference

*/ virtual Model::CreateAttendeeOutcome CreateAttendee(const Model::CreateAttendeeRequest& request) const; /** * A Callable wrapper for CreateAttendee that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateAttendeeOutcomeCallable CreateAttendeeCallable(const CreateAttendeeRequestT& request) const { return SubmitCallable(&ChimeSDKMeetingsClient::CreateAttendee, request); } /** * An Async wrapper for CreateAttendee that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateAttendeeAsync(const CreateAttendeeRequestT& request, const CreateAttendeeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ChimeSDKMeetingsClient::CreateAttendee, request, handler, context); } /** *

Creates a new Amazon Chime SDK meeting in the specified media Region with no * initial attendees. For more information about specifying media Regions, see Amazon * Chime SDK Media Regions in the Amazon Chime Developer Guide. For more * information about the Amazon Chime SDK, see Using the * Amazon Chime SDK in the Amazon Chime Developer Guide.

See * Also:

AWS * API Reference

*/ virtual Model::CreateMeetingOutcome CreateMeeting(const Model::CreateMeetingRequest& request) const; /** * A Callable wrapper for CreateMeeting that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateMeetingOutcomeCallable CreateMeetingCallable(const CreateMeetingRequestT& request) const { return SubmitCallable(&ChimeSDKMeetingsClient::CreateMeeting, request); } /** * An Async wrapper for CreateMeeting that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateMeetingAsync(const CreateMeetingRequestT& request, const CreateMeetingResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ChimeSDKMeetingsClient::CreateMeeting, request, handler, context); } /** *

Creates a new Amazon Chime SDK meeting in the specified media Region, with * attendees. For more information about specifying media Regions, see Amazon * Chime SDK Media Regions in the Amazon Chime Developer Guide. For more * information about the Amazon Chime SDK, see Using the * Amazon Chime SDK in the Amazon Chime Developer Guide.

See * Also:

AWS * API Reference

*/ virtual Model::CreateMeetingWithAttendeesOutcome CreateMeetingWithAttendees(const Model::CreateMeetingWithAttendeesRequest& request) const; /** * A Callable wrapper for CreateMeetingWithAttendees that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateMeetingWithAttendeesOutcomeCallable CreateMeetingWithAttendeesCallable(const CreateMeetingWithAttendeesRequestT& request) const { return SubmitCallable(&ChimeSDKMeetingsClient::CreateMeetingWithAttendees, request); } /** * An Async wrapper for CreateMeetingWithAttendees that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateMeetingWithAttendeesAsync(const CreateMeetingWithAttendeesRequestT& request, const CreateMeetingWithAttendeesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ChimeSDKMeetingsClient::CreateMeetingWithAttendees, request, handler, context); } /** *

Deletes an attendee from the specified Amazon Chime SDK meeting and deletes * their JoinToken. Attendees are automatically deleted when a Amazon * Chime SDK meeting is deleted. For more information about the Amazon Chime SDK, * see Using the * Amazon Chime SDK in the Amazon Chime Developer Guide.

See * Also:

AWS * API Reference

*/ virtual Model::DeleteAttendeeOutcome DeleteAttendee(const Model::DeleteAttendeeRequest& request) const; /** * A Callable wrapper for DeleteAttendee that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteAttendeeOutcomeCallable DeleteAttendeeCallable(const DeleteAttendeeRequestT& request) const { return SubmitCallable(&ChimeSDKMeetingsClient::DeleteAttendee, request); } /** * An Async wrapper for DeleteAttendee that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteAttendeeAsync(const DeleteAttendeeRequestT& request, const DeleteAttendeeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ChimeSDKMeetingsClient::DeleteAttendee, request, handler, context); } /** *

Deletes the specified Amazon Chime SDK meeting. The operation deletes all * attendees, disconnects all clients, and prevents new clients from joining the * meeting. For more information about the Amazon Chime SDK, see Using the * Amazon Chime SDK in the Amazon Chime Developer Guide.

See * Also:

AWS * API Reference

*/ virtual Model::DeleteMeetingOutcome DeleteMeeting(const Model::DeleteMeetingRequest& request) const; /** * A Callable wrapper for DeleteMeeting that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteMeetingOutcomeCallable DeleteMeetingCallable(const DeleteMeetingRequestT& request) const { return SubmitCallable(&ChimeSDKMeetingsClient::DeleteMeeting, request); } /** * An Async wrapper for DeleteMeeting that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteMeetingAsync(const DeleteMeetingRequestT& request, const DeleteMeetingResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ChimeSDKMeetingsClient::DeleteMeeting, request, handler, context); } /** *

Gets the Amazon Chime SDK attendee details for a specified meeting ID and * attendee ID. For more information about the Amazon Chime SDK, see Using the * Amazon Chime SDK in the Amazon Chime Developer Guide.

See * Also:

AWS * API Reference

*/ virtual Model::GetAttendeeOutcome GetAttendee(const Model::GetAttendeeRequest& request) const; /** * A Callable wrapper for GetAttendee that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetAttendeeOutcomeCallable GetAttendeeCallable(const GetAttendeeRequestT& request) const { return SubmitCallable(&ChimeSDKMeetingsClient::GetAttendee, request); } /** * An Async wrapper for GetAttendee that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetAttendeeAsync(const GetAttendeeRequestT& request, const GetAttendeeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ChimeSDKMeetingsClient::GetAttendee, request, handler, context); } /** *

Gets the Amazon Chime SDK meeting details for the specified meeting ID. For * more information about the Amazon Chime SDK, see Using the * Amazon Chime SDK in the Amazon Chime Developer Guide.

See * Also:

AWS * API Reference

*/ virtual Model::GetMeetingOutcome GetMeeting(const Model::GetMeetingRequest& request) const; /** * A Callable wrapper for GetMeeting that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetMeetingOutcomeCallable GetMeetingCallable(const GetMeetingRequestT& request) const { return SubmitCallable(&ChimeSDKMeetingsClient::GetMeeting, request); } /** * An Async wrapper for GetMeeting that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetMeetingAsync(const GetMeetingRequestT& request, const GetMeetingResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ChimeSDKMeetingsClient::GetMeeting, request, handler, context); } /** *

Lists the attendees for the specified Amazon Chime SDK meeting. For more * information about the Amazon Chime SDK, see Using the * Amazon Chime SDK in the Amazon Chime Developer Guide.

See * Also:

AWS * API Reference

*/ virtual Model::ListAttendeesOutcome ListAttendees(const Model::ListAttendeesRequest& request) const; /** * A Callable wrapper for ListAttendees that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListAttendeesOutcomeCallable ListAttendeesCallable(const ListAttendeesRequestT& request) const { return SubmitCallable(&ChimeSDKMeetingsClient::ListAttendees, request); } /** * An Async wrapper for ListAttendees that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListAttendeesAsync(const ListAttendeesRequestT& request, const ListAttendeesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ChimeSDKMeetingsClient::ListAttendees, request, handler, context); } /** *

Returns a list of the tags available for the specified * resource.

See Also:

AWS * API Reference

*/ virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const; /** * A Callable wrapper for ListTagsForResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const ListTagsForResourceRequestT& request) const { return SubmitCallable(&ChimeSDKMeetingsClient::ListTagsForResource, request); } /** * An Async wrapper for ListTagsForResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListTagsForResourceAsync(const ListTagsForResourceRequestT& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ChimeSDKMeetingsClient::ListTagsForResource, request, handler, context); } /** *

Starts transcription for the specified meetingId. For more * information, refer to * Using Amazon Chime SDK live transcription in the Amazon Chime SDK * Developer Guide.

If you specify an invalid configuration, a * TranscriptFailed event will be sent with the contents of the * BadRequestException generated by Amazon Transcribe. For more * information on each parameter and which combinations are valid, refer to the StartStreamTranscription * API in the Amazon Transcribe Developer Guide.

Amazon * Chime SDK live transcription is powered by Amazon Transcribe. Use of Amazon * Transcribe is subject to the AWS * Service Terms, including the terms specific to the AWS Machine Learning and * Artificial Intelligence Services.

See Also:

AWS * API Reference

*/ virtual Model::StartMeetingTranscriptionOutcome StartMeetingTranscription(const Model::StartMeetingTranscriptionRequest& request) const; /** * A Callable wrapper for StartMeetingTranscription that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::StartMeetingTranscriptionOutcomeCallable StartMeetingTranscriptionCallable(const StartMeetingTranscriptionRequestT& request) const { return SubmitCallable(&ChimeSDKMeetingsClient::StartMeetingTranscription, request); } /** * An Async wrapper for StartMeetingTranscription that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void StartMeetingTranscriptionAsync(const StartMeetingTranscriptionRequestT& request, const StartMeetingTranscriptionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ChimeSDKMeetingsClient::StartMeetingTranscription, request, handler, context); } /** *

Stops transcription for the specified meetingId. For more * information, refer to * Using Amazon Chime SDK live transcription in the Amazon Chime SDK * Developer Guide.

Amazon Chime SDK live transcription is * powered by Amazon Transcribe. Use of Amazon Transcribe is subject to the AWS Service Terms, including * the terms specific to the AWS Machine Learning and Artificial Intelligence * Services.

See Also:

AWS * API Reference

*/ virtual Model::StopMeetingTranscriptionOutcome StopMeetingTranscription(const Model::StopMeetingTranscriptionRequest& request) const; /** * A Callable wrapper for StopMeetingTranscription that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::StopMeetingTranscriptionOutcomeCallable StopMeetingTranscriptionCallable(const StopMeetingTranscriptionRequestT& request) const { return SubmitCallable(&ChimeSDKMeetingsClient::StopMeetingTranscription, request); } /** * An Async wrapper for StopMeetingTranscription that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void StopMeetingTranscriptionAsync(const StopMeetingTranscriptionRequestT& request, const StopMeetingTranscriptionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ChimeSDKMeetingsClient::StopMeetingTranscription, request, handler, context); } /** *

The resource that supports tags.

See Also:

AWS * API Reference

*/ virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const; /** * A Callable wrapper for TagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::TagResourceOutcomeCallable TagResourceCallable(const TagResourceRequestT& request) const { return SubmitCallable(&ChimeSDKMeetingsClient::TagResource, request); } /** * An Async wrapper for TagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void TagResourceAsync(const TagResourceRequestT& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ChimeSDKMeetingsClient::TagResource, request, handler, context); } /** *

Removes the specified tags from the specified resources. When you specify a * tag key, the action removes both that key and its associated value. The * operation succeeds even if you attempt to remove tags from a resource that were * already removed. Note the following:

  • To remove tags from a * resource, you need the necessary permissions for the service that the resource * belongs to as well as permissions for removing tags. For more information, see * the documentation for the service whose resource you want to untag.

  • *
  • You can only tag resources that are located in the specified AWS Region * for the calling AWS account.

Minimum permissions

*

In addition to the tag:UntagResources permission required by * this operation, you must also have the remove tags permission defined by the * service that created the resource. For example, to remove the tags from an * Amazon EC2 instance using the UntagResources operation, you must * have both of the following permissions:

tag:UntagResource *

ChimeSDKMeetings:DeleteTags

See Also:

AWS * API Reference

*/ virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const; /** * A Callable wrapper for UntagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UntagResourceOutcomeCallable UntagResourceCallable(const UntagResourceRequestT& request) const { return SubmitCallable(&ChimeSDKMeetingsClient::UntagResource, request); } /** * An Async wrapper for UntagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UntagResourceAsync(const UntagResourceRequestT& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ChimeSDKMeetingsClient::UntagResource, request, handler, context); } /** *

The capabilities that you want to update.

You use the * capabilities with a set of values that control what the capabilities can do, * such as SendReceive data. For more information about those values, * see .

When using capabilities, be aware of these corner * cases:

  • You can't set content capabilities to * SendReceive or Receive unless you also set * video capabilities to SendReceive or * Receive. If you don't set the video capability to * receive, the response will contain an HTTP 400 Bad Request status code. However, * you can set your video capability to receive and you set your * content capability to not receive.

  • When you * change an audio capability from None or * Receive to Send or SendReceive , and if * the attendee left their microphone unmuted, audio will flow from the attendee to * the other meeting participants.

  • When you change a * video or content capability from None or * Receive to Send or SendReceive , and if * the attendee turned on their video or content streams, remote attendees can * receive those streams, but only after media renegotiation between the client and * the Amazon Chime back-end server.

See Also:

AWS * API Reference

*/ virtual Model::UpdateAttendeeCapabilitiesOutcome UpdateAttendeeCapabilities(const Model::UpdateAttendeeCapabilitiesRequest& request) const; /** * A Callable wrapper for UpdateAttendeeCapabilities that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateAttendeeCapabilitiesOutcomeCallable UpdateAttendeeCapabilitiesCallable(const UpdateAttendeeCapabilitiesRequestT& request) const { return SubmitCallable(&ChimeSDKMeetingsClient::UpdateAttendeeCapabilities, request); } /** * An Async wrapper for UpdateAttendeeCapabilities that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateAttendeeCapabilitiesAsync(const UpdateAttendeeCapabilitiesRequestT& request, const UpdateAttendeeCapabilitiesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ChimeSDKMeetingsClient::UpdateAttendeeCapabilities, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const ChimeSDKMeetingsClientConfiguration& clientConfiguration); ChimeSDKMeetingsClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace ChimeSDKMeetings } // namespace Aws