/**
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * SPDX-License-Identifier: Apache-2.0.
 */
#pragma once
#include  The data type name for including resource data sync state. There are four
   * sync states:     
   *  
   * OrganizationNotExists (Your organization
   * doesn't exist)NoPermissions (The system can't locate the
   * service-linked role. This role is automatically created when a user creates a
   * resource data sync in Amazon Web Services Systems Manager Explorer.)InvalidOrganizationalUnit (You specified or selected an invalid
   * unit in the resource data sync configuration.)TrustedAccessDisabled (You disabled Systems Manager access in the
   * organization in Organizations.)See Also:
   AWS
   * API Reference
The type of data source for the resource data sync. SourceType
     * is either AwsOrganizations (if an organization is present in
     * Organizations) or singleAccountMultiRegions.
The type of data source for the resource data sync. SourceType
     * is either AwsOrganizations (if an organization is present in
     * Organizations) or singleAccountMultiRegions.
The type of data source for the resource data sync. SourceType
     * is either AwsOrganizations (if an organization is present in
     * Organizations) or singleAccountMultiRegions.
The type of data source for the resource data sync. SourceType
     * is either AwsOrganizations (if an organization is present in
     * Organizations) or singleAccountMultiRegions.
The type of data source for the resource data sync. SourceType
     * is either AwsOrganizations (if an organization is present in
     * Organizations) or singleAccountMultiRegions.
The type of data source for the resource data sync. SourceType
     * is either AwsOrganizations (if an organization is present in
     * Organizations) or singleAccountMultiRegions.
The type of data source for the resource data sync. SourceType
     * is either AwsOrganizations (if an organization is present in
     * Organizations) or singleAccountMultiRegions.
The type of data source for the resource data sync. SourceType
     * is either AwsOrganizations (if an organization is present in
     * Organizations) or singleAccountMultiRegions.
The field name in SyncSource for the
     * ResourceDataSyncAwsOrganizationsSource type.
The field name in SyncSource for the
     * ResourceDataSyncAwsOrganizationsSource type.
The field name in SyncSource for the
     * ResourceDataSyncAwsOrganizationsSource type.
The field name in SyncSource for the
     * ResourceDataSyncAwsOrganizationsSource type.
The field name in SyncSource for the
     * ResourceDataSyncAwsOrganizationsSource type.
The field name in SyncSource for the
     * ResourceDataSyncAwsOrganizationsSource type.
The SyncSource Amazon Web Services Regions included in the
     * resource data sync.
The SyncSource Amazon Web Services Regions included in the
     * resource data sync.
The SyncSource Amazon Web Services Regions included in the
     * resource data sync.
The SyncSource Amazon Web Services Regions included in the
     * resource data sync.
The SyncSource Amazon Web Services Regions included in the
     * resource data sync.
The SyncSource Amazon Web Services Regions included in the
     * resource data sync.
The SyncSource Amazon Web Services Regions included in the
     * resource data sync.
The SyncSource Amazon Web Services Regions included in the
     * resource data sync.
The SyncSource Amazon Web Services Regions included in the
     * resource data sync.
Whether to automatically synchronize and aggregate data from new Amazon Web * Services Regions when those Regions come online.
*/ inline bool GetIncludeFutureRegions() const{ return m_includeFutureRegions; } /** *Whether to automatically synchronize and aggregate data from new Amazon Web * Services Regions when those Regions come online.
*/ inline bool IncludeFutureRegionsHasBeenSet() const { return m_includeFutureRegionsHasBeenSet; } /** *Whether to automatically synchronize and aggregate data from new Amazon Web * Services Regions when those Regions come online.
*/ inline void SetIncludeFutureRegions(bool value) { m_includeFutureRegionsHasBeenSet = true; m_includeFutureRegions = value; } /** *Whether to automatically synchronize and aggregate data from new Amazon Web * Services Regions when those Regions come online.
*/ inline ResourceDataSyncSourceWithState& WithIncludeFutureRegions(bool value) { SetIncludeFutureRegions(value); return *this;} /** *The data type name for including resource data sync state. There are four * sync states:
 OrganizationNotExists: Your organization
     * doesn't exist.
 NoPermissions: The system can't locate the
     * service-linked role. This role is automatically created when a user creates a
     * resource data sync in Explorer.
 InvalidOrganizationalUnit:
     * You specified or selected an invalid unit in the resource data sync
     * configuration.
 TrustedAccessDisabled: You disabled Systems
     * Manager access in the organization in Organizations.
The data type name for including resource data sync state. There are four * sync states:
 OrganizationNotExists: Your organization
     * doesn't exist.
 NoPermissions: The system can't locate the
     * service-linked role. This role is automatically created when a user creates a
     * resource data sync in Explorer.
 InvalidOrganizationalUnit:
     * You specified or selected an invalid unit in the resource data sync
     * configuration.
 TrustedAccessDisabled: You disabled Systems
     * Manager access in the organization in Organizations.
The data type name for including resource data sync state. There are four * sync states:
 OrganizationNotExists: Your organization
     * doesn't exist.
 NoPermissions: The system can't locate the
     * service-linked role. This role is automatically created when a user creates a
     * resource data sync in Explorer.
 InvalidOrganizationalUnit:
     * You specified or selected an invalid unit in the resource data sync
     * configuration.
 TrustedAccessDisabled: You disabled Systems
     * Manager access in the organization in Organizations.
The data type name for including resource data sync state. There are four * sync states:
 OrganizationNotExists: Your organization
     * doesn't exist.
 NoPermissions: The system can't locate the
     * service-linked role. This role is automatically created when a user creates a
     * resource data sync in Explorer.
 InvalidOrganizationalUnit:
     * You specified or selected an invalid unit in the resource data sync
     * configuration.
 TrustedAccessDisabled: You disabled Systems
     * Manager access in the organization in Organizations.
The data type name for including resource data sync state. There are four * sync states:
 OrganizationNotExists: Your organization
     * doesn't exist.
 NoPermissions: The system can't locate the
     * service-linked role. This role is automatically created when a user creates a
     * resource data sync in Explorer.
 InvalidOrganizationalUnit:
     * You specified or selected an invalid unit in the resource data sync
     * configuration.
 TrustedAccessDisabled: You disabled Systems
     * Manager access in the organization in Organizations.
The data type name for including resource data sync state. There are four * sync states:
 OrganizationNotExists: Your organization
     * doesn't exist.
 NoPermissions: The system can't locate the
     * service-linked role. This role is automatically created when a user creates a
     * resource data sync in Explorer.
 InvalidOrganizationalUnit:
     * You specified or selected an invalid unit in the resource data sync
     * configuration.
 TrustedAccessDisabled: You disabled Systems
     * Manager access in the organization in Organizations.
The data type name for including resource data sync state. There are four * sync states:
 OrganizationNotExists: Your organization
     * doesn't exist.
 NoPermissions: The system can't locate the
     * service-linked role. This role is automatically created when a user creates a
     * resource data sync in Explorer.
 InvalidOrganizationalUnit:
     * You specified or selected an invalid unit in the resource data sync
     * configuration.
 TrustedAccessDisabled: You disabled Systems
     * Manager access in the organization in Organizations.
The data type name for including resource data sync state. There are four * sync states:
 OrganizationNotExists: Your organization
     * doesn't exist.
 NoPermissions: The system can't locate the
     * service-linked role. This role is automatically created when a user creates a
     * resource data sync in Explorer.
 InvalidOrganizationalUnit:
     * You specified or selected an invalid unit in the resource data sync
     * configuration.
 TrustedAccessDisabled: You disabled Systems
     * Manager access in the organization in Organizations.
When you create a resource data sync, if you choose one of the Organizations * options, then Systems Manager automatically enables all OpsData sources in the * selected Amazon Web Services Regions for all Amazon Web Services accounts in * your organization (or in the selected organization units). For more information, * see About * multiple account and Region resource data syncs in the Amazon Web * Services Systems Manager User Guide.
*/ inline bool GetEnableAllOpsDataSources() const{ return m_enableAllOpsDataSources; } /** *When you create a resource data sync, if you choose one of the Organizations * options, then Systems Manager automatically enables all OpsData sources in the * selected Amazon Web Services Regions for all Amazon Web Services accounts in * your organization (or in the selected organization units). For more information, * see About * multiple account and Region resource data syncs in the Amazon Web * Services Systems Manager User Guide.
*/ inline bool EnableAllOpsDataSourcesHasBeenSet() const { return m_enableAllOpsDataSourcesHasBeenSet; } /** *When you create a resource data sync, if you choose one of the Organizations * options, then Systems Manager automatically enables all OpsData sources in the * selected Amazon Web Services Regions for all Amazon Web Services accounts in * your organization (or in the selected organization units). For more information, * see About * multiple account and Region resource data syncs in the Amazon Web * Services Systems Manager User Guide.
*/ inline void SetEnableAllOpsDataSources(bool value) { m_enableAllOpsDataSourcesHasBeenSet = true; m_enableAllOpsDataSources = value; } /** *When you create a resource data sync, if you choose one of the Organizations * options, then Systems Manager automatically enables all OpsData sources in the * selected Amazon Web Services Regions for all Amazon Web Services accounts in * your organization (or in the selected organization units). For more information, * see About * multiple account and Region resource data syncs in the Amazon Web * Services Systems Manager User Guide.
*/ inline ResourceDataSyncSourceWithState& WithEnableAllOpsDataSources(bool value) { SetEnableAllOpsDataSources(value); return *this;} private: Aws::String m_sourceType; bool m_sourceTypeHasBeenSet = false; ResourceDataSyncAwsOrganizationsSource m_awsOrganizationsSource; bool m_awsOrganizationsSourceHasBeenSet = false; Aws::Vector