/*
* 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 backup-2018-11-15.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.Backup.Model
{
///
/// Container for the parameters to the StartBackupJob operation.
/// Starts an on-demand backup job for the specified resource.
///
public partial class StartBackupJobRequest : AmazonBackupRequest
{
private Dictionary _backupOptions = new Dictionary();
private string _backupVaultName;
private long? _completeWindowMinutes;
private string _iamRoleArn;
private string _idempotencyToken;
private Lifecycle _lifecycle;
private Dictionary _recoveryPointTags = new Dictionary();
private string _resourceArn;
private long? _startWindowMinutes;
///
/// Gets and sets the property BackupOptions.
///
/// Specifies the backup option for a selected resource. This option is only available
/// for Windows Volume Shadow Copy Service (VSS) backup jobs.
///
///
///
/// Valid values: Set to "WindowsVSS":"enabled"
to enable the WindowsVSS
/// backup option and create a Windows VSS backup. Set to "WindowsVSS""disabled"
/// to create a regular backup. The WindowsVSS
option is not enabled by default.
///
///
public Dictionary BackupOptions
{
get { return this._backupOptions; }
set { this._backupOptions = value; }
}
// Check to see if BackupOptions property is set
internal bool IsSetBackupOptions()
{
return this._backupOptions != null && this._backupOptions.Count > 0;
}
///
/// Gets and sets the property BackupVaultName.
///
/// The name of a logical container where backups are stored. Backup vaults are identified
/// by names that are unique to the account used to create them and the Amazon Web Services
/// Region where they are created. They consist of lowercase letters, numbers, and hyphens.
///
///
[AWSProperty(Required=true)]
public string BackupVaultName
{
get { return this._backupVaultName; }
set { this._backupVaultName = value; }
}
// Check to see if BackupVaultName property is set
internal bool IsSetBackupVaultName()
{
return this._backupVaultName != null;
}
///
/// Gets and sets the property CompleteWindowMinutes.
///
/// A value in minutes during which a successfully started backup must complete, or else
/// Backup will cancel the job. This value is optional. This value begins counting down
/// from when the backup was scheduled. It does not add additional time for StartWindowMinutes
,
/// or if the backup started later than scheduled.
///
///
public long CompleteWindowMinutes
{
get { return this._completeWindowMinutes.GetValueOrDefault(); }
set { this._completeWindowMinutes = value; }
}
// Check to see if CompleteWindowMinutes property is set
internal bool IsSetCompleteWindowMinutes()
{
return this._completeWindowMinutes.HasValue;
}
///
/// Gets and sets the property IamRoleArn.
///
/// Specifies the IAM role ARN used to create the target recovery point; for example,
/// arn:aws:iam::123456789012:role/S3Access
.
///
///
[AWSProperty(Required=true)]
public string IamRoleArn
{
get { return this._iamRoleArn; }
set { this._iamRoleArn = value; }
}
// Check to see if IamRoleArn property is set
internal bool IsSetIamRoleArn()
{
return this._iamRoleArn != null;
}
///
/// Gets and sets the property IdempotencyToken.
///
/// A customer-chosen string that you can use to distinguish between otherwise identical
/// calls to StartBackupJob
. Retrying a successful request with the same
/// idempotency token results in a success message with no action taken.
///
///
public string IdempotencyToken
{
get { return this._idempotencyToken; }
set { this._idempotencyToken = value; }
}
// Check to see if IdempotencyToken property is set
internal bool IsSetIdempotencyToken()
{
return this._idempotencyToken != null;
}
///
/// Gets and sets the property Lifecycle.
///
/// The lifecycle defines when a protected resource is transitioned to cold storage and
/// when it expires. Backup will transition and expire backups automatically according
/// to the lifecycle that you define.
///
///
///
/// Backups transitioned to cold storage must be stored in cold storage for a minimum
/// of 90 days. Therefore, the “retention” setting must be 90 days greater than the “transition
/// to cold after days” setting. The “transition to cold after days” setting cannot be
/// changed after a backup has been transitioned to cold.
///
///
///
/// Resource types that are able to be transitioned to cold storage are listed in the
/// "Lifecycle to cold storage" section of the
/// Feature availability by resource table. Backup ignores this expression for other
/// resource types.
///
///
public Lifecycle Lifecycle
{
get { return this._lifecycle; }
set { this._lifecycle = value; }
}
// Check to see if Lifecycle property is set
internal bool IsSetLifecycle()
{
return this._lifecycle != null;
}
///
/// Gets and sets the property RecoveryPointTags.
///
/// To help organize your resources, you can assign your own metadata to the resources
/// that you create. Each tag is a key-value pair.
///
///
[AWSProperty(Sensitive=true)]
public Dictionary RecoveryPointTags
{
get { return this._recoveryPointTags; }
set { this._recoveryPointTags = value; }
}
// Check to see if RecoveryPointTags property is set
internal bool IsSetRecoveryPointTags()
{
return this._recoveryPointTags != null && this._recoveryPointTags.Count > 0;
}
///
/// Gets and sets the property ResourceArn.
///
/// An Amazon Resource Name (ARN) that uniquely identifies a resource. The format of the
/// ARN depends on the resource type.
///
///
[AWSProperty(Required=true)]
public string ResourceArn
{
get { return this._resourceArn; }
set { this._resourceArn = value; }
}
// Check to see if ResourceArn property is set
internal bool IsSetResourceArn()
{
return this._resourceArn != null;
}
///
/// Gets and sets the property StartWindowMinutes.
///
/// A value in minutes after a backup is scheduled before a job will be canceled if it
/// doesn't start successfully. This value is optional, and the default is 8 hours. If
/// this value is included, it must be at least 60 minutes to avoid errors.
///
///
///
/// During the start window, the backup job status remains in CREATED
status
/// until it has successfully begun or until the start window time has run out. If within
/// the start window time Backup receives an error that allows the job to be retried,
/// Backup will automatically retry to begin the job at least every 10 minutes until the
/// backup successfully begins (the job status changes to RUNNING
) or until
/// the job status changes to EXPIRED
(which is expected to occur when the
/// start window time is over).
///
///
public long StartWindowMinutes
{
get { return this._startWindowMinutes.GetValueOrDefault(); }
set { this._startWindowMinutes = value; }
}
// Check to see if StartWindowMinutes property is set
internal bool IsSetStartWindowMinutes()
{
return this._startWindowMinutes.HasValue;
}
}
}