// 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 {
	// Location: Deprecated - only for compatibility.
	Location *string `json:"location,omitempty"`
	Name     string  `json:"name,omitempty"`

	// Properties: SharedAccessAuthorizationRule properties.
	Properties *SharedAccessAuthorizationRuleProperties `json:"properties,omitempty"`

	// Tags: Deprecated - only for compatibility.
	Tags map[string]string `json:"tags,omitempty"`
}

var _ genruntime.ARMResourceSpec = &NamespacesAuthorizationRule_Spec{}

// GetAPIVersion returns the ARM API version of the resource. This is always "2023-09-01"
func (rule NamespacesAuthorizationRule_Spec) GetAPIVersion() string {
	return "2023-09-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.NotificationHubs/namespaces/authorizationRules"
func (rule *NamespacesAuthorizationRule_Spec) GetType() string {
	return "Microsoft.NotificationHubs/namespaces/authorizationRules"
}

// SharedAccessAuthorizationRule properties.
type SharedAccessAuthorizationRuleProperties struct {
	// Rights: Gets or sets the rights associated with the rule.
	Rights []AccessRights `json:"rights,omitempty"`
}

// Defines values for AccessRights.
// +kubebuilder:validation:Enum={"Listen","Manage","Send"}
type AccessRights string

const (
	AccessRights_Listen = AccessRights("Listen")
	AccessRights_Manage = AccessRights("Manage")
	AccessRights_Send   = AccessRights("Send")
)

// Mapping from string to AccessRights
var accessRights_Values = map[string]AccessRights{
	"listen": AccessRights_Listen,
	"manage": AccessRights_Manage,
	"send":   AccessRights_Send,
}
