/**
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * SPDX-License-Identifier: Apache-2.0.
 */
#pragma once
#include  A list of backup options for each resource type.See Also:
  
   * AWS
   * API Reference
Specifies an object containing resource type and backup options. The only * supported resource type is Amazon EC2 instances with Windows Volume Shadow Copy * Service (VSS). For a CloudFormation example, see the sample * CloudFormation template to enable Windows VSS in the Backup User * Guide.
Valid values: EC2.
Specifies an object containing resource type and backup options. The only * supported resource type is Amazon EC2 instances with Windows Volume Shadow Copy * Service (VSS). For a CloudFormation example, see the sample * CloudFormation template to enable Windows VSS in the Backup User * Guide.
Valid values: EC2.
Specifies an object containing resource type and backup options. The only * supported resource type is Amazon EC2 instances with Windows Volume Shadow Copy * Service (VSS). For a CloudFormation example, see the sample * CloudFormation template to enable Windows VSS in the Backup User * Guide.
Valid values: EC2.
Specifies an object containing resource type and backup options. The only * supported resource type is Amazon EC2 instances with Windows Volume Shadow Copy * Service (VSS). For a CloudFormation example, see the sample * CloudFormation template to enable Windows VSS in the Backup User * Guide.
Valid values: EC2.
Specifies an object containing resource type and backup options. The only * supported resource type is Amazon EC2 instances with Windows Volume Shadow Copy * Service (VSS). For a CloudFormation example, see the sample * CloudFormation template to enable Windows VSS in the Backup User * Guide.
Valid values: EC2.
Specifies an object containing resource type and backup options. The only * supported resource type is Amazon EC2 instances with Windows Volume Shadow Copy * Service (VSS). For a CloudFormation example, see the sample * CloudFormation template to enable Windows VSS in the Backup User * Guide.
Valid values: EC2.
Specifies an object containing resource type and backup options. The only * supported resource type is Amazon EC2 instances with Windows Volume Shadow Copy * Service (VSS). For a CloudFormation example, see the sample * CloudFormation template to enable Windows VSS in the Backup User * Guide.
Valid values: EC2.
Specifies an object containing resource type and backup options. The only * supported resource type is Amazon EC2 instances with Windows Volume Shadow Copy * Service (VSS). For a CloudFormation example, see the sample * CloudFormation template to enable Windows VSS in the Backup User * Guide.
Valid values: EC2.
Specifies the backup option for a selected resource. This option is only * available for Windows 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.
If you specify
     * an invalid option, you get an InvalidParameterValueException
     * exception.
For more information about Windows VSS backups, see Creating * a VSS-Enabled Windows Backup.
*/ inline const Aws::MapSpecifies the backup option for a selected resource. This option is only * available for Windows 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.
If you specify
     * an invalid option, you get an InvalidParameterValueException
     * exception.
For more information about Windows VSS backups, see Creating * a VSS-Enabled Windows Backup.
*/ inline bool BackupOptionsHasBeenSet() const { return m_backupOptionsHasBeenSet; } /** *Specifies the backup option for a selected resource. This option is only * available for Windows 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.
If you specify
     * an invalid option, you get an InvalidParameterValueException
     * exception.
For more information about Windows VSS backups, see Creating * a VSS-Enabled Windows Backup.
*/ inline void SetBackupOptions(const Aws::MapSpecifies the backup option for a selected resource. This option is only * available for Windows 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.
If you specify
     * an invalid option, you get an InvalidParameterValueException
     * exception.
For more information about Windows VSS backups, see Creating * a VSS-Enabled Windows Backup.
*/ inline void SetBackupOptions(Aws::MapSpecifies the backup option for a selected resource. This option is only * available for Windows 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.
If you specify
     * an invalid option, you get an InvalidParameterValueException
     * exception.
For more information about Windows VSS backups, see Creating * a VSS-Enabled Windows Backup.
*/ inline AdvancedBackupSetting& WithBackupOptions(const Aws::MapSpecifies the backup option for a selected resource. This option is only * available for Windows 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.
If you specify
     * an invalid option, you get an InvalidParameterValueException
     * exception.
For more information about Windows VSS backups, see Creating * a VSS-Enabled Windows Backup.
*/ inline AdvancedBackupSetting& WithBackupOptions(Aws::MapSpecifies the backup option for a selected resource. This option is only * available for Windows 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.
If you specify
     * an invalid option, you get an InvalidParameterValueException
     * exception.
For more information about Windows VSS backups, see Creating * a VSS-Enabled Windows Backup.
*/ inline AdvancedBackupSetting& AddBackupOptions(const Aws::String& key, const Aws::String& value) { m_backupOptionsHasBeenSet = true; m_backupOptions.emplace(key, value); return *this; } /** *Specifies the backup option for a selected resource. This option is only * available for Windows 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.
If you specify
     * an invalid option, you get an InvalidParameterValueException
     * exception.
For more information about Windows VSS backups, see Creating * a VSS-Enabled Windows Backup.
*/ inline AdvancedBackupSetting& AddBackupOptions(Aws::String&& key, const Aws::String& value) { m_backupOptionsHasBeenSet = true; m_backupOptions.emplace(std::move(key), value); return *this; } /** *Specifies the backup option for a selected resource. This option is only * available for Windows 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.
If you specify
     * an invalid option, you get an InvalidParameterValueException
     * exception.
For more information about Windows VSS backups, see Creating * a VSS-Enabled Windows Backup.
*/ inline AdvancedBackupSetting& AddBackupOptions(const Aws::String& key, Aws::String&& value) { m_backupOptionsHasBeenSet = true; m_backupOptions.emplace(key, std::move(value)); return *this; } /** *Specifies the backup option for a selected resource. This option is only * available for Windows 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.
If you specify
     * an invalid option, you get an InvalidParameterValueException
     * exception.
For more information about Windows VSS backups, see Creating * a VSS-Enabled Windows Backup.
*/ inline AdvancedBackupSetting& AddBackupOptions(Aws::String&& key, Aws::String&& value) { m_backupOptionsHasBeenSet = true; m_backupOptions.emplace(std::move(key), std::move(value)); return *this; } /** *Specifies the backup option for a selected resource. This option is only * available for Windows 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.
If you specify
     * an invalid option, you get an InvalidParameterValueException
     * exception.
For more information about Windows VSS backups, see Creating * a VSS-Enabled Windows Backup.
*/ inline AdvancedBackupSetting& AddBackupOptions(const char* key, Aws::String&& value) { m_backupOptionsHasBeenSet = true; m_backupOptions.emplace(key, std::move(value)); return *this; } /** *Specifies the backup option for a selected resource. This option is only * available for Windows 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.
If you specify
     * an invalid option, you get an InvalidParameterValueException
     * exception.
For more information about Windows VSS backups, see Creating * a VSS-Enabled Windows Backup.
*/ inline AdvancedBackupSetting& AddBackupOptions(Aws::String&& key, const char* value) { m_backupOptionsHasBeenSet = true; m_backupOptions.emplace(std::move(key), value); return *this; } /** *Specifies the backup option for a selected resource. This option is only * available for Windows 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.
If you specify
     * an invalid option, you get an InvalidParameterValueException
     * exception.
For more information about Windows VSS backups, see Creating * a VSS-Enabled Windows Backup.
*/ inline AdvancedBackupSetting& AddBackupOptions(const char* key, const char* value) { m_backupOptionsHasBeenSet = true; m_backupOptions.emplace(key, value); return *this; } private: Aws::String m_resourceType; bool m_resourceTypeHasBeenSet = false; Aws::Map