{
  "$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-get-recommendation-response-schema.json",
  "title": "GetRecommendationResponse",
  "x-generated": "2026-11-11",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/amazon-billing-and-cost-management-recommendations-api-openapi.yml#/components/schemas/GetRecommendationResponse",
  "type": "object",
  "properties": {
    "recommendationId": {
      "type": "string",
      "description": "The ID for the recommendation."
    },
    "resourceId": {
      "type": "string",
      "description": "The unique identifier for the resource. This is the same as the Amazon Resource Name (ARN), if available."
    },
    "resourceArn": {
      "type": "string",
      "description": "The Amazon Resource Name (ARN) of the resource."
    },
    "accountId": {
      "type": "string",
      "description": "The account to which the recommendation applies."
    },
    "currencyCode": {
      "type": "string",
      "description": "The currency code used for the recommendation."
    },
    "recommendationLookbackPeriodInDays": {
      "type": "integer",
      "description": "The lookback period that's used to generate the recommendation."
    },
    "costCalculationLookbackPeriodInDays": {
      "type": "integer",
      "description": "The lookback period used to calculate cost impact for a recommendation."
    },
    "estimatedSavingsPercentage": {
      "type": "number",
      "description": "The estimated savings percentage relative to the total cost over the cost calculation lookback period."
    },
    "estimatedSavingsOverCostCalculationLookbackPeriod": {
      "type": "number",
      "description": "The estimated savings amount over the lookback period used to calculate cost impact for a recommendation."
    },
    "currentResourceType": {
      "type": "string",
      "enum": [
        "Ec2Instance",
        "LambdaFunction",
        "EbsVolume",
        "EcsService",
        "Ec2AutoScalingGroup",
        "Ec2InstanceSavingsPlans",
        "ComputeSavingsPlans",
        "SageMakerSavingsPlans",
        "Ec2ReservedInstances",
        "RdsReservedInstances",
        "OpenSearchReservedInstances",
        "RedshiftReservedInstances",
        "ElastiCacheReservedInstances",
        "RdsDbInstanceStorage",
        "RdsDbInstance",
        "AuroraDbClusterStorage",
        "DynamoDbReservedCapacity",
        "MemoryDbReservedInstances",
        "NatGateway",
        "DynamoDBTable",
        "ElastiCacheCluster",
        "MemoryDBCluster",
        "DocumentDBCluster",
        "WorkSpaces",
        "SageMakerEndpoint"
      ],
      "description": "The type of resource."
    },
    "recommendedResourceType": {
      "type": "string",
      "enum": [
        "Ec2Instance",
        "LambdaFunction",
        "EbsVolume",
        "EcsService",
        "Ec2AutoScalingGroup",
        "Ec2InstanceSavingsPlans",
        "ComputeSavingsPlans",
        "SageMakerSavingsPlans",
        "Ec2ReservedInstances",
        "RdsReservedInstances",
        "OpenSearchReservedInstances",
        "RedshiftReservedInstances",
        "ElastiCacheReservedInstances",
        "RdsDbInstanceStorage",
        "RdsDbInstance",
        "AuroraDbClusterStorage",
        "DynamoDbReservedCapacity",
        "MemoryDbReservedInstances",
        "NatGateway",
        "DynamoDBTable",
        "ElastiCacheCluster",
        "MemoryDBCluster",
        "DocumentDBCluster",
        "WorkSpaces",
        "SageMakerEndpoint"
      ],
      "description": "The resource type of the recommendation."
    },
    "region": {
      "type": "string",
      "description": "The Amazon Web Services Region of the resource."
    },
    "source": {
      "type": "string",
      "enum": [
        "ComputeOptimizer",
        "CostExplorer"
      ],
      "description": "The source of the recommendation."
    },
    "lastRefreshTimestamp": {
      "type": "string",
      "format": "date-time",
      "description": "The time when the recommendation was last generated."
    },
    "estimatedMonthlySavings": {
      "type": "number",
      "description": "The estimated monthly savings amount for the recommendation."
    },
    "estimatedMonthlyCost": {
      "type": "number",
      "description": "The estimated monthly cost of the current resource. For Reserved Instances and Savings Plans, it refers to the cost for eligible usage."
    },
    "implementationEffort": {
      "type": "string",
      "enum": [
        "VeryLow",
        "Low",
        "Medium",
        "High",
        "VeryHigh"
      ],
      "description": "The effort required to implement the recommendation."
    },
    "restartNeeded": {
      "type": "boolean",
      "description": "Whether or not implementing the recommendation requires a restart."
    },
    "actionType": {
      "type": "string",
      "enum": [
        "Rightsize",
        "Stop",
        "Upgrade",
        "PurchaseSavingsPlans",
        "PurchaseReservedInstances",
        "MigrateToGraviton",
        "Delete",
        "ScaleIn"
      ],
      "description": "The type of action you can take by adopting the recommendation."
    },
    "rollbackPossible": {
      "type": "boolean",
      "description": "Whether or not implementing the recommendation can be rolled back."
    },
    "currentResourceDetails": {
      "$ref": "#/$defs/CostOptimizationHubResourceDetails"
    },
    "recommendedResourceDetails": {
      "$ref": "#/$defs/CostOptimizationHubResourceDetails"
    },
    "tags": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/CostOptimizationHubTag"
      },
      "description": "A list of tags associated with the resource for which the recommendation exists."
    }
  },
  "$defs": {
    "AuroraDbClusterStorage": {
      "type": "object",
      "properties": {
        "configuration": {
          "$ref": "#/$defs/AuroraDbClusterStorageConfiguration"
        },
        "costCalculation": {
          "$ref": "#/$defs/ResourceCostCalculation"
        }
      }
    },
    "AuroraDbClusterStorageConfiguration": {
      "type": "object",
      "properties": {
        "storageType": {
          "type": "string",
          "description": "The storage type to associate with the Aurora DB cluster."
        }
      }
    },
    "BlockStoragePerformanceConfiguration": {
      "type": "object",
      "properties": {
        "iops": {
          "type": "number",
          "description": "The number of I/O operations per second."
        },
        "throughput": {
          "type": "number",
          "description": "The throughput that the volume supports."
        }
      }
    },
    "ComputeConfiguration": {
      "type": "object",
      "properties": {
        "vCpu": {
          "type": "number",
          "description": "The number of vCPU cores in the resource."
        },
        "memorySizeInMB": {
          "type": "integer",
          "description": "The memory size of the resource."
        },
        "architecture": {
          "type": "string",
          "description": "The architecture of the resource."
        },
        "platform": {
          "type": "string",
          "description": "The platform of the resource. The platform is the specific combination of operating system, license model, and software on an instance."
        }
      }
    },
    "ComputeSavingsPlans": {
      "type": "object",
      "properties": {
        "configuration": {
          "$ref": "#/$defs/ComputeSavingsPlansConfiguration"
        },
        "costCalculation": {
          "$ref": "#/$defs/SavingsPlansCostCalculation"
        }
      }
    },
    "ComputeSavingsPlansConfiguration": {
      "type": "object",
      "properties": {
        "accountScope": {
          "type": "string",
          "description": "The account scope for which you want recommendations. Amazon Web Services calculates recommendations including the management account and member accounts if the value is set to PAYER. If the value is LINKED, recommendations are calculated for individual member accounts only."
        },
        "term": {
          "type": "string",
          "description": "The Savings Plans recommendation term in years."
        },
        "paymentOption": {
          "type": "string",
          "description": "The payment option for the commitment."
        },
        "hourlyCommitment": {
          "type": "string",
          "description": "The hourly commitment for the Savings Plans type."
        }
      }
    },
    "CostOptimizationHubResourceDetails": {
      "type": "object",
      "properties": {
        "lambdaFunction": {
          "$ref": "#/$defs/LambdaFunction"
        },
        "ecsService": {
          "$ref": "#/$defs/EcsService"
        },
        "ec2Instance": {
          "$ref": "#/$defs/Ec2Instance"
        },
        "ebsVolume": {
          "$ref": "#/$defs/EbsVolume"
        },
        "ec2AutoScalingGroup": {
          "$ref": "#/$defs/Ec2AutoScalingGroup"
        },
        "ec2ReservedInstances": {
          "$ref": "#/$defs/Ec2ReservedInstances"
        },
        "rdsReservedInstances": {
          "$ref": "#/$defs/RdsReservedInstances"
        },
        "elastiCacheReservedInstances": {
          "$ref": "#/$defs/ElastiCacheReservedInstances"
        },
        "openSearchReservedInstances": {
          "$ref": "#/$defs/OpenSearchReservedInstances"
        },
        "redshiftReservedInstances": {
          "$ref": "#/$defs/RedshiftReservedInstances"
        },
        "ec2InstanceSavingsPlans": {
          "$ref": "#/$defs/Ec2InstanceSavingsPlans"
        },
        "computeSavingsPlans": {
          "$ref": "#/$defs/ComputeSavingsPlans"
        },
        "sageMakerSavingsPlans": {
          "$ref": "#/$defs/SageMakerSavingsPlans"
        },
        "rdsDbInstance": {
          "$ref": "#/$defs/RdsDbInstance"
        },
        "rdsDbInstanceStorage": {
          "$ref": "#/$defs/RdsDbInstanceStorage"
        },
        "auroraDbClusterStorage": {
          "$ref": "#/$defs/AuroraDbClusterStorage"
        },
        "dynamoDbReservedCapacity": {
          "$ref": "#/$defs/DynamoDbReservedCapacity"
        },
        "memoryDbReservedInstances": {
          "$ref": "#/$defs/MemoryDbReservedInstances"
        },
        "natGateway": {
          "$ref": "#/$defs/NatGateway"
        },
        "dynamoDbTable": {
          "$ref": "#/$defs/DynamoDbTable"
        },
        "elastiCacheCluster": {
          "$ref": "#/$defs/ElastiCacheCluster"
        },
        "memoryDbCluster": {
          "$ref": "#/$defs/MemoryDbCluster"
        },
        "documentDbCluster": {
          "$ref": "#/$defs/DocumentDbCluster"
        },
        "workSpaces": {
          "$ref": "#/$defs/WorkSpaces"
        },
        "sageMakerEndpoint": {
          "$ref": "#/$defs/SageMakerEndpoint"
        }
      },
      "description": "Exactly one member is set."
    },
    "CostOptimizationHubTag": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string",
          "description": "The key that's associated with the tag."
        },
        "value": {
          "type": "string",
          "description": "The value that's associated with the tag."
        }
      }
    },
    "DbInstanceConfiguration": {
      "type": "object",
      "properties": {
        "dbInstanceClass": {
          "type": "string",
          "description": "The DB instance class of the DB instance."
        }
      }
    },
    "DocumentDbCluster": {
      "type": "object",
      "properties": {
        "costCalculation": {
          "$ref": "#/$defs/ResourceCostCalculation"
        }
      }
    },
    "DynamoDbReservedCapacity": {
      "type": "object",
      "properties": {
        "configuration": {
          "$ref": "#/$defs/DynamoDbReservedCapacityConfiguration"
        },
        "costCalculation": {
          "$ref": "#/$defs/ReservedInstancesCostCalculation"
        }
      }
    },
    "DynamoDbReservedCapacityConfiguration": {
      "type": "object",
      "properties": {
        "accountScope": {
          "type": "string",
          "description": "The account scope for which you want recommendations."
        },
        "service": {
          "type": "string",
          "description": "The service for which you want recommendations."
        },
        "term": {
          "type": "string",
          "description": "The reserved capacity recommendation term in years."
        },
        "paymentOption": {
          "type": "string",
          "description": "The payment option for the commitment."
        },
        "reservedInstancesRegion": {
          "type": "string",
          "description": "The Amazon Web Services Region of the commitment."
        },
        "upfrontCost": {
          "type": "string",
          "description": "How much purchasing this reserved capacity costs you upfront."
        },
        "monthlyRecurringCost": {
          "type": "string",
          "description": "How much purchasing this reserved capacity costs you on a monthly basis."
        },
        "numberOfCapacityUnitsToPurchase": {
          "type": "string",
          "description": "The number of reserved capacity units that Amazon Web Services recommends that you purchase."
        },
        "capacityUnits": {
          "type": "string",
          "description": "The capacity unit of the recommended reservation."
        }
      }
    },
    "DynamoDbTable": {
      "type": "object",
      "properties": {
        "costCalculation": {
          "$ref": "#/$defs/ResourceCostCalculation"
        }
      }
    },
    "EbsVolume": {
      "type": "object",
      "properties": {
        "configuration": {
          "$ref": "#/$defs/EbsVolumeConfiguration"
        },
        "costCalculation": {
          "$ref": "#/$defs/ResourceCostCalculation"
        }
      }
    },
    "EbsVolumeConfiguration": {
      "type": "object",
      "properties": {
        "storage": {
          "$ref": "#/$defs/StorageConfiguration"
        },
        "performance": {
          "$ref": "#/$defs/BlockStoragePerformanceConfiguration"
        },
        "attachmentState": {
          "type": "string",
          "description": "The Amazon Elastic Block Store attachment state."
        }
      }
    },
    "Ec2AutoScalingGroup": {
      "type": "object",
      "properties": {
        "configuration": {
          "$ref": "#/$defs/Ec2AutoScalingGroupConfiguration"
        },
        "costCalculation": {
          "$ref": "#/$defs/ResourceCostCalculation"
        }
      }
    },
    "Ec2AutoScalingGroupConfiguration": {
      "type": "object",
      "properties": {
        "instance": {
          "$ref": "#/$defs/InstanceConfiguration"
        },
        "mixedInstances": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/MixedInstanceConfiguration"
          },
          "description": "A list of instance types for an EC2 Auto Scaling group with mixed instance types."
        },
        "type": {
          "type": "string",
          "enum": [
            "SingleInstanceType",
            "MixedInstanceTypes"
          ],
          "description": "The type of EC2 Auto Scaling group, showing whether it consists of a single instance type or mixed instance types."
        },
        "allocationStrategy": {
          "type": "string",
          "enum": [
            "Prioritized",
            "LowestPrice"
          ],
          "description": "The strategy used for allocating instances, based on a predefined priority order or based on the lowest available price."
        }
      }
    },
    "Ec2Instance": {
      "type": "object",
      "properties": {
        "configuration": {
          "$ref": "#/$defs/Ec2InstanceConfiguration"
        },
        "costCalculation": {
          "$ref": "#/$defs/ResourceCostCalculation"
        }
      }
    },
    "Ec2InstanceConfiguration": {
      "type": "object",
      "properties": {
        "instance": {
          "$ref": "#/$defs/InstanceConfiguration"
        }
      }
    },
    "Ec2InstanceSavingsPlans": {
      "type": "object",
      "properties": {
        "configuration": {
          "$ref": "#/$defs/Ec2InstanceSavingsPlansConfiguration"
        },
        "costCalculation": {
          "$ref": "#/$defs/SavingsPlansCostCalculation"
        }
      }
    },
    "Ec2InstanceSavingsPlansConfiguration": {
      "type": "object",
      "properties": {
        "accountScope": {
          "type": "string",
          "description": "The account scope for which you want recommendations."
        },
        "term": {
          "type": "string",
          "description": "The Savings Plans recommendation term in years."
        },
        "paymentOption": {
          "type": "string",
          "description": "The payment option for the commitment."
        },
        "hourlyCommitment": {
          "type": "string",
          "description": "The hourly commitment for the Savings Plans type."
        },
        "instanceFamily": {
          "type": "string",
          "description": "The instance family of the recommended Savings Plans."
        },
        "savingsPlansRegion": {
          "type": "string",
          "description": "The Amazon Web Services Region of the commitment."
        }
      }
    },
    "Ec2ReservedInstances": {
      "type": "object",
      "properties": {
        "configuration": {
          "$ref": "#/$defs/Ec2ReservedInstancesConfiguration"
        },
        "costCalculation": {
          "$ref": "#/$defs/ReservedInstancesCostCalculation"
        }
      }
    },
    "Ec2ReservedInstancesConfiguration": {
      "type": "object",
      "properties": {
        "accountScope": {
          "type": "string",
          "description": "The account scope for which you want recommendations."
        },
        "service": {
          "type": "string",
          "description": "The service for which you want recommendations."
        },
        "term": {
          "type": "string",
          "description": "The reserved instances recommendation term in years."
        },
        "paymentOption": {
          "type": "string",
          "description": "The payment option for the commitment."
        },
        "reservedInstancesRegion": {
          "type": "string",
          "description": "The Amazon Web Services Region of the commitment."
        },
        "upfrontCost": {
          "type": "string",
          "description": "How much purchasing this instance costs you upfront."
        },
        "monthlyRecurringCost": {
          "type": "string",
          "description": "How much purchasing these reserved instances costs you on a monthly basis."
        },
        "normalizedUnitsToPurchase": {
          "type": "string",
          "description": "The number of normalized units that Amazon Web Services recommends that you purchase."
        },
        "numberOfInstancesToPurchase": {
          "type": "string",
          "description": "The number of instances that Amazon Web Services recommends that you purchase."
        },
        "offeringClass": {
          "type": "string",
          "description": "Indicates whether the recommendation is for standard or convertible reservations."
        },
        "instanceFamily": {
          "type": "string",
          "description": "The instance family of the recommended reservation."
        },
        "instanceType": {
          "type": "string",
          "description": "The type of instance that Amazon Web Services recommends."
        },
        "currentGeneration": {
          "type": "string",
          "description": "Determines whether the recommendation is for a current generation instance."
        },
        "platform": {
          "type": "string",
          "description": "The platform of the recommended reservation. The platform is the specific combination of operating system, license model, and software on an instance."
        },
        "tenancy": {
          "type": "string",
          "description": "Determines whether the recommended reservation is dedicated or shared."
        },
        "sizeFlexEligible": {
          "type": "boolean",
          "description": "Determines whether the recommendation is size flexible."
        }
      }
    },
    "EcsService": {
      "type": "object",
      "properties": {
        "configuration": {
          "$ref": "#/$defs/EcsServiceConfiguration"
        },
        "costCalculation": {
          "$ref": "#/$defs/ResourceCostCalculation"
        }
      }
    },
    "EcsServiceConfiguration": {
      "type": "object",
      "properties": {
        "compute": {
          "$ref": "#/$defs/ComputeConfiguration"
        }
      }
    },
    "ElastiCacheCluster": {
      "type": "object",
      "properties": {
        "costCalculation": {
          "$ref": "#/$defs/ResourceCostCalculation"
        }
      }
    },
    "ElastiCacheReservedInstances": {
      "type": "object",
      "properties": {
        "configuration": {
          "$ref": "#/$defs/ElastiCacheReservedInstancesConfiguration"
        },
        "costCalculation": {
          "$ref": "#/$defs/ReservedInstancesCostCalculation"
        }
      }
    },
    "ElastiCacheReservedInstancesConfiguration": {
      "type": "object",
      "properties": {
        "accountScope": {
          "type": "string",
          "description": "The account scope for which you want recommendations."
        },
        "service": {
          "type": "string",
          "description": "The service for which you want recommendations."
        },
        "term": {
          "type": "string",
          "description": "The reserved instances recommendation term in years."
        },
        "paymentOption": {
          "type": "string",
          "description": "The payment option for the commitment."
        },
        "reservedInstancesRegion": {
          "type": "string",
          "description": "The Amazon Web Services Region of the commitment."
        },
        "upfrontCost": {
          "type": "string",
          "description": "How much purchasing this instance costs you upfront."
        },
        "monthlyRecurringCost": {
          "type": "string",
          "description": "How much purchasing these reserved instances costs you on a monthly basis."
        },
        "normalizedUnitsToPurchase": {
          "type": "string",
          "description": "The number of normalized units that Amazon Web Services recommends that you purchase."
        },
        "numberOfInstancesToPurchase": {
          "type": "string",
          "description": "The number of instances that Amazon Web Services recommends that you purchase."
        },
        "instanceFamily": {
          "type": "string",
          "description": "The instance family of the recommended reservation."
        },
        "instanceType": {
          "type": "string",
          "description": "The type of instance that Amazon Web Services recommends."
        },
        "currentGeneration": {
          "type": "string",
          "description": "Determines whether the recommendation is for a current generation instance."
        },
        "sizeFlexEligible": {
          "type": "boolean",
          "description": "Determines whether the recommendation is size flexible."
        }
      }
    },
    "EstimatedDiscounts": {
      "type": "object",
      "properties": {
        "savingsPlansDiscount": {
          "type": "number",
          "description": "Estimated Savings Plans discounts."
        },
        "reservedInstancesDiscount": {
          "type": "number",
          "description": "Estimated reserved instance discounts."
        },
        "otherDiscount": {
          "type": "number",
          "description": "Estimated other discounts include all discounts that are not itemized. Itemized discounts include reservedInstanceDiscount and savingsPlansDiscount."
        }
      }
    },
    "InstanceConfiguration": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "The instance type of the configuration."
        }
      }
    },
    "LambdaFunction": {
      "type": "object",
      "properties": {
        "configuration": {
          "$ref": "#/$defs/LambdaFunctionConfiguration"
        },
        "costCalculation": {
          "$ref": "#/$defs/ResourceCostCalculation"
        }
      }
    },
    "LambdaFunctionConfiguration": {
      "type": "object",
      "properties": {
        "compute": {
          "$ref": "#/$defs/ComputeConfiguration"
        }
      }
    },
    "MemoryDbCluster": {
      "type": "object",
      "properties": {
        "costCalculation": {
          "$ref": "#/$defs/ResourceCostCalculation"
        }
      }
    },
    "MemoryDbReservedInstances": {
      "type": "object",
      "properties": {
        "configuration": {
          "$ref": "#/$defs/MemoryDbReservedInstancesConfiguration"
        },
        "costCalculation": {
          "$ref": "#/$defs/ReservedInstancesCostCalculation"
        }
      }
    },
    "MemoryDbReservedInstancesConfiguration": {
      "type": "object",
      "properties": {
        "accountScope": {
          "type": "string",
          "description": "The account scope for which you want recommendations."
        },
        "service": {
          "type": "string",
          "description": "The service for which you want recommendations."
        },
        "term": {
          "type": "string",
          "description": "The reserved instances recommendation term in years."
        },
        "paymentOption": {
          "type": "string",
          "description": "The payment option for the commitment."
        },
        "reservedInstancesRegion": {
          "type": "string",
          "description": "The Amazon Web Services Region of the commitment."
        },
        "upfrontCost": {
          "type": "string",
          "description": "How much purchasing these reserved instances costs you upfront."
        },
        "monthlyRecurringCost": {
          "type": "string",
          "description": "How much purchasing these reserved instances costs you on a monthly basis."
        },
        "normalizedUnitsToPurchase": {
          "type": "string",
          "description": "The number of normalized units that Amazon Web Services recommends that you purchase."
        },
        "numberOfInstancesToPurchase": {
          "type": "string",
          "description": "The number of instances that Amazon Web Services recommends that you purchase."
        },
        "instanceType": {
          "type": "string",
          "description": "The type of instance that Amazon Web Services recommends."
        },
        "instanceFamily": {
          "type": "string",
          "description": "The instance family of the recommended reservation."
        },
        "sizeFlexEligible": {
          "type": "boolean",
          "description": "Determines whether the recommendation is size flexible."
        },
        "currentGeneration": {
          "type": "string",
          "description": "Determines whether the recommendation is for a current generation instance."
        }
      }
    },
    "MixedInstanceConfiguration": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "The instance type of the configuration."
        }
      }
    },
    "NatGateway": {
      "type": "object",
      "properties": {
        "configuration": {
          "$ref": "#/$defs/NatGatewayConfiguration"
        },
        "costCalculation": {
          "$ref": "#/$defs/ResourceCostCalculation"
        }
      }
    },
    "NatGatewayConfiguration": {
      "type": "object",
      "properties": {
        "activeConnectionCount": {
          "type": "integer",
          "description": "The number of active connections through the NAT Gateway."
        },
        "packetsInFromSource": {
          "type": "integer",
          "description": "The number of packets received from the source through the NAT Gateway."
        },
        "packetsInFromDestination": {
          "type": "integer",
          "description": "The number of packets received from the destination through the NAT Gateway."
        }
      }
    },
    "OpenSearchReservedInstances": {
      "type": "object",
      "properties": {
        "configuration": {
          "$ref": "#/$defs/OpenSearchReservedInstancesConfiguration"
        },
        "costCalculation": {
          "$ref": "#/$defs/ReservedInstancesCostCalculation"
        }
      }
    },
    "OpenSearchReservedInstancesConfiguration": {
      "type": "object",
      "properties": {
        "accountScope": {
          "type": "string",
          "description": "The account scope for which you want recommendations."
        },
        "service": {
          "type": "string",
          "description": "The service for which you want recommendations."
        },
        "term": {
          "type": "string",
          "description": "The reserved instances recommendation term in years."
        },
        "paymentOption": {
          "type": "string",
          "description": "The payment option for the commitment."
        },
        "reservedInstancesRegion": {
          "type": "string",
          "description": "The Amazon Web Services Region of the commitment."
        },
        "upfrontCost": {
          "type": "string",
          "description": "How much purchasing this instance costs you upfront."
        },
        "monthlyRecurringCost": {
          "type": "string",
          "description": "How much purchasing these reserved instances costs you on a monthly basis."
        },
        "normalizedUnitsToPurchase": {
          "type": "string",
          "description": "The number of normalized units that Amazon Web Services recommends that you purchase."
        },
        "numberOfInstancesToPurchase": {
          "type": "string",
          "description": "The number of instances that Amazon Web Services recommends that you purchase."
        },
        "instanceType": {
          "type": "string",
          "description": "The type of instance that Amazon Web Services recommends."
        },
        "currentGeneration": {
          "type": "string",
          "description": "Determines whether the recommendation is for a current generation instance."
        },
        "sizeFlexEligible": {
          "type": "boolean",
          "description": "Determines whether the recommendation is size flexible."
        }
      }
    },
    "RdsDbInstance": {
      "type": "object",
      "properties": {
        "configuration": {
          "$ref": "#/$defs/RdsDbInstanceConfiguration"
        },
        "costCalculation": {
          "$ref": "#/$defs/ResourceCostCalculation"
        }
      }
    },
    "RdsDbInstanceConfiguration": {
      "type": "object",
      "properties": {
        "instance": {
          "$ref": "#/$defs/DbInstanceConfiguration"
        }
      }
    },
    "RdsDbInstanceStorage": {
      "type": "object",
      "properties": {
        "configuration": {
          "$ref": "#/$defs/RdsDbInstanceStorageConfiguration"
        },
        "costCalculation": {
          "$ref": "#/$defs/ResourceCostCalculation"
        }
      }
    },
    "RdsDbInstanceStorageConfiguration": {
      "type": "object",
      "properties": {
        "storageType": {
          "type": "string",
          "description": "The storage type to associate with the DB instance."
        },
        "allocatedStorageInGb": {
          "type": "number",
          "description": "The new amount of storage in GB to allocate for the DB instance."
        },
        "iops": {
          "type": "number",
          "description": "The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for the DB instance."
        },
        "storageThroughput": {
          "type": "number",
          "description": "The storage throughput for the DB instance."
        }
      }
    },
    "RdsReservedInstances": {
      "type": "object",
      "properties": {
        "configuration": {
          "$ref": "#/$defs/RdsReservedInstancesConfiguration"
        },
        "costCalculation": {
          "$ref": "#/$defs/ReservedInstancesCostCalculation"
        }
      }
    },
    "RdsReservedInstancesConfiguration": {
      "type": "object",
      "properties": {
        "accountScope": {
          "type": "string",
          "description": "The account scope for which you want recommendations."
        },
        "service": {
          "type": "string",
          "description": "The service for which you want recommendations."
        },
        "term": {
          "type": "string",
          "description": "The reserved instances recommendation term in years."
        },
        "paymentOption": {
          "type": "string",
          "description": "The payment option for the commitment."
        },
        "reservedInstancesRegion": {
          "type": "string",
          "description": "The Amazon Web Services Region of the commitment."
        },
        "upfrontCost": {
          "type": "string",
          "description": "How much purchasing this instance costs you upfront."
        },
        "monthlyRecurringCost": {
          "type": "string",
          "description": "How much purchasing this instance costs you on a monthly basis."
        },
        "normalizedUnitsToPurchase": {
          "type": "string",
          "description": "The number of normalized units that Amazon Web Services recommends that you purchase."
        },
        "numberOfInstancesToPurchase": {
          "type": "string",
          "description": "The number of instances that Amazon Web Services recommends that you purchase."
        },
        "instanceFamily": {
          "type": "string",
          "description": "The instance family of the recommended reservation."
        },
        "instanceType": {
          "type": "string",
          "description": "The type of instance that Amazon Web Services recommends."
        },
        "sizeFlexEligible": {
          "type": "boolean",
          "description": "Determines whether the recommendation is size flexible."
        },
        "currentGeneration": {
          "type": "string",
          "description": "Determines whether the recommendation is for a current generation instance."
        },
        "licenseModel": {
          "type": "string",
          "description": "The license model that the recommended reservation supports."
        },
        "databaseEdition": {
          "type": "string",
          "description": "The database edition that the recommended reservation supports."
        },
        "databaseEngine": {
          "type": "string",
          "description": "The database engine that the recommended reservation supports."
        },
        "deploymentOption": {
          "type": "string",
          "description": "Determines whether the recommendation is for a reservation in a single Availability Zone or a reservation with a backup in a second Availability Zone."
        }
      }
    },
    "RedshiftReservedInstances": {
      "type": "object",
      "properties": {
        "configuration": {
          "$ref": "#/$defs/RedshiftReservedInstancesConfiguration"
        },
        "costCalculation": {
          "$ref": "#/$defs/ReservedInstancesCostCalculation"
        }
      }
    },
    "RedshiftReservedInstancesConfiguration": {
      "type": "object",
      "properties": {
        "accountScope": {
          "type": "string",
          "description": "The account scope for which you want recommendations."
        },
        "service": {
          "type": "string",
          "description": "The service for which you want recommendations."
        },
        "term": {
          "type": "string",
          "description": "The reserved instances recommendation term in years."
        },
        "paymentOption": {
          "type": "string",
          "description": "The payment option for the commitment."
        },
        "reservedInstancesRegion": {
          "type": "string",
          "description": "The Amazon Web Services Region of the commitment."
        },
        "upfrontCost": {
          "type": "string",
          "description": "How much purchasing this instance costs you upfront."
        },
        "monthlyRecurringCost": {
          "type": "string",
          "description": "How much purchasing these reserved instances costs you on a monthly basis."
        },
        "normalizedUnitsToPurchase": {
          "type": "string",
          "description": "The number of normalized units that Amazon Web Services recommends that you purchase."
        },
        "numberOfInstancesToPurchase": {
          "type": "string",
          "description": "The number of instances that Amazon Web Services recommends that you purchase."
        },
        "instanceFamily": {
          "type": "string",
          "description": "The instance family of the recommended reservation."
        },
        "instanceType": {
          "type": "string",
          "description": "The type of instance that Amazon Web Services recommends."
        },
        "sizeFlexEligible": {
          "type": "boolean",
          "description": "Determines whether the recommendation is size flexible."
        },
        "currentGeneration": {
          "type": "string",
          "description": "Determines whether the recommendation is for a current generation instance."
        }
      }
    },
    "ReservedInstancesCostCalculation": {
      "type": "object",
      "properties": {
        "pricing": {
          "$ref": "#/$defs/ReservedInstancesPricing"
        }
      }
    },
    "ReservedInstancesPricing": {
      "type": "object",
      "properties": {
        "estimatedOnDemandCost": {
          "type": "number",
          "description": "The remaining On-Demand cost estimated to not be covered by the recommended reserved instance, over the length of the lookback period."
        },
        "monthlyReservationEligibleCost": {
          "type": "number",
          "description": "The cost of paying for the recommended reserved instance monthly."
        },
        "savingsPercentage": {
          "type": "number",
          "description": "The savings percentage relative to the total On-Demand costs that are associated with this instance."
        },
        "estimatedMonthlyAmortizedReservationCost": {
          "type": "number",
          "description": "The estimated cost of your recurring monthly fees for the recommended reserved instance across the month."
        }
      }
    },
    "ResourceCostCalculation": {
      "type": "object",
      "properties": {
        "usages": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Usage"
          },
          "description": "Usage details of the resource recommendation."
        },
        "pricing": {
          "$ref": "#/$defs/ResourcePricing"
        }
      }
    },
    "ResourcePricing": {
      "type": "object",
      "properties": {
        "estimatedCostBeforeDiscounts": {
          "type": "number",
          "description": "The savings estimate using Amazon Web Services public pricing without incorporating any discounts."
        },
        "estimatedNetUnusedAmortizedCommitments": {
          "type": "number",
          "description": "The estimated net unused amortized commitment for the recommendation."
        },
        "estimatedDiscounts": {
          "$ref": "#/$defs/EstimatedDiscounts"
        },
        "estimatedCostAfterDiscounts": {
          "type": "number",
          "description": "The savings estimate incorporating all discounts with Amazon Web Services, such as Reserved Instances and Savings Plans."
        }
      }
    },
    "SageMakerEndpoint": {
      "type": "object",
      "properties": {
        "costCalculation": {
          "$ref": "#/$defs/ResourceCostCalculation"
        }
      }
    },
    "SageMakerSavingsPlans": {
      "type": "object",
      "properties": {
        "configuration": {
          "$ref": "#/$defs/SageMakerSavingsPlansConfiguration"
        },
        "costCalculation": {
          "$ref": "#/$defs/SavingsPlansCostCalculation"
        }
      }
    },
    "SageMakerSavingsPlansConfiguration": {
      "type": "object",
      "properties": {
        "accountScope": {
          "type": "string",
          "description": "The account scope for which you want recommendations."
        },
        "term": {
          "type": "string",
          "description": "The Savings Plans recommendation term in years."
        },
        "paymentOption": {
          "type": "string",
          "description": "The payment option for the commitment."
        },
        "hourlyCommitment": {
          "type": "string",
          "description": "The hourly commitment for the Savings Plans type."
        }
      }
    },
    "SavingsPlansCostCalculation": {
      "type": "object",
      "properties": {
        "pricing": {
          "$ref": "#/$defs/SavingsPlansPricing"
        }
      }
    },
    "SavingsPlansPricing": {
      "type": "object",
      "properties": {
        "monthlySavingsPlansEligibleCost": {
          "type": "number",
          "description": "The cost of paying for the recommended Savings Plans monthly."
        },
        "estimatedMonthlyCommitment": {
          "type": "number",
          "description": "Estimated monthly commitment for the Savings Plans."
        },
        "savingsPercentage": {
          "type": "number",
          "description": "Estimated savings as a percentage of your overall costs after buying the Savings Plans."
        },
        "estimatedOnDemandCost": {
          "type": "number",
          "description": "Estimated On-Demand cost you will pay after buying the Savings Plans."
        }
      }
    },
    "StorageConfiguration": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "The storage type."
        },
        "sizeInGb": {
          "type": "number",
          "description": "The storage volume."
        }
      }
    },
    "Usage": {
      "type": "object",
      "properties": {
        "usageType": {
          "type": "string",
          "description": "The usage type."
        },
        "usageAmount": {
          "type": "number",
          "description": "The usage amount."
        },
        "operation": {
          "type": "string",
          "description": "The operation value."
        },
        "productCode": {
          "type": "string",
          "description": "The product code."
        },
        "unit": {
          "type": "string",
          "description": "The usage unit."
        }
      }
    },
    "WorkSpaces": {
      "type": "object",
      "properties": {
        "costCalculation": {
          "$ref": "#/$defs/ResourceCostCalculation"
        }
      }
    }
  }
}