rules/AzureDevOps.Organization.GeneralBillingSettings.Rule.ps1
|
# Azure DevOps organization General Billing Settings rules # Synopsis: Subscription status should be active Rule 'Azure.DevOps.Organization.GeneralBillingSettings.SubscriptionActive' ` -Ref 'ADO-OGB-001' ` -Type 'Azure.DevOps.Organization.GeneralBillingSettings' ` -Tag @{ release = 'GA' } ` -Level Error { # Description: An active subscription ensures uninterrupted access to Azure DevOps services. Reason 'The subscription status is not set to active.' Recommend 'Ensure the Azure DevOps organization subscription is active in the billing settings.' # Links: https://learn.microsoft.com/en-us/azure/devops/organizations/billing/overview $Assert.HasField($TargetObject, "subscriptionStatus", $true) $Assert.HasFieldValue($TargetObject, "subscriptionStatus", "active") } # Synopsis: The target should satisfy its applicable organizational policy Rule 'Azure.DevOps.Organization.GeneralBillingSettings.EnterpriseBillingConfigured' ` -Ref 'ADO-OGB-002' ` -Type 'Azure.DevOps.Organization.GeneralBillingSettings' ` -If { (Get-AzDevOpsPolicyAssessment -TargetObject $TargetObject -RuleId 'Azure.DevOps.Organization.GeneralBillingSettings.EnterpriseBillingConfigured' -Policy $Configuration.assessmentPolicies.'Azure.DevOps.Organization.GeneralBillingSettings.EnterpriseBillingConfigured').Outcome -in @('Pass', 'Fail') } ` -Tag @{ release = 'GA'; assessment = 'Policy' } ` -Level Warning { $assessment = Get-AzDevOpsPolicyAssessment -TargetObject $TargetObject -RuleId 'Azure.DevOps.Organization.GeneralBillingSettings.EnterpriseBillingConfigured' -Policy $Configuration.assessmentPolicies.'Azure.DevOps.Organization.GeneralBillingSettings.EnterpriseBillingConfigured' Reason $assessment.ReasonCode Recommend 'Apply the referenced organizational policy or collect the missing evidence.' $Assert.HasFieldValue($assessment, 'Outcome', 'Pass') } # Synopsis: The target should satisfy its applicable organizational policy Rule 'Azure.DevOps.Organization.GeneralBillingSettings.AssignmentBillingEnabled' ` -Ref 'ADO-OGB-003' ` -Type 'Azure.DevOps.Organization.GeneralBillingSettings' ` -If { (Get-AzDevOpsPolicyAssessment -TargetObject $TargetObject -RuleId 'Azure.DevOps.Organization.GeneralBillingSettings.AssignmentBillingEnabled' -Policy $Configuration.assessmentPolicies.'Azure.DevOps.Organization.GeneralBillingSettings.AssignmentBillingEnabled').Outcome -in @('Pass', 'Fail') } ` -Tag @{ release = 'GA'; assessment = 'Policy' } ` -Level Error { $assessment = Get-AzDevOpsPolicyAssessment -TargetObject $TargetObject -RuleId 'Azure.DevOps.Organization.GeneralBillingSettings.AssignmentBillingEnabled' -Policy $Configuration.assessmentPolicies.'Azure.DevOps.Organization.GeneralBillingSettings.AssignmentBillingEnabled' Reason $assessment.ReasonCode Recommend 'Apply the referenced organizational policy or collect the missing evidence.' $Assert.HasFieldValue($assessment, 'Outcome', 'Pass') } |