/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Http { class HttpClient; class HttpClientFactory; } // namespace Http namespace Utils { template< typename R, typename E> class Outcome; namespace Threading { class Executor; } // namespace Threading } // namespace Utils namespace Auth { class AWSCredentials; class AWSCredentialsProvider; } // namespace Auth namespace Client { class RetryStrategy; } // namespace Client namespace CostExplorer { namespace Model { class CreateCostCategoryDefinitionRequest; class DeleteCostCategoryDefinitionRequest; class DescribeCostCategoryDefinitionRequest; class GetCostAndUsageRequest; class GetCostAndUsageWithResourcesRequest; class GetCostForecastRequest; class GetDimensionValuesRequest; class GetReservationCoverageRequest; class GetReservationPurchaseRecommendationRequest; class GetReservationUtilizationRequest; class GetRightsizingRecommendationRequest; class GetSavingsPlansCoverageRequest; class GetSavingsPlansPurchaseRecommendationRequest; class GetSavingsPlansUtilizationRequest; class GetSavingsPlansUtilizationDetailsRequest; class GetTagsRequest; class GetUsageForecastRequest; class ListCostCategoryDefinitionsRequest; class UpdateCostCategoryDefinitionRequest; typedef Aws::Utils::Outcome CreateCostCategoryDefinitionOutcome; typedef Aws::Utils::Outcome DeleteCostCategoryDefinitionOutcome; typedef Aws::Utils::Outcome DescribeCostCategoryDefinitionOutcome; typedef Aws::Utils::Outcome GetCostAndUsageOutcome; typedef Aws::Utils::Outcome GetCostAndUsageWithResourcesOutcome; typedef Aws::Utils::Outcome GetCostForecastOutcome; typedef Aws::Utils::Outcome GetDimensionValuesOutcome; typedef Aws::Utils::Outcome GetReservationCoverageOutcome; typedef Aws::Utils::Outcome GetReservationPurchaseRecommendationOutcome; typedef Aws::Utils::Outcome GetReservationUtilizationOutcome; typedef Aws::Utils::Outcome GetRightsizingRecommendationOutcome; typedef Aws::Utils::Outcome GetSavingsPlansCoverageOutcome; typedef Aws::Utils::Outcome GetSavingsPlansPurchaseRecommendationOutcome; typedef Aws::Utils::Outcome GetSavingsPlansUtilizationOutcome; typedef Aws::Utils::Outcome GetSavingsPlansUtilizationDetailsOutcome; typedef Aws::Utils::Outcome GetTagsOutcome; typedef Aws::Utils::Outcome GetUsageForecastOutcome; typedef Aws::Utils::Outcome ListCostCategoryDefinitionsOutcome; typedef Aws::Utils::Outcome UpdateCostCategoryDefinitionOutcome; typedef std::future CreateCostCategoryDefinitionOutcomeCallable; typedef std::future DeleteCostCategoryDefinitionOutcomeCallable; typedef std::future DescribeCostCategoryDefinitionOutcomeCallable; typedef std::future GetCostAndUsageOutcomeCallable; typedef std::future GetCostAndUsageWithResourcesOutcomeCallable; typedef std::future GetCostForecastOutcomeCallable; typedef std::future GetDimensionValuesOutcomeCallable; typedef std::future GetReservationCoverageOutcomeCallable; typedef std::future GetReservationPurchaseRecommendationOutcomeCallable; typedef std::future GetReservationUtilizationOutcomeCallable; typedef std::future GetRightsizingRecommendationOutcomeCallable; typedef std::future GetSavingsPlansCoverageOutcomeCallable; typedef std::future GetSavingsPlansPurchaseRecommendationOutcomeCallable; typedef std::future GetSavingsPlansUtilizationOutcomeCallable; typedef std::future GetSavingsPlansUtilizationDetailsOutcomeCallable; typedef std::future GetTagsOutcomeCallable; typedef std::future GetUsageForecastOutcomeCallable; typedef std::future ListCostCategoryDefinitionsOutcomeCallable; typedef std::future UpdateCostCategoryDefinitionOutcomeCallable; } // namespace Model class CostExplorerClient; typedef std::function&) > CreateCostCategoryDefinitionResponseReceivedHandler; typedef std::function&) > DeleteCostCategoryDefinitionResponseReceivedHandler; typedef std::function&) > DescribeCostCategoryDefinitionResponseReceivedHandler; typedef std::function&) > GetCostAndUsageResponseReceivedHandler; typedef std::function&) > GetCostAndUsageWithResourcesResponseReceivedHandler; typedef std::function&) > GetCostForecastResponseReceivedHandler; typedef std::function&) > GetDimensionValuesResponseReceivedHandler; typedef std::function&) > GetReservationCoverageResponseReceivedHandler; typedef std::function&) > GetReservationPurchaseRecommendationResponseReceivedHandler; typedef std::function&) > GetReservationUtilizationResponseReceivedHandler; typedef std::function&) > GetRightsizingRecommendationResponseReceivedHandler; typedef std::function&) > GetSavingsPlansCoverageResponseReceivedHandler; typedef std::function&) > GetSavingsPlansPurchaseRecommendationResponseReceivedHandler; typedef std::function&) > GetSavingsPlansUtilizationResponseReceivedHandler; typedef std::function&) > GetSavingsPlansUtilizationDetailsResponseReceivedHandler; typedef std::function&) > GetTagsResponseReceivedHandler; typedef std::function&) > GetUsageForecastResponseReceivedHandler; typedef std::function&) > ListCostCategoryDefinitionsResponseReceivedHandler; typedef std::function&) > UpdateCostCategoryDefinitionResponseReceivedHandler; /** *

The Cost Explorer API enables you to programmatically query your cost and * usage data. You can query for aggregated data such as total monthly costs or * total daily usage. You can also query for granular data, such as the number of * daily write operations for Amazon DynamoDB database tables in your production * environment.

Service Endpoint

The Cost Explorer API provides the * following endpoint:

  • * https://ce.us-east-1.amazonaws.com

For * information about costs associated with the Cost Explorer API, see AWS Cost Management * Pricing.

*/ class AWS_COSTEXPLORER_API CostExplorerClient : public Aws::Client::AWSJsonClient { public: typedef Aws::Client::AWSJsonClient BASECLASS; /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ CostExplorerClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ CostExplorerClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ CostExplorerClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); virtual ~CostExplorerClient(); /** *

Creates a new Cost Category with the requested name and rules.

See * Also:

AWS * API Reference

*/ virtual Model::CreateCostCategoryDefinitionOutcome CreateCostCategoryDefinition(const Model::CreateCostCategoryDefinitionRequest& request) const; /** *

Creates a new Cost Category with the requested name and rules.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateCostCategoryDefinitionOutcomeCallable CreateCostCategoryDefinitionCallable(const Model::CreateCostCategoryDefinitionRequest& request) const; /** *

Creates a new Cost Category with the requested name and rules.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateCostCategoryDefinitionAsync(const Model::CreateCostCategoryDefinitionRequest& request, const CreateCostCategoryDefinitionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes a Cost Category. Expenses from this month going forward will no * longer be categorized with this Cost Category.

See Also:

AWS * API Reference

*/ virtual Model::DeleteCostCategoryDefinitionOutcome DeleteCostCategoryDefinition(const Model::DeleteCostCategoryDefinitionRequest& request) const; /** *

Deletes a Cost Category. Expenses from this month going forward will no * longer be categorized with this Cost Category.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteCostCategoryDefinitionOutcomeCallable DeleteCostCategoryDefinitionCallable(const Model::DeleteCostCategoryDefinitionRequest& request) const; /** *

Deletes a Cost Category. Expenses from this month going forward will no * longer be categorized with this Cost Category.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteCostCategoryDefinitionAsync(const Model::DeleteCostCategoryDefinitionRequest& request, const DeleteCostCategoryDefinitionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns the name, ARN, rules, definition, and effective dates of a Cost * Category that's defined in the account.

You have the option to use * EffectiveOn to return a Cost Category that is active on a specific * date. If there is no EffectiveOn specified, you’ll see a Cost * Category that is effective on the current date. If Cost Category is still * effective, EffectiveEnd is omitted in the response.

See * Also:

AWS * API Reference

*/ virtual Model::DescribeCostCategoryDefinitionOutcome DescribeCostCategoryDefinition(const Model::DescribeCostCategoryDefinitionRequest& request) const; /** *

Returns the name, ARN, rules, definition, and effective dates of a Cost * Category that's defined in the account.

You have the option to use * EffectiveOn to return a Cost Category that is active on a specific * date. If there is no EffectiveOn specified, you’ll see a Cost * Category that is effective on the current date. If Cost Category is still * effective, EffectiveEnd is omitted in the response.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeCostCategoryDefinitionOutcomeCallable DescribeCostCategoryDefinitionCallable(const Model::DescribeCostCategoryDefinitionRequest& request) const; /** *

Returns the name, ARN, rules, definition, and effective dates of a Cost * Category that's defined in the account.

You have the option to use * EffectiveOn to return a Cost Category that is active on a specific * date. If there is no EffectiveOn specified, you’ll see a Cost * Category that is effective on the current date. If Cost Category is still * effective, EffectiveEnd is omitted in the response.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeCostCategoryDefinitionAsync(const Model::DescribeCostCategoryDefinitionRequest& request, const DescribeCostCategoryDefinitionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves cost and usage metrics for your account. You can specify which cost * and usage-related metric, such as BlendedCosts or * UsageQuantity, that you want the request to return. You can also * filter and group your data by various dimensions, such as SERVICE * or AZ, in a specific time range. For a complete list of valid * dimensions, see the GetDimensionValues * operation. Master accounts in an organization in AWS Organizations have access * to all member accounts.

See Also:

AWS * API Reference

*/ virtual Model::GetCostAndUsageOutcome GetCostAndUsage(const Model::GetCostAndUsageRequest& request) const; /** *

Retrieves cost and usage metrics for your account. You can specify which cost * and usage-related metric, such as BlendedCosts or * UsageQuantity, that you want the request to return. You can also * filter and group your data by various dimensions, such as SERVICE * or AZ, in a specific time range. For a complete list of valid * dimensions, see the GetDimensionValues * operation. Master accounts in an organization in AWS Organizations have access * to all member accounts.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetCostAndUsageOutcomeCallable GetCostAndUsageCallable(const Model::GetCostAndUsageRequest& request) const; /** *

Retrieves cost and usage metrics for your account. You can specify which cost * and usage-related metric, such as BlendedCosts or * UsageQuantity, that you want the request to return. You can also * filter and group your data by various dimensions, such as SERVICE * or AZ, in a specific time range. For a complete list of valid * dimensions, see the GetDimensionValues * operation. Master accounts in an organization in AWS Organizations have access * to all member accounts.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetCostAndUsageAsync(const Model::GetCostAndUsageRequest& request, const GetCostAndUsageResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves cost and usage metrics with resources for your account. You can * specify which cost and usage-related metric, such as BlendedCosts * or UsageQuantity, that you want the request to return. You can also * filter and group your data by various dimensions, such as SERVICE * or AZ, in a specific time range. For a complete list of valid * dimensions, see the GetDimensionValues * operation. Master accounts in an organization in AWS Organizations have access * to all member accounts. This API is currently available for the Amazon Elastic * Compute Cloud – Compute service only.

This is an opt-in only * feature. You can enable this feature from the Cost Explorer Settings page. For * information on how to access the Settings page, see Controlling * Access for Cost Explorer in the AWS Billing and Cost Management User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::GetCostAndUsageWithResourcesOutcome GetCostAndUsageWithResources(const Model::GetCostAndUsageWithResourcesRequest& request) const; /** *

Retrieves cost and usage metrics with resources for your account. You can * specify which cost and usage-related metric, such as BlendedCosts * or UsageQuantity, that you want the request to return. You can also * filter and group your data by various dimensions, such as SERVICE * or AZ, in a specific time range. For a complete list of valid * dimensions, see the GetDimensionValues * operation. Master accounts in an organization in AWS Organizations have access * to all member accounts. This API is currently available for the Amazon Elastic * Compute Cloud – Compute service only.

This is an opt-in only * feature. You can enable this feature from the Cost Explorer Settings page. For * information on how to access the Settings page, see Controlling * Access for Cost Explorer in the AWS Billing and Cost Management User * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetCostAndUsageWithResourcesOutcomeCallable GetCostAndUsageWithResourcesCallable(const Model::GetCostAndUsageWithResourcesRequest& request) const; /** *

Retrieves cost and usage metrics with resources for your account. You can * specify which cost and usage-related metric, such as BlendedCosts * or UsageQuantity, that you want the request to return. You can also * filter and group your data by various dimensions, such as SERVICE * or AZ, in a specific time range. For a complete list of valid * dimensions, see the GetDimensionValues * operation. Master accounts in an organization in AWS Organizations have access * to all member accounts. This API is currently available for the Amazon Elastic * Compute Cloud – Compute service only.

This is an opt-in only * feature. You can enable this feature from the Cost Explorer Settings page. For * information on how to access the Settings page, see Controlling * Access for Cost Explorer in the AWS Billing and Cost Management User * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetCostAndUsageWithResourcesAsync(const Model::GetCostAndUsageWithResourcesRequest& request, const GetCostAndUsageWithResourcesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves a forecast for how much Amazon Web Services predicts that you will * spend over the forecast time period that you select, based on your past costs. *

See Also:

AWS * API Reference

*/ virtual Model::GetCostForecastOutcome GetCostForecast(const Model::GetCostForecastRequest& request) const; /** *

Retrieves a forecast for how much Amazon Web Services predicts that you will * spend over the forecast time period that you select, based on your past costs. *

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetCostForecastOutcomeCallable GetCostForecastCallable(const Model::GetCostForecastRequest& request) const; /** *

Retrieves a forecast for how much Amazon Web Services predicts that you will * spend over the forecast time period that you select, based on your past costs. *

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetCostForecastAsync(const Model::GetCostForecastRequest& request, const GetCostForecastResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves all available filter values for a specified filter over a period of * time. You can search the dimension values for an arbitrary string. *

See Also:

AWS * API Reference

*/ virtual Model::GetDimensionValuesOutcome GetDimensionValues(const Model::GetDimensionValuesRequest& request) const; /** *

Retrieves all available filter values for a specified filter over a period of * time. You can search the dimension values for an arbitrary string. *

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetDimensionValuesOutcomeCallable GetDimensionValuesCallable(const Model::GetDimensionValuesRequest& request) const; /** *

Retrieves all available filter values for a specified filter over a period of * time. You can search the dimension values for an arbitrary string. *

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetDimensionValuesAsync(const Model::GetDimensionValuesRequest& request, const GetDimensionValuesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves the reservation coverage for your account. This enables you to see * how much of your Amazon Elastic Compute Cloud, Amazon ElastiCache, Amazon * Relational Database Service, or Amazon Redshift usage is covered by a * reservation. An organization's master account can see the coverage of the * associated member accounts. This supports dimensions, Cost Categories, and * nested expressions. For any time period, you can filter data about reservation * usage by the following dimensions:

  • AZ

  • *

    CACHE_ENGINE

  • DATABASE_ENGINE

  • *

    DEPLOYMENT_OPTION

  • INSTANCE_TYPE

  • *

    LINKED_ACCOUNT

  • OPERATING_SYSTEM

  • *

    PLATFORM

  • REGION

  • SERVICE

  • *

    TAG

  • TENANCY

To determine valid values * for a dimension, use the GetDimensionValues operation. *

See Also:

AWS * API Reference

*/ virtual Model::GetReservationCoverageOutcome GetReservationCoverage(const Model::GetReservationCoverageRequest& request) const; /** *

Retrieves the reservation coverage for your account. This enables you to see * how much of your Amazon Elastic Compute Cloud, Amazon ElastiCache, Amazon * Relational Database Service, or Amazon Redshift usage is covered by a * reservation. An organization's master account can see the coverage of the * associated member accounts. This supports dimensions, Cost Categories, and * nested expressions. For any time period, you can filter data about reservation * usage by the following dimensions:

  • AZ

  • *

    CACHE_ENGINE

  • DATABASE_ENGINE

  • *

    DEPLOYMENT_OPTION

  • INSTANCE_TYPE

  • *

    LINKED_ACCOUNT

  • OPERATING_SYSTEM

  • *

    PLATFORM

  • REGION

  • SERVICE

  • *

    TAG

  • TENANCY

To determine valid values * for a dimension, use the GetDimensionValues operation. *

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetReservationCoverageOutcomeCallable GetReservationCoverageCallable(const Model::GetReservationCoverageRequest& request) const; /** *

Retrieves the reservation coverage for your account. This enables you to see * how much of your Amazon Elastic Compute Cloud, Amazon ElastiCache, Amazon * Relational Database Service, or Amazon Redshift usage is covered by a * reservation. An organization's master account can see the coverage of the * associated member accounts. This supports dimensions, Cost Categories, and * nested expressions. For any time period, you can filter data about reservation * usage by the following dimensions:

  • AZ

  • *

    CACHE_ENGINE

  • DATABASE_ENGINE

  • *

    DEPLOYMENT_OPTION

  • INSTANCE_TYPE

  • *

    LINKED_ACCOUNT

  • OPERATING_SYSTEM

  • *

    PLATFORM

  • REGION

  • SERVICE

  • *

    TAG

  • TENANCY

To determine valid values * for a dimension, use the GetDimensionValues operation. *

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetReservationCoverageAsync(const Model::GetReservationCoverageRequest& request, const GetReservationCoverageResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Gets recommendations for which reservations to purchase. These * recommendations could help you reduce your costs. Reservations provide a * discounted hourly rate (up to 75%) compared to On-Demand pricing.

AWS * generates your recommendations by identifying your On-Demand usage during a * specific time period and collecting your usage into categories that are eligible * for a reservation. After AWS has these categories, it simulates every * combination of reservations in each category of usage to identify the best * number of each type of RI to purchase to maximize your estimated savings.

*

For example, AWS automatically aggregates your Amazon EC2 Linux, shared * tenancy, and c4 family usage in the US West (Oregon) Region and recommends that * you buy size-flexible regional reservations to apply to the c4 family usage. AWS * recommends the smallest size instance in an instance family. This makes it * easier to purchase a size-flexible RI. AWS also shows the equal number of * normalized units so that you can purchase any instance size that you want. For * this example, your RI recommendation would be for c4.large because * that is the smallest size instance in the c4 instance family.

See * Also:

AWS * API Reference

*/ virtual Model::GetReservationPurchaseRecommendationOutcome GetReservationPurchaseRecommendation(const Model::GetReservationPurchaseRecommendationRequest& request) const; /** *

Gets recommendations for which reservations to purchase. These * recommendations could help you reduce your costs. Reservations provide a * discounted hourly rate (up to 75%) compared to On-Demand pricing.

AWS * generates your recommendations by identifying your On-Demand usage during a * specific time period and collecting your usage into categories that are eligible * for a reservation. After AWS has these categories, it simulates every * combination of reservations in each category of usage to identify the best * number of each type of RI to purchase to maximize your estimated savings.

*

For example, AWS automatically aggregates your Amazon EC2 Linux, shared * tenancy, and c4 family usage in the US West (Oregon) Region and recommends that * you buy size-flexible regional reservations to apply to the c4 family usage. AWS * recommends the smallest size instance in an instance family. This makes it * easier to purchase a size-flexible RI. AWS also shows the equal number of * normalized units so that you can purchase any instance size that you want. For * this example, your RI recommendation would be for c4.large because * that is the smallest size instance in the c4 instance family.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetReservationPurchaseRecommendationOutcomeCallable GetReservationPurchaseRecommendationCallable(const Model::GetReservationPurchaseRecommendationRequest& request) const; /** *

Gets recommendations for which reservations to purchase. These * recommendations could help you reduce your costs. Reservations provide a * discounted hourly rate (up to 75%) compared to On-Demand pricing.

AWS * generates your recommendations by identifying your On-Demand usage during a * specific time period and collecting your usage into categories that are eligible * for a reservation. After AWS has these categories, it simulates every * combination of reservations in each category of usage to identify the best * number of each type of RI to purchase to maximize your estimated savings.

*

For example, AWS automatically aggregates your Amazon EC2 Linux, shared * tenancy, and c4 family usage in the US West (Oregon) Region and recommends that * you buy size-flexible regional reservations to apply to the c4 family usage. AWS * recommends the smallest size instance in an instance family. This makes it * easier to purchase a size-flexible RI. AWS also shows the equal number of * normalized units so that you can purchase any instance size that you want. For * this example, your RI recommendation would be for c4.large because * that is the smallest size instance in the c4 instance family.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetReservationPurchaseRecommendationAsync(const Model::GetReservationPurchaseRecommendationRequest& request, const GetReservationPurchaseRecommendationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves the reservation utilization for your account. Master accounts in an * organization have access to member accounts. You can filter data by dimensions * in a time period. You can use GetDimensionValues to determine the * possible dimension values. Currently, you can group only by * SUBSCRIPTION_ID.

See Also:

AWS * API Reference

*/ virtual Model::GetReservationUtilizationOutcome GetReservationUtilization(const Model::GetReservationUtilizationRequest& request) const; /** *

Retrieves the reservation utilization for your account. Master accounts in an * organization have access to member accounts. You can filter data by dimensions * in a time period. You can use GetDimensionValues to determine the * possible dimension values. Currently, you can group only by * SUBSCRIPTION_ID.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetReservationUtilizationOutcomeCallable GetReservationUtilizationCallable(const Model::GetReservationUtilizationRequest& request) const; /** *

Retrieves the reservation utilization for your account. Master accounts in an * organization have access to member accounts. You can filter data by dimensions * in a time period. You can use GetDimensionValues to determine the * possible dimension values. Currently, you can group only by * SUBSCRIPTION_ID.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetReservationUtilizationAsync(const Model::GetReservationUtilizationRequest& request, const GetReservationUtilizationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates recommendations that help you save cost by identifying idle and * underutilized Amazon EC2 instances.

Recommendations are generated to * either downsize or terminate instances, along with providing savings detail and * metrics. For details on calculation and function, see Optimizing * Your Cost with Rightsizing Recommendations in the AWS Billing and Cost * Management User Guide.

See Also:

AWS * API Reference

*/ virtual Model::GetRightsizingRecommendationOutcome GetRightsizingRecommendation(const Model::GetRightsizingRecommendationRequest& request) const; /** *

Creates recommendations that help you save cost by identifying idle and * underutilized Amazon EC2 instances.

Recommendations are generated to * either downsize or terminate instances, along with providing savings detail and * metrics. For details on calculation and function, see Optimizing * Your Cost with Rightsizing Recommendations in the AWS Billing and Cost * Management User Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetRightsizingRecommendationOutcomeCallable GetRightsizingRecommendationCallable(const Model::GetRightsizingRecommendationRequest& request) const; /** *

Creates recommendations that help you save cost by identifying idle and * underutilized Amazon EC2 instances.

Recommendations are generated to * either downsize or terminate instances, along with providing savings detail and * metrics. For details on calculation and function, see Optimizing * Your Cost with Rightsizing Recommendations in the AWS Billing and Cost * Management User Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetRightsizingRecommendationAsync(const Model::GetRightsizingRecommendationRequest& request, const GetRightsizingRecommendationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves the Savings Plans covered for your account. This enables you to see * how much of your cost is covered by a Savings Plan. An organization’s master * account can see the coverage of the associated member accounts. This supports * dimensions, Cost Categories, and nested expressions. For any time period, you * can filter data for Savings Plans usage with the following dimensions:

    *
  • LINKED_ACCOUNT

  • REGION *

  • SERVICE

  • * INSTANCE_FAMILY

To determine valid values for a * dimension, use the GetDimensionValues operation.

See * Also:

AWS * API Reference

*/ virtual Model::GetSavingsPlansCoverageOutcome GetSavingsPlansCoverage(const Model::GetSavingsPlansCoverageRequest& request) const; /** *

Retrieves the Savings Plans covered for your account. This enables you to see * how much of your cost is covered by a Savings Plan. An organization’s master * account can see the coverage of the associated member accounts. This supports * dimensions, Cost Categories, and nested expressions. For any time period, you * can filter data for Savings Plans usage with the following dimensions:

    *
  • LINKED_ACCOUNT

  • REGION *

  • SERVICE

  • * INSTANCE_FAMILY

To determine valid values for a * dimension, use the GetDimensionValues operation.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetSavingsPlansCoverageOutcomeCallable GetSavingsPlansCoverageCallable(const Model::GetSavingsPlansCoverageRequest& request) const; /** *

Retrieves the Savings Plans covered for your account. This enables you to see * how much of your cost is covered by a Savings Plan. An organization’s master * account can see the coverage of the associated member accounts. This supports * dimensions, Cost Categories, and nested expressions. For any time period, you * can filter data for Savings Plans usage with the following dimensions:

    *
  • LINKED_ACCOUNT

  • REGION *

  • SERVICE

  • * INSTANCE_FAMILY

To determine valid values for a * dimension, use the GetDimensionValues operation.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetSavingsPlansCoverageAsync(const Model::GetSavingsPlansCoverageRequest& request, const GetSavingsPlansCoverageResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves your request parameters, Savings Plan Recommendations Summary and * Details.

See Also:

AWS * API Reference

*/ virtual Model::GetSavingsPlansPurchaseRecommendationOutcome GetSavingsPlansPurchaseRecommendation(const Model::GetSavingsPlansPurchaseRecommendationRequest& request) const; /** *

Retrieves your request parameters, Savings Plan Recommendations Summary and * Details.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetSavingsPlansPurchaseRecommendationOutcomeCallable GetSavingsPlansPurchaseRecommendationCallable(const Model::GetSavingsPlansPurchaseRecommendationRequest& request) const; /** *

Retrieves your request parameters, Savings Plan Recommendations Summary and * Details.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetSavingsPlansPurchaseRecommendationAsync(const Model::GetSavingsPlansPurchaseRecommendationRequest& request, const GetSavingsPlansPurchaseRecommendationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves the Savings Plans utilization for your account across date ranges * with daily or monthly granularity. Master accounts in an organization have * access to member accounts. You can use GetDimensionValues in * SAVINGS_PLANS to determine the possible dimension values.

*

You cannot group by any dimension values for * GetSavingsPlansUtilization.

See Also:

AWS * API Reference

*/ virtual Model::GetSavingsPlansUtilizationOutcome GetSavingsPlansUtilization(const Model::GetSavingsPlansUtilizationRequest& request) const; /** *

Retrieves the Savings Plans utilization for your account across date ranges * with daily or monthly granularity. Master accounts in an organization have * access to member accounts. You can use GetDimensionValues in * SAVINGS_PLANS to determine the possible dimension values.

*

You cannot group by any dimension values for * GetSavingsPlansUtilization.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetSavingsPlansUtilizationOutcomeCallable GetSavingsPlansUtilizationCallable(const Model::GetSavingsPlansUtilizationRequest& request) const; /** *

Retrieves the Savings Plans utilization for your account across date ranges * with daily or monthly granularity. Master accounts in an organization have * access to member accounts. You can use GetDimensionValues in * SAVINGS_PLANS to determine the possible dimension values.

*

You cannot group by any dimension values for * GetSavingsPlansUtilization.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetSavingsPlansUtilizationAsync(const Model::GetSavingsPlansUtilizationRequest& request, const GetSavingsPlansUtilizationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves attribute data along with aggregate utilization and savings data * for a given time period. This doesn't support granular or grouped data * (daily/monthly) in response. You can't retrieve data by dates in a single * response similar to GetSavingsPlanUtilization, but you have the * option to make multiple calls to GetSavingsPlanUtilizationDetails * by providing individual dates. You can use GetDimensionValues in * SAVINGS_PLANS to determine the possible dimension values.

*

GetSavingsPlanUtilizationDetails internally groups data * by SavingsPlansArn.

See Also:

AWS * API Reference

*/ virtual Model::GetSavingsPlansUtilizationDetailsOutcome GetSavingsPlansUtilizationDetails(const Model::GetSavingsPlansUtilizationDetailsRequest& request) const; /** *

Retrieves attribute data along with aggregate utilization and savings data * for a given time period. This doesn't support granular or grouped data * (daily/monthly) in response. You can't retrieve data by dates in a single * response similar to GetSavingsPlanUtilization, but you have the * option to make multiple calls to GetSavingsPlanUtilizationDetails * by providing individual dates. You can use GetDimensionValues in * SAVINGS_PLANS to determine the possible dimension values.

*

GetSavingsPlanUtilizationDetails internally groups data * by SavingsPlansArn.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetSavingsPlansUtilizationDetailsOutcomeCallable GetSavingsPlansUtilizationDetailsCallable(const Model::GetSavingsPlansUtilizationDetailsRequest& request) const; /** *

Retrieves attribute data along with aggregate utilization and savings data * for a given time period. This doesn't support granular or grouped data * (daily/monthly) in response. You can't retrieve data by dates in a single * response similar to GetSavingsPlanUtilization, but you have the * option to make multiple calls to GetSavingsPlanUtilizationDetails * by providing individual dates. You can use GetDimensionValues in * SAVINGS_PLANS to determine the possible dimension values.

*

GetSavingsPlanUtilizationDetails internally groups data * by SavingsPlansArn.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetSavingsPlansUtilizationDetailsAsync(const Model::GetSavingsPlansUtilizationDetailsRequest& request, const GetSavingsPlansUtilizationDetailsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Queries for available tag keys and tag values for a specified period. You can * search the tag values for an arbitrary string.

See Also:

AWS API * Reference

*/ virtual Model::GetTagsOutcome GetTags(const Model::GetTagsRequest& request) const; /** *

Queries for available tag keys and tag values for a specified period. You can * search the tag values for an arbitrary string.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetTagsOutcomeCallable GetTagsCallable(const Model::GetTagsRequest& request) const; /** *

Queries for available tag keys and tag values for a specified period. You can * search the tag values for an arbitrary string.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetTagsAsync(const Model::GetTagsRequest& request, const GetTagsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves a forecast for how much Amazon Web Services predicts that you will * use over the forecast time period that you select, based on your past usage. *

See Also:

AWS * API Reference

*/ virtual Model::GetUsageForecastOutcome GetUsageForecast(const Model::GetUsageForecastRequest& request) const; /** *

Retrieves a forecast for how much Amazon Web Services predicts that you will * use over the forecast time period that you select, based on your past usage. *

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetUsageForecastOutcomeCallable GetUsageForecastCallable(const Model::GetUsageForecastRequest& request) const; /** *

Retrieves a forecast for how much Amazon Web Services predicts that you will * use over the forecast time period that you select, based on your past usage. *

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetUsageForecastAsync(const Model::GetUsageForecastRequest& request, const GetUsageForecastResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns the name, ARN, NumberOfRules and effective dates of all * Cost Categories defined in the account. You have the option to use * EffectiveOn to return a list of Cost Categories that were active on * a specific date. If there is no EffectiveOn specified, you’ll see * Cost Categories that are effective on the current date. If Cost Category is * still effective, EffectiveEnd is omitted in the response. * ListCostCategoryDefinitions supports pagination. The request can * have a MaxResults range up to 100.

See Also:

AWS * API Reference

*/ virtual Model::ListCostCategoryDefinitionsOutcome ListCostCategoryDefinitions(const Model::ListCostCategoryDefinitionsRequest& request) const; /** *

Returns the name, ARN, NumberOfRules and effective dates of all * Cost Categories defined in the account. You have the option to use * EffectiveOn to return a list of Cost Categories that were active on * a specific date. If there is no EffectiveOn specified, you’ll see * Cost Categories that are effective on the current date. If Cost Category is * still effective, EffectiveEnd is omitted in the response. * ListCostCategoryDefinitions supports pagination. The request can * have a MaxResults range up to 100.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListCostCategoryDefinitionsOutcomeCallable ListCostCategoryDefinitionsCallable(const Model::ListCostCategoryDefinitionsRequest& request) const; /** *

Returns the name, ARN, NumberOfRules and effective dates of all * Cost Categories defined in the account. You have the option to use * EffectiveOn to return a list of Cost Categories that were active on * a specific date. If there is no EffectiveOn specified, you’ll see * Cost Categories that are effective on the current date. If Cost Category is * still effective, EffectiveEnd is omitted in the response. * ListCostCategoryDefinitions supports pagination. The request can * have a MaxResults range up to 100.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListCostCategoryDefinitionsAsync(const Model::ListCostCategoryDefinitionsRequest& request, const ListCostCategoryDefinitionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Updates an existing Cost Category. Changes made to the Cost Category rules * will be used to categorize the current month’s expenses and future expenses. * This won’t change categorization for the previous months.

See * Also:

AWS * API Reference

*/ virtual Model::UpdateCostCategoryDefinitionOutcome UpdateCostCategoryDefinition(const Model::UpdateCostCategoryDefinitionRequest& request) const; /** *

Updates an existing Cost Category. Changes made to the Cost Category rules * will be used to categorize the current month’s expenses and future expenses. * This won’t change categorization for the previous months.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateCostCategoryDefinitionOutcomeCallable UpdateCostCategoryDefinitionCallable(const Model::UpdateCostCategoryDefinitionRequest& request) const; /** *

Updates an existing Cost Category. Changes made to the Cost Category rules * will be used to categorize the current month’s expenses and future expenses. * This won’t change categorization for the previous months.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateCostCategoryDefinitionAsync(const Model::UpdateCostCategoryDefinitionRequest& request, const UpdateCostCategoryDefinitionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; void OverrideEndpoint(const Aws::String& endpoint); private: void init(const Aws::Client::ClientConfiguration& clientConfiguration); void CreateCostCategoryDefinitionAsyncHelper(const Model::CreateCostCategoryDefinitionRequest& request, const CreateCostCategoryDefinitionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteCostCategoryDefinitionAsyncHelper(const Model::DeleteCostCategoryDefinitionRequest& request, const DeleteCostCategoryDefinitionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeCostCategoryDefinitionAsyncHelper(const Model::DescribeCostCategoryDefinitionRequest& request, const DescribeCostCategoryDefinitionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetCostAndUsageAsyncHelper(const Model::GetCostAndUsageRequest& request, const GetCostAndUsageResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetCostAndUsageWithResourcesAsyncHelper(const Model::GetCostAndUsageWithResourcesRequest& request, const GetCostAndUsageWithResourcesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetCostForecastAsyncHelper(const Model::GetCostForecastRequest& request, const GetCostForecastResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetDimensionValuesAsyncHelper(const Model::GetDimensionValuesRequest& request, const GetDimensionValuesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetReservationCoverageAsyncHelper(const Model::GetReservationCoverageRequest& request, const GetReservationCoverageResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetReservationPurchaseRecommendationAsyncHelper(const Model::GetReservationPurchaseRecommendationRequest& request, const GetReservationPurchaseRecommendationResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetReservationUtilizationAsyncHelper(const Model::GetReservationUtilizationRequest& request, const GetReservationUtilizationResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetRightsizingRecommendationAsyncHelper(const Model::GetRightsizingRecommendationRequest& request, const GetRightsizingRecommendationResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetSavingsPlansCoverageAsyncHelper(const Model::GetSavingsPlansCoverageRequest& request, const GetSavingsPlansCoverageResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetSavingsPlansPurchaseRecommendationAsyncHelper(const Model::GetSavingsPlansPurchaseRecommendationRequest& request, const GetSavingsPlansPurchaseRecommendationResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetSavingsPlansUtilizationAsyncHelper(const Model::GetSavingsPlansUtilizationRequest& request, const GetSavingsPlansUtilizationResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetSavingsPlansUtilizationDetailsAsyncHelper(const Model::GetSavingsPlansUtilizationDetailsRequest& request, const GetSavingsPlansUtilizationDetailsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetTagsAsyncHelper(const Model::GetTagsRequest& request, const GetTagsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetUsageForecastAsyncHelper(const Model::GetUsageForecastRequest& request, const GetUsageForecastResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListCostCategoryDefinitionsAsyncHelper(const Model::ListCostCategoryDefinitionsRequest& request, const ListCostCategoryDefinitionsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateCostCategoryDefinitionAsyncHelper(const Model::UpdateCostCategoryDefinitionRequest& request, const UpdateCostCategoryDefinitionResponseReceivedHandler& handler, const std::shared_ptr& context) const; Aws::String m_uri; Aws::String m_configScheme; std::shared_ptr m_executor; }; } // namespace CostExplorer } // namespace Aws