/** * 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