/** * 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 namespace Aws { namespace CostExplorer { namespace Model { /** */ class GetCostCategoriesRequest : public CostExplorerRequest { public: AWS_COSTEXPLORER_API GetCostCategoriesRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "GetCostCategories"; } AWS_COSTEXPLORER_API Aws::String SerializePayload() const override; AWS_COSTEXPLORER_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The value that you want to search the filter values for.

If you don't * specify a CostCategoryName, SearchString is used to * filter Cost Category names that match the SearchString pattern. If * you specify a CostCategoryName, SearchString is used * to filter Cost Category values that match the SearchString * pattern.

*/ inline const Aws::String& GetSearchString() const{ return m_searchString; } /** *

The value that you want to search the filter values for.

If you don't * specify a CostCategoryName, SearchString is used to * filter Cost Category names that match the SearchString pattern. If * you specify a CostCategoryName, SearchString is used * to filter Cost Category values that match the SearchString * pattern.

*/ inline bool SearchStringHasBeenSet() const { return m_searchStringHasBeenSet; } /** *

The value that you want to search the filter values for.

If you don't * specify a CostCategoryName, SearchString is used to * filter Cost Category names that match the SearchString pattern. If * you specify a CostCategoryName, SearchString is used * to filter Cost Category values that match the SearchString * pattern.

*/ inline void SetSearchString(const Aws::String& value) { m_searchStringHasBeenSet = true; m_searchString = value; } /** *

The value that you want to search the filter values for.

If you don't * specify a CostCategoryName, SearchString is used to * filter Cost Category names that match the SearchString pattern. If * you specify a CostCategoryName, SearchString is used * to filter Cost Category values that match the SearchString * pattern.

*/ inline void SetSearchString(Aws::String&& value) { m_searchStringHasBeenSet = true; m_searchString = std::move(value); } /** *

The value that you want to search the filter values for.

If you don't * specify a CostCategoryName, SearchString is used to * filter Cost Category names that match the SearchString pattern. If * you specify a CostCategoryName, SearchString is used * to filter Cost Category values that match the SearchString * pattern.

*/ inline void SetSearchString(const char* value) { m_searchStringHasBeenSet = true; m_searchString.assign(value); } /** *

The value that you want to search the filter values for.

If you don't * specify a CostCategoryName, SearchString is used to * filter Cost Category names that match the SearchString pattern. If * you specify a CostCategoryName, SearchString is used * to filter Cost Category values that match the SearchString * pattern.

*/ inline GetCostCategoriesRequest& WithSearchString(const Aws::String& value) { SetSearchString(value); return *this;} /** *

The value that you want to search the filter values for.

If you don't * specify a CostCategoryName, SearchString is used to * filter Cost Category names that match the SearchString pattern. If * you specify a CostCategoryName, SearchString is used * to filter Cost Category values that match the SearchString * pattern.

*/ inline GetCostCategoriesRequest& WithSearchString(Aws::String&& value) { SetSearchString(std::move(value)); return *this;} /** *

The value that you want to search the filter values for.

If you don't * specify a CostCategoryName, SearchString is used to * filter Cost Category names that match the SearchString pattern. If * you specify a CostCategoryName, SearchString is used * to filter Cost Category values that match the SearchString * pattern.

*/ inline GetCostCategoriesRequest& WithSearchString(const char* value) { SetSearchString(value); return *this;} inline const DateInterval& GetTimePeriod() const{ return m_timePeriod; } inline bool TimePeriodHasBeenSet() const { return m_timePeriodHasBeenSet; } inline void SetTimePeriod(const DateInterval& value) { m_timePeriodHasBeenSet = true; m_timePeriod = value; } inline void SetTimePeriod(DateInterval&& value) { m_timePeriodHasBeenSet = true; m_timePeriod = std::move(value); } inline GetCostCategoriesRequest& WithTimePeriod(const DateInterval& value) { SetTimePeriod(value); return *this;} inline GetCostCategoriesRequest& WithTimePeriod(DateInterval&& value) { SetTimePeriod(std::move(value)); return *this;} inline const Aws::String& GetCostCategoryName() const{ return m_costCategoryName; } inline bool CostCategoryNameHasBeenSet() const { return m_costCategoryNameHasBeenSet; } inline void SetCostCategoryName(const Aws::String& value) { m_costCategoryNameHasBeenSet = true; m_costCategoryName = value; } inline void SetCostCategoryName(Aws::String&& value) { m_costCategoryNameHasBeenSet = true; m_costCategoryName = std::move(value); } inline void SetCostCategoryName(const char* value) { m_costCategoryNameHasBeenSet = true; m_costCategoryName.assign(value); } inline GetCostCategoriesRequest& WithCostCategoryName(const Aws::String& value) { SetCostCategoryName(value); return *this;} inline GetCostCategoriesRequest& WithCostCategoryName(Aws::String&& value) { SetCostCategoryName(std::move(value)); return *this;} inline GetCostCategoriesRequest& WithCostCategoryName(const char* value) { SetCostCategoryName(value); return *this;} inline const Expression& GetFilter() const{ return m_filter; } inline bool FilterHasBeenSet() const { return m_filterHasBeenSet; } inline void SetFilter(const Expression& value) { m_filterHasBeenSet = true; m_filter = value; } inline void SetFilter(Expression&& value) { m_filterHasBeenSet = true; m_filter = std::move(value); } inline GetCostCategoriesRequest& WithFilter(const Expression& value) { SetFilter(value); return *this;} inline GetCostCategoriesRequest& WithFilter(Expression&& value) { SetFilter(std::move(value)); return *this;} /** *

The value that you sort the data by.

The key represents the cost and * usage metrics. The following values are supported:

  • * BlendedCost

  • UnblendedCost

    *
  • AmortizedCost

  • * NetAmortizedCost

  • NetUnblendedCost *

  • UsageQuantity

  • * NormalizedUsageAmount

The supported key values * for the SortOrder value are ASCENDING and * DESCENDING.

When you use the SortBy value, the * NextPageToken and SearchString key values aren't * supported.

*/ inline const Aws::Vector& GetSortBy() const{ return m_sortBy; } /** *

The value that you sort the data by.

The key represents the cost and * usage metrics. The following values are supported:

  • * BlendedCost

  • UnblendedCost

    *
  • AmortizedCost

  • * NetAmortizedCost

  • NetUnblendedCost *

  • UsageQuantity

  • * NormalizedUsageAmount

The supported key values * for the SortOrder value are ASCENDING and * DESCENDING.

When you use the SortBy value, the * NextPageToken and SearchString key values aren't * supported.

*/ inline bool SortByHasBeenSet() const { return m_sortByHasBeenSet; } /** *

The value that you sort the data by.

The key represents the cost and * usage metrics. The following values are supported:

  • * BlendedCost

  • UnblendedCost

    *
  • AmortizedCost

  • * NetAmortizedCost

  • NetUnblendedCost *

  • UsageQuantity

  • * NormalizedUsageAmount

The supported key values * for the SortOrder value are ASCENDING and * DESCENDING.

When you use the SortBy value, the * NextPageToken and SearchString key values aren't * supported.

*/ inline void SetSortBy(const Aws::Vector& value) { m_sortByHasBeenSet = true; m_sortBy = value; } /** *

The value that you sort the data by.

The key represents the cost and * usage metrics. The following values are supported:

  • * BlendedCost

  • UnblendedCost

    *
  • AmortizedCost

  • * NetAmortizedCost

  • NetUnblendedCost *

  • UsageQuantity

  • * NormalizedUsageAmount

The supported key values * for the SortOrder value are ASCENDING and * DESCENDING.

When you use the SortBy value, the * NextPageToken and SearchString key values aren't * supported.

*/ inline void SetSortBy(Aws::Vector&& value) { m_sortByHasBeenSet = true; m_sortBy = std::move(value); } /** *

The value that you sort the data by.

The key represents the cost and * usage metrics. The following values are supported:

  • * BlendedCost

  • UnblendedCost

    *
  • AmortizedCost

  • * NetAmortizedCost

  • NetUnblendedCost *

  • UsageQuantity

  • * NormalizedUsageAmount

The supported key values * for the SortOrder value are ASCENDING and * DESCENDING.

When you use the SortBy value, the * NextPageToken and SearchString key values aren't * supported.

*/ inline GetCostCategoriesRequest& WithSortBy(const Aws::Vector& value) { SetSortBy(value); return *this;} /** *

The value that you sort the data by.

The key represents the cost and * usage metrics. The following values are supported:

  • * BlendedCost

  • UnblendedCost

    *
  • AmortizedCost

  • * NetAmortizedCost

  • NetUnblendedCost *

  • UsageQuantity

  • * NormalizedUsageAmount

The supported key values * for the SortOrder value are ASCENDING and * DESCENDING.

When you use the SortBy value, the * NextPageToken and SearchString key values aren't * supported.

*/ inline GetCostCategoriesRequest& WithSortBy(Aws::Vector&& value) { SetSortBy(std::move(value)); return *this;} /** *

The value that you sort the data by.

The key represents the cost and * usage metrics. The following values are supported:

  • * BlendedCost

  • UnblendedCost

    *
  • AmortizedCost

  • * NetAmortizedCost

  • NetUnblendedCost *

  • UsageQuantity

  • * NormalizedUsageAmount

The supported key values * for the SortOrder value are ASCENDING and * DESCENDING.

When you use the SortBy value, the * NextPageToken and SearchString key values aren't * supported.

*/ inline GetCostCategoriesRequest& AddSortBy(const SortDefinition& value) { m_sortByHasBeenSet = true; m_sortBy.push_back(value); return *this; } /** *

The value that you sort the data by.

The key represents the cost and * usage metrics. The following values are supported:

  • * BlendedCost

  • UnblendedCost

    *
  • AmortizedCost

  • * NetAmortizedCost

  • NetUnblendedCost *

  • UsageQuantity

  • * NormalizedUsageAmount

The supported key values * for the SortOrder value are ASCENDING and * DESCENDING.

When you use the SortBy value, the * NextPageToken and SearchString key values aren't * supported.

*/ inline GetCostCategoriesRequest& AddSortBy(SortDefinition&& value) { m_sortByHasBeenSet = true; m_sortBy.push_back(std::move(value)); return *this; } /** *

This field is only used when the SortBy value is provided in the * request.

The maximum number of objects that are returned for this * request. If MaxResults isn't specified with the SortBy * value, the request returns 1000 results as the default value for this * parameter.

For GetCostCategories, MaxResults has an upper * quota of 1000.

*/ inline int GetMaxResults() const{ return m_maxResults; } /** *

This field is only used when the SortBy value is provided in the * request.

The maximum number of objects that are returned for this * request. If MaxResults isn't specified with the SortBy * value, the request returns 1000 results as the default value for this * parameter.

For GetCostCategories, MaxResults has an upper * quota of 1000.

*/ inline bool MaxResultsHasBeenSet() const { return m_maxResultsHasBeenSet; } /** *

This field is only used when the SortBy value is provided in the * request.

The maximum number of objects that are returned for this * request. If MaxResults isn't specified with the SortBy * value, the request returns 1000 results as the default value for this * parameter.

For GetCostCategories, MaxResults has an upper * quota of 1000.

*/ inline void SetMaxResults(int value) { m_maxResultsHasBeenSet = true; m_maxResults = value; } /** *

This field is only used when the SortBy value is provided in the * request.

The maximum number of objects that are returned for this * request. If MaxResults isn't specified with the SortBy * value, the request returns 1000 results as the default value for this * parameter.

For GetCostCategories, MaxResults has an upper * quota of 1000.

*/ inline GetCostCategoriesRequest& WithMaxResults(int value) { SetMaxResults(value); return *this;} /** *

If the number of objects that are still available for retrieval exceeds the * quota, Amazon Web Services returns a NextPageToken value in the response. To * retrieve the next batch of objects, provide the NextPageToken from the previous * call in your next request.

*/ inline const Aws::String& GetNextPageToken() const{ return m_nextPageToken; } /** *

If the number of objects that are still available for retrieval exceeds the * quota, Amazon Web Services returns a NextPageToken value in the response. To * retrieve the next batch of objects, provide the NextPageToken from the previous * call in your next request.

*/ inline bool NextPageTokenHasBeenSet() const { return m_nextPageTokenHasBeenSet; } /** *

If the number of objects that are still available for retrieval exceeds the * quota, Amazon Web Services returns a NextPageToken value in the response. To * retrieve the next batch of objects, provide the NextPageToken from the previous * call in your next request.

*/ inline void SetNextPageToken(const Aws::String& value) { m_nextPageTokenHasBeenSet = true; m_nextPageToken = value; } /** *

If the number of objects that are still available for retrieval exceeds the * quota, Amazon Web Services returns a NextPageToken value in the response. To * retrieve the next batch of objects, provide the NextPageToken from the previous * call in your next request.

*/ inline void SetNextPageToken(Aws::String&& value) { m_nextPageTokenHasBeenSet = true; m_nextPageToken = std::move(value); } /** *

If the number of objects that are still available for retrieval exceeds the * quota, Amazon Web Services returns a NextPageToken value in the response. To * retrieve the next batch of objects, provide the NextPageToken from the previous * call in your next request.

*/ inline void SetNextPageToken(const char* value) { m_nextPageTokenHasBeenSet = true; m_nextPageToken.assign(value); } /** *

If the number of objects that are still available for retrieval exceeds the * quota, Amazon Web Services returns a NextPageToken value in the response. To * retrieve the next batch of objects, provide the NextPageToken from the previous * call in your next request.

*/ inline GetCostCategoriesRequest& WithNextPageToken(const Aws::String& value) { SetNextPageToken(value); return *this;} /** *

If the number of objects that are still available for retrieval exceeds the * quota, Amazon Web Services returns a NextPageToken value in the response. To * retrieve the next batch of objects, provide the NextPageToken from the previous * call in your next request.

*/ inline GetCostCategoriesRequest& WithNextPageToken(Aws::String&& value) { SetNextPageToken(std::move(value)); return *this;} /** *

If the number of objects that are still available for retrieval exceeds the * quota, Amazon Web Services returns a NextPageToken value in the response. To * retrieve the next batch of objects, provide the NextPageToken from the previous * call in your next request.

*/ inline GetCostCategoriesRequest& WithNextPageToken(const char* value) { SetNextPageToken(value); return *this;} private: Aws::String m_searchString; bool m_searchStringHasBeenSet = false; DateInterval m_timePeriod; bool m_timePeriodHasBeenSet = false; Aws::String m_costCategoryName; bool m_costCategoryNameHasBeenSet = false; Expression m_filter; bool m_filterHasBeenSet = false; Aws::Vector m_sortBy; bool m_sortByHasBeenSet = false; int m_maxResults; bool m_maxResultsHasBeenSet = false; Aws::String m_nextPageToken; bool m_nextPageTokenHasBeenSet = false; }; } // namespace Model } // namespace CostExplorer } // namespace Aws