COST-OPTIMIZATION-HUB

GetPreferences

valid {
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetRecommendation

valid {
    input.Body.recommendationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListEnrollmentStatuses

valid {
    input.Body.includeOrganizationInfo == BOOLEAN
    input.Body.accountId == STRING
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListRecommendationSummaries

enum_ActionType := [ "Rightsize", "Stop", "Upgrade", "PurchaseSavingsPlans", "PurchaseReservedInstances", "MigrateToGraviton", "Delete" ]
enum_ImplementationEffort := [ "VeryLow", "Low", "Medium", "High", "VeryHigh" ]
enum_ResourceType := [ "Ec2Instance", "LambdaFunction", "EbsVolume", "EcsService", "Ec2AutoScalingGroup", "Ec2InstanceSavingsPlans", "ComputeSavingsPlans", "SageMakerSavingsPlans", "Ec2ReservedInstances", "RdsReservedInstances", "OpenSearchReservedInstances", "RedshiftReservedInstances", "ElastiCacheReservedInstances", "RdsDbInstanceStorage", "RdsDbInstance" ]
enum_SummaryMetrics := [ "SavingsPercentage" ]

valid {
    input.Body.filter.restartNeeded == BOOLEAN
    input.Body.filter.rollbackPossible == BOOLEAN
    input.Body.filter.implementationEfforts[_] == enum_ImplementationEffort[_]
    input.Body.filter.accountIds[_] == STRING
    input.Body.filter.regions[_] == STRING
    input.Body.filter.resourceTypes[_] == enum_ResourceType[_]
    input.Body.filter.actionTypes[_] == enum_ActionType[_]
    input.Body.filter.tags[_].key == STRING
    input.Body.filter.tags[_].value == STRING
    input.Body.filter.resourceIds[_] == STRING
    input.Body.filter.resourceArns[_] == STRING
    input.Body.filter.recommendationIds[_] == STRING
    input.Body.groupBy == STRING
    input.Body.maxResults == INTEGER
    input.Body.metrics[_] == enum_SummaryMetrics[_]
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListRecommendations

enum_ActionType := [ "Rightsize", "Stop", "Upgrade", "PurchaseSavingsPlans", "PurchaseReservedInstances", "MigrateToGraviton", "Delete" ]
enum_ImplementationEffort := [ "VeryLow", "Low", "Medium", "High", "VeryHigh" ]
enum_Order := [ "Asc", "Desc" ]
enum_ResourceType := [ "Ec2Instance", "LambdaFunction", "EbsVolume", "EcsService", "Ec2AutoScalingGroup", "Ec2InstanceSavingsPlans", "ComputeSavingsPlans", "SageMakerSavingsPlans", "Ec2ReservedInstances", "RdsReservedInstances", "OpenSearchReservedInstances", "RedshiftReservedInstances", "ElastiCacheReservedInstances", "RdsDbInstanceStorage", "RdsDbInstance" ]

valid {
    input.Body.filter.restartNeeded == BOOLEAN
    input.Body.filter.rollbackPossible == BOOLEAN
    input.Body.filter.implementationEfforts[_] == enum_ImplementationEffort[_]
    input.Body.filter.accountIds[_] == STRING
    input.Body.filter.regions[_] == STRING
    input.Body.filter.resourceTypes[_] == enum_ResourceType[_]
    input.Body.filter.actionTypes[_] == enum_ActionType[_]
    input.Body.filter.tags[_].key == STRING
    input.Body.filter.tags[_].value == STRING
    input.Body.filter.resourceIds[_] == STRING
    input.Body.filter.resourceArns[_] == STRING
    input.Body.filter.recommendationIds[_] == STRING
    input.Body.orderBy.dimension == STRING
    input.Body.orderBy.order == enum_Order[_]
    input.Body.includeAllRecommendations == BOOLEAN
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateEnrollmentStatus

enum_EnrollmentStatus := [ "Active", "Inactive" ]

valid {
    input.Body.status == enum_EnrollmentStatus[_]
    input.Body.includeMemberAccounts == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdatePreferences

enum_MemberAccountDiscountVisibility := [ "All", "None" ]
enum_SavingsEstimationMode := [ "BeforeDiscounts", "AfterDiscounts" ]

valid {
    input.Body.savingsEstimationMode == enum_SavingsEstimationMode[_]
    input.Body.memberAccountDiscountVisibility == enum_MemberAccountDiscountVisibility[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}