GetSavingsPlansUtilizationDetailsCommand

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.

Example Syntax

Use a bare-bones client and the command you need to make an API call.

import { CostExplorerClient, GetSavingsPlansUtilizationDetailsCommand } from "@aws-sdk/client-cost-explorer"; // ES Modules import
// const { CostExplorerClient, GetSavingsPlansUtilizationDetailsCommand } = require("@aws-sdk/client-cost-explorer"); // CommonJS import
const client = new CostExplorerClient(config);
const input = { // GetSavingsPlansUtilizationDetailsRequest
  TimePeriod: { // DateInterval
    Start: "STRING_VALUE", // required
    End: "STRING_VALUE", // required
  },
  Filter: { // Expression
    Or: [ // Expressions
      {
        Or: [
          "<Expression>",
        ],
        And: [
          "<Expression>",
        ],
        Not: "<Expression>",
        Dimensions: { // DimensionValues
          Key: "AZ" || "INSTANCE_TYPE" || "LINKED_ACCOUNT" || "LINKED_ACCOUNT_NAME" || "OPERATION" || "PURCHASE_TYPE" || "REGION" || "SERVICE" || "SERVICE_CODE" || "USAGE_TYPE" || "USAGE_TYPE_GROUP" || "RECORD_TYPE" || "OPERATING_SYSTEM" || "TENANCY" || "SCOPE" || "PLATFORM" || "SUBSCRIPTION_ID" || "LEGAL_ENTITY_NAME" || "DEPLOYMENT_OPTION" || "DATABASE_ENGINE" || "CACHE_ENGINE" || "INSTANCE_TYPE_FAMILY" || "BILLING_ENTITY" || "RESERVATION_ID" || "RESOURCE_ID" || "RIGHTSIZING_TYPE" || "SAVINGS_PLANS_TYPE" || "SAVINGS_PLAN_ARN" || "PAYMENT_OPTION" || "AGREEMENT_END_DATE_TIME_AFTER" || "AGREEMENT_END_DATE_TIME_BEFORE" || "INVOICING_ENTITY" || "ANOMALY_TOTAL_IMPACT_ABSOLUTE" || "ANOMALY_TOTAL_IMPACT_PERCENTAGE",
          Values: [ // Values
            "STRING_VALUE",
          ],
          MatchOptions: [ // MatchOptions
            "EQUALS" || "ABSENT" || "STARTS_WITH" || "ENDS_WITH" || "CONTAINS" || "CASE_SENSITIVE" || "CASE_INSENSITIVE" || "GREATER_THAN_OR_EQUAL",
          ],
        },
        Tags: { // TagValues
          Key: "STRING_VALUE",
          Values: [
            "STRING_VALUE",
          ],
          MatchOptions: [
            "EQUALS" || "ABSENT" || "STARTS_WITH" || "ENDS_WITH" || "CONTAINS" || "CASE_SENSITIVE" || "CASE_INSENSITIVE" || "GREATER_THAN_OR_EQUAL",
          ],
        },
        CostCategories: { // CostCategoryValues
          Key: "STRING_VALUE",
          Values: [
            "STRING_VALUE",
          ],
          MatchOptions: [
            "EQUALS" || "ABSENT" || "STARTS_WITH" || "ENDS_WITH" || "CONTAINS" || "CASE_SENSITIVE" || "CASE_INSENSITIVE" || "GREATER_THAN_OR_EQUAL",
          ],
        },
      },
    ],
    And: [
      "<Expression>",
    ],
    Not: "<Expression>",
    Dimensions: {
      Key: "AZ" || "INSTANCE_TYPE" || "LINKED_ACCOUNT" || "LINKED_ACCOUNT_NAME" || "OPERATION" || "PURCHASE_TYPE" || "REGION" || "SERVICE" || "SERVICE_CODE" || "USAGE_TYPE" || "USAGE_TYPE_GROUP" || "RECORD_TYPE" || "OPERATING_SYSTEM" || "TENANCY" || "SCOPE" || "PLATFORM" || "SUBSCRIPTION_ID" || "LEGAL_ENTITY_NAME" || "DEPLOYMENT_OPTION" || "DATABASE_ENGINE" || "CACHE_ENGINE" || "INSTANCE_TYPE_FAMILY" || "BILLING_ENTITY" || "RESERVATION_ID" || "RESOURCE_ID" || "RIGHTSIZING_TYPE" || "SAVINGS_PLANS_TYPE" || "SAVINGS_PLAN_ARN" || "PAYMENT_OPTION" || "AGREEMENT_END_DATE_TIME_AFTER" || "AGREEMENT_END_DATE_TIME_BEFORE" || "INVOICING_ENTITY" || "ANOMALY_TOTAL_IMPACT_ABSOLUTE" || "ANOMALY_TOTAL_IMPACT_PERCENTAGE",
      Values: [
        "STRING_VALUE",
      ],
      MatchOptions: [
        "EQUALS" || "ABSENT" || "STARTS_WITH" || "ENDS_WITH" || "CONTAINS" || "CASE_SENSITIVE" || "CASE_INSENSITIVE" || "GREATER_THAN_OR_EQUAL",
      ],
    },
    Tags: {
      Key: "STRING_VALUE",
      Values: [
        "STRING_VALUE",
      ],
      MatchOptions: [
        "EQUALS" || "ABSENT" || "STARTS_WITH" || "ENDS_WITH" || "CONTAINS" || "CASE_SENSITIVE" || "CASE_INSENSITIVE" || "GREATER_THAN_OR_EQUAL",
      ],
    },
    CostCategories: {
      Key: "STRING_VALUE",
      Values: "<Values>",
      MatchOptions: "<MatchOptions>",
    },
  },
  DataType: [ // SavingsPlansDataTypes
    "ATTRIBUTES" || "UTILIZATION" || "AMORTIZED_COMMITMENT" || "SAVINGS",
  ],
  NextToken: "STRING_VALUE",
  MaxResults: Number("int"),
  SortBy: { // SortDefinition
    Key: "STRING_VALUE", // required
    SortOrder: "ASCENDING" || "DESCENDING",
  },
};
const command = new GetSavingsPlansUtilizationDetailsCommand(input);
const response = await client.send(command);
// { // GetSavingsPlansUtilizationDetailsResponse
//   SavingsPlansUtilizationDetails: [ // SavingsPlansUtilizationDetails // required
//     { // SavingsPlansUtilizationDetail
//       SavingsPlanArn: "STRING_VALUE",
//       Attributes: { // Attributes
//         "<keys>": "STRING_VALUE",
//       },
//       Utilization: { // SavingsPlansUtilization
//         TotalCommitment: "STRING_VALUE",
//         UsedCommitment: "STRING_VALUE",
//         UnusedCommitment: "STRING_VALUE",
//         UtilizationPercentage: "STRING_VALUE",
//       },
//       Savings: { // SavingsPlansSavings
//         NetSavings: "STRING_VALUE",
//         OnDemandCostEquivalent: "STRING_VALUE",
//       },
//       AmortizedCommitment: { // SavingsPlansAmortizedCommitment
//         AmortizedRecurringCommitment: "STRING_VALUE",
//         AmortizedUpfrontCommitment: "STRING_VALUE",
//         TotalAmortizedCommitment: "STRING_VALUE",
//       },
//     },
//   ],
//   Total: { // SavingsPlansUtilizationAggregates
//     Utilization: {
//       TotalCommitment: "STRING_VALUE",
//       UsedCommitment: "STRING_VALUE",
//       UnusedCommitment: "STRING_VALUE",
//       UtilizationPercentage: "STRING_VALUE",
//     },
//     Savings: {
//       NetSavings: "STRING_VALUE",
//       OnDemandCostEquivalent: "STRING_VALUE",
//     },
//     AmortizedCommitment: {
//       AmortizedRecurringCommitment: "STRING_VALUE",
//       AmortizedUpfrontCommitment: "STRING_VALUE",
//       TotalAmortizedCommitment: "STRING_VALUE",
//     },
//   },
//   TimePeriod: { // DateInterval
//     Start: "STRING_VALUE", // required
//     End: "STRING_VALUE", // required
//   },
//   NextToken: "STRING_VALUE",
// };

GetSavingsPlansUtilizationDetailsCommand Input

Parameter
Type
Description
TimePeriod
Required
DateInterval | undefined

The time period that you want the usage and costs for. The Start date must be within 13 months. The End date must be after the Start date, and before the current date. Future dates can't be used as an End date.

DataType
SavingsPlansDataType[] | undefined

The data type.

Filter
Expression | undefined

Filters Savings Plans utilization coverage data for active Savings Plans dimensions. You can filter data with the following dimensions:

  • LINKED_ACCOUNT

  • SAVINGS_PLAN_ARN

  • REGION

  • PAYMENT_OPTION

  • INSTANCE_TYPE_FAMILY

GetSavingsPlansUtilizationDetails uses the same Expression  object as the other operations, but only AND is supported among each dimension.

MaxResults
number | undefined

The number of items to be returned in a response. The default is 20, with a minimum value of 1.

NextToken
string | undefined

The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size.

SortBy
SortDefinition | undefined

The value that you want to sort the data by.

The following values are supported for Key:

  • UtilizationPercentage

  • TotalCommitment

  • UsedCommitment

  • UnusedCommitment

  • NetSavings

  • AmortizedRecurringCommitment

  • AmortizedUpfrontCommitment

The supported values for SortOrder are ASCENDING and DESCENDING.

GetSavingsPlansUtilizationDetailsCommand Output

Parameter
Type
Description
$metadata
Required
ResponseMetadata
Metadata pertaining to this request.
SavingsPlansUtilizationDetails
Required
SavingsPlansUtilizationDetail[] | undefined

Retrieves a single daily or monthly Savings Plans utilization rate and details for your account.

TimePeriod
Required
DateInterval | undefined

The time period of the request.

NextToken
string | undefined

The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size.

Total
SavingsPlansUtilizationAggregates | undefined

The total Savings Plans utilization, regardless of time period.

Throws

Name
Fault
Details
DataUnavailableException
client

The requested data is unavailable.

InvalidNextTokenException
client

The pagination token is invalid. Try again without a pagination token.

LimitExceededException
client

You made too many calls in a short period of time. Try again later.

CostExplorerServiceException
Base exception class for all service exceptions from CostExplorer service.