/**
* 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 mediapackagev2
{
/**
* This guide is intended for creating AWS Elemental MediaPackage
* resources in MediaPackage Version 2 (v2) starting from May 2023. To get started
* with MediaPackage v2, create your MediaPackage resources. There isn't an
* automated process to migrate your resources from MediaPackage v1 to MediaPackage
* v2.
The names of the entities that you use to access this API, like URLs
* and ARNs, all have the versioning information added, like "v2", to distinguish
* from the prior version. If you used MediaPackage prior to this release, you
* can't use the MediaPackage v2 CLI or the MediaPackage v2 API to access any
* MediaPackage v1 resources.
If you created resources in MediaPackage v1,
* use video on demand (VOD) workflows, and aren't looking to migrate to
* MediaPackage v2 yet, see the MediaPackage
* v1 Live API Reference.
This is the AWS Elemental MediaPackage
* v2 Live REST API Reference. It describes all the MediaPackage API operations for
* live content in detail, and provides sample requests, responses, and errors for
* the supported web services protocols.
We assume that you have the IAM
* permissions that you need to use MediaPackage via the REST API. We also assume
* that you are familiar with the features and operations of MediaPackage, as
* described in the AWS Elemental MediaPackage User Guide.
*/
class AWS_MEDIAPACKAGEV2_API Mediapackagev2Client : 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 Mediapackagev2ClientConfiguration ClientConfigurationType;
typedef Mediapackagev2EndpointProvider 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.
*/
Mediapackagev2Client(const Aws::mediapackagev2::Mediapackagev2ClientConfiguration& clientConfiguration = Aws::mediapackagev2::Mediapackagev2ClientConfiguration(),
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.
*/
Mediapackagev2Client(const Aws::Auth::AWSCredentials& credentials,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::mediapackagev2::Mediapackagev2ClientConfiguration& clientConfiguration = Aws::mediapackagev2::Mediapackagev2ClientConfiguration());
/**
* 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
*/
Mediapackagev2Client(const std::shared_ptr& credentialsProvider,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::mediapackagev2::Mediapackagev2ClientConfiguration& clientConfiguration = Aws::mediapackagev2::Mediapackagev2ClientConfiguration());
/* 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.
*/
Mediapackagev2Client(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.
*/
Mediapackagev2Client(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
*/
Mediapackagev2Client(const std::shared_ptr& credentialsProvider,
const Aws::Client::ClientConfiguration& clientConfiguration);
/* End of legacy constructors due deprecation */
virtual ~Mediapackagev2Client();
/**
* Create a channel to start receiving content streams. The channel represents
* the input to MediaPackage for incoming live content from an encoder such as AWS
* Elemental MediaLive. The channel receives content, and after packaging it,
* outputs it through an origin endpoint to downstream devices (such as video
* players or CDNs) that request the content. You can create only one channel with
* each request. We recommend that you spread out channels between channel groups,
* such as putting redundant channels in the same AWS Region in different channel
* groups.
See Also:
AWS
* API Reference
*/
virtual Model::CreateChannelOutcome CreateChannel(const Model::CreateChannelRequest& request) const;
/**
* A Callable wrapper for CreateChannel that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateChannelOutcomeCallable CreateChannelCallable(const CreateChannelRequestT& request) const
{
return SubmitCallable(&Mediapackagev2Client::CreateChannel, request);
}
/**
* An Async wrapper for CreateChannel that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateChannelAsync(const CreateChannelRequestT& request, const CreateChannelResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&Mediapackagev2Client::CreateChannel, request, handler, context);
}
/**
* Create a channel group to group your channels and origin endpoints. A channel
* group is the top-level resource that consists of channels and origin endpoints
* that are associated with it and that provides predictable URLs for stream
* delivery. All channels and origin endpoints within the channel group are
* guaranteed to share the DNS. You can create only one channel group with each
* request.
See Also:
AWS
* API Reference
*/
virtual Model::CreateChannelGroupOutcome CreateChannelGroup(const Model::CreateChannelGroupRequest& request) const;
/**
* A Callable wrapper for CreateChannelGroup that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateChannelGroupOutcomeCallable CreateChannelGroupCallable(const CreateChannelGroupRequestT& request) const
{
return SubmitCallable(&Mediapackagev2Client::CreateChannelGroup, request);
}
/**
* An Async wrapper for CreateChannelGroup that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateChannelGroupAsync(const CreateChannelGroupRequestT& request, const CreateChannelGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&Mediapackagev2Client::CreateChannelGroup, request, handler, context);
}
/**
* The endpoint is attached to a channel, and represents the output of the live
* content. You can associate multiple endpoints to a single channel. Each endpoint
* gives players and downstream CDNs (such as Amazon CloudFront) access to the
* content for playback. Content can't be served from a channel until it has an
* endpoint. You can create only one endpoint with each request.
See
* Also:
AWS
* API Reference
*/
virtual Model::CreateOriginEndpointOutcome CreateOriginEndpoint(const Model::CreateOriginEndpointRequest& request) const;
/**
* A Callable wrapper for CreateOriginEndpoint that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateOriginEndpointOutcomeCallable CreateOriginEndpointCallable(const CreateOriginEndpointRequestT& request) const
{
return SubmitCallable(&Mediapackagev2Client::CreateOriginEndpoint, request);
}
/**
* An Async wrapper for CreateOriginEndpoint that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateOriginEndpointAsync(const CreateOriginEndpointRequestT& request, const CreateOriginEndpointResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&Mediapackagev2Client::CreateOriginEndpoint, request, handler, context);
}
/**
* Delete a channel to stop AWS Elemental MediaPackage from receiving further
* content. You must delete the channel's origin endpoints before you can delete
* the channel.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteChannelOutcome DeleteChannel(const Model::DeleteChannelRequest& request) const;
/**
* A Callable wrapper for DeleteChannel that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteChannelOutcomeCallable DeleteChannelCallable(const DeleteChannelRequestT& request) const
{
return SubmitCallable(&Mediapackagev2Client::DeleteChannel, request);
}
/**
* An Async wrapper for DeleteChannel that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteChannelAsync(const DeleteChannelRequestT& request, const DeleteChannelResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&Mediapackagev2Client::DeleteChannel, request, handler, context);
}
/**
* Delete a channel group. You must delete the channel group's channels and
* origin endpoints before you can delete the channel group. If you delete a
* channel group, you'll lose access to the egress domain and will have to create a
* new channel group to replace it.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteChannelGroupOutcome DeleteChannelGroup(const Model::DeleteChannelGroupRequest& request) const;
/**
* A Callable wrapper for DeleteChannelGroup that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteChannelGroupOutcomeCallable DeleteChannelGroupCallable(const DeleteChannelGroupRequestT& request) const
{
return SubmitCallable(&Mediapackagev2Client::DeleteChannelGroup, request);
}
/**
* An Async wrapper for DeleteChannelGroup that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteChannelGroupAsync(const DeleteChannelGroupRequestT& request, const DeleteChannelGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&Mediapackagev2Client::DeleteChannelGroup, request, handler, context);
}
/**
* Delete a channel policy.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteChannelPolicyOutcome DeleteChannelPolicy(const Model::DeleteChannelPolicyRequest& request) const;
/**
* A Callable wrapper for DeleteChannelPolicy that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteChannelPolicyOutcomeCallable DeleteChannelPolicyCallable(const DeleteChannelPolicyRequestT& request) const
{
return SubmitCallable(&Mediapackagev2Client::DeleteChannelPolicy, request);
}
/**
* An Async wrapper for DeleteChannelPolicy that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteChannelPolicyAsync(const DeleteChannelPolicyRequestT& request, const DeleteChannelPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&Mediapackagev2Client::DeleteChannelPolicy, request, handler, context);
}
/**
* Origin endpoints can serve content until they're deleted. Delete the endpoint
* if it should no longer respond to playback requests. You must delete all
* endpoints from a channel before you can delete the channel.
See
* Also:
AWS
* API Reference
*/
virtual Model::DeleteOriginEndpointOutcome DeleteOriginEndpoint(const Model::DeleteOriginEndpointRequest& request) const;
/**
* A Callable wrapper for DeleteOriginEndpoint that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteOriginEndpointOutcomeCallable DeleteOriginEndpointCallable(const DeleteOriginEndpointRequestT& request) const
{
return SubmitCallable(&Mediapackagev2Client::DeleteOriginEndpoint, request);
}
/**
* An Async wrapper for DeleteOriginEndpoint that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteOriginEndpointAsync(const DeleteOriginEndpointRequestT& request, const DeleteOriginEndpointResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&Mediapackagev2Client::DeleteOriginEndpoint, request, handler, context);
}
/**
* Delete an origin endpoint policy.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteOriginEndpointPolicyOutcome DeleteOriginEndpointPolicy(const Model::DeleteOriginEndpointPolicyRequest& request) const;
/**
* A Callable wrapper for DeleteOriginEndpointPolicy that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteOriginEndpointPolicyOutcomeCallable DeleteOriginEndpointPolicyCallable(const DeleteOriginEndpointPolicyRequestT& request) const
{
return SubmitCallable(&Mediapackagev2Client::DeleteOriginEndpointPolicy, request);
}
/**
* An Async wrapper for DeleteOriginEndpointPolicy that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteOriginEndpointPolicyAsync(const DeleteOriginEndpointPolicyRequestT& request, const DeleteOriginEndpointPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&Mediapackagev2Client::DeleteOriginEndpointPolicy, request, handler, context);
}
/**
* Retrieves the specified channel that's configured in AWS Elemental
* MediaPackage, including the origin endpoints that are associated with
* it.
See Also:
AWS
* API Reference
*/
virtual Model::GetChannelOutcome GetChannel(const Model::GetChannelRequest& request) const;
/**
* A Callable wrapper for GetChannel that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetChannelOutcomeCallable GetChannelCallable(const GetChannelRequestT& request) const
{
return SubmitCallable(&Mediapackagev2Client::GetChannel, request);
}
/**
* An Async wrapper for GetChannel that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetChannelAsync(const GetChannelRequestT& request, const GetChannelResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&Mediapackagev2Client::GetChannel, request, handler, context);
}
/**
* Retrieves the specified channel group that's configured in AWS Elemental
* MediaPackage, including the channels and origin endpoints that are associated
* with it.
See Also:
AWS
* API Reference
*/
virtual Model::GetChannelGroupOutcome GetChannelGroup(const Model::GetChannelGroupRequest& request) const;
/**
* A Callable wrapper for GetChannelGroup that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetChannelGroupOutcomeCallable GetChannelGroupCallable(const GetChannelGroupRequestT& request) const
{
return SubmitCallable(&Mediapackagev2Client::GetChannelGroup, request);
}
/**
* An Async wrapper for GetChannelGroup that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetChannelGroupAsync(const GetChannelGroupRequestT& request, const GetChannelGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&Mediapackagev2Client::GetChannelGroup, request, handler, context);
}
/**
* Retrieves the specified channel policy that's configured in AWS Elemental
* MediaPackage. With policies, you can specify who has access to AWS resources and
* what actions they can perform on those resources.
See Also:
AWS
* API Reference
*/
virtual Model::GetChannelPolicyOutcome GetChannelPolicy(const Model::GetChannelPolicyRequest& request) const;
/**
* A Callable wrapper for GetChannelPolicy that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetChannelPolicyOutcomeCallable GetChannelPolicyCallable(const GetChannelPolicyRequestT& request) const
{
return SubmitCallable(&Mediapackagev2Client::GetChannelPolicy, request);
}
/**
* An Async wrapper for GetChannelPolicy that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetChannelPolicyAsync(const GetChannelPolicyRequestT& request, const GetChannelPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&Mediapackagev2Client::GetChannelPolicy, request, handler, context);
}
/**
* Retrieves the specified origin endpoint that's configured in AWS Elemental
* MediaPackage to obtain its playback URL and to view the packaging settings that
* it's currently using.
See Also:
AWS
* API Reference
*/
virtual Model::GetOriginEndpointOutcome GetOriginEndpoint(const Model::GetOriginEndpointRequest& request) const;
/**
* A Callable wrapper for GetOriginEndpoint that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetOriginEndpointOutcomeCallable GetOriginEndpointCallable(const GetOriginEndpointRequestT& request) const
{
return SubmitCallable(&Mediapackagev2Client::GetOriginEndpoint, request);
}
/**
* An Async wrapper for GetOriginEndpoint that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetOriginEndpointAsync(const GetOriginEndpointRequestT& request, const GetOriginEndpointResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&Mediapackagev2Client::GetOriginEndpoint, request, handler, context);
}
/**
* Retrieves the specified origin endpoint policy that's configured in AWS
* Elemental MediaPackage.
See Also:
AWS
* API Reference
*/
virtual Model::GetOriginEndpointPolicyOutcome GetOriginEndpointPolicy(const Model::GetOriginEndpointPolicyRequest& request) const;
/**
* A Callable wrapper for GetOriginEndpointPolicy that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetOriginEndpointPolicyOutcomeCallable GetOriginEndpointPolicyCallable(const GetOriginEndpointPolicyRequestT& request) const
{
return SubmitCallable(&Mediapackagev2Client::GetOriginEndpointPolicy, request);
}
/**
* An Async wrapper for GetOriginEndpointPolicy that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetOriginEndpointPolicyAsync(const GetOriginEndpointPolicyRequestT& request, const GetOriginEndpointPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&Mediapackagev2Client::GetOriginEndpointPolicy, request, handler, context);
}
/**
* Retrieves all channel groups that are configured in AWS Elemental
* MediaPackage, including the channels and origin endpoints that are associated
* with it.
See Also:
AWS
* API Reference
*/
virtual Model::ListChannelGroupsOutcome ListChannelGroups(const Model::ListChannelGroupsRequest& request) const;
/**
* A Callable wrapper for ListChannelGroups that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListChannelGroupsOutcomeCallable ListChannelGroupsCallable(const ListChannelGroupsRequestT& request) const
{
return SubmitCallable(&Mediapackagev2Client::ListChannelGroups, request);
}
/**
* An Async wrapper for ListChannelGroups that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListChannelGroupsAsync(const ListChannelGroupsRequestT& request, const ListChannelGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&Mediapackagev2Client::ListChannelGroups, request, handler, context);
}
/**
* Retrieves all channels in a specific channel group that are configured in AWS
* Elemental MediaPackage, including the origin endpoints that are associated with
* it.
See Also:
AWS
* API Reference
*/
virtual Model::ListChannelsOutcome ListChannels(const Model::ListChannelsRequest& request) const;
/**
* A Callable wrapper for ListChannels that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListChannelsOutcomeCallable ListChannelsCallable(const ListChannelsRequestT& request) const
{
return SubmitCallable(&Mediapackagev2Client::ListChannels, request);
}
/**
* An Async wrapper for ListChannels that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListChannelsAsync(const ListChannelsRequestT& request, const ListChannelsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&Mediapackagev2Client::ListChannels, request, handler, context);
}
/**
* Retrieves all origin endpoints in a specific channel that are configured in
* AWS Elemental MediaPackage.
See Also:
AWS
* API Reference
*/
virtual Model::ListOriginEndpointsOutcome ListOriginEndpoints(const Model::ListOriginEndpointsRequest& request) const;
/**
* A Callable wrapper for ListOriginEndpoints that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListOriginEndpointsOutcomeCallable ListOriginEndpointsCallable(const ListOriginEndpointsRequestT& request) const
{
return SubmitCallable(&Mediapackagev2Client::ListOriginEndpoints, request);
}
/**
* An Async wrapper for ListOriginEndpoints that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListOriginEndpointsAsync(const ListOriginEndpointsRequestT& request, const ListOriginEndpointsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&Mediapackagev2Client::ListOriginEndpoints, request, handler, context);
}
/**
* Lists the tags assigned to a 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(&Mediapackagev2Client::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(&Mediapackagev2Client::ListTagsForResource, request, handler, context);
}
/**
* Attaches an IAM policy to the specified channel. With policies, you can
* specify who has access to AWS resources and what actions they can perform on
* those resources. You can attach only one policy with each request.
See
* Also:
AWS
* API Reference
*/
virtual Model::PutChannelPolicyOutcome PutChannelPolicy(const Model::PutChannelPolicyRequest& request) const;
/**
* A Callable wrapper for PutChannelPolicy that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutChannelPolicyOutcomeCallable PutChannelPolicyCallable(const PutChannelPolicyRequestT& request) const
{
return SubmitCallable(&Mediapackagev2Client::PutChannelPolicy, request);
}
/**
* An Async wrapper for PutChannelPolicy that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutChannelPolicyAsync(const PutChannelPolicyRequestT& request, const PutChannelPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&Mediapackagev2Client::PutChannelPolicy, request, handler, context);
}
/**
* Attaches an IAM policy to the specified origin endpoint. You can attach only
* one policy with each request.
See Also:
AWS
* API Reference
*/
virtual Model::PutOriginEndpointPolicyOutcome PutOriginEndpointPolicy(const Model::PutOriginEndpointPolicyRequest& request) const;
/**
* A Callable wrapper for PutOriginEndpointPolicy that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutOriginEndpointPolicyOutcomeCallable PutOriginEndpointPolicyCallable(const PutOriginEndpointPolicyRequestT& request) const
{
return SubmitCallable(&Mediapackagev2Client::PutOriginEndpointPolicy, request);
}
/**
* An Async wrapper for PutOriginEndpointPolicy that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutOriginEndpointPolicyAsync(const PutOriginEndpointPolicyRequestT& request, const PutOriginEndpointPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&Mediapackagev2Client::PutOriginEndpointPolicy, request, handler, context);
}
/**
* Assigns one of more tags (key-value pairs) to the specified MediaPackage
* resource.
Tags can help you organize and categorize your resources. You
* can also use them to scope user permissions, by granting a user permission to
* access or change only resources with certain tag values. You can use the
* TagResource operation with a resource that already has tags. If you specify a
* new tag key for the resource, this tag is appended to the list of tags
* associated with the resource. If you specify a tag key that is already
* associated with the resource, the new tag value that you specify replaces the
* previous value for that tag.
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(&Mediapackagev2Client::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(&Mediapackagev2Client::TagResource, request, handler, context);
}
/**
* Removes one or more tags from the specified resource.
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(&Mediapackagev2Client::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(&Mediapackagev2Client::UntagResource, request, handler, context);
}
/**
* Update the specified channel. You can edit if MediaPackage sends ingest or
* egress access logs to the CloudWatch log group, if content will be encrypted,
* the description on a channel, and your channel's policy settings. You can't edit
* the name of the channel or CloudFront distribution details.
Any edits you
* make that impact the video output may not be reflected for a few
* minutes.
See Also:
AWS
* API Reference
*/
virtual Model::UpdateChannelOutcome UpdateChannel(const Model::UpdateChannelRequest& request) const;
/**
* A Callable wrapper for UpdateChannel that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdateChannelOutcomeCallable UpdateChannelCallable(const UpdateChannelRequestT& request) const
{
return SubmitCallable(&Mediapackagev2Client::UpdateChannel, request);
}
/**
* An Async wrapper for UpdateChannel that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdateChannelAsync(const UpdateChannelRequestT& request, const UpdateChannelResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&Mediapackagev2Client::UpdateChannel, request, handler, context);
}
/**
* Update the specified channel group. You can edit the description on a channel
* group for easier identification later from the AWS Elemental MediaPackage
* console. You can't edit the name of the channel group.
Any edits you make
* that impact the video output may not be reflected for a few
* minutes.
See Also:
AWS
* API Reference
*/
virtual Model::UpdateChannelGroupOutcome UpdateChannelGroup(const Model::UpdateChannelGroupRequest& request) const;
/**
* A Callable wrapper for UpdateChannelGroup that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdateChannelGroupOutcomeCallable UpdateChannelGroupCallable(const UpdateChannelGroupRequestT& request) const
{
return SubmitCallable(&Mediapackagev2Client::UpdateChannelGroup, request);
}
/**
* An Async wrapper for UpdateChannelGroup that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdateChannelGroupAsync(const UpdateChannelGroupRequestT& request, const UpdateChannelGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&Mediapackagev2Client::UpdateChannelGroup, request, handler, context);
}
/**
* Update the specified origin endpoint. Edit the packaging preferences on an
* endpoint to optimize the viewing experience. You can't edit the name of the
* endpoint.
Any edits you make that impact the video output may not be
* reflected for a few minutes.
See Also:
AWS
* API Reference
*/
virtual Model::UpdateOriginEndpointOutcome UpdateOriginEndpoint(const Model::UpdateOriginEndpointRequest& request) const;
/**
* A Callable wrapper for UpdateOriginEndpoint that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdateOriginEndpointOutcomeCallable UpdateOriginEndpointCallable(const UpdateOriginEndpointRequestT& request) const
{
return SubmitCallable(&Mediapackagev2Client::UpdateOriginEndpoint, request);
}
/**
* An Async wrapper for UpdateOriginEndpoint that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdateOriginEndpointAsync(const UpdateOriginEndpointRequestT& request, const UpdateOriginEndpointResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&Mediapackagev2Client::UpdateOriginEndpoint, request, handler, context);
}
void OverrideEndpoint(const Aws::String& endpoint);
std::shared_ptr& accessEndpointProvider();
private:
friend class Aws::Client::ClientWithAsyncTemplateMethods;
void init(const Mediapackagev2ClientConfiguration& clientConfiguration);
Mediapackagev2ClientConfiguration m_clientConfiguration;
std::shared_ptr m_executor;
std::shared_ptr m_endpointProvider;
};
} // namespace mediapackagev2
} // namespace Aws