// Code generated by azure-service-operator-codegen. DO NOT EDIT.
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
package arm

import "github.com/Azure/azure-service-operator/v2/pkg/genruntime"

type NamespacesAuthorizationRule_Spec struct {
	Name string `json:"name,omitempty"`

	// Properties: Properties supplied to create or update AuthorizationRule
	Properties *Namespaces_AuthorizationRule_Properties_Spec `json:"properties,omitempty"`
}

var _ genruntime.ARMResourceSpec = &NamespacesAuthorizationRule_Spec{}

// GetAPIVersion returns the ARM API version of the resource. This is always "2024-01-01"
func (rule NamespacesAuthorizationRule_Spec) GetAPIVersion() string {
	return "2024-01-01"
}

// GetName returns the Name of the resource
func (rule *NamespacesAuthorizationRule_Spec) GetName() string {
	return rule.Name
}

// GetType returns the ARM Type of the resource. This is always "Microsoft.EventHub/namespaces/authorizationRules"
func (rule *NamespacesAuthorizationRule_Spec) GetType() string {
	return "Microsoft.EventHub/namespaces/authorizationRules"
}

type Namespaces_AuthorizationRule_Properties_Spec struct {
	// Rights: The rights associated with the rule.
	Rights []Namespaces_AuthorizationRule_Properties_Rights_Spec `json:"rights,omitempty"`
}

// +kubebuilder:validation:Enum={"Listen","Manage","Send"}
type Namespaces_AuthorizationRule_Properties_Rights_Spec string

const (
	Namespaces_AuthorizationRule_Properties_Rights_Spec_Listen = Namespaces_AuthorizationRule_Properties_Rights_Spec("Listen")
	Namespaces_AuthorizationRule_Properties_Rights_Spec_Manage = Namespaces_AuthorizationRule_Properties_Rights_Spec("Manage")
	Namespaces_AuthorizationRule_Properties_Rights_Spec_Send   = Namespaces_AuthorizationRule_Properties_Rights_Spec("Send")
)

// Mapping from string to Namespaces_AuthorizationRule_Properties_Rights_Spec
var namespaces_AuthorizationRule_Properties_Rights_Spec_Values = map[string]Namespaces_AuthorizationRule_Properties_Rights_Spec{
	"listen": Namespaces_AuthorizationRule_Properties_Rights_Spec_Listen,
	"manage": Namespaces_AuthorizationRule_Properties_Rights_Spec_Manage,
	"send":   Namespaces_AuthorizationRule_Properties_Rights_Spec_Send,
}
