// Code generated by rbacgen/main.go. DO NOT EDIT.
package rbac

import "github.com/coder/coder/v2/coderd/rbac/policy"

// Objecter returns the RBAC object for itself.
type Objecter interface {
	RBACObject() Object
}

var (
	{{- range $element := . }}
		{{- $Name := pascalCaseName $element.FunctionName }}
		// Resource{{ $Name }}
		// Valid Actions
		{{- range $action, $value := .Actions }}
		//  - "{{ actionEnum $action }}" :: {{ $value.Description }}
		{{- end }}
		Resource{{ $Name }} = Object {
			Type: "{{ $element.Type }}",
		}
	{{ end -}}
)

func AllResources() []Objecter {
	return []Objecter{
	{{- range $element := . }}
		Resource{{ pascalCaseName $element.FunctionName }},
	{{- end }}
	}
}

func AllActions() []policy.Action {
	return []policy.Action {
		{{- range $element := actionsList }}
			policy.{{ $element.Enum }},
		{{- end }}
	}
}
