{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/amazon-billing-and-cost-management/json-schema/amazon-billing-and-cost-management-batch-create-bill-scenario-commitment-modification-response-schema.json",
  "title": "BatchCreateBillScenarioCommitmentModificationResponse",
  "x-generated": "2026-11-11",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/amazon-billing-and-cost-management-bill-scenario-commitment-modification-api-openapi.yml#/components/schemas/BatchCreateBillScenarioCommitmentModificationResponse",
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/BatchCreateBillScenarioCommitmentModificationItem"
      },
      "description": "Returns the list of successful commitment line items that were created for the Bill Scenario."
    },
    "errors": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/BatchCreateBillScenarioCommitmentModificationError"
      },
      "description": "Returns the list of errors reason and the commitment item keys that cannot be created in the Bill Scenario."
    }
  },
  "$defs": {
    "AddReservedInstanceAction": {
      "type": "object",
      "properties": {
        "reservedInstancesOfferingId": {
          "type": "string",
          "description": "The ID of the Reserved Instance offering to add. For more information, see DescribeReservedInstancesOfferings."
        },
        "instanceCount": {
          "type": "integer",
          "description": "The number of instances to add for this Reserved Instance offering."
        }
      }
    },
    "AddSavingsPlanAction": {
      "type": "object",
      "properties": {
        "savingsPlanOfferingId": {
          "type": "string",
          "description": "The ID of the Savings Plan offering to add. For more information, see DescribeSavingsPlansOfferings."
        },
        "commitment": {
          "type": "number",
          "description": "The hourly commitment, in the same currency of the savingsPlanOfferingId. This is a value between 0.001 and 1 million. You cannot specify more than five digits after the decimal point."
        }
      }
    },
    "BatchCreateBillScenarioCommitmentModificationError": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string",
          "description": "The key of the entry that caused the error."
        },
        "errorMessage": {
          "type": "string",
          "description": "A descriptive message for the error that occurred."
        },
        "errorCode": {
          "type": "string",
          "enum": [
            "CONFLICT",
            "INTERNAL_SERVER_ERROR",
            "INVALID_ACCOUNT"
          ],
          "description": "The error code associated with the failed operation."
        }
      }
    },
    "BatchCreateBillScenarioCommitmentModificationItem": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string",
          "description": "The key of the successfully created entry. This can be any valid string. This key is useful to identify errors associated with any commitment entry as any error is returned with this key."
        },
        "id": {
          "type": "string",
          "description": "The unique identifier assigned to the created commitment modification."
        },
        "group": {
          "type": "string",
          "description": "The group identifier for the created commitment modification."
        },
        "usageAccountId": {
          "type": "string",
          "description": "The Amazon Web Services account ID associated with the created commitment modification."
        },
        "commitmentAction": {
          "$ref": "#/$defs/BillScenarioCommitmentModificationAction"
        }
      }
    },
    "BillScenarioCommitmentModificationAction": {
      "type": "object",
      "properties": {
        "addReservedInstanceAction": {
          "$ref": "#/$defs/AddReservedInstanceAction"
        },
        "addSavingsPlanAction": {
          "$ref": "#/$defs/AddSavingsPlanAction"
        },
        "negateReservedInstanceAction": {
          "$ref": "#/$defs/NegateReservedInstanceAction"
        },
        "negateSavingsPlanAction": {
          "$ref": "#/$defs/NegateSavingsPlanAction"
        }
      },
      "description": "Exactly one member is set."
    },
    "NegateReservedInstanceAction": {
      "type": "object",
      "properties": {
        "reservedInstancesId": {
          "type": "string",
          "description": "The ID of the Reserved Instance to remove."
        }
      }
    },
    "NegateSavingsPlanAction": {
      "type": "object",
      "properties": {
        "savingsPlanId": {
          "type": "string",
          "description": "The ID of the Savings Plan to remove."
        }
      }
    }
  }
}