// 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 Account_Spec struct {
	// Location: The geo-location where the resource lives
	Location *string `json:"location,omitempty"`
	Name     string  `json:"name,omitempty"`

	// Properties: Resource properties
	Properties *AzureMonitorWorkspace `json:"properties,omitempty"`

	// Tags: Resource tags.
	Tags map[string]string `json:"tags,omitempty"`
}

var _ genruntime.ARMResourceSpec = &Account_Spec{}

// GetAPIVersion returns the ARM API version of the resource. This is always "2023-04-03"
func (account Account_Spec) GetAPIVersion() string {
	return "2023-04-03"
}

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

// GetType returns the ARM Type of the resource. This is always "Microsoft.Monitor/accounts"
func (account *Account_Spec) GetType() string {
	return "Microsoft.Monitor/accounts"
}

// Properties of an Azure Monitor Workspace
type AzureMonitorWorkspace struct {
	// PublicNetworkAccess: Gets or sets allow or disallow public network access to Azure Monitor Workspace
	PublicNetworkAccess *AzureMonitorWorkspace_PublicNetworkAccess `json:"publicNetworkAccess,omitempty"`
}

// +kubebuilder:validation:Enum={"Disabled","Enabled"}
type AzureMonitorWorkspace_PublicNetworkAccess string

const (
	AzureMonitorWorkspace_PublicNetworkAccess_Disabled = AzureMonitorWorkspace_PublicNetworkAccess("Disabled")
	AzureMonitorWorkspace_PublicNetworkAccess_Enabled  = AzureMonitorWorkspace_PublicNetworkAccess("Enabled")
)

// Mapping from string to AzureMonitorWorkspace_PublicNetworkAccess
var azureMonitorWorkspace_PublicNetworkAccess_Values = map[string]AzureMonitorWorkspace_PublicNetworkAccess{
	"disabled": AzureMonitorWorkspace_PublicNetworkAccess_Disabled,
	"enabled":  AzureMonitorWorkspace_PublicNetworkAccess_Enabled,
}
