/AWS1/IF_CEX=>GETRESERVATIONUTILIZATION()¶
About GetReservationUtilization¶
Retrieves the reservation utilization for your account. Management account 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.
Method Signature¶
METHODS /AWS1/IF_CEX~GETRESERVATIONUTILIZATION
IMPORTING
!IO_TIMEPERIOD TYPE REF TO /AWS1/CL_CEXDATEINTERVAL OPTIONAL
!IT_GROUPBY TYPE /AWS1/CL_CEXGROUPDEFINITION=>TT_GROUPDEFINITIONS OPTIONAL
!IV_GRANULARITY TYPE /AWS1/CEXGRANULARITY OPTIONAL
!IO_FILTER TYPE REF TO /AWS1/CL_CEXEXPRESSION OPTIONAL
!IO_SORTBY TYPE REF TO /AWS1/CL_CEXSORTDEFINITION OPTIONAL
!IV_NEXTPAGETOKEN TYPE /AWS1/CEXNEXTPAGETOKEN OPTIONAL
!IV_MAXRESULTS TYPE /AWS1/CEXMAXRESULTS OPTIONAL
RETURNING
VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_cexgetreservationut01
RAISING
/AWS1/CX_CEXDATAUNAVAILEX
/AWS1/CX_CEXINVALIDNEXTTOKENEX
/AWS1/CX_CEXLIMITEXCEEDEDEX
/AWS1/CX_CEXCLIENTEXC
/AWS1/CX_CEXSERVEREXC
/AWS1/CX_RT_TECHNICAL_GENERIC
/AWS1/CX_RT_SERVICE_GENERIC.
IMPORTING¶
Required arguments:¶
io_timeperiod TYPE REF TO /AWS1/CL_CEXDATEINTERVAL /AWS1/CL_CEXDATEINTERVAL¶
Sets the start and end dates for retrieving Reserved Instance (RI) utilization. The start date is inclusive, but the end date is exclusive. For example, if
startis2017-01-01andendis2017-05-01, then the cost and usage data is retrieved from2017-01-01up to and including2017-04-30but not including2017-05-01.
Optional arguments:¶
it_groupby TYPE /AWS1/CL_CEXGROUPDEFINITION=>TT_GROUPDEFINITIONS TT_GROUPDEFINITIONS¶
Groups only by
SUBSCRIPTION_ID. Metadata is included.
iv_granularity TYPE /AWS1/CEXGRANULARITY /AWS1/CEXGRANULARITY¶
If
GroupByis set,Granularitycan't be set. IfGranularityisn't set, the response object doesn't includeGranularity, eitherMONTHLYorDAILY. If bothGroupByandGranularityaren't set,GetReservationUtilizationdefaults toDAILY.The
GetReservationUtilizationoperation supports onlyDAILYandMONTHLYgranularities.
io_filter TYPE REF TO /AWS1/CL_CEXEXPRESSION /AWS1/CL_CEXEXPRESSION¶
Filters utilization data by dimensions. You can filter by the following dimensions:
AZ
CACHE_ENGINE
DEPLOYMENT_OPTION
INSTANCE_TYPE
LINKED_ACCOUNT
OPERATING_SYSTEM
PLATFORM
REGION
SERVICE
If not specified, the
SERVICEfilter defaults to Amazon Elastic Compute Cloud - Compute. Supported values forSERVICEare Amazon Elastic Compute Cloud - Compute, Amazon Relational Database Service, Amazon ElastiCache, Amazon Redshift, and Amazon Elasticsearch Service. The value for theSERVICEfilter should not exceed "1".SCOPE
TENANCY
GetReservationUtilizationuses the same Expression object as the other operations, but onlyANDis supported among each dimension, and nesting is supported up to only one level deep. If there are multiple values for a dimension, they are OR'd together.
io_sortby TYPE REF TO /AWS1/CL_CEXSORTDEFINITION /AWS1/CL_CEXSORTDEFINITION¶
The value that you want to sort the data by.
The following values are supported for
Key:
UtilizationPercentage
UtilizationPercentageInUnits
PurchasedHours
PurchasedUnits
TotalActualHours
TotalActualUnits
UnusedHours
UnusedUnits
OnDemandCostOfRIHoursUsed
NetRISavings
TotalPotentialRISavings
AmortizedUpfrontFee
AmortizedRecurringFee
TotalAmortizedFee
RICostForUnusedHours
RealizedSavings
UnrealizedSavingsThe supported values for
SortOrderareASCENDINGandDESCENDING.
iv_nextpagetoken TYPE /AWS1/CEXNEXTPAGETOKEN /AWS1/CEXNEXTPAGETOKEN¶
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.
iv_maxresults TYPE /AWS1/CEXMAXRESULTS /AWS1/CEXMAXRESULTS¶
The maximum number of objects that you returned for this request. If more objects are available, in the response, Amazon Web Services provides a NextPageToken value that you can use in a subsequent call to get the next batch of objects.
RETURNING¶
oo_output TYPE REF TO /aws1/cl_cexgetreservationut01 /AWS1/CL_CEXGETRESERVATIONUT01¶
Domain /AWS1/RT_ACCOUNT_ID Primitive Type NUMC
Examples¶
Syntax Example¶
This is an example of the syntax for calling the method. It includes every possible argument and initializes every possible value. The data provided is not necessarily semantically accurate (for example the value "string" may be provided for something that is intended to be an instance ID, or in some cases two arguments may be mutually exclusive). The syntax shows the ABAP syntax for creating the various data structures.
DATA(lo_result) = lo_client->getreservationutilization(
io_filter = new /aws1/cl_cexexpression(
io_costcategories = new /aws1/cl_cexcostcategoryvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_dimensions = new /aws1/cl_cexdimensionvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_not = new /aws1/cl_cexexpression(
io_costcategories = new /aws1/cl_cexcostcategoryvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_dimensions = new /aws1/cl_cexdimensionvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_tags = new /aws1/cl_cextagvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
it_and = VALUE /aws1/cl_cexexpression=>tt_expressions(
(
new /aws1/cl_cexexpression(
io_costcategories = new /aws1/cl_cexcostcategoryvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_dimensions = new /aws1/cl_cexdimensionvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_tags = new /aws1/cl_cextagvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
it_or = VALUE /aws1/cl_cexexpression=>tt_expressions(
)
)
)
)
it_or = VALUE /aws1/cl_cexexpression=>tt_expressions(
(
new /aws1/cl_cexexpression(
io_costcategories = new /aws1/cl_cexcostcategoryvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_dimensions = new /aws1/cl_cexdimensionvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_tags = new /aws1/cl_cextagvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
it_and = VALUE /aws1/cl_cexexpression=>tt_expressions(
)
)
)
)
)
io_tags = new /aws1/cl_cextagvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
it_and = VALUE /aws1/cl_cexexpression=>tt_expressions(
(
new /aws1/cl_cexexpression(
io_costcategories = new /aws1/cl_cexcostcategoryvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_dimensions = new /aws1/cl_cexdimensionvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_not = new /aws1/cl_cexexpression(
io_costcategories = new /aws1/cl_cexcostcategoryvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_dimensions = new /aws1/cl_cexdimensionvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_tags = new /aws1/cl_cextagvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
it_or = VALUE /aws1/cl_cexexpression=>tt_expressions(
)
)
io_tags = new /aws1/cl_cextagvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
it_or = VALUE /aws1/cl_cexexpression=>tt_expressions(
)
)
)
)
it_or = VALUE /aws1/cl_cexexpression=>tt_expressions(
(
new /aws1/cl_cexexpression(
io_costcategories = new /aws1/cl_cexcostcategoryvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_dimensions = new /aws1/cl_cexdimensionvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_not = new /aws1/cl_cexexpression(
io_costcategories = new /aws1/cl_cexcostcategoryvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_dimensions = new /aws1/cl_cexdimensionvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
io_tags = new /aws1/cl_cextagvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
it_and = VALUE /aws1/cl_cexexpression=>tt_expressions(
)
)
io_tags = new /aws1/cl_cextagvalues(
it_matchoptions = VALUE /aws1/cl_cexmatchoptions_w=>tt_matchoptions(
( new /aws1/cl_cexmatchoptions_w( |string| ) )
)
it_values = VALUE /aws1/cl_cexvalues_w=>tt_values(
( new /aws1/cl_cexvalues_w( |string| ) )
)
iv_key = |string|
)
it_and = VALUE /aws1/cl_cexexpression=>tt_expressions(
)
)
)
)
)
io_sortby = new /aws1/cl_cexsortdefinition(
iv_key = |string|
iv_sortorder = |string|
)
io_timeperiod = new /aws1/cl_cexdateinterval(
iv_end = |string|
iv_start = |string|
)
it_groupby = VALUE /aws1/cl_cexgroupdefinition=>tt_groupdefinitions(
(
new /aws1/cl_cexgroupdefinition(
iv_key = |string|
iv_type = |string|
)
)
)
iv_granularity = |string|
iv_maxresults = 123
iv_nextpagetoken = |string|
).
This is an example of reading all possible response values
lo_result = lo_result.
IF lo_result IS NOT INITIAL.
LOOP AT lo_result->get_utilizationsbytime( ) into lo_row.
lo_row_1 = lo_row.
IF lo_row_1 IS NOT INITIAL.
lo_dateinterval = lo_row_1->get_timeperiod( ).
IF lo_dateinterval IS NOT INITIAL.
lv_yearmonthday = lo_dateinterval->get_start( ).
lv_yearmonthday = lo_dateinterval->get_end( ).
ENDIF.
LOOP AT lo_row_1->get_groups( ) into lo_row_2.
lo_row_3 = lo_row_2.
IF lo_row_3 IS NOT INITIAL.
lv_reservationgroupkey = lo_row_3->get_key( ).
lv_reservationgroupvalue = lo_row_3->get_value( ).
LOOP AT lo_row_3->get_attributes( ) into ls_row_4.
lv_key = ls_row_4-key.
lo_value = ls_row_4-value.
IF lo_value IS NOT INITIAL.
lv_attributevalue = lo_value->get_value( ).
ENDIF.
ENDLOOP.
lo_reservationaggregates = lo_row_3->get_utilization( ).
IF lo_reservationaggregates IS NOT INITIAL.
lv_utilizationpercentage = lo_reservationaggregates->get_utilizationpercentage( ).
lv_utilizationpercentagein = lo_reservationaggregates->get_utilizationpercentagei00( ).
lv_purchasedhours = lo_reservationaggregates->get_purchasedhours( ).
lv_purchasedunits = lo_reservationaggregates->get_purchasedunits( ).
lv_totalactualhours = lo_reservationaggregates->get_totalactualhours( ).
lv_totalactualunits = lo_reservationaggregates->get_totalactualunits( ).
lv_unusedhours = lo_reservationaggregates->get_unusedhours( ).
lv_unusedunits = lo_reservationaggregates->get_unusedunits( ).
lv_ondemandcostofrihoursus = lo_reservationaggregates->get_ondemcostofrihoursused( ).
lv_netrisavings = lo_reservationaggregates->get_netrisavings( ).
lv_totalpotentialrisavings = lo_reservationaggregates->get_totalpotentialrisavings( ).
lv_amortizedupfrontfee = lo_reservationaggregates->get_amortizedupfrontfee( ).
lv_amortizedrecurringfee = lo_reservationaggregates->get_amortizedrecurringfee( ).
lv_totalamortizedfee = lo_reservationaggregates->get_totalamortizedfee( ).
lv_ricostforunusedhours = lo_reservationaggregates->get_ricostforunusedhours( ).
lv_realizedsavings = lo_reservationaggregates->get_realizedsavings( ).
lv_unrealizedsavings = lo_reservationaggregates->get_unrealizedsavings( ).
ENDIF.
ENDIF.
ENDLOOP.
lo_reservationaggregates = lo_row_1->get_total( ).
IF lo_reservationaggregates IS NOT INITIAL.
lv_utilizationpercentage = lo_reservationaggregates->get_utilizationpercentage( ).
lv_utilizationpercentagein = lo_reservationaggregates->get_utilizationpercentagei00( ).
lv_purchasedhours = lo_reservationaggregates->get_purchasedhours( ).
lv_purchasedunits = lo_reservationaggregates->get_purchasedunits( ).
lv_totalactualhours = lo_reservationaggregates->get_totalactualhours( ).
lv_totalactualunits = lo_reservationaggregates->get_totalactualunits( ).
lv_unusedhours = lo_reservationaggregates->get_unusedhours( ).
lv_unusedunits = lo_reservationaggregates->get_unusedunits( ).
lv_ondemandcostofrihoursus = lo_reservationaggregates->get_ondemcostofrihoursused( ).
lv_netrisavings = lo_reservationaggregates->get_netrisavings( ).
lv_totalpotentialrisavings = lo_reservationaggregates->get_totalpotentialrisavings( ).
lv_amortizedupfrontfee = lo_reservationaggregates->get_amortizedupfrontfee( ).
lv_amortizedrecurringfee = lo_reservationaggregates->get_amortizedrecurringfee( ).
lv_totalamortizedfee = lo_reservationaggregates->get_totalamortizedfee( ).
lv_ricostforunusedhours = lo_reservationaggregates->get_ricostforunusedhours( ).
lv_realizedsavings = lo_reservationaggregates->get_realizedsavings( ).
lv_unrealizedsavings = lo_reservationaggregates->get_unrealizedsavings( ).
ENDIF.
ENDIF.
ENDLOOP.
lo_reservationaggregates = lo_result->get_total( ).
IF lo_reservationaggregates IS NOT INITIAL.
lv_utilizationpercentage = lo_reservationaggregates->get_utilizationpercentage( ).
lv_utilizationpercentagein = lo_reservationaggregates->get_utilizationpercentagei00( ).
lv_purchasedhours = lo_reservationaggregates->get_purchasedhours( ).
lv_purchasedunits = lo_reservationaggregates->get_purchasedunits( ).
lv_totalactualhours = lo_reservationaggregates->get_totalactualhours( ).
lv_totalactualunits = lo_reservationaggregates->get_totalactualunits( ).
lv_unusedhours = lo_reservationaggregates->get_unusedhours( ).
lv_unusedunits = lo_reservationaggregates->get_unusedunits( ).
lv_ondemandcostofrihoursus = lo_reservationaggregates->get_ondemcostofrihoursused( ).
lv_netrisavings = lo_reservationaggregates->get_netrisavings( ).
lv_totalpotentialrisavings = lo_reservationaggregates->get_totalpotentialrisavings( ).
lv_amortizedupfrontfee = lo_reservationaggregates->get_amortizedupfrontfee( ).
lv_amortizedrecurringfee = lo_reservationaggregates->get_amortizedrecurringfee( ).
lv_totalamortizedfee = lo_reservationaggregates->get_totalamortizedfee( ).
lv_ricostforunusedhours = lo_reservationaggregates->get_ricostforunusedhours( ).
lv_realizedsavings = lo_reservationaggregates->get_realizedsavings( ).
lv_unrealizedsavings = lo_reservationaggregates->get_unrealizedsavings( ).
ENDIF.
lv_nextpagetoken = lo_result->get_nextpagetoken( ).
ENDIF.