/**
* 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 ElasticTranscoder
{
/**
* AWS Elastic Transcoder Service The AWS Elastic
* Transcoder Service.
*/
class AWS_ELASTICTRANSCODER_API ElasticTranscoderClient : 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 ElasticTranscoderClientConfiguration ClientConfigurationType;
typedef ElasticTranscoderEndpointProvider 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.
*/
ElasticTranscoderClient(const Aws::ElasticTranscoder::ElasticTranscoderClientConfiguration& clientConfiguration = Aws::ElasticTranscoder::ElasticTranscoderClientConfiguration(),
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.
*/
ElasticTranscoderClient(const Aws::Auth::AWSCredentials& credentials,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::ElasticTranscoder::ElasticTranscoderClientConfiguration& clientConfiguration = Aws::ElasticTranscoder::ElasticTranscoderClientConfiguration());
/**
* 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
*/
ElasticTranscoderClient(const std::shared_ptr& credentialsProvider,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::ElasticTranscoder::ElasticTranscoderClientConfiguration& clientConfiguration = Aws::ElasticTranscoder::ElasticTranscoderClientConfiguration());
/* 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.
*/
ElasticTranscoderClient(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.
*/
ElasticTranscoderClient(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
*/
ElasticTranscoderClient(const std::shared_ptr& credentialsProvider,
const Aws::Client::ClientConfiguration& clientConfiguration);
/* End of legacy constructors due deprecation */
virtual ~ElasticTranscoderClient();
/**
* The CancelJob operation cancels an unfinished job.
You can only
* cancel a job that has a status of Submitted
. To prevent a pipeline
* from starting to process a job while you're getting the job identifier, use
* UpdatePipelineStatus to temporarily pause the pipeline.
* See Also:
AWS
* API Reference
*/
virtual Model::CancelJobOutcome CancelJob(const Model::CancelJobRequest& request) const;
/**
* A Callable wrapper for CancelJob that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CancelJobOutcomeCallable CancelJobCallable(const CancelJobRequestT& request) const
{
return SubmitCallable(&ElasticTranscoderClient::CancelJob, request);
}
/**
* An Async wrapper for CancelJob that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CancelJobAsync(const CancelJobRequestT& request, const CancelJobResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticTranscoderClient::CancelJob, request, handler, context);
}
/**
* When you create a job, Elastic Transcoder returns JSON data that includes the
* values that you specified plus information about the job that is created.
* If you have specified more than one output for your jobs (for example, one
* output for the Kindle Fire and another output for the Apple iPhone 4s), you
* currently must use the Elastic Transcoder API to list the jobs (as opposed to
* the AWS Console).
See Also:
AWS
* API Reference
*/
virtual Model::CreateJobOutcome CreateJob(const Model::CreateJobRequest& request) const;
/**
* A Callable wrapper for CreateJob that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateJobOutcomeCallable CreateJobCallable(const CreateJobRequestT& request) const
{
return SubmitCallable(&ElasticTranscoderClient::CreateJob, request);
}
/**
* An Async wrapper for CreateJob that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateJobAsync(const CreateJobRequestT& request, const CreateJobResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticTranscoderClient::CreateJob, request, handler, context);
}
/**
* The CreatePipeline operation creates a pipeline with settings that you
* specify.
See Also:
AWS
* API Reference
*/
virtual Model::CreatePipelineOutcome CreatePipeline(const Model::CreatePipelineRequest& request) const;
/**
* A Callable wrapper for CreatePipeline that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreatePipelineOutcomeCallable CreatePipelineCallable(const CreatePipelineRequestT& request) const
{
return SubmitCallable(&ElasticTranscoderClient::CreatePipeline, request);
}
/**
* An Async wrapper for CreatePipeline that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreatePipelineAsync(const CreatePipelineRequestT& request, const CreatePipelineResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticTranscoderClient::CreatePipeline, request, handler, context);
}
/**
* The CreatePreset operation creates a preset with settings that you
* specify.
Elastic Transcoder checks the CreatePreset settings
* to ensure that they meet Elastic Transcoder requirements and to determine
* whether they comply with H.264 standards. If your settings are not valid for
* Elastic Transcoder, Elastic Transcoder returns an HTTP 400 response
* (ValidationException
) and does not create the preset. If the
* settings are valid for Elastic Transcoder but aren't strictly compliant with the
* H.264 standard, Elastic Transcoder creates the preset and returns a warning
* message in the response. This helps you determine whether your settings comply
* with the H.264 standard while giving you greater flexibility with respect to the
* video that Elastic Transcoder produces.
Elastic Transcoder
* uses the H.264 video-compression format. For more information, see the
* International Telecommunication Union publication Recommendation ITU-T H.264:
* Advanced video coding for generic audiovisual services.
See
* Also:
AWS
* API Reference
*/
virtual Model::CreatePresetOutcome CreatePreset(const Model::CreatePresetRequest& request) const;
/**
* A Callable wrapper for CreatePreset that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreatePresetOutcomeCallable CreatePresetCallable(const CreatePresetRequestT& request) const
{
return SubmitCallable(&ElasticTranscoderClient::CreatePreset, request);
}
/**
* An Async wrapper for CreatePreset that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreatePresetAsync(const CreatePresetRequestT& request, const CreatePresetResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticTranscoderClient::CreatePreset, request, handler, context);
}
/**
* The DeletePipeline operation removes a pipeline.
You can only delete
* a pipeline that has never been used or that is not currently in use (doesn't
* contain any active jobs). If the pipeline is currently in use,
* DeletePipeline
returns an error.
See Also:
AWS
* API Reference
*/
virtual Model::DeletePipelineOutcome DeletePipeline(const Model::DeletePipelineRequest& request) const;
/**
* A Callable wrapper for DeletePipeline that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeletePipelineOutcomeCallable DeletePipelineCallable(const DeletePipelineRequestT& request) const
{
return SubmitCallable(&ElasticTranscoderClient::DeletePipeline, request);
}
/**
* An Async wrapper for DeletePipeline that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeletePipelineAsync(const DeletePipelineRequestT& request, const DeletePipelineResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticTranscoderClient::DeletePipeline, request, handler, context);
}
/**
* The DeletePreset operation removes a preset that you've added in an AWS
* region.
You can't delete the default presets that are included
* with Elastic Transcoder.
See Also:
AWS
* API Reference
*/
virtual Model::DeletePresetOutcome DeletePreset(const Model::DeletePresetRequest& request) const;
/**
* A Callable wrapper for DeletePreset that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeletePresetOutcomeCallable DeletePresetCallable(const DeletePresetRequestT& request) const
{
return SubmitCallable(&ElasticTranscoderClient::DeletePreset, request);
}
/**
* An Async wrapper for DeletePreset that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeletePresetAsync(const DeletePresetRequestT& request, const DeletePresetResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticTranscoderClient::DeletePreset, request, handler, context);
}
/**
* The ListJobsByPipeline operation gets a list of the jobs currently in a
* pipeline.
Elastic Transcoder returns all of the jobs currently in the
* specified pipeline. The response body contains one element for each job that
* satisfies the search criteria.
See Also:
AWS
* API Reference
*/
virtual Model::ListJobsByPipelineOutcome ListJobsByPipeline(const Model::ListJobsByPipelineRequest& request) const;
/**
* A Callable wrapper for ListJobsByPipeline that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListJobsByPipelineOutcomeCallable ListJobsByPipelineCallable(const ListJobsByPipelineRequestT& request) const
{
return SubmitCallable(&ElasticTranscoderClient::ListJobsByPipeline, request);
}
/**
* An Async wrapper for ListJobsByPipeline that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListJobsByPipelineAsync(const ListJobsByPipelineRequestT& request, const ListJobsByPipelineResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticTranscoderClient::ListJobsByPipeline, request, handler, context);
}
/**
* The ListJobsByStatus operation gets a list of jobs that have a specified
* status. The response body contains one element for each job that satisfies the
* search criteria.
See Also:
AWS
* API Reference
*/
virtual Model::ListJobsByStatusOutcome ListJobsByStatus(const Model::ListJobsByStatusRequest& request) const;
/**
* A Callable wrapper for ListJobsByStatus that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListJobsByStatusOutcomeCallable ListJobsByStatusCallable(const ListJobsByStatusRequestT& request) const
{
return SubmitCallable(&ElasticTranscoderClient::ListJobsByStatus, request);
}
/**
* An Async wrapper for ListJobsByStatus that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListJobsByStatusAsync(const ListJobsByStatusRequestT& request, const ListJobsByStatusResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticTranscoderClient::ListJobsByStatus, request, handler, context);
}
/**
* The ListPipelines operation gets a list of the pipelines associated with the
* current AWS account.
See Also:
AWS
* API Reference
*/
virtual Model::ListPipelinesOutcome ListPipelines(const Model::ListPipelinesRequest& request) const;
/**
* A Callable wrapper for ListPipelines that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListPipelinesOutcomeCallable ListPipelinesCallable(const ListPipelinesRequestT& request) const
{
return SubmitCallable(&ElasticTranscoderClient::ListPipelines, request);
}
/**
* An Async wrapper for ListPipelines that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListPipelinesAsync(const ListPipelinesRequestT& request, const ListPipelinesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticTranscoderClient::ListPipelines, request, handler, context);
}
/**
* The ListPresets operation gets a list of the default presets included with
* Elastic Transcoder and the presets that you've added in an AWS
* region.
See Also:
AWS
* API Reference
*/
virtual Model::ListPresetsOutcome ListPresets(const Model::ListPresetsRequest& request) const;
/**
* A Callable wrapper for ListPresets that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListPresetsOutcomeCallable ListPresetsCallable(const ListPresetsRequestT& request) const
{
return SubmitCallable(&ElasticTranscoderClient::ListPresets, request);
}
/**
* An Async wrapper for ListPresets that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListPresetsAsync(const ListPresetsRequestT& request, const ListPresetsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticTranscoderClient::ListPresets, request, handler, context);
}
/**
* The ReadJob operation returns detailed information about a job.
See
* Also:
AWS
* API Reference
*/
virtual Model::ReadJobOutcome ReadJob(const Model::ReadJobRequest& request) const;
/**
* A Callable wrapper for ReadJob that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ReadJobOutcomeCallable ReadJobCallable(const ReadJobRequestT& request) const
{
return SubmitCallable(&ElasticTranscoderClient::ReadJob, request);
}
/**
* An Async wrapper for ReadJob that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ReadJobAsync(const ReadJobRequestT& request, const ReadJobResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticTranscoderClient::ReadJob, request, handler, context);
}
/**
* The ReadPipeline operation gets detailed information about a
* pipeline.
See Also:
AWS
* API Reference
*/
virtual Model::ReadPipelineOutcome ReadPipeline(const Model::ReadPipelineRequest& request) const;
/**
* A Callable wrapper for ReadPipeline that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ReadPipelineOutcomeCallable ReadPipelineCallable(const ReadPipelineRequestT& request) const
{
return SubmitCallable(&ElasticTranscoderClient::ReadPipeline, request);
}
/**
* An Async wrapper for ReadPipeline that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ReadPipelineAsync(const ReadPipelineRequestT& request, const ReadPipelineResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticTranscoderClient::ReadPipeline, request, handler, context);
}
/**
* The ReadPreset operation gets detailed information about a
* preset.
See Also:
AWS
* API Reference
*/
virtual Model::ReadPresetOutcome ReadPreset(const Model::ReadPresetRequest& request) const;
/**
* A Callable wrapper for ReadPreset that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ReadPresetOutcomeCallable ReadPresetCallable(const ReadPresetRequestT& request) const
{
return SubmitCallable(&ElasticTranscoderClient::ReadPreset, request);
}
/**
* An Async wrapper for ReadPreset that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ReadPresetAsync(const ReadPresetRequestT& request, const ReadPresetResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticTranscoderClient::ReadPreset, request, handler, context);
}
/**
* Use the UpdatePipeline
operation to update settings for a
* pipeline.
When you change pipeline settings, your changes
* take effect immediately. Jobs that you have already submitted and that Elastic
* Transcoder has not started to process are affected in addition to jobs that you
* submit after you change settings.
See Also:
AWS
* API Reference
*/
virtual Model::UpdatePipelineOutcome UpdatePipeline(const Model::UpdatePipelineRequest& request) const;
/**
* A Callable wrapper for UpdatePipeline that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdatePipelineOutcomeCallable UpdatePipelineCallable(const UpdatePipelineRequestT& request) const
{
return SubmitCallable(&ElasticTranscoderClient::UpdatePipeline, request);
}
/**
* An Async wrapper for UpdatePipeline that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdatePipelineAsync(const UpdatePipelineRequestT& request, const UpdatePipelineResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticTranscoderClient::UpdatePipeline, request, handler, context);
}
/**
* With the UpdatePipelineNotifications operation, you can update Amazon Simple
* Notification Service (Amazon SNS) notifications for a pipeline.
When you
* update notifications for a pipeline, Elastic Transcoder returns the values that
* you specified in the request.
See Also:
AWS
* API Reference
*/
virtual Model::UpdatePipelineNotificationsOutcome UpdatePipelineNotifications(const Model::UpdatePipelineNotificationsRequest& request) const;
/**
* A Callable wrapper for UpdatePipelineNotifications that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdatePipelineNotificationsOutcomeCallable UpdatePipelineNotificationsCallable(const UpdatePipelineNotificationsRequestT& request) const
{
return SubmitCallable(&ElasticTranscoderClient::UpdatePipelineNotifications, request);
}
/**
* An Async wrapper for UpdatePipelineNotifications that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdatePipelineNotificationsAsync(const UpdatePipelineNotificationsRequestT& request, const UpdatePipelineNotificationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticTranscoderClient::UpdatePipelineNotifications, request, handler, context);
}
/**
* The UpdatePipelineStatus operation pauses or reactivates a pipeline, so that
* the pipeline stops or restarts the processing of jobs.
Changing the
* pipeline status is useful if you want to cancel one or more jobs. You can't
* cancel jobs after Elastic Transcoder has started processing them; if you pause
* the pipeline to which you submitted the jobs, you have more time to get the job
* IDs for the jobs that you want to cancel, and to send a CancelJob
* request.
See Also:
AWS
* API Reference
*/
virtual Model::UpdatePipelineStatusOutcome UpdatePipelineStatus(const Model::UpdatePipelineStatusRequest& request) const;
/**
* A Callable wrapper for UpdatePipelineStatus that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdatePipelineStatusOutcomeCallable UpdatePipelineStatusCallable(const UpdatePipelineStatusRequestT& request) const
{
return SubmitCallable(&ElasticTranscoderClient::UpdatePipelineStatus, request);
}
/**
* An Async wrapper for UpdatePipelineStatus that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdatePipelineStatusAsync(const UpdatePipelineStatusRequestT& request, const UpdatePipelineStatusResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&ElasticTranscoderClient::UpdatePipelineStatus, request, handler, context);
}
void OverrideEndpoint(const Aws::String& endpoint);
std::shared_ptr& accessEndpointProvider();
private:
friend class Aws::Client::ClientWithAsyncTemplateMethods;
void init(const ElasticTranscoderClientConfiguration& clientConfiguration);
ElasticTranscoderClientConfiguration m_clientConfiguration;
std::shared_ptr m_executor;
std::shared_ptr m_endpointProvider;
};
} // namespace ElasticTranscoder
} // namespace Aws