/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the mediaconvert-2017-08-29.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.MediaConvert.Model
{
///
/// Each job converts an input file into an output file or files. For more information,
/// see the User Guide at https://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html
///
public partial class Job
{
private AccelerationSettings _accelerationSettings;
private AccelerationStatus _accelerationStatus;
private string _arn;
private BillingTagsSource _billingTagsSource;
private string _clientRequestToken;
private DateTime? _createdAt;
private JobPhase _currentPhase;
private int? _errorCode;
private string _errorMessage;
private List _hopDestinations = new List();
private string _id;
private int? _jobPercentComplete;
private string _jobTemplate;
private JobMessages _messages;
private List _outputGroupDetails = new List();
private int? _priority;
private string _queue;
private List _queueTransitions = new List();
private int? _retryCount;
private string _role;
private JobSettings _settings;
private SimulateReservedQueue _simulateReservedQueue;
private JobStatus _status;
private StatusUpdateInterval _statusUpdateInterval;
private Timing _timing;
private Dictionary _userMetadata = new Dictionary();
private List _warnings = new List();
///
/// Gets and sets the property AccelerationSettings. Accelerated transcoding can significantly
/// speed up jobs with long, visually complex content.
///
public AccelerationSettings AccelerationSettings
{
get { return this._accelerationSettings; }
set { this._accelerationSettings = value; }
}
// Check to see if AccelerationSettings property is set
internal bool IsSetAccelerationSettings()
{
return this._accelerationSettings != null;
}
///
/// Gets and sets the property AccelerationStatus. Describes whether the current job is
/// running with accelerated transcoding. For jobs that have Acceleration (AccelerationMode)
/// set to DISABLED, AccelerationStatus is always NOT_APPLICABLE. For jobs that have Acceleration
/// (AccelerationMode) set to ENABLED or PREFERRED, AccelerationStatus is one of the other
/// states. AccelerationStatus is IN_PROGRESS initially, while the service determines
/// whether the input files and job settings are compatible with accelerated transcoding.
/// If they are, AcclerationStatus is ACCELERATED. If your input files and job settings
/// aren't compatible with accelerated transcoding, the service either fails your job
/// or runs it without accelerated transcoding, depending on how you set Acceleration
/// (AccelerationMode). When the service runs your job without accelerated transcoding,
/// AccelerationStatus is NOT_ACCELERATED.
///
public AccelerationStatus AccelerationStatus
{
get { return this._accelerationStatus; }
set { this._accelerationStatus = value; }
}
// Check to see if AccelerationStatus property is set
internal bool IsSetAccelerationStatus()
{
return this._accelerationStatus != null;
}
///
/// Gets and sets the property Arn. An identifier for this resource that is unique within
/// all of AWS.
///
public string Arn
{
get { return this._arn; }
set { this._arn = value; }
}
// Check to see if Arn property is set
internal bool IsSetArn()
{
return this._arn != null;
}
///
/// Gets and sets the property BillingTagsSource. The tag type that AWS Billing and Cost
/// Management will use to sort your AWS Elemental MediaConvert costs on any billing report
/// that you set up.
///
public BillingTagsSource BillingTagsSource
{
get { return this._billingTagsSource; }
set { this._billingTagsSource = value; }
}
// Check to see if BillingTagsSource property is set
internal bool IsSetBillingTagsSource()
{
return this._billingTagsSource != null;
}
///
/// Gets and sets the property ClientRequestToken. Prevent duplicate jobs from being created
/// and ensure idempotency for your requests. A client request token can be any string
/// that includes up to 64 ASCII characters. If you reuse a client request token within
/// one minute of a successful request, the API returns the job details of the original
/// request instead. For more information see https://docs.aws.amazon.com/mediaconvert/latest/apireference/idempotency.html.
///
public string ClientRequestToken
{
get { return this._clientRequestToken; }
set { this._clientRequestToken = value; }
}
// Check to see if ClientRequestToken property is set
internal bool IsSetClientRequestToken()
{
return this._clientRequestToken != null;
}
///
/// Gets and sets the property CreatedAt. The time, in Unix epoch format in seconds, when
/// the job got created.
///
public DateTime CreatedAt
{
get { return this._createdAt.GetValueOrDefault(); }
set { this._createdAt = value; }
}
// Check to see if CreatedAt property is set
internal bool IsSetCreatedAt()
{
return this._createdAt.HasValue;
}
///
/// Gets and sets the property CurrentPhase. A job's phase can be PROBING, TRANSCODING
/// OR UPLOADING
///
public JobPhase CurrentPhase
{
get { return this._currentPhase; }
set { this._currentPhase = value; }
}
// Check to see if CurrentPhase property is set
internal bool IsSetCurrentPhase()
{
return this._currentPhase != null;
}
///
/// Gets and sets the property ErrorCode. Error code for the job
///
public int ErrorCode
{
get { return this._errorCode.GetValueOrDefault(); }
set { this._errorCode = value; }
}
// Check to see if ErrorCode property is set
internal bool IsSetErrorCode()
{
return this._errorCode.HasValue;
}
///
/// Gets and sets the property ErrorMessage. Error message of Job
///
public string ErrorMessage
{
get { return this._errorMessage; }
set { this._errorMessage = value; }
}
// Check to see if ErrorMessage property is set
internal bool IsSetErrorMessage()
{
return this._errorMessage != null;
}
///
/// Gets and sets the property HopDestinations. Optional list of hop destinations.
///
public List HopDestinations
{
get { return this._hopDestinations; }
set { this._hopDestinations = value; }
}
// Check to see if HopDestinations property is set
internal bool IsSetHopDestinations()
{
return this._hopDestinations != null && this._hopDestinations.Count > 0;
}
///
/// Gets and sets the property Id. A portion of the job's ARN, unique within your AWS
/// Elemental MediaConvert resources
///
public string Id
{
get { return this._id; }
set { this._id = value; }
}
// Check to see if Id property is set
internal bool IsSetId()
{
return this._id != null;
}
///
/// Gets and sets the property JobPercentComplete. An estimate of how far your job has
/// progressed. This estimate is shown as a percentage of the total time from when your
/// job leaves its queue to when your output files appear in your output Amazon S3 bucket.
/// AWS Elemental MediaConvert provides jobPercentComplete in CloudWatch STATUS_UPDATE
/// events and in the response to GetJob and ListJobs requests. The jobPercentComplete
/// estimate is reliable for the following input containers: Quicktime, Transport Stream,
/// MP4, and MXF. For some jobs, the service can't provide information about job progress.
/// In those cases, jobPercentComplete returns a null value.
///
public int JobPercentComplete
{
get { return this._jobPercentComplete.GetValueOrDefault(); }
set { this._jobPercentComplete = value; }
}
// Check to see if JobPercentComplete property is set
internal bool IsSetJobPercentComplete()
{
return this._jobPercentComplete.HasValue;
}
///
/// Gets and sets the property JobTemplate. The job template that the job is created from,
/// if it is created from a job template.
///
public string JobTemplate
{
get { return this._jobTemplate; }
set { this._jobTemplate = value; }
}
// Check to see if JobTemplate property is set
internal bool IsSetJobTemplate()
{
return this._jobTemplate != null;
}
///
/// Gets and sets the property Messages. Provides messages from the service about jobs
/// that you have already successfully submitted.
///
public JobMessages Messages
{
get { return this._messages; }
set { this._messages = value; }
}
// Check to see if Messages property is set
internal bool IsSetMessages()
{
return this._messages != null;
}
///
/// Gets and sets the property OutputGroupDetails. List of output group details
///
public List OutputGroupDetails
{
get { return this._outputGroupDetails; }
set { this._outputGroupDetails = value; }
}
// Check to see if OutputGroupDetails property is set
internal bool IsSetOutputGroupDetails()
{
return this._outputGroupDetails != null && this._outputGroupDetails.Count > 0;
}
///
/// Gets and sets the property Priority. Relative priority on the job.
///
[AWSProperty(Min=-50, Max=50)]
public int Priority
{
get { return this._priority.GetValueOrDefault(); }
set { this._priority = value; }
}
// Check to see if Priority property is set
internal bool IsSetPriority()
{
return this._priority.HasValue;
}
///
/// Gets and sets the property Queue. When you create a job, you can specify a queue to
/// send it to. If you don't specify, the job will go to the default queue. For more about
/// queues, see the User Guide topic at https://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html
///
public string Queue
{
get { return this._queue; }
set { this._queue = value; }
}
// Check to see if Queue property is set
internal bool IsSetQueue()
{
return this._queue != null;
}
///
/// Gets and sets the property QueueTransitions. The job's queue hopping history.
///
public List QueueTransitions
{
get { return this._queueTransitions; }
set { this._queueTransitions = value; }
}
// Check to see if QueueTransitions property is set
internal bool IsSetQueueTransitions()
{
return this._queueTransitions != null && this._queueTransitions.Count > 0;
}
///
/// Gets and sets the property RetryCount. The number of times that the service automatically
/// attempted to process your job after encountering an error.
///
public int RetryCount
{
get { return this._retryCount.GetValueOrDefault(); }
set { this._retryCount = value; }
}
// Check to see if RetryCount property is set
internal bool IsSetRetryCount()
{
return this._retryCount.HasValue;
}
///
/// Gets and sets the property Role. The IAM role you use for creating this job. For details
/// about permissions, see the User Guide topic at the User Guide at https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html
///
[AWSProperty(Required=true)]
public string Role
{
get { return this._role; }
set { this._role = value; }
}
// Check to see if Role property is set
internal bool IsSetRole()
{
return this._role != null;
}
///
/// Gets and sets the property Settings. JobSettings contains all the transcode settings
/// for a job.
///
[AWSProperty(Required=true)]
public JobSettings Settings
{
get { return this._settings; }
set { this._settings = value; }
}
// Check to see if Settings property is set
internal bool IsSetSettings()
{
return this._settings != null;
}
///
/// Gets and sets the property SimulateReservedQueue. Enable this setting when you run
/// a test job to estimate how many reserved transcoding slots (RTS) you need. When this
/// is enabled, MediaConvert runs your job from an on-demand queue with similar performance
/// to what you will see with one RTS in a reserved queue. This setting is disabled by
/// default.
///
public SimulateReservedQueue SimulateReservedQueue
{
get { return this._simulateReservedQueue; }
set { this._simulateReservedQueue = value; }
}
// Check to see if SimulateReservedQueue property is set
internal bool IsSetSimulateReservedQueue()
{
return this._simulateReservedQueue != null;
}
///
/// Gets and sets the property Status. A job's status can be SUBMITTED, PROGRESSING, COMPLETE,
/// CANCELED, or ERROR.
///
public JobStatus Status
{
get { return this._status; }
set { this._status = value; }
}
// Check to see if Status property is set
internal bool IsSetStatus()
{
return this._status != null;
}
///
/// Gets and sets the property StatusUpdateInterval. Specify how often MediaConvert sends
/// STATUS_UPDATE events to Amazon CloudWatch Events. Set the interval, in seconds, between
/// status updates. MediaConvert sends an update at this interval from the time the service
/// begins processing your job to the time it completes the transcode or encounters an
/// error.
///
public StatusUpdateInterval StatusUpdateInterval
{
get { return this._statusUpdateInterval; }
set { this._statusUpdateInterval = value; }
}
// Check to see if StatusUpdateInterval property is set
internal bool IsSetStatusUpdateInterval()
{
return this._statusUpdateInterval != null;
}
///
/// Gets and sets the property Timing. Information about when jobs are submitted, started,
/// and finished is specified in Unix epoch format in seconds.
///
public Timing Timing
{
get { return this._timing; }
set { this._timing = value; }
}
// Check to see if Timing property is set
internal bool IsSetTiming()
{
return this._timing != null;
}
///
/// Gets and sets the property UserMetadata. User-defined metadata that you want to associate
/// with an MediaConvert job. You specify metadata in key/value pairs.
///
public Dictionary UserMetadata
{
get { return this._userMetadata; }
set { this._userMetadata = value; }
}
// Check to see if UserMetadata property is set
internal bool IsSetUserMetadata()
{
return this._userMetadata != null && this._userMetadata.Count > 0;
}
///
/// Gets and sets the property Warnings. Contains any warning messages for the job. Use
/// to help identify potential issues with your input, output, or job. For more information,
/// see https://docs.aws.amazon.com/mediaconvert/latest/ug/warning_codes.html
///
public List Warnings
{
get { return this._warnings; }
set { this._warnings = value; }
}
// Check to see if Warnings property is set
internal bool IsSetWarnings()
{
return this._warnings != null && this._warnings.Count > 0;
}
}
}