DeleteReportDefinition

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

DescribeReportDefinitions

valid {
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTagsForResource

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

ModifyReportDefinition

enum_AWSRegion := [ "af-south-1", "ap-east-1", "ap-south-1", "ap-south-2", "ap-southeast-1", "ap-southeast-2", "ap-southeast-3", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ca-central-1", "eu-central-1", "eu-central-2", "eu-west-1", "eu-west-2", "eu-west-3", "eu-north-1", "eu-south-1", "eu-south-2", "me-central-1", "me-south-1", "sa-east-1", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "cn-north-1", "cn-northwest-1" ]
enum_AdditionalArtifact := [ "REDSHIFT", "QUICKSIGHT", "ATHENA" ]
enum_CompressionFormat := [ "ZIP", "GZIP", "Parquet" ]
enum_LastStatus := [ "SUCCESS", "ERROR_PERMISSIONS", "ERROR_NO_BUCKET" ]
enum_ReportFormat := [ "textORcsv", "Parquet" ]
enum_ReportVersioning := [ "CREATE_NEW_REPORT", "OVERWRITE_REPORT" ]
enum_SchemaElement := [ "RESOURCES", "SPLIT_COST_ALLOCATION_DATA", "MANUAL_DISCOUNT_COMPATIBILITY" ]
enum_TimeUnit := [ "HOURLY", "DAILY", "MONTHLY" ]

valid {
    input.Body.ReportName == STRING
    input.Body.ReportDefinition.ReportName == STRING
    input.Body.ReportDefinition.TimeUnit == enum_TimeUnit[_]
    input.Body.ReportDefinition.Format == enum_ReportFormat[_]
    input.Body.ReportDefinition.Compression == enum_CompressionFormat[_]
    input.Body.ReportDefinition.AdditionalSchemaElements[_] == enum_SchemaElement[_]
    input.Body.ReportDefinition.S3Bucket == STRING
    input.Body.ReportDefinition.S3Prefix == STRING
    input.Body.ReportDefinition.S3Region == enum_AWSRegion[_]
    input.Body.ReportDefinition.AdditionalArtifacts[_] == enum_AdditionalArtifact[_]
    input.Body.ReportDefinition.RefreshClosedReports == BOOLEAN
    input.Body.ReportDefinition.ReportVersioning == enum_ReportVersioning[_]
    input.Body.ReportDefinition.BillingViewArn == STRING
    input.Body.ReportDefinition.ReportStatus.lastDelivery == STRING
    input.Body.ReportDefinition.ReportStatus.lastStatus == enum_LastStatus[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutReportDefinition

enum_AWSRegion := [ "af-south-1", "ap-east-1", "ap-south-1", "ap-south-2", "ap-southeast-1", "ap-southeast-2", "ap-southeast-3", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ca-central-1", "eu-central-1", "eu-central-2", "eu-west-1", "eu-west-2", "eu-west-3", "eu-north-1", "eu-south-1", "eu-south-2", "me-central-1", "me-south-1", "sa-east-1", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "cn-north-1", "cn-northwest-1" ]
enum_AdditionalArtifact := [ "REDSHIFT", "QUICKSIGHT", "ATHENA" ]
enum_CompressionFormat := [ "ZIP", "GZIP", "Parquet" ]
enum_LastStatus := [ "SUCCESS", "ERROR_PERMISSIONS", "ERROR_NO_BUCKET" ]
enum_ReportFormat := [ "textORcsv", "Parquet" ]
enum_ReportVersioning := [ "CREATE_NEW_REPORT", "OVERWRITE_REPORT" ]
enum_SchemaElement := [ "RESOURCES", "SPLIT_COST_ALLOCATION_DATA", "MANUAL_DISCOUNT_COMPATIBILITY" ]
enum_TimeUnit := [ "HOURLY", "DAILY", "MONTHLY" ]

valid {
    input.Body.ReportDefinition.ReportName == STRING
    input.Body.ReportDefinition.TimeUnit == enum_TimeUnit[_]
    input.Body.ReportDefinition.Format == enum_ReportFormat[_]
    input.Body.ReportDefinition.Compression == enum_CompressionFormat[_]
    input.Body.ReportDefinition.AdditionalSchemaElements[_] == enum_SchemaElement[_]
    input.Body.ReportDefinition.S3Bucket == STRING
    input.Body.ReportDefinition.S3Prefix == STRING
    input.Body.ReportDefinition.S3Region == enum_AWSRegion[_]
    input.Body.ReportDefinition.AdditionalArtifacts[_] == enum_AdditionalArtifact[_]
    input.Body.ReportDefinition.RefreshClosedReports == BOOLEAN
    input.Body.ReportDefinition.ReportVersioning == enum_ReportVersioning[_]
    input.Body.ReportDefinition.BillingViewArn == STRING
    input.Body.ReportDefinition.ReportStatus.lastDelivery == STRING
    input.Body.ReportDefinition.ReportStatus.lastStatus == enum_LastStatus[_]
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TagResource

valid {
    input.Body.ReportName == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UntagResource

valid {
    input.Body.ReportName == STRING
    input.Body.TagKeys[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}