/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Describes the scope of a recommendation preference. Recommendation
* preferences can be created at the organization level (for management accounts of
* an organization only), account level, and resource level. For more information,
* see Activating
* enhanced infrastructure metrics in the Compute Optimizer User
* Guide. You cannot create recommendation preferences for Auto
* Scaling groups at the organization and account levels. You can create
* recommendation preferences for Auto Scaling groups only at the resource level by
* specifying a scope name of ResourceArn
and a scope value of the
* Auto Scaling group Amazon Resource Name (ARN). This will configure the
* preference for all instances that are part of the specified Auto Scaling group.
* You also cannot create recommendation preferences at the resource level for
* instances that are part of an Auto Scaling group. You can create recommendation
* preferences at the resource level only for standalone instances.See Also:
AWS
* API Reference
The name of the scope.
The following scopes are possible:
Organization
- Specifies that the recommendation
* preference applies at the organization level, for all member accounts of an
* organization.
AccountId
- Specifies that the
* recommendation preference applies at the account level, for all resources of a
* given resource type in an account.
ResourceArn
-
* Specifies that the recommendation preference applies at the individual resource
* level.
The name of the scope.
The following scopes are possible:
Organization
- Specifies that the recommendation
* preference applies at the organization level, for all member accounts of an
* organization.
AccountId
- Specifies that the
* recommendation preference applies at the account level, for all resources of a
* given resource type in an account.
ResourceArn
-
* Specifies that the recommendation preference applies at the individual resource
* level.
The name of the scope.
The following scopes are possible:
Organization
- Specifies that the recommendation
* preference applies at the organization level, for all member accounts of an
* organization.
AccountId
- Specifies that the
* recommendation preference applies at the account level, for all resources of a
* given resource type in an account.
ResourceArn
-
* Specifies that the recommendation preference applies at the individual resource
* level.
The name of the scope.
The following scopes are possible:
Organization
- Specifies that the recommendation
* preference applies at the organization level, for all member accounts of an
* organization.
AccountId
- Specifies that the
* recommendation preference applies at the account level, for all resources of a
* given resource type in an account.
ResourceArn
-
* Specifies that the recommendation preference applies at the individual resource
* level.
The name of the scope.
The following scopes are possible:
Organization
- Specifies that the recommendation
* preference applies at the organization level, for all member accounts of an
* organization.
AccountId
- Specifies that the
* recommendation preference applies at the account level, for all resources of a
* given resource type in an account.
ResourceArn
-
* Specifies that the recommendation preference applies at the individual resource
* level.
The name of the scope.
The following scopes are possible:
Organization
- Specifies that the recommendation
* preference applies at the organization level, for all member accounts of an
* organization.
AccountId
- Specifies that the
* recommendation preference applies at the account level, for all resources of a
* given resource type in an account.
ResourceArn
-
* Specifies that the recommendation preference applies at the individual resource
* level.
The value of the scope.
If you specified the name
of the
* scope as:
Organization
- The value
* must be ALL_ACCOUNTS
.
AccountId
-
* The value
must be a 12-digit Amazon Web Services account ID.
ResourceArn
- The value
must be the
* Amazon Resource Name (ARN) of an EC2 instance or an Auto Scaling group.
Only EC2 instance and Auto Scaling group ARNs are currently * supported.
*/ inline const Aws::String& GetValue() const{ return m_value; } /** *The value of the scope.
If you specified the name
of the
* scope as:
Organization
- The value
* must be ALL_ACCOUNTS
.
AccountId
-
* The value
must be a 12-digit Amazon Web Services account ID.
ResourceArn
- The value
must be the
* Amazon Resource Name (ARN) of an EC2 instance or an Auto Scaling group.
Only EC2 instance and Auto Scaling group ARNs are currently * supported.
*/ inline bool ValueHasBeenSet() const { return m_valueHasBeenSet; } /** *The value of the scope.
If you specified the name
of the
* scope as:
Organization
- The value
* must be ALL_ACCOUNTS
.
AccountId
-
* The value
must be a 12-digit Amazon Web Services account ID.
ResourceArn
- The value
must be the
* Amazon Resource Name (ARN) of an EC2 instance or an Auto Scaling group.
Only EC2 instance and Auto Scaling group ARNs are currently * supported.
*/ inline void SetValue(const Aws::String& value) { m_valueHasBeenSet = true; m_value = value; } /** *The value of the scope.
If you specified the name
of the
* scope as:
Organization
- The value
* must be ALL_ACCOUNTS
.
AccountId
-
* The value
must be a 12-digit Amazon Web Services account ID.
ResourceArn
- The value
must be the
* Amazon Resource Name (ARN) of an EC2 instance or an Auto Scaling group.
Only EC2 instance and Auto Scaling group ARNs are currently * supported.
*/ inline void SetValue(Aws::String&& value) { m_valueHasBeenSet = true; m_value = std::move(value); } /** *The value of the scope.
If you specified the name
of the
* scope as:
Organization
- The value
* must be ALL_ACCOUNTS
.
AccountId
-
* The value
must be a 12-digit Amazon Web Services account ID.
ResourceArn
- The value
must be the
* Amazon Resource Name (ARN) of an EC2 instance or an Auto Scaling group.
Only EC2 instance and Auto Scaling group ARNs are currently * supported.
*/ inline void SetValue(const char* value) { m_valueHasBeenSet = true; m_value.assign(value); } /** *The value of the scope.
If you specified the name
of the
* scope as:
Organization
- The value
* must be ALL_ACCOUNTS
.
AccountId
-
* The value
must be a 12-digit Amazon Web Services account ID.
ResourceArn
- The value
must be the
* Amazon Resource Name (ARN) of an EC2 instance or an Auto Scaling group.
Only EC2 instance and Auto Scaling group ARNs are currently * supported.
*/ inline Scope& WithValue(const Aws::String& value) { SetValue(value); return *this;} /** *The value of the scope.
If you specified the name
of the
* scope as:
Organization
- The value
* must be ALL_ACCOUNTS
.
AccountId
-
* The value
must be a 12-digit Amazon Web Services account ID.
ResourceArn
- The value
must be the
* Amazon Resource Name (ARN) of an EC2 instance or an Auto Scaling group.
Only EC2 instance and Auto Scaling group ARNs are currently * supported.
*/ inline Scope& WithValue(Aws::String&& value) { SetValue(std::move(value)); return *this;} /** *The value of the scope.
If you specified the name
of the
* scope as:
Organization
- The value
* must be ALL_ACCOUNTS
.
AccountId
-
* The value
must be a 12-digit Amazon Web Services account ID.
ResourceArn
- The value
must be the
* Amazon Resource Name (ARN) of an EC2 instance or an Auto Scaling group.
Only EC2 instance and Auto Scaling group ARNs are currently * supported.
*/ inline Scope& WithValue(const char* value) { SetValue(value); return *this;} private: ScopeName m_name; bool m_nameHasBeenSet = false; Aws::String m_value; bool m_valueHasBeenSet = false; }; } // namespace Model } // namespace ComputeOptimizer } // namespace Aws