Classes/Atlassian.Bitbucket.BranchRestriction.psm1
class BranchRestriction { [Nullable[int]]$id [string]$kind [string]$pattern [string]$branch_match_kind = 'glob' [string]$type = 'branchrestriction' BranchRestriction([PSCustomObject]$Object) { $this.id = $Object.id $this.kind = $Object.kind $this.pattern = $Object.pattern $this.branch_match_kind = $Object.branch_match_kind $this.type = $Object.type } BranchRestriction($Kind, $Pattern) { $this.kind = $Kind $this.pattern = $Pattern } } class MergeCheck : BranchRestriction { [ValidateSet( 'require_approvals_to_merge', 'require_default_reviewer_approvals_to_merge', 'require_passing_builds_to_merge', 'require_tasks_to_be_completed' )] [string]$kind [Nullable[int]]$value MergeCheck([PSCustomObject]$Object) : base($Object) { $this.value = $Object.value } MergeCheck($Kind, $Pattern, $Value) : base($Kind, $Pattern) { $this.value = $value } } class PermissionCheck : BranchRestriction { [ValidateSet( 'delete', 'force', 'push', 'restrict_merges' )] [string]$kind [User[]]$users = @() [Group[]]$groups = @() PermissionCheck([PSCustomObject]$Object) : base($Object) { $this.users = $Object.users $this.groups = $Object.groups } } class Group { [string]$name [string]$slug [string]$full_slug [Owner]$owner [string]$type = 'group' Group ([PSCustomObject]$Object) { $this.name = $Object.name $this.slug = $Object.slug $this.full_slug = $Object.full_slug $this.owner = $Object.owner } } class Owner { [string]$username [string]$display_name [string]$type [string]$uuid Owner ([PSCustomObject]$Object) { $this.username = $Object.username $this.display_name = $Object.display_name $this.type = $Object.type $this.uuid = $Object.uuid } } class User { [string]$display_name [string]$uuid [string]$nickname [string]$type = 'user' [string]$account_id User ([PSCustomObject]$Object) { $this.display_name = $Object.display_name $this.uuid = $Object.uuid $this.nickname = $Object.nickname $this.account_id = $Object.account_id } } |