// 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 RegistryReplication_Spec struct {
	// Location: The location of the resource. This cannot be changed after the resource is created.
	Location *string `json:"location,omitempty"`
	Name     string  `json:"name,omitempty"`

	// Properties: The properties of the replication.
	Properties *ReplicationProperties `json:"properties,omitempty"`

	// Tags: The tags of the resource.
	Tags map[string]string `json:"tags,omitempty"`
}

var _ genruntime.ARMResourceSpec = &RegistryReplication_Spec{}

// GetAPIVersion returns the ARM API version of the resource. This is always "2023-07-01"
func (replication RegistryReplication_Spec) GetAPIVersion() string {
	return "2023-07-01"
}

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

// GetType returns the ARM Type of the resource. This is always "Microsoft.ContainerRegistry/registries/replications"
func (replication *RegistryReplication_Spec) GetType() string {
	return "Microsoft.ContainerRegistry/registries/replications"
}

// The properties of a replication.
type ReplicationProperties struct {
	// RegionEndpointEnabled: Specifies whether the replication's regional endpoint is enabled. Requests will not be routed to
	// a replication whose regional endpoint is disabled, however its data will continue to be synced with other replications.
	RegionEndpointEnabled *bool `json:"regionEndpointEnabled,omitempty"`

	// ZoneRedundancy: Whether or not zone redundancy is enabled for this container registry replication
	ZoneRedundancy *ReplicationProperties_ZoneRedundancy `json:"zoneRedundancy,omitempty"`
}

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

const (
	ReplicationProperties_ZoneRedundancy_Disabled = ReplicationProperties_ZoneRedundancy("Disabled")
	ReplicationProperties_ZoneRedundancy_Enabled  = ReplicationProperties_ZoneRedundancy("Enabled")
)

// Mapping from string to ReplicationProperties_ZoneRedundancy
var replicationProperties_ZoneRedundancy_Values = map[string]ReplicationProperties_ZoneRedundancy{
	"disabled": ReplicationProperties_ZoneRedundancy_Disabled,
	"enabled":  ReplicationProperties_ZoneRedundancy_Enabled,
}
