assets/MaesterParameterKinds.psd1
|
# Parameter-kind registry (Maester 3.0 design, section 3.4). [MaesterParameter(Kind = ...)] names an entry. # A kind tells a UI which picker to show and tells the engine how to validate a value and resolve a # display name. Packages add kinds under their own prefix. A UI falls back to a text box for a kind it # does not know. # # Shape what the test receives: graph-object-id | upn | arm-resource-id | string # Pattern regular expression a value must match # Service service the value belongs to (display names resolve only when it is connected) # Resolve Graph or ARM relative URI template to read the display name; {Id} is replaced # DisplayName property of the resolved object to show # UiHint graph-object | arm-resource | enum | text | number | boolean # ODataType for graph-object pickers # ResourceType for arm-resource pickers @{ SchemaVersion = '1.0' Kinds = @{ 'Entra.User' = @{ Shape = 'graph-object-id'; Pattern = '^[0-9a-fA-F-]{36}$'; Service = 'Graph'; Resolve = 'users/{Id}'; DisplayName = 'displayName'; UiHint = 'graph-object'; ODataType = '#microsoft.graph.user' } 'Entra.Group' = @{ Shape = 'graph-object-id'; Pattern = '^[0-9a-fA-F-]{36}$'; Service = 'Graph'; Resolve = 'groups/{Id}'; DisplayName = 'displayName'; UiHint = 'graph-object'; ODataType = '#microsoft.graph.group' } 'Entra.ServicePrincipal' = @{ Shape = 'graph-object-id'; Pattern = '^[0-9a-fA-F-]{36}$'; Service = 'Graph'; Resolve = 'servicePrincipals/{Id}'; DisplayName = 'displayName'; UiHint = 'graph-object'; ODataType = '#microsoft.graph.servicePrincipal' } 'Entra.Application' = @{ Shape = 'graph-object-id'; Pattern = '^[0-9a-fA-F-]{36}$'; Service = 'Graph'; Resolve = 'applications/{Id}'; DisplayName = 'displayName'; UiHint = 'graph-object'; ODataType = '#microsoft.graph.application' } 'Entra.ConditionalAccessPolicy' = @{ Shape = 'graph-object-id'; Pattern = '^[0-9a-fA-F-]{36}$'; Service = 'Graph'; Resolve = 'identity/conditionalAccess/policies/{Id}'; DisplayName = 'displayName'; UiHint = 'graph-object'; ODataType = '#microsoft.graph.conditionalAccessPolicy' } 'Entra.NamedLocation' = @{ Shape = 'graph-object-id'; Pattern = '^[0-9a-fA-F-]{36}$'; Service = 'Graph'; Resolve = 'identity/conditionalAccess/namedLocations/{Id}'; DisplayName = 'displayName'; UiHint = 'graph-object'; ODataType = '#microsoft.graph.namedLocation' } 'Entra.Domain' = @{ Shape = 'string'; Pattern = '^[A-Za-z0-9.-]+\.[A-Za-z]{2,}$'; Service = 'Graph'; Resolve = 'domains/{Id}'; DisplayName = 'id'; UiHint = 'graph-object'; ODataType = '#microsoft.graph.domain' } 'Entra.DirectoryRole' = @{ Shape = 'graph-object-id'; Pattern = '^[0-9a-fA-F-]{36}$'; Service = 'Graph'; Resolve = 'roleManagement/directory/roleDefinitions/{Id}'; DisplayName = 'displayName'; UiHint = 'graph-object'; ODataType = '#microsoft.graph.unifiedRoleDefinition' } 'Azure.Subscription' = @{ Shape = 'string'; Pattern = '^[0-9a-fA-F-]{36}$'; Service = 'Azure'; Resolve = 'subscriptions/{Id}?api-version=2022-12-01'; DisplayName = 'displayName'; UiHint = 'arm-resource'; ResourceType = 'Microsoft.Resources/subscriptions' } 'Azure.ResourceGroup' = @{ Shape = 'arm-resource-id'; Pattern = '^/subscriptions/[0-9a-fA-F-]{36}/resourceGroups/[^/]+$'; Service = 'Azure'; Resolve = '{Id}?api-version=2021-04-01'; DisplayName = 'name'; UiHint = 'arm-resource'; ResourceType = 'Microsoft.Resources/resourceGroups' } 'Azure.Resource' = @{ Shape = 'arm-resource-id'; Pattern = '^/subscriptions/[0-9a-fA-F-]{36}/resourceGroups/[^/]+/providers/.+$'; Service = 'Azure'; Resolve = $null; DisplayName = 'name'; UiHint = 'arm-resource'; ResourceType = $null } } } |