MICROSOFT.COSTMANAGEMENT

Alerts_Dismiss

enum_AlertPropertiesDefinitionCategory := [ "Cost", "Usage", "Billing", "System" ]
enum_AlertPropertiesDefinitionCriteria := [ "CostThresholdExceeded", "UsageThresholdExceeded", "CreditThresholdApproaching", "CreditThresholdReached", "QuotaThresholdApproaching", "QuotaThresholdReached", "MultiCurrency", "ForecastCostThresholdExceeded", "ForecastUsageThresholdExceeded", "InvoiceDueDateApproaching", "InvoiceDueDateReached", "CrossCloudNewDataAvailable", "CrossCloudCollectionError", "GeneralThresholdError" ]
enum_AlertPropertiesDefinitionType := [ "Budget", "Invoice", "Credit", "Quota", "General", "xCloud", "BudgetForecast" ]
enum_AlertPropertiesDetailsOperator := [ "None", "EqualTo", "GreaterThan", "GreaterThanOrEqualTo", "LessThan", "LessThanOrEqualTo" ]
enum_AlertPropertiesDetailsTimeGrainType := [ "None", "Monthly", "Quarterly", "Annually", "BillingMonth", "BillingQuarter", "BillingAnnual" ]
enum_AlertPropertiesSource := [ "Preset", "User" ]
enum_AlertPropertiesStatus := [ "None", "Active", "Overridden", "Resolved", "Dismissed" ]

valid {
    input.Body.properties.definition.type == enum_AlertPropertiesDefinitionType[_]
    input.Body.properties.definition.category == enum_AlertPropertiesDefinitionCategory[_]
    input.Body.properties.definition.criteria == enum_AlertPropertiesDefinitionCriteria[_]
    input.Body.properties.description == STRING
    input.Body.properties.source == enum_AlertPropertiesSource[_]
    input.Body.properties.details.timeGrainType == enum_AlertPropertiesDetailsTimeGrainType[_]
    input.Body.properties.details.periodStartDate == STRING
    input.Body.properties.details.triggeredBy == STRING
    input.Body.properties.details.resourceGroupFilter[_] == {}
    input.Body.properties.details.resourceFilter[_] == {}
    input.Body.properties.details.meterFilter[_] == {}
    input.Body.properties.details.tagFilter.STRING == STRING
    input.Body.properties.details.threshold == NUMBER
    input.Body.properties.details.operator == enum_AlertPropertiesDetailsOperator[_]
    input.Body.properties.details.amount == NUMBER
    input.Body.properties.details.unit == STRING
    input.Body.properties.details.currentSpend == NUMBER
    input.Body.properties.details.contactEmails[_] == STRING
    input.Body.properties.details.contactGroups[_] == STRING
    input.Body.properties.details.contactRoles[_] == STRING
    input.Body.properties.details.overridingAlert == STRING
    input.Body.properties.details.departmentName == STRING
    input.Body.properties.details.companyName == STRING
    input.Body.properties.details.enrollmentNumber == STRING
    input.Body.properties.details.enrollmentStartDate == STRING
    input.Body.properties.details.enrollmentEndDate == STRING
    input.Body.properties.details.invoicingThreshold == NUMBER
    input.Body.properties.costEntityId == STRING
    input.Body.properties.status == enum_AlertPropertiesStatus[_]
    input.Body.properties.creationTime == STRING
    input.Body.properties.closeTime == STRING
    input.Body.properties.modificationTime == STRING
    input.Body.properties.statusModificationUserName == STRING
    input.Body.properties.statusModificationTime == STRING
    input.ReqMap.scope == STRING
    input.ReqMap.alertId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Alerts_Get

valid {
    input.ReqMap.scope == STRING
    input.ReqMap.alertId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Alerts_GetAlertByManagementGroups

valid {
    input.ReqMap.managementGroupId == STRING
    input.ReqMap.alertId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Alerts_GetByAccount

valid {
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.enrollmentAccountId == STRING
    input.ReqMap.alertId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Alerts_GetByDepartment

valid {
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.departmentId == STRING
    input.ReqMap.alertId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Alerts_GetByEnrollment

valid {
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.alertId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Alerts_GetByResourceGroupName

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.alertId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Alerts_GetBySubscription

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.alertId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

Alerts_List

valid {
    input.ReqMap.scope == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Alerts_ListByAccount

valid {
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.enrollmentAccountId == STRING
    input.Qs.api-version == STRING
    input.Qs.$filter == STRING
    input.Qs.$skiptoken == STRING
    input.Qs.$top == INTEGER
    input.ProviderMetadata.Region == STRING
}

Alerts_ListByDepartment

valid {
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.departmentId == STRING
    input.Qs.api-version == STRING
    input.Qs.$filter == STRING
    input.Qs.$skiptoken == STRING
    input.Qs.$top == INTEGER
    input.ProviderMetadata.Region == STRING
}

Alerts_ListByEnrollment

valid {
    input.ReqMap.billingAccountId == STRING
    input.Qs.api-version == STRING
    input.Qs.$filter == STRING
    input.Qs.$skiptoken == STRING
    input.Qs.$top == INTEGER
    input.ProviderMetadata.Region == STRING
}

Alerts_ListByManagementGroups

valid {
    input.ReqMap.managementGroupId == STRING
    input.Qs.api-version == STRING
    input.Qs.$filter == STRING
    input.Qs.$skiptoken == STRING
    input.Qs.$top == INTEGER
    input.ProviderMetadata.Region == STRING
}

Alerts_ListByResourceGroupName

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.Qs.api-version == STRING
    input.Qs.$filter == STRING
    input.Qs.$skiptoken == STRING
    input.Qs.$top == INTEGER
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Alerts_ListExternal

enum_externalCloudProviderTypeParameter := [ "externalSubscriptions", "externalBillingAccounts" ]

valid {
    input.ReqMap.externalCloudProviderType == enum_externalCloudProviderTypeParameter[_]
    input.ReqMap.externalCloudProviderId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Alerts_UpdateBillingAccountAlertStatus

enum_AlertPropertiesStatus := [ "Active", "Overridden", "Resolved", "Dismissed" ]

valid {
    input.Body.properties.status == enum_AlertPropertiesStatus[_]
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.alertId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Alerts_UpdateDepartmentsAlertStatus

enum_AlertPropertiesStatus := [ "Active", "Overridden", "Resolved", "Dismissed" ]

valid {
    input.Body.properties.status == enum_AlertPropertiesStatus[_]
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.departmentId == STRING
    input.ReqMap.alertId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Alerts_UpdateEnrollmentAccountAlertStatus

enum_AlertPropertiesStatus := [ "Active", "Overridden", "Resolved", "Dismissed" ]

valid {
    input.Body.properties.status == enum_AlertPropertiesStatus[_]
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.enrollmentAccountId == STRING
    input.ReqMap.alertId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Alerts_UpdateManagementGroupAlertStatus

enum_AlertPropertiesStatus := [ "Active", "Overridden", "Resolved", "Dismissed" ]

valid {
    input.Body.properties.status == enum_AlertPropertiesStatus[_]
    input.ReqMap.managementGroupId == STRING
    input.ReqMap.alertId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Alerts_UpdateResourceGroupNameAlertStatus

enum_AlertPropertiesStatus := [ "Active", "Overridden", "Resolved", "Dismissed" ]

valid {
    input.Body.properties.status == enum_AlertPropertiesStatus[_]
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.alertId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Alerts_UpdateSubscriptionAlertStatus

enum_AlertPropertiesStatus := [ "Active", "Overridden", "Resolved", "Dismissed" ]

valid {
    input.Body.properties.status == enum_AlertPropertiesStatus[_]
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.alertId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

BenefitRecommendations_List

valid {
    input.ReqMap.billingScope == STRING
    input.Qs.$filter == STRING
    input.Qs.$orderby == STRING
    input.Qs.$expand == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

BenefitUtilizationSummaries_ListByBillingAccountId

enum_grainParameter := [ "Hourly", "Daily", "Monthly" ]

valid {
    input.ReqMap.billingAccountId == STRING
    input.Qs.api-version == STRING
    input.Qs.grainParameter == enum_grainParameter[_]
    input.Qs.filter == STRING
    input.ProviderMetadata.Region == STRING
}

BenefitUtilizationSummaries_ListByBillingProfileId

enum_grainParameter := [ "Hourly", "Daily", "Monthly" ]

valid {
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.billingProfileId == STRING
    input.Qs.api-version == STRING
    input.Qs.grainParameter == enum_grainParameter[_]
    input.Qs.filter == STRING
    input.ProviderMetadata.Region == STRING
}

BenefitUtilizationSummaries_ListBySavingsPlanId

enum_grainParameter := [ "Hourly", "Daily", "Monthly" ]

valid {
    input.ReqMap.savingsPlanOrderId == STRING
    input.ReqMap.savingsPlanId == STRING
    input.Qs.api-version == STRING
    input.Qs.$filter == STRING
    input.Qs.grainParameter == enum_grainParameter[_]
    input.ProviderMetadata.Region == STRING
}

BenefitUtilizationSummaries_ListBySavingsPlanOrder

enum_grainParameter := [ "Hourly", "Daily", "Monthly" ]

valid {
    input.ReqMap.savingsPlanOrderId == STRING
    input.Qs.api-version == STRING
    input.Qs.$filter == STRING
    input.Qs.grainParameter == enum_grainParameter[_]
    input.ProviderMetadata.Region == STRING
}

Budgets_CreateOrUpdate

enum_BudgetComparisonExpressionOperator := [ "In" ]
enum_BudgetPropertiesCategory := [ "Cost", "ReservationUtilization" ]
enum_BudgetPropertiesTimeGrain := [ "Monthly", "Quarterly", "Annually", "BillingMonth", "BillingQuarter", "BillingAnnual", "Last7Days", "Last30Days" ]
enum_NotificationFrequency := [ "Daily", "Weekly", "Monthly" ]
enum_NotificationLocale := [ "en-us", "ja-jp", "zh-cn", "de-de", "es-es", "fr-fr", "it-it", "ko-kr", "pt-br", "ru-ru", "zh-tw", "cs-cz", "pl-pl", "tr-tr", "da-dk", "en-gb", "hu-hu", "nb-no", "nl-nl", "pt-pt", "sv-se" ]
enum_NotificationOperator := [ "EqualTo", "GreaterThan", "GreaterThanOrEqualTo", "LessThan" ]
enum_NotificationThresholdType := [ "Actual", "Forecasted" ]

valid {
    input.Body.properties.category == enum_BudgetPropertiesCategory[_]
    input.Body.properties.amount == NUMBER
    input.Body.properties.timeGrain == enum_BudgetPropertiesTimeGrain[_]
    input.Body.properties.timePeriod.startDate == STRING
    input.Body.properties.timePeriod.endDate == STRING
    input.Body.properties.filter.and[_].dimensions.name == STRING
    input.Body.properties.filter.and[_].dimensions.operator == enum_BudgetComparisonExpressionOperator[_]
    input.Body.properties.filter.and[_].dimensions.values[_] == STRING
    input.Body.properties.filter.and[_].tags.name == STRING
    input.Body.properties.filter.and[_].tags.operator == enum_BudgetComparisonExpressionOperator[_]
    input.Body.properties.filter.and[_].tags.values[_] == STRING
    input.Body.properties.filter.dimensions.name == STRING
    input.Body.properties.filter.dimensions.operator == enum_BudgetComparisonExpressionOperator[_]
    input.Body.properties.filter.dimensions.values[_] == STRING
    input.Body.properties.filter.tags.name == STRING
    input.Body.properties.filter.tags.operator == enum_BudgetComparisonExpressionOperator[_]
    input.Body.properties.filter.tags.values[_] == STRING
    input.Body.properties.notifications.STRING.enabled == BOOLEAN
    input.Body.properties.notifications.STRING.operator == enum_NotificationOperator[_]
    input.Body.properties.notifications.STRING.threshold == NUMBER
    input.Body.properties.notifications.STRING.frequency == enum_NotificationFrequency[_]
    input.Body.properties.notifications.STRING.contactEmails[_] == STRING
    input.Body.properties.notifications.STRING.contactRoles[_] == STRING
    input.Body.properties.notifications.STRING.contactGroups[_] == STRING
    input.Body.properties.notifications.STRING.thresholdType == enum_NotificationThresholdType[_]
    input.Body.properties.notifications.STRING.locale == enum_NotificationLocale[_]
    input.Body.eTag == STRING
    input.ReqMap.scope == STRING
    input.ReqMap.budgetName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Budgets_Delete

valid {
    input.ReqMap.scope == STRING
    input.ReqMap.budgetName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Budgets_Get

valid {
    input.ReqMap.scope == STRING
    input.ReqMap.budgetName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Budgets_List

valid {
    input.ReqMap.scope == STRING
    input.Qs.api-version == STRING
    input.Qs.$filter == STRING
    input.ProviderMetadata.Region == STRING
}

CloudConnector_CreateOrUpdate

enum_ConnectorPropertiesBillingModel := [ "trial", "autoUpgrade", "premium", "expired" ]

valid {
    input.Body.kind == STRING
    input.Body.properties.displayName == STRING
    input.Body.properties.credentialsKey == STRING
    input.Body.properties.credentialsSecret == STRING
    input.Body.properties.reportId == STRING
    input.Body.properties.defaultManagementGroupId == STRING
    input.Body.properties.subscriptionId == STRING
    input.Body.properties.billingModel == enum_ConnectorPropertiesBillingModel[_]
    input.ReqMap.connectorName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

CloudConnector_Delete

valid {
    input.ReqMap.connectorName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

CloudConnector_Get

valid {
    input.ReqMap.connectorName == STRING
    input.Qs.api-version == STRING
    input.Qs.$expand == STRING
    input.ProviderMetadata.Region == STRING
}

CloudConnector_List

valid {
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

CloudConnector_Update

enum_ConnectorPropertiesBillingModel := [ "trial", "autoUpgrade", "premium", "expired" ]

valid {
    input.Body.kind == STRING
    input.Body.properties.displayName == STRING
    input.Body.properties.credentialsKey == STRING
    input.Body.properties.credentialsSecret == STRING
    input.Body.properties.reportId == STRING
    input.Body.properties.defaultManagementGroupId == STRING
    input.Body.properties.subscriptionId == STRING
    input.Body.properties.billingModel == enum_ConnectorPropertiesBillingModel[_]
    input.ReqMap.connectorName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Connector_CheckEligibility

valid {
    input.Body.kind == STRING
    input.Body.credentialsKey == STRING
    input.Body.credentialsSecret == STRING
    input.Body.reportId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Connector_CreateOrUpdate

enum_ConnectorPropertiesStatus := [ "active", "error", "suspended" ]

valid {
    input.Body.kind == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.Body.properties.displayName == STRING
    input.Body.properties.credentialsKey == STRING
    input.Body.properties.credentialsSecret == STRING
    input.Body.properties.reportId == STRING
    input.Body.properties.status == enum_ConnectorPropertiesStatus[_]
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.connectorName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Connector_Delete

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.connectorName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Connector_Get

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.connectorName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Connector_List

valid {
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

Connector_ListByResourceGroupName

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Connector_Update

enum_ConnectorPropertiesStatus := [ "active", "error", "suspended" ]

valid {
    input.Body.kind == STRING
    input.Body.location == STRING
    input.Body.tags.STRING == STRING
    input.Body.properties.displayName == STRING
    input.Body.properties.credentialsKey == STRING
    input.Body.properties.credentialsSecret == STRING
    input.Body.properties.reportId == STRING
    input.Body.properties.status == enum_ConnectorPropertiesStatus[_]
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.connectorName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

CostAllocationRules_CheckNameAvailability

valid {
    input.Body.name == STRING
    input.Body.type == STRING
    input.ReqMap.billingAccountId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

CostAllocationRules_CreateOrUpdate

enum_CostAllocationPolicyType := [ "FixedProportion" ]
enum_CostAllocationResourceType := [ "Dimension", "Tag" ]
enum_RuleStatus := [ "NotActive", "Active", "Processing" ]

valid {
    input.Body.properties.description == STRING
    input.Body.properties.details.sourceResources[_].resourceType == enum_CostAllocationResourceType[_]
    input.Body.properties.details.sourceResources[_].name == STRING
    input.Body.properties.details.sourceResources[_].values[_] == STRING
    input.Body.properties.details.targetResources[_].resourceType == enum_CostAllocationResourceType[_]
    input.Body.properties.details.targetResources[_].name == STRING
    input.Body.properties.details.targetResources[_].values[_].name == STRING
    input.Body.properties.details.targetResources[_].values[_].percentage == NUMBER
    input.Body.properties.details.targetResources[_].policyType == enum_CostAllocationPolicyType[_]
    input.Body.properties.status == enum_RuleStatus[_]
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.ruleName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

CostAllocationRules_Delete

valid {
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.ruleName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

CostAllocationRules_Get

valid {
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.ruleName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

CostAllocationRules_List

valid {
    input.ReqMap.billingAccountId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Dimensions_ByExternalCloudProviderType

enum_externalCloudProviderTypeParameter := [ "externalSubscriptions", "externalBillingAccounts" ]

valid {
    input.ReqMap.externalCloudProviderType == enum_externalCloudProviderTypeParameter[_]
    input.ReqMap.externalCloudProviderId == STRING
    input.Qs.api-version == STRING
    input.Qs.$filter == STRING
    input.Qs.$expand == STRING
    input.Qs.$skiptoken == STRING
    input.Qs.$top == INTEGER
    input.ProviderMetadata.Region == STRING
}

Dimensions_List

valid {
    input.ReqMap.scope == STRING
    input.Qs.api-version == STRING
    input.Qs.$filter == STRING
    input.Qs.$expand == STRING
    input.Qs.$skiptoken == STRING
    input.Qs.$top == INTEGER
    input.ProviderMetadata.Region == STRING
}

Dimensions_ListByBillingAccount

valid {
    input.ReqMap.billingAccountId == STRING
    input.Qs.api-version == STRING
    input.Qs.$filter == STRING
    input.Qs.$expand == STRING
    input.Qs.$skiptoken == STRING
    input.Qs.$top == INTEGER
    input.ProviderMetadata.Region == STRING
}

Dimensions_ListByDepartment

valid {
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.departmentId == STRING
    input.Qs.api-version == STRING
    input.Qs.$filter == STRING
    input.Qs.$expand == STRING
    input.Qs.$skiptoken == STRING
    input.Qs.$top == INTEGER
    input.ProviderMetadata.Region == STRING
}

Dimensions_ListByEnrollmentAccount

valid {
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.enrollmentAccountId == STRING
    input.Qs.api-version == STRING
    input.Qs.$filter == STRING
    input.Qs.$expand == STRING
    input.Qs.$skiptoken == STRING
    input.Qs.$top == INTEGER
    input.ProviderMetadata.Region == STRING
}

Dimensions_ListByManagementGroup

valid {
    input.ReqMap.managementGroupId == STRING
    input.Qs.api-version == STRING
    input.Qs.$filter == STRING
    input.Qs.$expand == STRING
    input.Qs.$skiptoken == STRING
    input.Qs.$top == INTEGER
    input.ProviderMetadata.Region == STRING
}

Dimensions_ListByResourceGroup

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.Qs.api-version == STRING
    input.Qs.$filter == STRING
    input.Qs.$expand == STRING
    input.Qs.$skiptoken == STRING
    input.Qs.$top == INTEGER
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Dimensions_ListBySubscription

valid {
    input.ReqMap.scope == STRING
    input.Qs.api-version == STRING
    input.Qs.$filter == STRING
    input.Qs.$expand == STRING
    input.Qs.$skiptoken == STRING
    input.Qs.$top == INTEGER
    input.ProviderMetadata.Region == STRING
}

Exports_CreateOrUpdate

enum_CommonExportPropertiesFormat := [ "Csv" ]
enum_ExportDatasetGranularity := [ "Daily" ]
enum_ExportDefinitionTimeframe := [ "MonthToDate", "BillingMonthToDate", "TheLastMonth", "TheLastBillingMonth", "WeekToDate", "Custom" ]
enum_ExportDefinitionType := [ "Usage", "ActualCost", "AmortizedCost" ]
enum_ExportScheduleRecurrence := [ "Daily", "Weekly", "Monthly", "Annually" ]
enum_ExportScheduleStatus := [ "Active", "Inactive" ]
enum_SystemAssignedServiceIdentityType := [ "None", "SystemAssigned" ]

valid {
    input.Body.identity.type == enum_SystemAssignedServiceIdentityType[_]
    input.Body.location == STRING
    input.Body.properties.schedule.status == enum_ExportScheduleStatus[_]
    input.Body.properties.schedule.recurrence == enum_ExportScheduleRecurrence[_]
    input.Body.properties.schedule.recurrencePeriod.from == STRING
    input.Body.properties.schedule.recurrencePeriod.to == STRING
    input.Body.properties.format == enum_CommonExportPropertiesFormat[_]
    input.Body.properties.deliveryInfo.destination.resourceId == STRING
    input.Body.properties.deliveryInfo.destination.container == STRING
    input.Body.properties.deliveryInfo.destination.rootFolderPath == STRING
    input.Body.properties.deliveryInfo.destination.sasToken == STRING
    input.Body.properties.deliveryInfo.destination.storageAccount == STRING
    input.Body.properties.definition.type == enum_ExportDefinitionType[_]
    input.Body.properties.definition.timeframe == enum_ExportDefinitionTimeframe[_]
    input.Body.properties.definition.timePeriod.from == STRING
    input.Body.properties.definition.timePeriod.to == STRING
    input.Body.properties.definition.dataSet.granularity == enum_ExportDatasetGranularity[_]
    input.Body.properties.definition.dataSet.configuration.columns[_] == STRING
    input.Body.properties.runHistory == {}
    input.Body.properties.partitionData == BOOLEAN
    input.Body.eTag == STRING
    input.ReqMap.scope == STRING
    input.ReqMap.exportName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Exports_Delete

valid {
    input.ReqMap.scope == STRING
    input.ReqMap.exportName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Exports_Execute

valid {
    input.ReqMap.scope == STRING
    input.ReqMap.exportName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Exports_Get

valid {
    input.ReqMap.scope == STRING
    input.ReqMap.exportName == STRING
    input.Qs.api-version == STRING
    input.Qs.$expand == STRING
    input.ProviderMetadata.Region == STRING
}

Exports_GetExecutionHistory

valid {
    input.ReqMap.scope == STRING
    input.ReqMap.exportName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Exports_List

valid {
    input.ReqMap.scope == STRING
    input.Qs.api-version == STRING
    input.Qs.$expand == STRING
    input.ProviderMetadata.Region == STRING
}

ExternalBillingAccount_Get

valid {
    input.ReqMap.externalBillingAccountName == STRING
    input.Qs.api-version == STRING
    input.Qs.$expand == STRING
    input.ProviderMetadata.Region == STRING
}

ExternalBillingAccount_List

valid {
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

ExternalSubscription_Get

valid {
    input.ReqMap.externalSubscriptionName == STRING
    input.Qs.api-version == STRING
    input.Qs.$expand == STRING
    input.ProviderMetadata.Region == STRING
}

ExternalSubscription_List

valid {
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

ExternalSubscription_ListByExternalBillingAccount

valid {
    input.ReqMap.externalBillingAccountName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

ExternalSubscription_ListByManagementGroup

valid {
    input.ReqMap.managementGroupId == STRING
    input.Qs.api-version == STRING
    input.Qs.$recurse == BOOLEAN
    input.ProviderMetadata.Region == STRING
}

ExternalSubscription_UpdateManagementGroup

valid {
    input.ReqMap.managementGroupId == STRING
    input.ReqMap.externalSubscriptionName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Forecast_ExternalCloudProviderUsage

enum_ForecastAggregationFunction := [ "Sum" ]
enum_ForecastAggregationName := [ "PreTaxCostUSD", "Cost", "CostUSD", "PreTaxCost" ]
enum_ForecastComparisonExpressionOperator := [ "In" ]
enum_ForecastTimeframe := [ "Custom" ]
enum_ForecastType := [ "Usage", "ActualCost", "AmortizedCost" ]
enum_GranularityType := [ "Daily" ]
enum_externalCloudProviderTypeParameter := [ "externalSubscriptions", "externalBillingAccounts" ]

valid {
    input.Body.type == enum_ForecastType[_]
    input.Body.timeframe == enum_ForecastTimeframe[_]
    input.Body.timePeriod.from == STRING
    input.Body.timePeriod.to == STRING
    input.Body.dataset.granularity == enum_GranularityType[_]
    input.Body.dataset.configuration.columns[_] == STRING
    input.Body.dataset.aggregation.STRING.name == enum_ForecastAggregationName[_]
    input.Body.dataset.aggregation.STRING.function == enum_ForecastAggregationFunction[_]
    input.Body.dataset.filter.and[_] == NESTED
    input.Body.dataset.filter.or[_] == NESTED
    input.Body.dataset.filter.dimensions.name == STRING
    input.Body.dataset.filter.dimensions.operator == enum_ForecastComparisonExpressionOperator[_]
    input.Body.dataset.filter.dimensions.values[_] == STRING
    input.Body.dataset.filter.tags.name == STRING
    input.Body.dataset.filter.tags.operator == enum_ForecastComparisonExpressionOperator[_]
    input.Body.dataset.filter.tags.values[_] == STRING
    input.Body.includeActualCost == BOOLEAN
    input.Body.includeFreshPartialCost == BOOLEAN
    input.ReqMap.externalCloudProviderType == enum_externalCloudProviderTypeParameter[_]
    input.ReqMap.externalCloudProviderId == STRING
    input.Qs.$filter == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Forecast_Usage

enum_ForecastAggregationFunction := [ "Sum" ]
enum_ForecastAggregationName := [ "PreTaxCostUSD", "Cost", "CostUSD", "PreTaxCost" ]
enum_ForecastComparisonExpressionOperator := [ "In" ]
enum_ForecastTimeframe := [ "Custom" ]
enum_ForecastType := [ "Usage", "ActualCost", "AmortizedCost" ]
enum_GranularityType := [ "Daily" ]

valid {
    input.Body.type == enum_ForecastType[_]
    input.Body.timeframe == enum_ForecastTimeframe[_]
    input.Body.timePeriod.from == STRING
    input.Body.timePeriod.to == STRING
    input.Body.dataset.granularity == enum_GranularityType[_]
    input.Body.dataset.configuration.columns[_] == STRING
    input.Body.dataset.aggregation.STRING.name == enum_ForecastAggregationName[_]
    input.Body.dataset.aggregation.STRING.function == enum_ForecastAggregationFunction[_]
    input.Body.dataset.filter.and[_] == NESTED
    input.Body.dataset.filter.or[_] == NESTED
    input.Body.dataset.filter.dimensions.name == STRING
    input.Body.dataset.filter.dimensions.operator == enum_ForecastComparisonExpressionOperator[_]
    input.Body.dataset.filter.dimensions.values[_] == STRING
    input.Body.dataset.filter.tags.name == STRING
    input.Body.dataset.filter.tags.operator == enum_ForecastComparisonExpressionOperator[_]
    input.Body.dataset.filter.tags.values[_] == STRING
    input.Body.includeActualCost == BOOLEAN
    input.Body.includeFreshPartialCost == BOOLEAN
    input.ReqMap.scope == STRING
    input.Qs.$filter == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Forecast_UsageByBillingAccount

enum_ReportConfigAggregationFunction := [ "Sum" ]
enum_ReportConfigColumnType := [ "Tag", "Dimension" ]
enum_ReportConfigComparisonExpressionOperator := [ "In", "Contains" ]
enum_ReportConfigDatasetGranularity := [ "Daily", "Monthly" ]
enum_ReportConfigDefinitionTimeframe := [ "WeekToDate", "MonthToDate", "YearToDate", "Custom" ]
enum_ReportConfigDefinitionType := [ "Usage" ]
enum_ReportConfigSortingDirection := [ "Ascending", "Descending" ]

valid {
    input.Body.type == enum_ReportConfigDefinitionType[_]
    input.Body.timeframe == enum_ReportConfigDefinitionTimeframe[_]
    input.Body.timePeriod.from == STRING
    input.Body.timePeriod.to == STRING
    input.Body.dataset.granularity == enum_ReportConfigDatasetGranularity[_]
    input.Body.dataset.configuration.columns[_] == STRING
    input.Body.dataset.aggregation.STRING.name == STRING
    input.Body.dataset.aggregation.STRING.function == enum_ReportConfigAggregationFunction[_]
    input.Body.dataset.grouping[_].type == enum_ReportConfigColumnType[_]
    input.Body.dataset.grouping[_].name == STRING
    input.Body.dataset.sorting[_].direction == enum_ReportConfigSortingDirection[_]
    input.Body.dataset.sorting[_].name == STRING
    input.Body.dataset.filter.and[_] == NESTED
    input.Body.dataset.filter.or[_] == NESTED
    input.Body.dataset.filter.not == NESTED
    input.Body.dataset.filter.dimension.name == STRING
    input.Body.dataset.filter.dimension.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.dataset.filter.dimension.values[_] == STRING
    input.Body.dataset.filter.tag.name == STRING
    input.Body.dataset.filter.tag.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.dataset.filter.tag.values[_] == STRING
    input.ReqMap.billingAccountId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Forecast_UsageByDepartment

enum_ReportConfigAggregationFunction := [ "Sum" ]
enum_ReportConfigColumnType := [ "Tag", "Dimension" ]
enum_ReportConfigComparisonExpressionOperator := [ "In", "Contains" ]
enum_ReportConfigDatasetGranularity := [ "Daily", "Monthly" ]
enum_ReportConfigDefinitionTimeframe := [ "WeekToDate", "MonthToDate", "YearToDate", "Custom" ]
enum_ReportConfigDefinitionType := [ "Usage" ]
enum_ReportConfigSortingDirection := [ "Ascending", "Descending" ]

valid {
    input.Body.type == enum_ReportConfigDefinitionType[_]
    input.Body.timeframe == enum_ReportConfigDefinitionTimeframe[_]
    input.Body.timePeriod.from == STRING
    input.Body.timePeriod.to == STRING
    input.Body.dataset.granularity == enum_ReportConfigDatasetGranularity[_]
    input.Body.dataset.configuration.columns[_] == STRING
    input.Body.dataset.aggregation.STRING.name == STRING
    input.Body.dataset.aggregation.STRING.function == enum_ReportConfigAggregationFunction[_]
    input.Body.dataset.grouping[_].type == enum_ReportConfigColumnType[_]
    input.Body.dataset.grouping[_].name == STRING
    input.Body.dataset.sorting[_].direction == enum_ReportConfigSortingDirection[_]
    input.Body.dataset.sorting[_].name == STRING
    input.Body.dataset.filter.and[_] == NESTED
    input.Body.dataset.filter.or[_] == NESTED
    input.Body.dataset.filter.not == NESTED
    input.Body.dataset.filter.dimension.name == STRING
    input.Body.dataset.filter.dimension.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.dataset.filter.dimension.values[_] == STRING
    input.Body.dataset.filter.tag.name == STRING
    input.Body.dataset.filter.tag.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.dataset.filter.tag.values[_] == STRING
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.departmentId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Forecast_UsageByEnrollmentAccount

enum_ReportConfigAggregationFunction := [ "Sum" ]
enum_ReportConfigColumnType := [ "Tag", "Dimension" ]
enum_ReportConfigComparisonExpressionOperator := [ "In", "Contains" ]
enum_ReportConfigDatasetGranularity := [ "Daily", "Monthly" ]
enum_ReportConfigDefinitionTimeframe := [ "WeekToDate", "MonthToDate", "YearToDate", "Custom" ]
enum_ReportConfigDefinitionType := [ "Usage" ]
enum_ReportConfigSortingDirection := [ "Ascending", "Descending" ]

valid {
    input.Body.type == enum_ReportConfigDefinitionType[_]
    input.Body.timeframe == enum_ReportConfigDefinitionTimeframe[_]
    input.Body.timePeriod.from == STRING
    input.Body.timePeriod.to == STRING
    input.Body.dataset.granularity == enum_ReportConfigDatasetGranularity[_]
    input.Body.dataset.configuration.columns[_] == STRING
    input.Body.dataset.aggregation.STRING.name == STRING
    input.Body.dataset.aggregation.STRING.function == enum_ReportConfigAggregationFunction[_]
    input.Body.dataset.grouping[_].type == enum_ReportConfigColumnType[_]
    input.Body.dataset.grouping[_].name == STRING
    input.Body.dataset.sorting[_].direction == enum_ReportConfigSortingDirection[_]
    input.Body.dataset.sorting[_].name == STRING
    input.Body.dataset.filter.and[_] == NESTED
    input.Body.dataset.filter.or[_] == NESTED
    input.Body.dataset.filter.not == NESTED
    input.Body.dataset.filter.dimension.name == STRING
    input.Body.dataset.filter.dimension.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.dataset.filter.dimension.values[_] == STRING
    input.Body.dataset.filter.tag.name == STRING
    input.Body.dataset.filter.tag.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.dataset.filter.tag.values[_] == STRING
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.enrollmentAccountId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Forecast_UsageByExternalBillingAccount

enum_ReportConfigAggregationFunction := [ "Sum" ]
enum_ReportConfigColumnType := [ "Tag", "Dimension" ]
enum_ReportConfigComparisonExpressionOperator := [ "In", "Contains" ]
enum_ReportConfigDatasetGranularity := [ "Daily", "Monthly" ]
enum_ReportConfigDefinitionTimeframe := [ "WeekToDate", "MonthToDate", "YearToDate", "Custom" ]
enum_ReportConfigDefinitionType := [ "Usage" ]
enum_ReportConfigSortingDirection := [ "Ascending", "Descending" ]

valid {
    input.Body.type == enum_ReportConfigDefinitionType[_]
    input.Body.timeframe == enum_ReportConfigDefinitionTimeframe[_]
    input.Body.timePeriod.from == STRING
    input.Body.timePeriod.to == STRING
    input.Body.dataset.granularity == enum_ReportConfigDatasetGranularity[_]
    input.Body.dataset.configuration.columns[_] == STRING
    input.Body.dataset.aggregation.STRING.name == STRING
    input.Body.dataset.aggregation.STRING.function == enum_ReportConfigAggregationFunction[_]
    input.Body.dataset.grouping[_].type == enum_ReportConfigColumnType[_]
    input.Body.dataset.grouping[_].name == STRING
    input.Body.dataset.sorting[_].direction == enum_ReportConfigSortingDirection[_]
    input.Body.dataset.sorting[_].name == STRING
    input.Body.dataset.filter.and[_] == NESTED
    input.Body.dataset.filter.or[_] == NESTED
    input.Body.dataset.filter.not == NESTED
    input.Body.dataset.filter.dimension.name == STRING
    input.Body.dataset.filter.dimension.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.dataset.filter.dimension.values[_] == STRING
    input.Body.dataset.filter.tag.name == STRING
    input.Body.dataset.filter.tag.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.dataset.filter.tag.values[_] == STRING
    input.ReqMap.externalBillingAccountName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Forecast_UsageByManagementGroup

enum_ReportConfigAggregationFunction := [ "Sum" ]
enum_ReportConfigColumnType := [ "Tag", "Dimension" ]
enum_ReportConfigComparisonExpressionOperator := [ "In", "Contains" ]
enum_ReportConfigDatasetGranularity := [ "Daily", "Monthly" ]
enum_ReportConfigDefinitionTimeframe := [ "WeekToDate", "MonthToDate", "YearToDate", "Custom" ]
enum_ReportConfigDefinitionType := [ "Usage" ]
enum_ReportConfigSortingDirection := [ "Ascending", "Descending" ]

valid {
    input.Body.type == enum_ReportConfigDefinitionType[_]
    input.Body.timeframe == enum_ReportConfigDefinitionTimeframe[_]
    input.Body.timePeriod.from == STRING
    input.Body.timePeriod.to == STRING
    input.Body.dataset.granularity == enum_ReportConfigDatasetGranularity[_]
    input.Body.dataset.configuration.columns[_] == STRING
    input.Body.dataset.aggregation.STRING.name == STRING
    input.Body.dataset.aggregation.STRING.function == enum_ReportConfigAggregationFunction[_]
    input.Body.dataset.grouping[_].type == enum_ReportConfigColumnType[_]
    input.Body.dataset.grouping[_].name == STRING
    input.Body.dataset.sorting[_].direction == enum_ReportConfigSortingDirection[_]
    input.Body.dataset.sorting[_].name == STRING
    input.Body.dataset.filter.and[_] == NESTED
    input.Body.dataset.filter.or[_] == NESTED
    input.Body.dataset.filter.not == NESTED
    input.Body.dataset.filter.dimension.name == STRING
    input.Body.dataset.filter.dimension.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.dataset.filter.dimension.values[_] == STRING
    input.Body.dataset.filter.tag.name == STRING
    input.Body.dataset.filter.tag.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.dataset.filter.tag.values[_] == STRING
    input.ReqMap.managementGroupId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Forecast_UsageByResourceGroup

enum_ReportConfigAggregationFunction := [ "Sum" ]
enum_ReportConfigColumnType := [ "Tag", "Dimension" ]
enum_ReportConfigComparisonExpressionOperator := [ "In", "Contains" ]
enum_ReportConfigDatasetGranularity := [ "Daily", "Monthly" ]
enum_ReportConfigDefinitionTimeframe := [ "WeekToDate", "MonthToDate", "YearToDate", "Custom" ]
enum_ReportConfigDefinitionType := [ "Usage" ]
enum_ReportConfigSortingDirection := [ "Ascending", "Descending" ]

valid {
    input.Body.type == enum_ReportConfigDefinitionType[_]
    input.Body.timeframe == enum_ReportConfigDefinitionTimeframe[_]
    input.Body.timePeriod.from == STRING
    input.Body.timePeriod.to == STRING
    input.Body.dataset.granularity == enum_ReportConfigDatasetGranularity[_]
    input.Body.dataset.configuration.columns[_] == STRING
    input.Body.dataset.aggregation.STRING.name == STRING
    input.Body.dataset.aggregation.STRING.function == enum_ReportConfigAggregationFunction[_]
    input.Body.dataset.grouping[_].type == enum_ReportConfigColumnType[_]
    input.Body.dataset.grouping[_].name == STRING
    input.Body.dataset.sorting[_].direction == enum_ReportConfigSortingDirection[_]
    input.Body.dataset.sorting[_].name == STRING
    input.Body.dataset.filter.and[_] == NESTED
    input.Body.dataset.filter.or[_] == NESTED
    input.Body.dataset.filter.not == NESTED
    input.Body.dataset.filter.dimension.name == STRING
    input.Body.dataset.filter.dimension.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.dataset.filter.dimension.values[_] == STRING
    input.Body.dataset.filter.tag.name == STRING
    input.Body.dataset.filter.tag.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.dataset.filter.tag.values[_] == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Forecast_UsageBySubscription

enum_ReportConfigAggregationFunction := [ "Sum" ]
enum_ReportConfigColumnType := [ "Tag", "Dimension" ]
enum_ReportConfigComparisonExpressionOperator := [ "In", "Contains" ]
enum_ReportConfigDatasetGranularity := [ "Daily", "Monthly" ]
enum_ReportConfigDefinitionTimeframe := [ "WeekToDate", "MonthToDate", "YearToDate", "Custom" ]
enum_ReportConfigDefinitionType := [ "Usage" ]
enum_ReportConfigSortingDirection := [ "Ascending", "Descending" ]

valid {
    input.Body.type == enum_ReportConfigDefinitionType[_]
    input.Body.timeframe == enum_ReportConfigDefinitionTimeframe[_]
    input.Body.timePeriod.from == STRING
    input.Body.timePeriod.to == STRING
    input.Body.dataset.granularity == enum_ReportConfigDatasetGranularity[_]
    input.Body.dataset.configuration.columns[_] == STRING
    input.Body.dataset.aggregation.STRING.name == STRING
    input.Body.dataset.aggregation.STRING.function == enum_ReportConfigAggregationFunction[_]
    input.Body.dataset.grouping[_].type == enum_ReportConfigColumnType[_]
    input.Body.dataset.grouping[_].name == STRING
    input.Body.dataset.sorting[_].direction == enum_ReportConfigSortingDirection[_]
    input.Body.dataset.sorting[_].name == STRING
    input.Body.dataset.filter.and[_] == NESTED
    input.Body.dataset.filter.or[_] == NESTED
    input.Body.dataset.filter.not == NESTED
    input.Body.dataset.filter.dimension.name == STRING
    input.Body.dataset.filter.dimension.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.dataset.filter.dimension.values[_] == STRING
    input.Body.dataset.filter.tag.name == STRING
    input.Body.dataset.filter.tag.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.dataset.filter.tag.values[_] == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

GenerateBenefitUtilizationSummariesReport_GenerateByBillingAccount

enum_BenefitKind := [ "IncludedQuantity", "Reservation", "SavingsPlan" ]
enum_Grain := [ "Hourly", "Daily", "Monthly" ]

valid {
    input.Body.billingAccountId == STRING
    input.Body.billingProfileId == STRING
    input.Body.benefitOrderId == STRING
    input.Body.benefitId == STRING
    input.Body.grain == enum_Grain[_]
    input.Body.startDate == STRING
    input.Body.endDate == STRING
    input.Body.kind == enum_BenefitKind[_]
    input.ReqMap.billingAccountId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

GenerateBenefitUtilizationSummariesReport_GenerateByBillingProfile

enum_BenefitKind := [ "IncludedQuantity", "Reservation", "SavingsPlan" ]
enum_Grain := [ "Hourly", "Daily", "Monthly" ]

valid {
    input.Body.billingAccountId == STRING
    input.Body.billingProfileId == STRING
    input.Body.benefitOrderId == STRING
    input.Body.benefitId == STRING
    input.Body.grain == enum_Grain[_]
    input.Body.startDate == STRING
    input.Body.endDate == STRING
    input.Body.kind == enum_BenefitKind[_]
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.billingProfileId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

GenerateBenefitUtilizationSummariesReport_GenerateByReservationId

enum_BenefitKind := [ "IncludedQuantity", "Reservation", "SavingsPlan" ]
enum_Grain := [ "Hourly", "Daily", "Monthly" ]

valid {
    input.Body.billingAccountId == STRING
    input.Body.billingProfileId == STRING
    input.Body.benefitOrderId == STRING
    input.Body.benefitId == STRING
    input.Body.grain == enum_Grain[_]
    input.Body.startDate == STRING
    input.Body.endDate == STRING
    input.Body.kind == enum_BenefitKind[_]
    input.ReqMap.reservationOrderId == STRING
    input.ReqMap.reservationId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

GenerateBenefitUtilizationSummariesReport_GenerateByReservationOrderId

enum_BenefitKind := [ "IncludedQuantity", "Reservation", "SavingsPlan" ]
enum_Grain := [ "Hourly", "Daily", "Monthly" ]

valid {
    input.Body.billingAccountId == STRING
    input.Body.billingProfileId == STRING
    input.Body.benefitOrderId == STRING
    input.Body.benefitId == STRING
    input.Body.grain == enum_Grain[_]
    input.Body.startDate == STRING
    input.Body.endDate == STRING
    input.Body.kind == enum_BenefitKind[_]
    input.ReqMap.reservationOrderId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

GenerateBenefitUtilizationSummariesReport_GenerateBySavingsPlanId

enum_BenefitKind := [ "IncludedQuantity", "Reservation", "SavingsPlan" ]
enum_Grain := [ "Hourly", "Daily", "Monthly" ]

valid {
    input.Body.billingAccountId == STRING
    input.Body.billingProfileId == STRING
    input.Body.benefitOrderId == STRING
    input.Body.benefitId == STRING
    input.Body.grain == enum_Grain[_]
    input.Body.startDate == STRING
    input.Body.endDate == STRING
    input.Body.kind == enum_BenefitKind[_]
    input.ReqMap.savingsPlanOrderId == STRING
    input.ReqMap.savingsPlanId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

GenerateBenefitUtilizationSummariesReport_GenerateBySavingsPlanOrderId

enum_BenefitKind := [ "IncludedQuantity", "Reservation", "SavingsPlan" ]
enum_Grain := [ "Hourly", "Daily", "Monthly" ]

valid {
    input.Body.billingAccountId == STRING
    input.Body.billingProfileId == STRING
    input.Body.benefitOrderId == STRING
    input.Body.benefitId == STRING
    input.Body.grain == enum_Grain[_]
    input.Body.startDate == STRING
    input.Body.endDate == STRING
    input.Body.kind == enum_BenefitKind[_]
    input.ReqMap.savingsPlanOrderId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

GenerateCostDetailsReport_CreateOperation

enum_GenerateCostDetailsReportRequestDefinitionMetric := [ "ActualCost", "AmortizedCost" ]

valid {
    input.Body.metric == enum_GenerateCostDetailsReportRequestDefinitionMetric[_]
    input.Body.timePeriod.start == STRING
    input.Body.timePeriod.end == STRING
    input.Body.billingPeriod == STRING
    input.Body.invoiceId == STRING
    input.ReqMap.scope == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

GenerateCostDetailsReport_GetOperationResults

valid {
    input.ReqMap.scope == STRING
    input.ReqMap.operationId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

GenerateDetailedCostReportOperationResults_Get

valid {
    input.ReqMap.operationId == STRING
    input.ReqMap.scope == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

GenerateDetailedCostReportOperationStatus_Get

valid {
    input.ReqMap.operationId == STRING
    input.ReqMap.scope == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

GenerateDetailedCostReport_CreateOperation

enum_GenerateDetailedCostReportDefinitionMetric := [ "ActualCost", "AmortizedCost" ]

valid {
    input.Body.metric == enum_GenerateDetailedCostReportDefinitionMetric[_]
    input.Body.timePeriod.start == STRING
    input.Body.timePeriod.end == STRING
    input.Body.billingPeriod == STRING
    input.Body.invoiceId == STRING
    input.Body.customerId == STRING
    input.ReqMap.scope == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

GenerateReservationDetailsReport_ByBillingAccountId

valid {
    input.ReqMap.billingAccountId == STRING
    input.Qs.startDate == STRING
    input.Qs.endDate == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

GenerateReservationDetailsReport_ByBillingProfileId

valid {
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.billingProfileId == STRING
    input.Qs.startDate == STRING
    input.Qs.endDate == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Insights_Get

valid {
    input.ReqMap.scope == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

MarkupRules_CreateOrUpdate

valid {
    input.Body.properties.description == STRING
    input.Body.properties.percentage == NUMBER
    input.Body.properties.startDate == STRING
    input.Body.properties.endDate == STRING
    input.Body.properties.customerDetails.billingAccountId == STRING
    input.Body.properties.customerDetails.billingProfileId == STRING
    input.Body.eTag == STRING
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.billingProfileId == STRING
    input.ReqMap.name == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

MarkupRules_Delete

valid {
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.billingProfileId == STRING
    input.ReqMap.name == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

MarkupRules_Get

valid {
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.billingProfileId == STRING
    input.ReqMap.name == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

MarkupRules_List

valid {
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.billingProfileId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Operations_List

valid {
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

PriceSheet_DownloadByBillingAccount

valid {
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.billingPeriodName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

PriceSheet_DownloadByBillingProfile

valid {
    input.ReqMap.billingAccountName == STRING
    input.ReqMap.billingProfileName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

PriceSheet_DownloadByInvoice

valid {
    input.ReqMap.billingAccountName == STRING
    input.ReqMap.billingProfileName == STRING
    input.ReqMap.invoiceName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Query_Usage

enum_QueryAggregationFunction := [ "Sum" ]
enum_QueryColumnType := [ "TagKey", "Dimension" ]
enum_QueryComparisonExpressionOperator := [ "In" ]
enum_QueryDatasetGranularity := [ "Daily" ]
enum_QueryDefinitionTimeframe := [ "MonthToDate", "BillingMonthToDate", "TheLastMonth", "TheLastBillingMonth", "WeekToDate", "Custom" ]
enum_QueryDefinitionType := [ "Usage", "ActualCost", "AmortizedCost" ]

valid {
    input.Body.type == enum_QueryDefinitionType[_]
    input.Body.timeframe == enum_QueryDefinitionTimeframe[_]
    input.Body.timePeriod.from == STRING
    input.Body.timePeriod.to == STRING
    input.Body.dataset.granularity == enum_QueryDatasetGranularity[_]
    input.Body.dataset.configuration.columns[_] == STRING
    input.Body.dataset.aggregation.STRING.name == STRING
    input.Body.dataset.aggregation.STRING.function == enum_QueryAggregationFunction[_]
    input.Body.dataset.grouping[_].type == enum_QueryColumnType[_]
    input.Body.dataset.grouping[_].name == STRING
    input.Body.dataset.filter.and[_] == NESTED
    input.Body.dataset.filter.or[_] == NESTED
    input.Body.dataset.filter.dimensions.name == STRING
    input.Body.dataset.filter.dimensions.operator == enum_QueryComparisonExpressionOperator[_]
    input.Body.dataset.filter.dimensions.values[_] == STRING
    input.Body.dataset.filter.tags.name == STRING
    input.Body.dataset.filter.tags.operator == enum_QueryComparisonExpressionOperator[_]
    input.Body.dataset.filter.tags.values[_] == STRING
    input.ReqMap.scope == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Query_UsageByBillingAccount

enum_ReportConfigAggregationFunction := [ "Sum" ]
enum_ReportConfigColumnType := [ "Tag", "Dimension" ]
enum_ReportConfigComparisonExpressionOperator := [ "In", "Contains" ]
enum_ReportConfigDatasetGranularity := [ "Daily", "Monthly" ]
enum_ReportConfigDefinitionTimeframe := [ "WeekToDate", "MonthToDate", "YearToDate", "Custom" ]
enum_ReportConfigDefinitionType := [ "Usage" ]
enum_ReportConfigSortingDirection := [ "Ascending", "Descending" ]

valid {
    input.Body.type == enum_ReportConfigDefinitionType[_]
    input.Body.timeframe == enum_ReportConfigDefinitionTimeframe[_]
    input.Body.timePeriod.from == STRING
    input.Body.timePeriod.to == STRING
    input.Body.dataset.granularity == enum_ReportConfigDatasetGranularity[_]
    input.Body.dataset.configuration.columns[_] == STRING
    input.Body.dataset.aggregation.STRING.name == STRING
    input.Body.dataset.aggregation.STRING.function == enum_ReportConfigAggregationFunction[_]
    input.Body.dataset.grouping[_].type == enum_ReportConfigColumnType[_]
    input.Body.dataset.grouping[_].name == STRING
    input.Body.dataset.sorting[_].direction == enum_ReportConfigSortingDirection[_]
    input.Body.dataset.sorting[_].name == STRING
    input.Body.dataset.filter.and[_] == NESTED
    input.Body.dataset.filter.or[_] == NESTED
    input.Body.dataset.filter.not == NESTED
    input.Body.dataset.filter.dimension.name == STRING
    input.Body.dataset.filter.dimension.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.dataset.filter.dimension.values[_] == STRING
    input.Body.dataset.filter.tag.name == STRING
    input.Body.dataset.filter.tag.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.dataset.filter.tag.values[_] == STRING
    input.ReqMap.billingAccountId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Query_UsageByDepartment

enum_ReportConfigAggregationFunction := [ "Sum" ]
enum_ReportConfigColumnType := [ "Tag", "Dimension" ]
enum_ReportConfigComparisonExpressionOperator := [ "In", "Contains" ]
enum_ReportConfigDatasetGranularity := [ "Daily", "Monthly" ]
enum_ReportConfigDefinitionTimeframe := [ "WeekToDate", "MonthToDate", "YearToDate", "Custom" ]
enum_ReportConfigDefinitionType := [ "Usage" ]
enum_ReportConfigSortingDirection := [ "Ascending", "Descending" ]

valid {
    input.Body.type == enum_ReportConfigDefinitionType[_]
    input.Body.timeframe == enum_ReportConfigDefinitionTimeframe[_]
    input.Body.timePeriod.from == STRING
    input.Body.timePeriod.to == STRING
    input.Body.dataset.granularity == enum_ReportConfigDatasetGranularity[_]
    input.Body.dataset.configuration.columns[_] == STRING
    input.Body.dataset.aggregation.STRING.name == STRING
    input.Body.dataset.aggregation.STRING.function == enum_ReportConfigAggregationFunction[_]
    input.Body.dataset.grouping[_].type == enum_ReportConfigColumnType[_]
    input.Body.dataset.grouping[_].name == STRING
    input.Body.dataset.sorting[_].direction == enum_ReportConfigSortingDirection[_]
    input.Body.dataset.sorting[_].name == STRING
    input.Body.dataset.filter.and[_] == NESTED
    input.Body.dataset.filter.or[_] == NESTED
    input.Body.dataset.filter.not == NESTED
    input.Body.dataset.filter.dimension.name == STRING
    input.Body.dataset.filter.dimension.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.dataset.filter.dimension.values[_] == STRING
    input.Body.dataset.filter.tag.name == STRING
    input.Body.dataset.filter.tag.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.dataset.filter.tag.values[_] == STRING
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.departmentId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Query_UsageByEnrollmentAccount

enum_ReportConfigAggregationFunction := [ "Sum" ]
enum_ReportConfigColumnType := [ "Tag", "Dimension" ]
enum_ReportConfigComparisonExpressionOperator := [ "In", "Contains" ]
enum_ReportConfigDatasetGranularity := [ "Daily", "Monthly" ]
enum_ReportConfigDefinitionTimeframe := [ "WeekToDate", "MonthToDate", "YearToDate", "Custom" ]
enum_ReportConfigDefinitionType := [ "Usage" ]
enum_ReportConfigSortingDirection := [ "Ascending", "Descending" ]

valid {
    input.Body.type == enum_ReportConfigDefinitionType[_]
    input.Body.timeframe == enum_ReportConfigDefinitionTimeframe[_]
    input.Body.timePeriod.from == STRING
    input.Body.timePeriod.to == STRING
    input.Body.dataset.granularity == enum_ReportConfigDatasetGranularity[_]
    input.Body.dataset.configuration.columns[_] == STRING
    input.Body.dataset.aggregation.STRING.name == STRING
    input.Body.dataset.aggregation.STRING.function == enum_ReportConfigAggregationFunction[_]
    input.Body.dataset.grouping[_].type == enum_ReportConfigColumnType[_]
    input.Body.dataset.grouping[_].name == STRING
    input.Body.dataset.sorting[_].direction == enum_ReportConfigSortingDirection[_]
    input.Body.dataset.sorting[_].name == STRING
    input.Body.dataset.filter.and[_] == NESTED
    input.Body.dataset.filter.or[_] == NESTED
    input.Body.dataset.filter.not == NESTED
    input.Body.dataset.filter.dimension.name == STRING
    input.Body.dataset.filter.dimension.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.dataset.filter.dimension.values[_] == STRING
    input.Body.dataset.filter.tag.name == STRING
    input.Body.dataset.filter.tag.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.dataset.filter.tag.values[_] == STRING
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.enrollmentAccountId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Query_UsageByExternalCloudProviderType

enum_QueryAggregationFunction := [ "Sum" ]
enum_QueryColumnType := [ "TagKey", "Dimension" ]
enum_QueryComparisonExpressionOperator := [ "In" ]
enum_QueryDatasetGranularity := [ "Daily" ]
enum_QueryDefinitionTimeframe := [ "MonthToDate", "BillingMonthToDate", "TheLastMonth", "TheLastBillingMonth", "WeekToDate", "Custom" ]
enum_QueryDefinitionType := [ "Usage", "ActualCost", "AmortizedCost" ]
enum_externalCloudProviderTypeParameter := [ "externalSubscriptions", "externalBillingAccounts" ]

valid {
    input.Body.type == enum_QueryDefinitionType[_]
    input.Body.timeframe == enum_QueryDefinitionTimeframe[_]
    input.Body.timePeriod.from == STRING
    input.Body.timePeriod.to == STRING
    input.Body.dataset.granularity == enum_QueryDatasetGranularity[_]
    input.Body.dataset.configuration.columns[_] == STRING
    input.Body.dataset.aggregation.STRING.name == STRING
    input.Body.dataset.aggregation.STRING.function == enum_QueryAggregationFunction[_]
    input.Body.dataset.grouping[_].type == enum_QueryColumnType[_]
    input.Body.dataset.grouping[_].name == STRING
    input.Body.dataset.filter.and[_] == NESTED
    input.Body.dataset.filter.or[_] == NESTED
    input.Body.dataset.filter.dimensions.name == STRING
    input.Body.dataset.filter.dimensions.operator == enum_QueryComparisonExpressionOperator[_]
    input.Body.dataset.filter.dimensions.values[_] == STRING
    input.Body.dataset.filter.tags.name == STRING
    input.Body.dataset.filter.tags.operator == enum_QueryComparisonExpressionOperator[_]
    input.Body.dataset.filter.tags.values[_] == STRING
    input.ReqMap.externalCloudProviderType == enum_externalCloudProviderTypeParameter[_]
    input.ReqMap.externalCloudProviderId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Query_UsageByManagementGroup

enum_ReportConfigAggregationFunction := [ "Sum" ]
enum_ReportConfigColumnType := [ "Tag", "Dimension" ]
enum_ReportConfigComparisonExpressionOperator := [ "In", "Contains" ]
enum_ReportConfigDatasetGranularity := [ "Daily", "Monthly" ]
enum_ReportConfigDefinitionTimeframe := [ "WeekToDate", "MonthToDate", "YearToDate", "Custom" ]
enum_ReportConfigDefinitionType := [ "Usage" ]
enum_ReportConfigSortingDirection := [ "Ascending", "Descending" ]

valid {
    input.Body.type == enum_ReportConfigDefinitionType[_]
    input.Body.timeframe == enum_ReportConfigDefinitionTimeframe[_]
    input.Body.timePeriod.from == STRING
    input.Body.timePeriod.to == STRING
    input.Body.dataset.granularity == enum_ReportConfigDatasetGranularity[_]
    input.Body.dataset.configuration.columns[_] == STRING
    input.Body.dataset.aggregation.STRING.name == STRING
    input.Body.dataset.aggregation.STRING.function == enum_ReportConfigAggregationFunction[_]
    input.Body.dataset.grouping[_].type == enum_ReportConfigColumnType[_]
    input.Body.dataset.grouping[_].name == STRING
    input.Body.dataset.sorting[_].direction == enum_ReportConfigSortingDirection[_]
    input.Body.dataset.sorting[_].name == STRING
    input.Body.dataset.filter.and[_] == NESTED
    input.Body.dataset.filter.or[_] == NESTED
    input.Body.dataset.filter.not == NESTED
    input.Body.dataset.filter.dimension.name == STRING
    input.Body.dataset.filter.dimension.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.dataset.filter.dimension.values[_] == STRING
    input.Body.dataset.filter.tag.name == STRING
    input.Body.dataset.filter.tag.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.dataset.filter.tag.values[_] == STRING
    input.ReqMap.managementGroupId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Query_UsageByResourceGroup

enum_ReportConfigAggregationFunction := [ "Sum" ]
enum_ReportConfigColumnType := [ "Tag", "Dimension" ]
enum_ReportConfigComparisonExpressionOperator := [ "In", "Contains" ]
enum_ReportConfigDatasetGranularity := [ "Daily", "Monthly" ]
enum_ReportConfigDefinitionTimeframe := [ "WeekToDate", "MonthToDate", "YearToDate", "Custom" ]
enum_ReportConfigDefinitionType := [ "Usage" ]
enum_ReportConfigSortingDirection := [ "Ascending", "Descending" ]

valid {
    input.Body.type == enum_ReportConfigDefinitionType[_]
    input.Body.timeframe == enum_ReportConfigDefinitionTimeframe[_]
    input.Body.timePeriod.from == STRING
    input.Body.timePeriod.to == STRING
    input.Body.dataset.granularity == enum_ReportConfigDatasetGranularity[_]
    input.Body.dataset.configuration.columns[_] == STRING
    input.Body.dataset.aggregation.STRING.name == STRING
    input.Body.dataset.aggregation.STRING.function == enum_ReportConfigAggregationFunction[_]
    input.Body.dataset.grouping[_].type == enum_ReportConfigColumnType[_]
    input.Body.dataset.grouping[_].name == STRING
    input.Body.dataset.sorting[_].direction == enum_ReportConfigSortingDirection[_]
    input.Body.dataset.sorting[_].name == STRING
    input.Body.dataset.filter.and[_] == NESTED
    input.Body.dataset.filter.or[_] == NESTED
    input.Body.dataset.filter.not == NESTED
    input.Body.dataset.filter.dimension.name == STRING
    input.Body.dataset.filter.dimension.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.dataset.filter.dimension.values[_] == STRING
    input.Body.dataset.filter.tag.name == STRING
    input.Body.dataset.filter.tag.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.dataset.filter.tag.values[_] == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Query_UsageBySubscription

enum_ReportConfigAggregationFunction := [ "Sum" ]
enum_ReportConfigColumnType := [ "Tag", "Dimension" ]
enum_ReportConfigComparisonExpressionOperator := [ "In", "Contains" ]
enum_ReportConfigDatasetGranularity := [ "Daily", "Monthly" ]
enum_ReportConfigDefinitionTimeframe := [ "WeekToDate", "MonthToDate", "YearToDate", "Custom" ]
enum_ReportConfigDefinitionType := [ "Usage" ]
enum_ReportConfigSortingDirection := [ "Ascending", "Descending" ]

valid {
    input.Body.type == enum_ReportConfigDefinitionType[_]
    input.Body.timeframe == enum_ReportConfigDefinitionTimeframe[_]
    input.Body.timePeriod.from == STRING
    input.Body.timePeriod.to == STRING
    input.Body.dataset.granularity == enum_ReportConfigDatasetGranularity[_]
    input.Body.dataset.configuration.columns[_] == STRING
    input.Body.dataset.aggregation.STRING.name == STRING
    input.Body.dataset.aggregation.STRING.function == enum_ReportConfigAggregationFunction[_]
    input.Body.dataset.grouping[_].type == enum_ReportConfigColumnType[_]
    input.Body.dataset.grouping[_].name == STRING
    input.Body.dataset.sorting[_].direction == enum_ReportConfigSortingDirection[_]
    input.Body.dataset.sorting[_].name == STRING
    input.Body.dataset.filter.and[_] == NESTED
    input.Body.dataset.filter.or[_] == NESTED
    input.Body.dataset.filter.not == NESTED
    input.Body.dataset.filter.dimension.name == STRING
    input.Body.dataset.filter.dimension.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.dataset.filter.dimension.values[_] == STRING
    input.Body.dataset.filter.tag.name == STRING
    input.Body.dataset.filter.tag.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.dataset.filter.tag.values[_] == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

ReportConfig_CreateOrUpdate

enum_ReportConfigAggregationFunction := [ "Sum" ]
enum_ReportConfigColumnType := [ "Tag", "Dimension" ]
enum_ReportConfigComparisonExpressionOperator := [ "In" ]
enum_ReportConfigDatasetGranularity := [ "Daily" ]
enum_ReportConfigDefinitionTimeframe := [ "WeekToDate", "MonthToDate", "YearToDate", "Custom" ]
enum_ReportConfigDefinitionType := [ "Usage" ]
enum_ReportConfigPropertiesFormat := [ "Csv" ]
enum_ReportConfigScheduleRecurrence := [ "Daily", "Weekly", "Monthly", "Annually" ]
enum_ReportConfigScheduleStatus := [ "Active", "Inactive" ]

valid {
    input.Body.properties.schedule.status == enum_ReportConfigScheduleStatus[_]
    input.Body.properties.schedule.recurrence == enum_ReportConfigScheduleRecurrence[_]
    input.Body.properties.schedule.recurrencePeriod.from == STRING
    input.Body.properties.schedule.recurrencePeriod.to == STRING
    input.Body.properties.format == enum_ReportConfigPropertiesFormat[_]
    input.Body.properties.deliveryInfo.destination.resourceId == STRING
    input.Body.properties.deliveryInfo.destination.container == STRING
    input.Body.properties.deliveryInfo.destination.rootFolderPath == STRING
    input.Body.properties.definition.type == enum_ReportConfigDefinitionType[_]
    input.Body.properties.definition.timeframe == enum_ReportConfigDefinitionTimeframe[_]
    input.Body.properties.definition.timePeriod.from == STRING
    input.Body.properties.definition.timePeriod.to == STRING
    input.Body.properties.definition.dataset.granularity == enum_ReportConfigDatasetGranularity[_]
    input.Body.properties.definition.dataset.configuration.columns[_] == STRING
    input.Body.properties.definition.dataset.aggregation.STRING.name == STRING
    input.Body.properties.definition.dataset.aggregation.STRING.function == enum_ReportConfigAggregationFunction[_]
    input.Body.properties.definition.dataset.grouping[_].columnType == enum_ReportConfigColumnType[_]
    input.Body.properties.definition.dataset.grouping[_].name == STRING
    input.Body.properties.definition.dataset.filter.and[_] == NESTED
    input.Body.properties.definition.dataset.filter.or[_] == NESTED
    input.Body.properties.definition.dataset.filter.not == NESTED
    input.Body.properties.definition.dataset.filter.dimension.name == STRING
    input.Body.properties.definition.dataset.filter.dimension.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.properties.definition.dataset.filter.dimension.values[_] == STRING
    input.Body.properties.definition.dataset.filter.tag.name == STRING
    input.Body.properties.definition.dataset.filter.tag.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.properties.definition.dataset.filter.tag.values[_] == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.reportConfigName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

ReportConfig_CreateOrUpdateByResourceGroupName

enum_ReportConfigAggregationFunction := [ "Sum" ]
enum_ReportConfigColumnType := [ "Tag", "Dimension" ]
enum_ReportConfigComparisonExpressionOperator := [ "In" ]
enum_ReportConfigDatasetGranularity := [ "Daily" ]
enum_ReportConfigDefinitionTimeframe := [ "WeekToDate", "MonthToDate", "YearToDate", "Custom" ]
enum_ReportConfigDefinitionType := [ "Usage" ]
enum_ReportConfigPropertiesFormat := [ "Csv" ]
enum_ReportConfigScheduleRecurrence := [ "Daily", "Weekly", "Monthly", "Annually" ]
enum_ReportConfigScheduleStatus := [ "Active", "Inactive" ]

valid {
    input.Body.properties.schedule.status == enum_ReportConfigScheduleStatus[_]
    input.Body.properties.schedule.recurrence == enum_ReportConfigScheduleRecurrence[_]
    input.Body.properties.schedule.recurrencePeriod.from == STRING
    input.Body.properties.schedule.recurrencePeriod.to == STRING
    input.Body.properties.format == enum_ReportConfigPropertiesFormat[_]
    input.Body.properties.deliveryInfo.destination.resourceId == STRING
    input.Body.properties.deliveryInfo.destination.container == STRING
    input.Body.properties.deliveryInfo.destination.rootFolderPath == STRING
    input.Body.properties.definition.type == enum_ReportConfigDefinitionType[_]
    input.Body.properties.definition.timeframe == enum_ReportConfigDefinitionTimeframe[_]
    input.Body.properties.definition.timePeriod.from == STRING
    input.Body.properties.definition.timePeriod.to == STRING
    input.Body.properties.definition.dataset.granularity == enum_ReportConfigDatasetGranularity[_]
    input.Body.properties.definition.dataset.configuration.columns[_] == STRING
    input.Body.properties.definition.dataset.aggregation.STRING.name == STRING
    input.Body.properties.definition.dataset.aggregation.STRING.function == enum_ReportConfigAggregationFunction[_]
    input.Body.properties.definition.dataset.grouping[_].columnType == enum_ReportConfigColumnType[_]
    input.Body.properties.definition.dataset.grouping[_].name == STRING
    input.Body.properties.definition.dataset.filter.and[_] == NESTED
    input.Body.properties.definition.dataset.filter.or[_] == NESTED
    input.Body.properties.definition.dataset.filter.not == NESTED
    input.Body.properties.definition.dataset.filter.dimension.name == STRING
    input.Body.properties.definition.dataset.filter.dimension.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.properties.definition.dataset.filter.dimension.values[_] == STRING
    input.Body.properties.definition.dataset.filter.tag.name == STRING
    input.Body.properties.definition.dataset.filter.tag.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.properties.definition.dataset.filter.tag.values[_] == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.reportConfigName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

ReportConfig_Delete

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.reportConfigName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

ReportConfig_DeleteByResourceGroupName

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.reportConfigName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

ReportConfig_Get

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.reportConfigName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

ReportConfig_GetByResourceGroupName

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.reportConfigName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

ReportConfig_List

valid {
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

ReportConfig_ListByResourceGroupName

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Reports_CreateOrUpdate

enum_CommonReportPropertiesFormat := [ "Csv" ]
enum_ReportAggregationFunction := [ "Sum" ]
enum_ReportColumnType := [ "Tag", "Dimension" ]
enum_ReportComparisonExpressionOperator := [ "In" ]
enum_ReportDatasetGranularity := [ "Daily", "Hourly" ]
enum_ReportDefinitionTimeframe := [ "WeekToDate", "MonthToDate", "Custom" ]
enum_ReportDefinitionType := [ "Usage" ]
enum_ReportScheduleRecurrence := [ "Daily", "Weekly", "Monthly", "Annually" ]
enum_ReportScheduleStatus := [ "Active", "Inactive" ]

valid {
    input.Body.properties.schedule.status == enum_ReportScheduleStatus[_]
    input.Body.properties.schedule.recurrence == enum_ReportScheduleRecurrence[_]
    input.Body.properties.schedule.recurrencePeriod.from == STRING
    input.Body.properties.schedule.recurrencePeriod.to == STRING
    input.Body.properties.format == enum_CommonReportPropertiesFormat[_]
    input.Body.properties.deliveryInfo.destination.resourceId == STRING
    input.Body.properties.deliveryInfo.destination.container == STRING
    input.Body.properties.deliveryInfo.destination.rootFolderPath == STRING
    input.Body.properties.definition.type == enum_ReportDefinitionType[_]
    input.Body.properties.definition.timeframe == enum_ReportDefinitionTimeframe[_]
    input.Body.properties.definition.timePeriod.from == STRING
    input.Body.properties.definition.timePeriod.to == STRING
    input.Body.properties.definition.dataset.granularity == enum_ReportDatasetGranularity[_]
    input.Body.properties.definition.dataset.configuration.columns[_] == STRING
    input.Body.properties.definition.dataset.aggregation.STRING.name == STRING
    input.Body.properties.definition.dataset.aggregation.STRING.function == enum_ReportAggregationFunction[_]
    input.Body.properties.definition.dataset.grouping[_].type == enum_ReportColumnType[_]
    input.Body.properties.definition.dataset.grouping[_].name == STRING
    input.Body.properties.definition.dataset.filter.and[_] == NESTED
    input.Body.properties.definition.dataset.filter.or[_] == NESTED
    input.Body.properties.definition.dataset.filter.not == NESTED
    input.Body.properties.definition.dataset.filter.dimension.name == STRING
    input.Body.properties.definition.dataset.filter.dimension.operator == enum_ReportComparisonExpressionOperator[_]
    input.Body.properties.definition.dataset.filter.dimension.values[_] == STRING
    input.Body.properties.definition.dataset.filter.tag.name == STRING
    input.Body.properties.definition.dataset.filter.tag.operator == enum_ReportComparisonExpressionOperator[_]
    input.Body.properties.definition.dataset.filter.tag.values[_] == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.reportName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

Reports_CreateOrUpdateByBillingAccount

enum_ReportScheduleRecurrence := [ "Daily", "Weekly", "Monthly", "Annually" ]
enum_ReportScheduleStatus := [ "Active", "Inactive" ]

valid {
    input.Body.properties.schedule.status == enum_ReportScheduleStatus[_]
    input.Body.properties.schedule.recurrence == enum_ReportScheduleRecurrence[_]
    input.Body.properties.schedule.recurrencePeriod.from == STRING
    input.Body.properties.schedule.recurrencePeriod.to == STRING
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.reportName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Reports_CreateOrUpdateByDepartment

enum_ReportScheduleRecurrence := [ "Daily", "Weekly", "Monthly", "Annually" ]
enum_ReportScheduleStatus := [ "Active", "Inactive" ]

valid {
    input.Body.properties.schedule.status == enum_ReportScheduleStatus[_]
    input.Body.properties.schedule.recurrence == enum_ReportScheduleRecurrence[_]
    input.Body.properties.schedule.recurrencePeriod.from == STRING
    input.Body.properties.schedule.recurrencePeriod.to == STRING
    input.ReqMap.departmentId == STRING
    input.ReqMap.reportName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Reports_CreateOrUpdateByResourceGroupName

enum_ReportScheduleRecurrence := [ "Daily", "Weekly", "Monthly", "Annually" ]
enum_ReportScheduleStatus := [ "Active", "Inactive" ]

valid {
    input.Body.properties.schedule.status == enum_ReportScheduleStatus[_]
    input.Body.properties.schedule.recurrence == enum_ReportScheduleRecurrence[_]
    input.Body.properties.schedule.recurrencePeriod.from == STRING
    input.Body.properties.schedule.recurrencePeriod.to == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.reportName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Reports_Delete

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.reportName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

Reports_DeleteByBillingAccount

valid {
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.reportName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Reports_DeleteByDepartment

valid {
    input.ReqMap.departmentId == STRING
    input.ReqMap.reportName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Reports_DeleteByResourceGroupName

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.reportName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Reports_Execute

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.reportName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

Reports_ExecuteByBillingAccount

valid {
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.reportName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Reports_ExecuteByDepartment

valid {
    input.ReqMap.departmentId == STRING
    input.ReqMap.reportName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Reports_ExecuteByResourceGroupName

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.reportName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Reports_Get

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.reportName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

Reports_GetByBillingAccount

valid {
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.reportName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Reports_GetByDepartment

valid {
    input.ReqMap.departmentId == STRING
    input.ReqMap.reportName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Reports_GetByResourceGroupName

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.reportName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Reports_GetExecutionHistory

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.reportName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

Reports_GetExecutionHistoryByBillingAccount

valid {
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.reportName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Reports_GetExecutionHistoryByDepartment

valid {
    input.ReqMap.departmentId == STRING
    input.ReqMap.reportName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Reports_GetExecutionHistoryByResourceGroupName

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.reportName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Reports_List

valid {
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

Reports_ListByBillingAccount

valid {
    input.ReqMap.billingAccountId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Reports_ListByDepartment

valid {
    input.ReqMap.departmentId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Reports_ListByResourceGroupName

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.ResourceGroup == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

ScheduledActions_CheckNameAvailability

valid {
    input.Body.name == STRING
    input.Body.type == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

ScheduledActions_CheckNameAvailabilityByScope

valid {
    input.Body.name == STRING
    input.Body.type == STRING
    input.ReqMap.scope == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

ScheduledActions_CreateOrUpdate

enum_DaysOfWeek := [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ]
enum_FileFormat := [ "Csv" ]
enum_ScheduleFrequency := [ "Daily", "Weekly", "Monthly" ]
enum_ScheduledActionKind := [ "Email", "InsightAlert" ]
enum_ScheduledActionStatus := [ "Enabled", "Expired", "Disabled" ]
enum_WeeksOfMonth := [ "First", "Second", "Third", "Fourth", "Last" ]

valid {
    input.Body.properties.displayName == STRING
    input.Body.properties.fileDestination.fileFormats[_] == enum_FileFormat[_]
    input.Body.properties.notification.to[_] == STRING
    input.Body.properties.notification.language == STRING
    input.Body.properties.notification.message == STRING
    input.Body.properties.notification.regionalFormat == STRING
    input.Body.properties.notification.subject == STRING
    input.Body.properties.notificationEmail == STRING
    input.Body.properties.schedule.frequency == enum_ScheduleFrequency[_]
    input.Body.properties.schedule.hourOfDay == INTEGER
    input.Body.properties.schedule.daysOfWeek[_] == enum_DaysOfWeek[_]
    input.Body.properties.schedule.weeksOfMonth[_] == enum_WeeksOfMonth[_]
    input.Body.properties.schedule.dayOfMonth == INTEGER
    input.Body.properties.schedule.startDate == STRING
    input.Body.properties.schedule.endDate == STRING
    input.Body.properties.scope == STRING
    input.Body.properties.status == enum_ScheduledActionStatus[_]
    input.Body.properties.viewId == STRING
    input.Body.kind == enum_ScheduledActionKind[_]
    input.Body.STRING == STRING
    input.ReqMap.name == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

ScheduledActions_CreateOrUpdateByScope

enum_DaysOfWeek := [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ]
enum_FileFormat := [ "Csv" ]
enum_ScheduleFrequency := [ "Daily", "Weekly", "Monthly" ]
enum_ScheduledActionStatus := [ "Enabled", "Expired", "Disabled" ]
enum_WeeksOfMonth := [ "First", "Second", "Third", "Fourth", "Last" ]

valid {
    input.Body.properties.displayName == STRING
    input.Body.properties.fileDestination.fileFormats[_] == enum_FileFormat[_]
    input.Body.properties.notification.to[_] == STRING
    input.Body.properties.notification.language == STRING
    input.Body.properties.notification.message == STRING
    input.Body.properties.notification.regionalFormat == STRING
    input.Body.properties.notification.subject == STRING
    input.Body.properties.notificationEmail == STRING
    input.Body.properties.schedule.frequency == enum_ScheduleFrequency[_]
    input.Body.properties.schedule.hourOfDay == INTEGER
    input.Body.properties.schedule.daysOfWeek[_] == enum_DaysOfWeek[_]
    input.Body.properties.schedule.weeksOfMonth[_] == enum_WeeksOfMonth[_]
    input.Body.properties.schedule.dayOfMonth == INTEGER
    input.Body.properties.schedule.startDate == STRING
    input.Body.properties.schedule.endDate == STRING
    input.Body.properties.scope == STRING
    input.Body.properties.status == enum_ScheduledActionStatus[_]
    input.Body.properties.viewId == STRING
    input.ReqMap.scope == STRING
    input.ReqMap.name == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

ScheduledActions_Delete

valid {
    input.ReqMap.name == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

ScheduledActions_DeleteByScope

valid {
    input.ReqMap.scope == STRING
    input.ReqMap.name == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

ScheduledActions_Get

valid {
    input.ReqMap.name == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

ScheduledActions_GetByScope

valid {
    input.ReqMap.scope == STRING
    input.ReqMap.name == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

ScheduledActions_List

valid {
    input.Qs.api-version == STRING
    input.Qs.$filter == STRING
    input.ProviderMetadata.Region == STRING
}

ScheduledActions_ListByScope

valid {
    input.ReqMap.scope == STRING
    input.Qs.api-version == STRING
    input.Qs.$filter == STRING
    input.ProviderMetadata.Region == STRING
}

ScheduledActions_Run

valid {
    input.ReqMap.name == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

ScheduledActions_RunByScope

valid {
    input.ReqMap.scope == STRING
    input.ReqMap.name == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Settings_CreateOrUpdate

enum_SettingsPropertiesStartOn := [ "LastUsed", "ScopePicker", "SpecificScope" ]

valid {
    input.Body.properties.scope == STRING
    input.Body.properties.startOn == enum_SettingsPropertiesStartOn[_]
    input.Body.properties.cache[_].id == STRING
    input.Body.properties.cache[_].name == STRING
    input.Body.properties.cache[_].channel == STRING
    input.Body.properties.cache[_].subchannel == STRING
    input.Body.properties.cache[_].parent == STRING
    input.Body.properties.cache[_].status == STRING
    input.ReqMap.settingName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Settings_CreateOrUpdateByScope

enum_SettingKind := [ "taginheritance" ]
enum_settingTypeParameter := [ "taginheritance" ]

valid {
    input.Body.kind == enum_SettingKind[_]
    input.Body.STRING == STRING
    input.ReqMap.scope == STRING
    input.ReqMap.type == enum_settingTypeParameter[_]
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Settings_Delete

valid {
    input.ReqMap.settingName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Settings_DeleteByScope

enum_settingTypeParameter := [ "taginheritance" ]

valid {
    input.ReqMap.scope == STRING
    input.ReqMap.type == enum_settingTypeParameter[_]
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Settings_Get

valid {
    input.ReqMap.settingName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Settings_GetByScope

enum_settingTypeParameter := [ "taginheritance" ]

valid {
    input.ReqMap.scope == STRING
    input.ReqMap.type == enum_settingTypeParameter[_]
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Settings_List

valid {
    input.ReqMap.scope == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

ShowbackRule_CreateUpdateRule

enum_ShowbackRulePropertiesRuleType := [ "CustomPrice", "CostAllocation" ]
enum_ShowbackRulePropertiesStatus := [ "NotActive", "Active" ]

valid {
    input.Body.properties.description == STRING
    input.Body.properties.status == enum_ShowbackRulePropertiesStatus[_]
    input.Body.properties.scopes[_].id == STRING
    input.Body.properties.scopes[_].name == STRING
    input.Body.properties.scopes[_].type == STRING
    input.Body.properties.scopes[_].childScope == NESTED
    input.Body.properties.ruleType == enum_ShowbackRulePropertiesRuleType[_]
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.ruleName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

ShowbackRule_GetBillingAccountId

valid {
    input.ReqMap.billingAccountId == STRING
    input.ReqMap.ruleName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

ShowbackRules_List

valid {
    input.ReqMap.billingAccountId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Views_CreateOrUpdate

enum_KpiPropertiesType := [ "Forecast", "Budget" ]
enum_PivotPropertiesType := [ "Dimension", "TagKey" ]
enum_ReportConfigAggregationFunction := [ "Sum" ]
enum_ReportConfigColumnType := [ "TagKey", "Dimension" ]
enum_ReportConfigComparisonExpressionOperator := [ "In", "Contains" ]
enum_ReportConfigDatasetGranularity := [ "Daily", "Monthly" ]
enum_ReportConfigDefinitionTimeframe := [ "WeekToDate", "MonthToDate", "YearToDate", "Custom" ]
enum_ReportConfigDefinitionType := [ "Usage" ]
enum_ReportConfigSortingDirection := [ "Ascending", "Descending" ]
enum_ViewPropertiesAccumulated := [ "true", "false" ]
enum_ViewPropertiesChart := [ "Area", "Line", "StackedColumn", "GroupedColumn", "Table" ]
enum_ViewPropertiesMetric := [ "ActualCost", "AmortizedCost", "AHUB" ]

valid {
    input.Body.properties.displayName == STRING
    input.Body.properties.scope == STRING
    input.Body.properties.modifiedOn == STRING
    input.Body.properties.dateRange == STRING
    input.Body.properties.query.type == enum_ReportConfigDefinitionType[_]
    input.Body.properties.query.timeframe == enum_ReportConfigDefinitionTimeframe[_]
    input.Body.properties.query.timePeriod.from == STRING
    input.Body.properties.query.timePeriod.to == STRING
    input.Body.properties.query.dataSet.granularity == enum_ReportConfigDatasetGranularity[_]
    input.Body.properties.query.dataSet.configuration.columns[_] == STRING
    input.Body.properties.query.dataSet.aggregation.STRING.name == STRING
    input.Body.properties.query.dataSet.aggregation.STRING.function == enum_ReportConfigAggregationFunction[_]
    input.Body.properties.query.dataSet.grouping[_].type == enum_ReportConfigColumnType[_]
    input.Body.properties.query.dataSet.grouping[_].name == STRING
    input.Body.properties.query.dataSet.sorting[_].direction == enum_ReportConfigSortingDirection[_]
    input.Body.properties.query.dataSet.sorting[_].name == STRING
    input.Body.properties.query.dataSet.filter.and[_] == NESTED
    input.Body.properties.query.dataSet.filter.or[_] == NESTED
    input.Body.properties.query.dataSet.filter.dimensions.name == STRING
    input.Body.properties.query.dataSet.filter.dimensions.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.properties.query.dataSet.filter.dimensions.values[_] == STRING
    input.Body.properties.query.dataSet.filter.tags.name == STRING
    input.Body.properties.query.dataSet.filter.tags.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.properties.query.dataSet.filter.tags.values[_] == STRING
    input.Body.properties.query.includeMonetaryCommitment == BOOLEAN
    input.Body.properties.chart == enum_ViewPropertiesChart[_]
    input.Body.properties.accumulated == enum_ViewPropertiesAccumulated[_]
    input.Body.properties.metric == enum_ViewPropertiesMetric[_]
    input.Body.properties.kpis[_].type == enum_KpiPropertiesType[_]
    input.Body.properties.kpis[_].id == STRING
    input.Body.properties.kpis[_].enabled == BOOLEAN
    input.Body.properties.pivots[_].type == enum_PivotPropertiesType[_]
    input.Body.properties.pivots[_].name == STRING
    input.Body.eTag == STRING
    input.ReqMap.viewName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Views_CreateOrUpdateByScope

enum_KpiPropertiesType := [ "Forecast", "Budget" ]
enum_PivotPropertiesType := [ "Dimension", "TagKey" ]
enum_ReportConfigAggregationFunction := [ "Sum" ]
enum_ReportConfigColumnType := [ "TagKey", "Dimension" ]
enum_ReportConfigComparisonExpressionOperator := [ "In", "Contains" ]
enum_ReportConfigDatasetGranularity := [ "Daily", "Monthly" ]
enum_ReportConfigDefinitionTimeframe := [ "WeekToDate", "MonthToDate", "YearToDate", "Custom" ]
enum_ReportConfigDefinitionType := [ "Usage" ]
enum_ReportConfigSortingDirection := [ "Ascending", "Descending" ]
enum_ViewPropertiesAccumulated := [ "true", "false" ]
enum_ViewPropertiesChart := [ "Area", "Line", "StackedColumn", "GroupedColumn", "Table" ]
enum_ViewPropertiesMetric := [ "ActualCost", "AmortizedCost", "AHUB" ]

valid {
    input.Body.properties.displayName == STRING
    input.Body.properties.scope == STRING
    input.Body.properties.modifiedOn == STRING
    input.Body.properties.dateRange == STRING
    input.Body.properties.query.type == enum_ReportConfigDefinitionType[_]
    input.Body.properties.query.timeframe == enum_ReportConfigDefinitionTimeframe[_]
    input.Body.properties.query.timePeriod.from == STRING
    input.Body.properties.query.timePeriod.to == STRING
    input.Body.properties.query.dataSet.granularity == enum_ReportConfigDatasetGranularity[_]
    input.Body.properties.query.dataSet.configuration.columns[_] == STRING
    input.Body.properties.query.dataSet.aggregation.STRING.name == STRING
    input.Body.properties.query.dataSet.aggregation.STRING.function == enum_ReportConfigAggregationFunction[_]
    input.Body.properties.query.dataSet.grouping[_].type == enum_ReportConfigColumnType[_]
    input.Body.properties.query.dataSet.grouping[_].name == STRING
    input.Body.properties.query.dataSet.sorting[_].direction == enum_ReportConfigSortingDirection[_]
    input.Body.properties.query.dataSet.sorting[_].name == STRING
    input.Body.properties.query.dataSet.filter.and[_] == NESTED
    input.Body.properties.query.dataSet.filter.or[_] == NESTED
    input.Body.properties.query.dataSet.filter.dimensions.name == STRING
    input.Body.properties.query.dataSet.filter.dimensions.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.properties.query.dataSet.filter.dimensions.values[_] == STRING
    input.Body.properties.query.dataSet.filter.tags.name == STRING
    input.Body.properties.query.dataSet.filter.tags.operator == enum_ReportConfigComparisonExpressionOperator[_]
    input.Body.properties.query.dataSet.filter.tags.values[_] == STRING
    input.Body.properties.query.includeMonetaryCommitment == BOOLEAN
    input.Body.properties.chart == enum_ViewPropertiesChart[_]
    input.Body.properties.accumulated == enum_ViewPropertiesAccumulated[_]
    input.Body.properties.metric == enum_ViewPropertiesMetric[_]
    input.Body.properties.kpis[_].type == enum_KpiPropertiesType[_]
    input.Body.properties.kpis[_].id == STRING
    input.Body.properties.kpis[_].enabled == BOOLEAN
    input.Body.properties.pivots[_].type == enum_PivotPropertiesType[_]
    input.Body.properties.pivots[_].name == STRING
    input.ReqMap.scope == STRING
    input.ReqMap.viewName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Views_Delete

valid {
    input.ReqMap.viewName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Views_DeleteByScope

valid {
    input.ReqMap.scope == STRING
    input.ReqMap.viewName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Views_Get

valid {
    input.ReqMap.viewName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Views_GetByScope

valid {
    input.ReqMap.scope == STRING
    input.ReqMap.viewName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Views_List

valid {
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Views_ListByScope

valid {
    input.ReqMap.scope == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}