updateBillingPreferences method
- required List<
BillingPreferenceForKey> billingPreferencesPerKey, - required BillingFeature feature,
Updates billing preferences for the specified feature. Each feature targets a distinct billing capability and has its own set of supported keys. The action sets the value for each provided key; keys not present in the request are unchanged.
Sharing keys (RI_SHARING, CREDIT_SHARING,
CREDIT_LEVEL_SHARING, and sharing keys under
CREDIT_PREFERENCE_OPTIONS) may only be set by the management
account of a consolidated billing family. The
credit/{creditId}/status key may be set by member accounts
for credits they own, or by the management account for any credit in the
family.
May throw AccessDeniedException.
May throw InternalServerException.
May throw ThrottlingException.
May throw ValidationException.
Parameter billingPreferencesPerKey :
Key/value pairs to apply. All keys in a single request must be valid for
the specified feature and must not be duplicated. For
CREDIT_PREFERENCE_OPTIONS, all keys must reference the same
creditId.
Parameter feature :
The feature to update. Valid values: BILLING_ALERTS,
RI_SHARING, CREDIT_SHARING,
CREDIT_LEVEL_SHARING, CREDIT_PREFERENCE_OPTIONS.
The history features (RI_SHARING_HISTORY and
CREDIT_SHARING_HISTORY) are read-only and cannot be updated.
Implementation
Future<void> updateBillingPreferences({
required List<BillingPreferenceForKey> billingPreferencesPerKey,
required BillingFeature feature,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.0',
'X-Amz-Target': 'AWSBilling.UpdateBillingPreferences'
};
await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'billingPreferencesPerKey': billingPreferencesPerKey,
'feature': feature.value,
},
);
}