assets

package
v0.26.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 29, 2025 License: MIT Imports: 11 Imported by: 0

Documentation

Overview

package assets provides the types used by the Alzlib library.

Index

Constants

View Source
const (
	PolicyAssignmentNameMaxLength        = 24  // PolicyAssignmentNameMaxLength is the maximum length of a policy assignment name, at MG scope this is 24.
	PolicyAssignmentDisplayNameMaxLength = 128 // PolicyAssignmentDisplayNameMaxLength is the maximum length of a policy assignment display name.
	PolicyAssignmentDescriptionMaxLength = 512 // PolicyAssignmentDescriptionMaxLength is the maximum length of a policy assignment description.
)

Variables

This section is empty.

Functions

func NameFromResourceId

func NameFromResourceId(resId string) (string, error)

NameFromResourceId returns the name of the resource from a resource ID.

func ResourceTypeFromResourceId

func ResourceTypeFromResourceId(resId string) (string, error)

ResourceTypeFromResourceId returns the resource type of the resource from a resource ID.

func ValidatePolicyAssignment added in v0.26.0

func ValidatePolicyAssignment(pa *PolicyAssignment) error

ValidatePolicyAssignment performs validation checks on the policy assignment. To reduce the risk of nil pointer dereferences, it will create empty values for optional fields.

Types

type PolicyAssignment

type PolicyAssignment struct {
	armpolicy.Assignment
}

func NewPolicyAssignment

func NewPolicyAssignment(pa armpolicy.Assignment) *PolicyAssignment

NewPolicyAssignment creates a new PolicyAssignment instance from an armpolicy.Assignment. The caller is responsible for ensuring that the policy assignment is valid. Use either the UnmarshalJSON method, or the ValidatePolicyAssignment function to validate the assignment.

func NewPolicyAssignmentValidate added in v0.26.0

func NewPolicyAssignmentValidate(pa armpolicy.Assignment) (*PolicyAssignment, error)

NewPolicyAssignmentValidate creates a new PolicyAssignment instance and validates it.

func (*PolicyAssignment) IdentityType

func (pa *PolicyAssignment) IdentityType() armpolicy.ResourceIdentityType

func (*PolicyAssignment) ParameterValueAsString

func (pa *PolicyAssignment) ParameterValueAsString(paramName string) (string, error)

ParameterValueAsString returns the value of a policy assignment parameter. We always expect the value to be a string as it's used in calculating the additional role assignments for policy parameters with the assignPermissions metadata set to true. Therefore the value should be an ARM resourceId.

func (*PolicyAssignment) ReferencedPolicyDefinitionResourceId

func (pa *PolicyAssignment) ReferencedPolicyDefinitionResourceId() (*arm.ResourceID, error)

func (*PolicyAssignment) UnmarshalJSON added in v0.26.0

func (pa *PolicyAssignment) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaler interface for type PolicyAssignment. It performs validity checks on mandatory fields as well as some validation checks on certain fields.

type PolicyDefinition

type PolicyDefinition struct {
	armpolicy.Definition
}

func NewPolicyDefinition

func NewPolicyDefinition(pd armpolicy.Definition) *PolicyDefinition

func (*PolicyDefinition) AssignPermissionsParameterNames

func (pd *PolicyDefinition) AssignPermissionsParameterNames() ([]string, error)

func (*PolicyDefinition) NormalizedRoleDefinitionResourceIds

func (pd *PolicyDefinition) NormalizedRoleDefinitionResourceIds() ([]string, error)

func (*PolicyDefinition) Parameter added in v0.18.1

func (*PolicyDefinition) ParameterIsOptional added in v0.19.1

func (pd *PolicyDefinition) ParameterIsOptional(name string) (bool, error)

func (*PolicyDefinition) RoleDefinitionResourceIds

func (pd *PolicyDefinition) RoleDefinitionResourceIds() ([]string, error)

RoleDefinitionResourceIds returns the role definition ids referenced in a policy definition if they exist. We marshall the policyRule as JSON and then unmarshal into a custom type.

func (*PolicyDefinition) SetAssignPermissionsOnParameter added in v0.25.0

func (pd *PolicyDefinition) SetAssignPermissionsOnParameter(parameterName string)

SetAssignPermissionsOnParameter sets the AssignPermissions metadata field to true for the parameter with the given name.

func (*PolicyDefinition) UnsetAssignPermissionsOnParameter added in v0.25.0

func (pd *PolicyDefinition) UnsetAssignPermissionsOnParameter(parameterName string)

UnsetAssignPermissionsOnParameter removes the AssignPermissions metadata field for the parameter with the given name.

type PolicyDefinitionVersion added in v0.26.0

type PolicyDefinitionVersion struct {
	armpolicy.DefinitionVersion
}

PolicyDefinitionVersion represents a version of a policy definition with version information. It embeds the armpolicy.DefinitionVersion struct and provides additional methods to work with it.

func NewPolicyDefinitionVersion added in v0.26.0

func NewPolicyDefinitionVersion(pd armpolicy.DefinitionVersion) *PolicyDefinitionVersion

NewPolicyDefinitionVersion creates a new PolicyDefinitionVersion from an armpolicy.DefinitionVersion.

func (*PolicyDefinitionVersion) AssignPermissionsParameterNames added in v0.26.0

func (pd *PolicyDefinitionVersion) AssignPermissionsParameterNames() ([]string, error)

func (*PolicyDefinitionVersion) GetName added in v0.26.0

func (pd *PolicyDefinitionVersion) GetName() *string

func (*PolicyDefinitionVersion) GetVersion added in v0.26.0

func (pd *PolicyDefinitionVersion) GetVersion() *string

Version returns the version of the policy definition, if it exists. If the version is not set, it returns nil.

func (*PolicyDefinitionVersion) NormalizedRoleDefinitionResourceIds added in v0.26.0

func (pd *PolicyDefinitionVersion) NormalizedRoleDefinitionResourceIds() ([]string, error)

func (*PolicyDefinitionVersion) Parameter added in v0.26.0

func (*PolicyDefinitionVersion) ParameterIsOptional added in v0.26.0

func (pd *PolicyDefinitionVersion) ParameterIsOptional(name string) (bool, error)

func (*PolicyDefinitionVersion) RoleDefinitionResourceIds added in v0.26.0

func (pd *PolicyDefinitionVersion) RoleDefinitionResourceIds() ([]string, error)

RoleDefinitionResourceIds returns the role definition ids referenced in a policy definition if they exist. We marshall the policyRule as JSON and then unmarshal into a custom type.

func (*PolicyDefinitionVersion) SetAssignPermissionsOnParameter added in v0.26.0

func (pd *PolicyDefinitionVersion) SetAssignPermissionsOnParameter(parameterName string)

SetAssignPermissionsOnParameter sets the AssignPermissions metadata field to true for the parameter with the given name.

func (*PolicyDefinitionVersion) UnsetAssignPermissionsOnParameter added in v0.26.0

func (pd *PolicyDefinitionVersion) UnsetAssignPermissionsOnParameter(parameterName string)

UnsetAssignPermissionsOnParameter removes the AssignPermissions metadata field for the parameter with the given name.

type PolicyDefinitionVersions added in v0.26.0

type PolicyDefinitionVersions = VersionedPolicyCollection[*PolicyDefinitionVersion]

PolicyDefinitionVersions is a type alias for the generic collection.

func NewPolicyDefinitionVersions added in v0.26.0

func NewPolicyDefinitionVersions() *PolicyDefinitionVersions

type PolicySetDefinition

type PolicySetDefinition struct {
	armpolicy.SetDefinition
}

func NewPolicySetDefinition

func NewPolicySetDefinition(psd armpolicy.SetDefinition) *PolicySetDefinition

func (*PolicySetDefinition) Parameter added in v0.19.0

func (*PolicySetDefinition) PolicyDefinitionReferences

func (psd *PolicySetDefinition) PolicyDefinitionReferences() []*armpolicy.DefinitionReference

func (*PolicySetDefinition) ReferencedPolicyDefinitionNames

func (psd *PolicySetDefinition) ReferencedPolicyDefinitionNames() ([]string, error)

type PolicySetDefinitionVersion added in v0.26.0

type PolicySetDefinitionVersion struct {
	armpolicy.SetDefinitionVersion
}

PolicySetDefinitionVersion represents a version of a policy set definition with version information. It embeds the armpolicy.SetDefinitionVersion struct and provides additional methods to work with it.

func NewPolicySetDefinitionVersion added in v0.26.0

func NewPolicySetDefinitionVersion(psd armpolicy.SetDefinitionVersion) *PolicySetDefinitionVersion

func (*PolicySetDefinitionVersion) GetName added in v0.26.0

func (psd *PolicySetDefinitionVersion) GetName() *string

func (*PolicySetDefinitionVersion) GetVersion added in v0.26.0

func (psd *PolicySetDefinitionVersion) GetVersion() *string

func (*PolicySetDefinitionVersion) Parameter added in v0.26.0

func (*PolicySetDefinitionVersion) PolicyDefinitionReferences added in v0.26.0

func (psd *PolicySetDefinitionVersion) PolicyDefinitionReferences() []*armpolicy.DefinitionReference

func (*PolicySetDefinitionVersion) ReferencedPolicyDefinitionNames added in v0.26.0

func (psd *PolicySetDefinitionVersion) ReferencedPolicyDefinitionNames() ([]string, error)

type PolicySetDefinitionVersions added in v0.26.0

type PolicySetDefinitionVersions = VersionedPolicyCollection[*PolicySetDefinitionVersion]

func NewPolicySetDefinitionVersions added in v0.26.0

func NewPolicySetDefinitionVersions() *PolicySetDefinitionVersions

type RoleDefinition

type RoleDefinition struct {
	armauthorization.RoleDefinition
}

type Versioned added in v0.26.0

type Versioned interface {
	VersionedTypes
	GetVersion() *string
	GetName() *string
}

Versioned is an interface for versioned policy types.

type VersionedPolicyCollection added in v0.26.0

type VersionedPolicyCollection[T Versioned] struct {
	// contains filtered or unexported fields
}

VersionedPolicyCollection is a generic collection of versioned policies.

func (*VersionedPolicyCollection[T]) Add added in v0.26.0

func (c *VersionedPolicyCollection[T]) Add(add T) error

func (*VersionedPolicyCollection[T]) GetVersion added in v0.26.0

func (c *VersionedPolicyCollection[T]) GetVersion(constraintStr *string) (T, error)

GetVersion returns a policy version based on the provided constraint string. If the constraint string is nil, it returns the versionless definition if it exists. If the constraint string is nil and no versionless definition exists, it returns the latest version.

type VersionedTypes added in v0.26.0

type VersionedTypes interface {
	*PolicyDefinitionVersion | *PolicySetDefinitionVersion
}

VersionedTypes is a type constraint for versioned policy types.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL