Module Smaws_Client_Budgets.Types

type nonrec error_message = string
type nonrec value = string
type nonrec values = value list
type nonrec user = string
type nonrec users = user list
type nonrec update_subscriber_response = unit
type nonrec account_id = string
type nonrec budget_name = string
type nonrec notification_type =
  1. | FORECASTED
  2. | ACTUAL

The type of a notification. It must be ACTUAL or FORECASTED.

type nonrec comparison_operator =
  1. | EQUAL_TO
  2. | LESS_THAN
  3. | GREATER_THAN

The comparison operator of a notification. Currently, the service supports the following operators:

GREATER_THAN, LESS_THAN, EQUAL_TO

type nonrec notification_threshold = float
type nonrec threshold_type =
  1. | ABSOLUTE_VALUE
  2. | PERCENTAGE

The type of threshold for a notification.

type nonrec notification_state =
  1. | ALARM
  2. | OK
type nonrec notification = {
  1. notification_state : notification_state option;
    (*

    Specifies whether this notification is in alarm. If a budget notification is in the ALARM state, you passed the set threshold for the budget.

    *)
  2. threshold_type : threshold_type option;
    (*

    The type of threshold for a notification. For ABSOLUTE_VALUE thresholds, Amazon Web Services notifies you when you go over or are forecasted to go over your total cost threshold. For PERCENTAGE thresholds, Amazon Web Services notifies you when you go over or are forecasted to go over a certain percentage of your forecasted spend. For example, if you have a budget for 200 dollars and you have a PERCENTAGE threshold of 80%, Amazon Web Services notifies you when you go over 160 dollars.

    *)
  3. threshold : notification_threshold;
    (*

    The threshold that's associated with a notification. Thresholds are always a percentage, and many customers find value being alerted between 50% - 200% of the budgeted amount. The maximum limit for your threshold is 1,000,000% above the budgeted amount.

    *)
  4. comparison_operator : comparison_operator;
    (*

    The comparison that's used for this notification.

    *)
  5. notification_type : notification_type;
    (*

    Specifies whether the notification is for how much you have spent (ACTUAL) or for how much that you're forecasted to spend (FORECASTED).

    *)
}

A notification that's associated with a budget. A budget can have up to ten notifications.

Each notification must have at least one subscriber. A notification can have one SNS subscriber and up to 10 email subscribers, for a total of 11 subscribers.

For example, if you have a budget for 200 dollars and you want to be notified when you go over 160 dollars, create a notification with the following parameters:

  • A notificationType of ACTUAL
  • A thresholdType of PERCENTAGE
  • A comparisonOperator of GREATER_THAN
  • A notification threshold of 80
type nonrec subscription_type =
  1. | EMAIL
  2. | SNS

The subscription type of the subscriber. It can be SMS or EMAIL.

type nonrec subscriber_address = string
type nonrec subscriber = {
  1. address : subscriber_address;
    (*

    The address that Amazon Web Services sends budget notifications to, either an SNS topic or an email.

    When you create a subscriber, the value of Address can't contain line breaks.

    *)
  2. subscription_type : subscription_type;
    (*

    The type of notification that Amazon Web Services sends to a subscriber.

    *)
}

The subscriber to a budget notification. The subscriber consists of a subscription type and either an Amazon SNS topic or an email address.

For example, an email subscriber has the following parameters:

  • A subscriptionType of EMAIL
  • An address of example@example.com
type nonrec update_subscriber_request = {
  1. new_subscriber : subscriber;
    (*

    The updated subscriber that is associated with a budget notification.

    *)
  2. old_subscriber : subscriber;
    (*

    The previous subscriber that is associated with a budget notification.

    *)
  3. notification : notification;
    (*

    The notification whose subscriber you want to update.

    *)
  4. budget_name : budget_name;
    (*

    The name of the budget whose subscriber you want to update.

    *)
  5. account_id : account_id;
    (*

    The accountId that is associated with the budget whose subscriber you want to update.

    *)
}

Request of UpdateSubscriber

type nonrec throttling_exception = {
  1. message : error_message option;
}

The number of API requests has exceeded the maximum allowed API request throttling limit for the account.

type nonrec not_found_exception = {
  1. message : error_message option;
}

We can’t locate the resource that you specified.

type nonrec invalid_parameter_exception = {
  1. message : error_message option;
}

An error on the client occurred. Typically, the cause is an invalid input value.

type nonrec internal_error_exception = {
  1. message : error_message option;
}

An error on the server occurred during the processing of your request. Try again later.

type nonrec duplicate_record_exception = {
  1. message : error_message option;
}

The budget name already exists. Budget names must be unique within an account.

type nonrec access_denied_exception = {
  1. message : error_message option;
}

You are not authorized to use this operation with the given parameters.

type nonrec update_notification_response = unit
type nonrec update_notification_request = {
  1. new_notification : notification;
    (*

    The updated notification to be associated with a budget.

    *)
  2. old_notification : notification;
    (*

    The previous notification that is associated with a budget.

    *)
  3. budget_name : budget_name;
    (*

    The name of the budget whose notification you want to update.

    *)
  4. account_id : account_id;
    (*

    The accountId that is associated with the budget whose notification you want to update.

    *)
}

Request of UpdateNotification

type nonrec update_budget_response = unit
type nonrec numeric_value = string
type nonrec unit_value = string
type nonrec spend = {
  1. unit_ : unit_value;
    (*

    The unit of measurement that's used for the budget forecast, actual spend, or budget threshold.

    *)
  2. amount : numeric_value;
    (*

    The cost or usage amount that's associated with a budget forecast, actual spend, or budget threshold.

    *)
}

The amount of cost or usage that's measured for a budget.

Cost example: A Spend for 3 USD of costs has the following parameters:

  • An Amount of 3
  • A Unit of USD

Usage example: A Spend for 3 GB of S3 usage has the following parameters:

  • An Amount of 3
  • A Unit of GB
type nonrec generic_string = string
type nonrec planned_budget_limits = (generic_string * spend) list
type nonrec dimension_value = string
type nonrec dimension_values = dimension_value list
type nonrec cost_filters = (generic_string * dimension_values) list

A map that represents the cost filters that are applied to the budget.

type nonrec nullable_boolean = bool
type nonrec cost_types = {
  1. use_amortized : nullable_boolean option;
    (*

    Specifies whether a budget uses the amortized rate.

    The default value is false.

    *)
  2. include_discount : nullable_boolean option;
    (*

    Specifies whether a budget includes discounts.

    The default value is true.

    *)
  3. include_support : nullable_boolean option;
    (*

    Specifies whether a budget includes support subscription fees.

    The default value is true.

    *)
  4. include_other_subscription : nullable_boolean option;
    (*

    Specifies whether a budget includes non-RI subscription costs.

    The default value is true.

    *)
  5. include_recurring : nullable_boolean option;
    (*

    Specifies whether a budget includes recurring fees such as monthly RI fees.

    The default value is true.

    *)
  6. include_upfront : nullable_boolean option;
    (*

    Specifies whether a budget includes upfront RI costs.

    The default value is true.

    *)
  7. include_credit : nullable_boolean option;
    (*

    Specifies whether a budget includes credits.

    The default value is true.

    *)
  8. include_refund : nullable_boolean option;
    (*

    Specifies whether a budget includes refunds.

    The default value is true.

    *)
  9. use_blended : nullable_boolean option;
    (*

    Specifies whether a budget uses a blended rate.

    The default value is false.

    *)
  10. include_subscription : nullable_boolean option;
    (*

    Specifies whether a budget includes subscriptions.

    The default value is true.

    *)
  11. include_tax : nullable_boolean option;
    (*

    Specifies whether a budget includes taxes.

    The default value is true.

    *)
}

The types of cost that are included in a COST budget, such as tax and subscriptions.

USAGE, RI_UTILIZATION, RI_COVERAGE, SAVINGS_PLANS_UTILIZATION, and SAVINGS_PLANS_COVERAGE budgets don't have CostTypes.

type nonrec time_unit =
  1. | CUSTOM
  2. | ANNUALLY
  3. | QUARTERLY
  4. | MONTHLY
  5. | DAILY

The time unit of the budget, such as MONTHLY or QUARTERLY.

type nonrec generic_timestamp = Smaws_Lib.CoreTypes.Timestamp.t
type nonrec time_period = {
  1. end_ : generic_timestamp option;
    (*

    The end date for a budget. If you didn't specify an end date, Amazon Web Services set your end date to 06/15/87 00:00 UTC. The defaults are the same for the Billing and Cost Management console and the API.

    After the end date, Amazon Web Services deletes the budget and all the associated notifications and subscribers. You can change your end date with the UpdateBudget operation.

    *)
  2. start : generic_timestamp option;
    (*

    The start date for a budget. If you created your budget and didn't specify a start date, Amazon Web Services defaults to the start of your chosen time period (DAILY, MONTHLY, QUARTERLY, ANNUALLY, or CUSTOM). For example, if you created your budget on January 24, 2018, chose DAILY, and didn't set a start date, Amazon Web Services set your start date to 01/24/18 00:00 UTC. If you chose MONTHLY, Amazon Web Services set your start date to 01/01/18 00:00 UTC. The defaults are the same for the Billing and Cost Management console and the API.

    You can change your start date with the UpdateBudget operation.

    *)
}

The period of time that's covered by a budget. The period has a start date and an end date. The start date must come before the end date. There are no restrictions on the end date.

type nonrec calculated_spend = {
  1. forecasted_spend : spend option;
    (*

    The amount of cost, usage, RI units, or Savings Plans units that you're forecasted to use.

    *)
  2. actual_spend : spend;
    (*

    The amount of cost, usage, RI units, or Savings Plans units that you used.

    *)
}

The spend objects that are associated with this budget. The actualSpend tracks how much you've used, cost, usage, RI units, or Savings Plans units and the forecastedSpend tracks how much that you're predicted to spend based on your historical usage profile.

For example, if it's the 20th of the month and you have spent 50 dollars on Amazon EC2, your actualSpend is 50 USD, and your forecastedSpend is 75 USD.

type nonrec budget_type =
  1. | SPCoverage
  2. | SPUtilization
  3. | RICoverage
  4. | RIUtilization
  5. | Cost
  6. | Usage

The type of a budget. It must be one of the following types:

COST, USAGE, RI_UTILIZATION, RI_COVERAGE, SAVINGS_PLANS_UTILIZATION, or SAVINGS_PLANS_COVERAGE.

type nonrec auto_adjust_type =
  1. | FORECAST
  2. | HISTORICAL
type nonrec adjustment_period = int
type nonrec historical_options = {
  1. look_back_available_periods : adjustment_period option;
    (*

    The integer that describes how many budget periods in your BudgetAdjustmentPeriod are included in the calculation of your current BudgetLimit. If the first budget period in your BudgetAdjustmentPeriod has no cost data, then that budget period isn’t included in the average that determines your budget limit.

    For example, if you set BudgetAdjustmentPeriod as 4 quarters, but your account had no cost data in the first quarter, then only the last three quarters are included in the calculation. In this scenario, LookBackAvailablePeriods returns 3.

    You can’t set your own LookBackAvailablePeriods. The value is automatically calculated from the BudgetAdjustmentPeriod and your historical cost data.

    *)
  2. budget_adjustment_period : adjustment_period;
    (*

    The number of budget periods included in the moving-average calculation that determines your auto-adjusted budget amount. The maximum value depends on the TimeUnit granularity of the budget:

    • For the DAILY granularity, the maximum value is 60.
    • For the MONTHLY granularity, the maximum value is 12.
    • For the QUARTERLY granularity, the maximum value is 4.
    • For the ANNUALLY granularity, the maximum value is 1.
    *)
}

The parameters that define or describe the historical data that your auto-adjusting budget is based on.

type nonrec auto_adjust_data = {
  1. last_auto_adjust_time : generic_timestamp option;
    (*

    The last time that your budget was auto-adjusted.

    *)
  2. historical_options : historical_options option;
    (*

    The parameters that define or describe the historical data that your auto-adjusting budget is based on.

    *)
  3. auto_adjust_type : auto_adjust_type;
    (*

    The string that defines whether your budget auto-adjusts based on historical or forecasted data.

    *)
}

The parameters that determine the budget amount for an auto-adjusting budget.

type nonrec dimension =
  1. | COST_CATEGORY_NAME
  2. | TAG_KEY
  3. | RESERVATION_MODIFIED
  4. | PAYMENT_OPTION
  5. | SAVINGS_PLAN_ARN
  6. | SAVINGS_PLANS_TYPE
  7. | RIGHTSIZING_TYPE
  8. | RESOURCE_ID
  9. | RESERVATION_ID
  10. | BILLING_ENTITY
  11. | INSTANCE_TYPE_FAMILY
  12. | CACHE_ENGINE
  13. | DATABASE_ENGINE
  14. | DEPLOYMENT_OPTION
  15. | INVOICING_ENTITY
  16. | LEGAL_ENTITY_NAME
  17. | SUBSCRIPTION_ID
  18. | PLATFORM
  19. | SCOPE
  20. | TENANCY
  21. | OPERATING_SYSTEM
  22. | RECORD_TYPE
  23. | USAGE_TYPE_GROUP
  24. | USAGE_TYPE
  25. | SERVICE_CODE
  26. | SERVICE
  27. | REGION
  28. | PURCHASE_TYPE
  29. | OPERATION
  30. | LINKED_ACCOUNT_NAME
  31. | LINKED_ACCOUNT
  32. | INSTANCE_TYPE
  33. | AZ
type nonrec match_option =
  1. | CASE_INSENSITIVE
  2. | CASE_SENSITIVE
  3. | GREATER_THAN_OR_EQUAL
  4. | CONTAINS
  5. | ENDS_WITH
  6. | STARTS_WITH
  7. | ABSENT
  8. | EQUALS
type nonrec match_options = match_option list
type nonrec expression_dimension_values = {
  1. match_options : match_options option;
    (*

    The match options that you can use to filter your results. You can specify only one of these values in the array.

    *)
  2. values : values;
    (*

    The metadata values you can specify to filter upon, so that the results all match at least one of the specified values.

    *)
  3. key : dimension;
    (*

    The name of the dimension that you want to filter on.

    *)
}

Contains the specifications for the filters to use for your request.

type nonrec tag_key = string
type nonrec tag_values = {
  1. match_options : match_options option;
    (*

    The match options that you can use to filter your results.

    *)
  2. values : values option;
    (*

    The specific value of the tag.

    *)
  3. key : tag_key option;
    (*

    The key for the tag.

    *)
}

The values that are available for a tag.

type nonrec cost_category_name = string
type nonrec cost_category_values = {
  1. match_options : match_options option;
    (*

    The match options that you can use to filter your results.

    *)
  2. values : values option;
    (*

    The specific value of the cost category.

    *)
  3. key : cost_category_name option;
    (*

    The unique name of the cost category.

    *)
}

The cost category values used for filtering the costs.

type expression = {
  1. cost_categories : cost_category_values option;
    (*

    The filter that's based on CostCategoryValues.

    *)
  2. tags : tag_values option;
    (*

    The specific Tag to use for Expression.

    *)
  3. dimensions : expression_dimension_values option;
    (*

    The specific Dimension to use for Expression.

    *)
  4. not : expression option;
    (*

    Return results that don't match a Dimension object.

    *)
  5. and_ : expressions option;
    (*

    Return results that match both Dimension objects.

    *)
  6. or : expressions option;
    (*

    Return results that match either Dimension object.

    *)
}

Use Expression to filter in various Budgets APIs.

and expressions = expression list
type nonrec metric =
  1. | HOURS
  2. | NORMALIZED_USAGE_AMOUNT
  3. | USAGE_QUANTITY
  4. | NET_AMORTIZED_COST
  5. | NET_UNBLENDED_COST
  6. | AMORTIZED_COST
  7. | UNBLENDED_COST
  8. | BLENDED_COST
type nonrec metrics = metric list
type nonrec billing_view_arn = string
type nonrec health_status_value =
  1. | UNHEALTHY
  2. | HEALTHY
type nonrec health_status_reason =
  1. | MULTI_YEAR_HISTORICAL_DATA_DISABLED
  2. | FILTER_INVALID
  3. | BILLING_VIEW_UNHEALTHY
  4. | BILLING_VIEW_NO_ACCESS
type nonrec health_status = {
  1. last_updated_time : generic_timestamp option;
  2. status_reason : health_status_reason option;
    (*

    The reason for the current status.

    • BILLING_VIEW_NO_ACCESS: The billing view resource does not grant billing:GetBillingViewData permission to this account.
    • BILLING_VIEW_UNHEALTHY: The billing view associated with the budget is unhealthy.
    • FILTER_INVALID: The filter contains reference to an account you do not have access to.
    • MULTI_YEAR_HISTORICAL_DATA_DISABLED: The budget is not being updated. Enable multi-year historical data in your Cost Management preferences.
    *)
  3. status : health_status_value option;
    (*

    The current status of the billing view resource.

    *)
}

Provides information about the current operational state of a billing view resource, including its ability to access and update based on its associated billing view.

type nonrec budget = {
  1. health_status : health_status option;
    (*

    The current operational state of a Billing View derived resource.

    *)
  2. billing_view_arn : billing_view_arn option;
    (*

    The Amazon Resource Name (ARN) that uniquely identifies a specific billing view. The ARN is used to specify which particular billing view you want to interact with or retrieve information from when making API calls related to Amazon Web Services Billing and Cost Management features. The BillingViewArn can be retrieved by calling the ListBillingViews API.

    *)
  3. metrics : metrics option;
    (*

    The definition for how the budget data is aggregated.

    *)
  4. filter_expression : expression option;
    (*

    The filtering dimensions for the budget and their corresponding values.

    *)
  5. auto_adjust_data : auto_adjust_data option;
    (*

    The parameters that determine the budget amount for an auto-adjusting budget.

    *)
  6. last_updated_time : generic_timestamp option;
    (*

    The last time that you updated this budget.

    *)
  7. budget_type : budget_type;
    (*

    Specifies whether this budget tracks costs, usage, RI utilization, RI coverage, Savings Plans utilization, or Savings Plans coverage.

    *)
  8. calculated_spend : calculated_spend option;
    (*

    The actual and forecasted cost or usage that the budget tracks.

    *)
  9. time_period : time_period option;
    (*

    The period of time that's covered by a budget. You set the start date and end date. The start date must come before the end date. The end date must come before 06/15/87 00:00 UTC.

    If you create your budget and don't specify a start date, Amazon Web Services defaults to the start of your chosen time period (DAILY, MONTHLY, QUARTERLY, ANNUALLY, or CUSTOM). For example, if you created your budget on January 24, 2018, chose DAILY, and didn't set a start date, Amazon Web Services set your start date to 01/24/18 00:00 UTC. If you chose MONTHLY, Amazon Web Services set your start date to 01/01/18 00:00 UTC. If you didn't specify an end date, Amazon Web Services set your end date to 06/15/87 00:00 UTC. The defaults are the same for the Billing and Cost Management console and the API.

    You can change either date with the UpdateBudget operation.

    After the end date, Amazon Web Services deletes the budget and all the associated notifications and subscribers.

    *)
  10. time_unit : time_unit;
    (*

    The length of time until a budget resets the actual and forecasted spend.

    *)
  11. cost_types : cost_types option;
    (*

    The types of costs that are included in this COST budget.

    USAGE, RI_UTILIZATION, RI_COVERAGE, SAVINGS_PLANS_UTILIZATION, and SAVINGS_PLANS_COVERAGE budgets do not have CostTypes.

    *)
  12. cost_filters : cost_filters option;
    (*

    The cost filters, such as Region, Service, LinkedAccount, Tag, or CostCategory, that are applied to a budget.

    Amazon Web Services Budgets supports the following services as a Service filter for RI budgets:

    • Amazon EC2
    • Amazon Redshift
    • Amazon Relational Database Service
    • Amazon ElastiCache
    • Amazon OpenSearch Service
    *)
  13. planned_budget_limits : planned_budget_limits option;
    (*

    A map containing multiple BudgetLimit, including current or future limits.

    PlannedBudgetLimits is available for cost or usage budget and supports both monthly and quarterly TimeUnit.

    For monthly budgets, provide 12 months of PlannedBudgetLimits values. This must start from the current month and include the next 11 months. The key is the start of the month, UTC in epoch seconds.

    For quarterly budgets, provide four quarters of PlannedBudgetLimits value entries in standard calendar quarter increments. This must start from the current quarter and include the next three quarters. The key is the start of the quarter, UTC in epoch seconds.

    If the planned budget expires before 12 months for monthly or four quarters for quarterly, provide the PlannedBudgetLimits values only for the remaining periods.

    If the budget begins at a date in the future, provide PlannedBudgetLimits values from the start date of the budget.

    After all of the BudgetLimit values in PlannedBudgetLimits are used, the budget continues to use the last limit as the BudgetLimit. At that point, the planned budget provides the same experience as a fixed budget.

    DescribeBudget and DescribeBudgets response along with PlannedBudgetLimits also contain BudgetLimit representing the current month or quarter limit present in PlannedBudgetLimits. This only applies to budgets that are created with PlannedBudgetLimits. Budgets that are created without PlannedBudgetLimits only contain BudgetLimit. They don't contain PlannedBudgetLimits.

    *)
  14. budget_limit : spend option;
    (*

    The total amount of cost, usage, RI utilization, RI coverage, Savings Plans utilization, or Savings Plans coverage that you want to track with your budget.

    BudgetLimit is required for cost or usage budgets, but optional for RI or Savings Plans utilization or coverage budgets. RI and Savings Plans utilization or coverage budgets default to 100. This is the only valid value for RI or Savings Plans utilization or coverage budgets. You can't use BudgetLimit with PlannedBudgetLimits for CreateBudget and UpdateBudget actions.

    *)
  15. budget_name : budget_name;
    (*

    The name of a budget. The name must be unique within an account. The : and ] characters, and the "/action/" substring, aren't allowed in [BudgetName]. Budget names are validated for content. Names that contain phone numbers, URLs, or email addresses combined with certain terms may be rejected.

    *)
}

Represents the output of the CreateBudget operation. The content consists of the detailed metadata and data file information, and the current status of the budget object.

This is the Amazon Resource Name (ARN) pattern for a budget:

arn:aws:budgets::AccountId:budget/budgetName

type nonrec update_budget_request = {
  1. new_budget : budget;
    (*

    The budget that you want to update your budget to.

    *)
  2. account_id : account_id;
    (*

    The accountId that is associated with the budget that you want to update.

    *)
}

Request of UpdateBudget

type nonrec action_id = string
type nonrec action_type =
  1. | SSM
  2. | SCP
  3. | IAM
type nonrec action_threshold = {
  1. action_threshold_type : threshold_type;
  2. action_threshold_value : notification_threshold;
}

The trigger threshold of the action.

type nonrec policy_arn = string
type nonrec role = string
type nonrec roles = role list
type nonrec group = string
type nonrec groups = group list
type nonrec iam_action_definition = {
  1. users : users option;
    (*

    A list of users to be attached. There must be at least one user.

    *)
  2. groups : groups option;
    (*

    A list of groups to be attached. There must be at least one group.

    *)
  3. roles : roles option;
    (*

    A list of roles to be attached. There must be at least one role.

    *)
  4. policy_arn : policy_arn;
    (*

    The Amazon Resource Name (ARN) of the policy to be attached.

    *)
}

The Identity and Access Management (IAM) action definition details.

type nonrec policy_id = string
type nonrec target_id = string
type nonrec target_ids = target_id list
type nonrec scp_action_definition = {
  1. target_ids : target_ids;
    (*

    A list of target IDs.

    *)
  2. policy_id : policy_id;
    (*

    The policy ID attached.

    *)
}

The service control policies (SCP) action definition details.

type nonrec action_sub_type =
  1. | STOP_RDS
  2. | STOP_EC2
type nonrec region = string
type nonrec instance_id = string
type nonrec instance_ids = instance_id list
type nonrec ssm_action_definition = {
  1. instance_ids : instance_ids;
    (*

    The EC2 and RDS instance IDs.

    *)
  2. region : region;
    (*

    The Region to run the SSM document.

    *)
  3. action_sub_type : action_sub_type;
    (*

    The action subType.

    *)
}

The Amazon Web Services Systems Manager (SSM) action definition details.

type nonrec definition = {
  1. ssm_action_definition : ssm_action_definition option;
    (*

    The Amazon Web Services Systems Manager (SSM) action definition details.

    *)
  2. scp_action_definition : scp_action_definition option;
    (*

    The service control policies (SCPs) action definition details.

    *)
  3. iam_action_definition : iam_action_definition option;
    (*

    The Identity and Access Management (IAM) action definition details.

    *)
}

Specifies all of the type-specific parameters.

type nonrec role_arn = string
type nonrec approval_model =
  1. | MANUAL
  2. | AUTO
type nonrec action_status =
  1. | Reset_Failure
  2. | Reset_In_Progress
  3. | Reverse_Failure
  4. | Reverse_Success
  5. | Reverse_In_Progress
  6. | Execution_Failure
  7. | Execution_Success
  8. | Execution_In_Progress
  9. | Pending
  10. | Standby
type nonrec subscribers = subscriber list
type nonrec action = {
  1. subscribers : subscribers;
  2. status : action_status;
    (*

    The status of the action.

    *)
  3. approval_model : approval_model;
    (*

    This specifies if the action needs manual or automatic approval.

    *)
  4. execution_role_arn : role_arn;
    (*

    The role passed for action execution and reversion. Roles and actions must be in the same account.

    *)
  5. definition : definition;
    (*

    Where you specify all of the type-specific parameters.

    *)
  6. action_threshold : action_threshold;
    (*

    The trigger threshold of the action.

    *)
  7. action_type : action_type;
    (*

    The type of action. This defines the type of tasks that can be carried out by this action. This field also determines the format for definition.

    *)
  8. notification_type : notification_type;
  9. budget_name : budget_name;
  10. action_id : action_id;
    (*

    A system-generated universally unique identifier (UUID) for the action.

    *)
}

A budget action resource.

type nonrec update_budget_action_response = {
  1. new_action : action;
    (*

    The updated action resource information.

    *)
  2. old_action : action;
    (*

    The previous action resource information.

    *)
  3. budget_name : budget_name;
  4. account_id : account_id;
}
type nonrec update_budget_action_request = {
  1. subscribers : subscribers option;
  2. approval_model : approval_model option;
    (*

    This specifies if the action needs manual or automatic approval.

    *)
  3. execution_role_arn : role_arn option;
    (*

    The role passed for action execution and reversion. Roles and actions must be in the same account.

    *)
  4. definition : definition option;
  5. action_threshold : action_threshold option;
  6. notification_type : notification_type option;
  7. action_id : action_id;
    (*

    A system-generated universally unique identifier (UUID) for the action.

    *)
  8. budget_name : budget_name;
  9. account_id : account_id;
}
type nonrec resource_locked_exception = {
  1. message : error_message option;
}

The request was received and recognized by the server, but the server rejected that particular method for the requested resource.

type nonrec service_quota_exceeded_exception = {
  1. message : error_message option;
}

You've reached a Service Quota limit on this resource.

type nonrec billing_view_health_status_exception = {
  1. message : error_message option;
}

The billing view status must be HEALTHY to perform this action. Try again when the status is HEALTHY.

type nonrec untag_resource_response = unit
type nonrec amazon_resource_name = string
type nonrec resource_tag_key = string
type nonrec resource_tag_key_list = resource_tag_key list
type nonrec untag_resource_request = {
  1. resource_tag_keys : resource_tag_key_list;
    (*

    The key that's associated with the tag.

    *)
  2. resource_ar_n : amazon_resource_name;
    (*

    The unique identifier for the resource.

    *)
}
type nonrec tag_resource_response = unit
type nonrec resource_tag_value = string
type nonrec resource_tag = {
  1. value : resource_tag_value;
    (*

    The value that's associated with the tag.

    *)
  2. key : resource_tag_key;
    (*

    The key that's associated with the tag.

    *)
}

The tag structure that contains a tag key and value.

type nonrec resource_tag_list = resource_tag list
type nonrec tag_resource_request = {
  1. resource_tags : resource_tag_list;
    (*

    The tags associated with the resource.

    *)
  2. resource_ar_n : amazon_resource_name;
    (*

    The unique identifier for the resource.

    *)
}
type nonrec notifications = notification list
type nonrec notification_with_subscribers = {
  1. subscribers : subscribers;
    (*

    A list of subscribers who are subscribed to this notification.

    *)
  2. notification : notification;
    (*

    The notification that's associated with a budget.

    *)
}

A notification with subscribers. A notification can have one SNS subscriber and up to 10 email subscribers, for a total of 11 subscribers.

type nonrec notification_with_subscribers_list = notification_with_subscribers list
type nonrec max_results_describe_budgets = int
type nonrec max_results_budget_notifications = int
type nonrec max_results = int
type nonrec list_tags_for_resource_response = {
  1. resource_tags : resource_tag_list option;
    (*

    The tags associated with the resource.

    *)
}
type nonrec list_tags_for_resource_request = {
  1. resource_ar_n : amazon_resource_name;
    (*

    The unique identifier for the resource.

    *)
}
type nonrec invalid_next_token_exception = {
  1. message : error_message option;
}

The pagination token is invalid.

type nonrec expired_next_token_exception = {
  1. message : error_message option;
}

The pagination token expired.

type nonrec execution_type =
  1. | ResetBudgetAction
  2. | ReverseBudgetAction
  3. | RetryBudgetAction
  4. | ApproveBudgetAction
type nonrec execute_budget_action_response = {
  1. execution_type : execution_type;
    (*

    The type of execution.

    *)
  2. action_id : action_id;
    (*

    A system-generated universally unique identifier (UUID) for the action.

    *)
  3. budget_name : budget_name;
  4. account_id : account_id;
}
type nonrec execute_budget_action_request = {
  1. execution_type : execution_type;
    (*

    The type of execution.

    *)
  2. action_id : action_id;
    (*

    A system-generated universally unique identifier (UUID) for the action.

    *)
  3. budget_name : budget_name;
  4. account_id : account_id;
}
type nonrec event_type =
  1. | ExecuteAction
  2. | UpdateAction
  3. | DeleteAction
  4. | CreateAction
  5. | System
type nonrec describe_subscribers_for_notification_response = {
  1. next_token : generic_string option;
    (*

    The pagination token in the service response that indicates the next set of results that you can retrieve.

    *)
  2. subscribers : subscribers option;
    (*

    A list of subscribers that are associated with a notification.

    *)
}

Response of DescribeSubscribersForNotification

type nonrec describe_subscribers_for_notification_request = {
  1. next_token : generic_string option;
    (*

    The pagination token that you include in your request to indicate the next set of results that you want to retrieve.

    *)
  2. max_results : max_results option;
    (*

    An optional integer that represents how many entries a paginated response contains.

    *)
  3. notification : notification;
    (*

    The notification whose subscribers you want to list.

    *)
  4. budget_name : budget_name;
    (*

    The name of the budget whose subscribers you want descriptions of.

    *)
  5. account_id : account_id;
    (*

    The accountId that is associated with the budget whose subscribers you want descriptions of.

    *)
}

Request of DescribeSubscribersForNotification

type nonrec describe_notifications_for_budget_response = {
  1. next_token : generic_string option;
    (*

    The pagination token in the service response that indicates the next set of results that you can retrieve.

    *)
  2. notifications : notifications option;
    (*

    A list of notifications that are associated with a budget.

    *)
}

Response of GetNotificationsForBudget

type nonrec describe_notifications_for_budget_request = {
  1. next_token : generic_string option;
    (*

    The pagination token that you include in your request to indicate the next set of results that you want to retrieve.

    *)
  2. max_results : max_results option;
    (*

    An optional integer that represents how many entries a paginated response contains.

    *)
  3. budget_name : budget_name;
    (*

    The name of the budget whose notifications you want descriptions of.

    *)
  4. account_id : account_id;
    (*

    The accountId that is associated with the budget whose notifications you want descriptions of.

    *)
}

Request of DescribeNotificationsForBudget

type nonrec budgets = budget list
type nonrec describe_budgets_response = {
  1. next_token : generic_string option;
    (*

    The pagination token in the service response that indicates the next set of results that you can retrieve.

    *)
  2. budgets : budgets option;
    (*

    A list of budgets.

    *)
}

Response of DescribeBudgets

type nonrec describe_budgets_request = {
  1. show_filter_expression : nullable_boolean option;
    (*

    Specifies whether the response includes the filter expression associated with the budgets. By showing the filter expression, you can see detailed filtering logic applied to the budgets, such as Amazon Web Services services or tags that are being tracked.

    *)
  2. next_token : generic_string option;
    (*

    The pagination token that you include in your request to indicate the next set of results that you want to retrieve.

    *)
  3. max_results : max_results_describe_budgets option;
    (*

    An integer that represents how many budgets a paginated response contains. The default is 100.

    *)
  4. account_id : account_id;
    (*

    The accountId that is associated with the budgets that you want to describe.

    *)
}

Request of DescribeBudgets

type nonrec describe_budget_response = {
  1. budget : budget option;
    (*

    The description of the budget.

    *)
}

Response of DescribeBudget

type nonrec describe_budget_request = {
  1. show_filter_expression : nullable_boolean option;
    (*

    Specifies whether the response includes the filter expression associated with the budget. By showing the filter expression, you can see detailed filtering logic applied to the budget, such as Amazon Web Services services or tags that are being tracked.

    *)
  2. budget_name : budget_name;
    (*

    The name of the budget that you want a description of.

    *)
  3. account_id : account_id;
    (*

    The accountId that is associated with the budget that you want a description of.

    *)
}

Request of DescribeBudget

type nonrec budgeted_and_actual_amounts = {
  1. time_period : time_period option;
    (*

    The time period that's covered by this budget comparison.

    *)
  2. actual_amount : spend option;
    (*

    Your actual costs or usage for a budget period.

    *)
  3. budgeted_amount : spend option;
    (*

    The amount of cost or usage that you created the budget for.

    *)
}

The amount of cost or usage that you created the budget for, compared to your actual costs or usage.

type nonrec budgeted_and_actual_amounts_list = budgeted_and_actual_amounts list
type nonrec budget_performance_history = {
  1. metrics : metrics option;
    (*

    The definition for how the budget data is aggregated.

    *)
  2. filter_expression : expression option;
    (*

    The filtering dimensions for the budget and their corresponding values.

    *)
  3. budgeted_and_actual_amounts_list : budgeted_and_actual_amounts_list option;
    (*

    A list of amounts of cost or usage that you created budgets for, which are compared to your actual costs or usage.

    *)
  4. billing_view_arn : billing_view_arn option;
    (*

    The Amazon Resource Name (ARN) that uniquely identifies a specific billing view. The ARN is used to specify which particular billing view you want to interact with or retrieve information from when making API calls related to Amazon Web Services Billing and Cost Management features. The BillingViewArn can be retrieved by calling the ListBillingViews API.

    *)
  5. time_unit : time_unit option;
  6. cost_types : cost_types option;
    (*

    The history of the cost types for a budget during the specified time period.

    *)
  7. cost_filters : cost_filters option;
    (*

    The history of the cost filters for a budget during the specified time period.

    *)
  8. budget_type : budget_type option;
  9. budget_name : budget_name option;
}

A history of the state of a budget at the end of the budget's specified time period.

type nonrec describe_budget_performance_history_response = {
  1. next_token : generic_string option;
  2. budget_performance_history : budget_performance_history option;
    (*

    The history of how often the budget has gone into an ALARM state.

    For DAILY budgets, the history saves the state of the budget for the last 60 days. For MONTHLY budgets, the history saves the state of the budget for the current month plus the last 12 months. For QUARTERLY budgets, the history saves the state of the budget for the last four quarters.

    *)
}
type nonrec describe_budget_performance_history_request = {
  1. next_token : generic_string option;
  2. max_results : max_results option;
  3. time_period : time_period option;
    (*

    Retrieves how often the budget went into an ALARM state for the specified time period.

    *)
  4. budget_name : budget_name;
  5. account_id : account_id;
}
type nonrec budget_notifications_for_account = {
  1. budget_name : budget_name option;
  2. notifications : notifications option;
}

The budget name and associated notifications for an account.

type nonrec budget_notifications_for_account_list = budget_notifications_for_account list
type nonrec describe_budget_notifications_for_account_response = {
  1. next_token : generic_string option;
  2. budget_notifications_for_account : budget_notifications_for_account_list option;
    (*

    A list of budget names and associated notifications for an account.

    *)
}
type nonrec describe_budget_notifications_for_account_request = {
  1. next_token : generic_string option;
  2. max_results : max_results_budget_notifications option;
    (*

    An integer that represents how many budgets a paginated response contains. The default is 50.

    *)
  3. account_id : account_id;
}
type nonrec actions = action list
type nonrec describe_budget_actions_for_budget_response = {
  1. next_token : generic_string option;
  2. actions : actions;
    (*

    A list of the budget action resources information.

    *)
}
type nonrec describe_budget_actions_for_budget_request = {
  1. next_token : generic_string option;
  2. max_results : max_results option;
  3. budget_name : budget_name;
  4. account_id : account_id;
}
type nonrec describe_budget_actions_for_account_response = {
  1. next_token : generic_string option;
  2. actions : actions;
    (*

    A list of the budget action resources information.

    *)
}
type nonrec describe_budget_actions_for_account_request = {
  1. next_token : generic_string option;
  2. max_results : max_results option;
  3. account_id : account_id;
}
type nonrec describe_budget_action_response = {
  1. action : action;
    (*

    A budget action resource.

    *)
  2. budget_name : budget_name;
  3. account_id : account_id;
}
type nonrec describe_budget_action_request = {
  1. action_id : action_id;
    (*

    A system-generated universally unique identifier (UUID) for the action.

    *)
  2. budget_name : budget_name;
  3. account_id : account_id;
}
type nonrec action_history_details = {
  1. action : action;
    (*

    The budget action resource.

    *)
  2. message : generic_string;
}

The description of the details for the event.

type nonrec action_history = {
  1. action_history_details : action_history_details;
    (*

    The description of the details for the event.

    *)
  2. event_type : event_type;
    (*

    This distinguishes between whether the events are triggered by the user or are generated by the system.

    *)
  3. status : action_status;
    (*

    The status of action at the time of the event.

    *)
  4. timestamp : generic_timestamp;
}

The historical records for a budget action.

type nonrec action_histories = action_history list
type nonrec describe_budget_action_histories_response = {
  1. next_token : generic_string option;
  2. action_histories : action_histories;
    (*

    The historical record of the budget action resource.

    *)
}
type nonrec describe_budget_action_histories_request = {
  1. next_token : generic_string option;
  2. max_results : max_results option;
  3. time_period : time_period option;
  4. action_id : action_id;
    (*

    A system-generated universally unique identifier (UUID) for the action.

    *)
  5. budget_name : budget_name;
  6. account_id : account_id;
}
type nonrec delete_subscriber_response = unit
type nonrec delete_subscriber_request = {
  1. subscriber : subscriber;
    (*

    The subscriber that you want to delete.

    *)
  2. notification : notification;
    (*

    The notification whose subscriber you want to delete.

    *)
  3. budget_name : budget_name;
    (*

    The name of the budget whose subscriber you want to delete.

    *)
  4. account_id : account_id;
    (*

    The accountId that is associated with the budget whose subscriber you want to delete.

    *)
}

Request of DeleteSubscriber

type nonrec delete_notification_response = unit
type nonrec delete_notification_request = {
  1. notification : notification;
    (*

    The notification that you want to delete.

    *)
  2. budget_name : budget_name;
    (*

    The name of the budget whose notification you want to delete.

    *)
  3. account_id : account_id;
    (*

    The accountId that is associated with the budget whose notification you want to delete.

    *)
}

Request of DeleteNotification

type nonrec delete_budget_response = unit
type nonrec delete_budget_request = {
  1. budget_name : budget_name;
    (*

    The name of the budget that you want to delete.

    *)
  2. account_id : account_id;
    (*

    The accountId that is associated with the budget that you want to delete.

    *)
}

Request of DeleteBudget

type nonrec delete_budget_action_response = {
  1. action : action;
  2. budget_name : budget_name;
  3. account_id : account_id;
}
type nonrec delete_budget_action_request = {
  1. action_id : action_id;
    (*

    A system-generated universally unique identifier (UUID) for the action.

    *)
  2. budget_name : budget_name;
  3. account_id : account_id;
}
type nonrec creation_limit_exceeded_exception = {
  1. message : error_message option;
}

You've exceeded the notification or subscriber limit.

type nonrec create_subscriber_response = unit
type nonrec create_subscriber_request = {
  1. subscriber : subscriber;
    (*

    The subscriber that you want to associate with a budget notification.

    *)
  2. notification : notification;
    (*

    The notification that you want to create a subscriber for.

    *)
  3. budget_name : budget_name;
    (*

    The name of the budget that you want to subscribe to. Budget names must be unique within an account.

    *)
  4. account_id : account_id;
    (*

    The accountId that is associated with the budget that you want to create a subscriber for.

    *)
}

Request of CreateSubscriber

type nonrec create_notification_response = unit
type nonrec create_notification_request = {
  1. subscribers : subscribers;
    (*

    A list of subscribers that you want to associate with the notification. Each notification can have one SNS subscriber and up to 10 email subscribers.

    *)
  2. notification : notification;
    (*

    The notification that you want to create.

    *)
  3. budget_name : budget_name;
    (*

    The name of the budget that you want Amazon Web Services to notify you about. Budget names must be unique within an account.

    *)
  4. account_id : account_id;
    (*

    The accountId that is associated with the budget that you want to create a notification for.

    *)
}

Request of CreateNotification

type nonrec create_budget_response = unit
type nonrec create_budget_request = {
  1. resource_tags : resource_tag_list option;
    (*

    An optional list of tags to associate with the specified budget. Each tag consists of a key and a value, and each key must be unique for the resource.

    *)
  2. notifications_with_subscribers : notification_with_subscribers_list option;
    (*

    A notification that you want to associate with a budget. A budget can have up to five notifications, and each notification can have one SNS subscriber and up to 10 email subscribers. If you include notifications and subscribers in your CreateBudget call, Amazon Web Services creates the notifications and subscribers for you.

    *)
  3. budget : budget;
    (*

    The budget object that you want to create.

    *)
  4. account_id : account_id;
    (*

    The accountId that is associated with the budget.

    *)
}

Request of CreateBudget

type nonrec create_budget_action_response = {
  1. action_id : action_id;
    (*

    A system-generated universally unique identifier (UUID) for the action.

    *)
  2. budget_name : budget_name;
  3. account_id : account_id;
}
type nonrec create_budget_action_request = {
  1. resource_tags : resource_tag_list option;
    (*

    An optional list of tags to associate with the specified budget action. Each tag consists of a key and a value, and each key must be unique for the resource.

    *)
  2. subscribers : subscribers;
  3. approval_model : approval_model;
    (*

    This specifies if the action needs manual or automatic approval.

    *)
  4. execution_role_arn : role_arn;
    (*

    The role passed for action execution and reversion. Roles and actions must be in the same account.

    *)
  5. definition : definition;
  6. action_threshold : action_threshold;
  7. action_type : action_type;
    (*

    The type of action. This defines the type of tasks that can be carried out by this action. This field also determines the format for definition.

    *)
  8. notification_type : notification_type;
  9. budget_name : budget_name;
  10. account_id : account_id;
}