assets/policySetDefinition.go (42 lines of code) (raw):

// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. package assets import ( "errors" "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm" "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armpolicy" ) type PolicySetDefinition struct { armpolicy.SetDefinition } func NewPolicySetDefinition(psd armpolicy.SetDefinition) *PolicySetDefinition { return &PolicySetDefinition{psd} } func (psd *PolicySetDefinition) ReferencedPolicyDefinitionNames() ([]string, error) { if psd == nil || psd.Properties == nil || psd.Properties.PolicyDefinitions == nil { return nil, errors.New("policy set definition is nil, missing properties or policy definitions") } names := make([]string, len(psd.Properties.PolicyDefinitions)) for i, pd := range psd.Properties.PolicyDefinitions { resId, err := arm.ParseResourceID(*pd.PolicyDefinitionID) if err != nil { return nil, err } names[i] = resId.Name } return names, nil } func (psd *PolicySetDefinition) PolicyDefinitionReferences() []*armpolicy.DefinitionReference { if psd == nil || psd.Properties == nil || psd.Properties.PolicyDefinitions == nil { return nil } return psd.Properties.PolicyDefinitions } func (psd *PolicySetDefinition) Parameter(name string) *armpolicy.ParameterDefinitionsValue { if psd == nil || psd.Properties == nil || psd.Properties.Parameters == nil { return nil } ret, ok := psd.Properties.Parameters[name] if !ok { return nil } return ret }