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

	// Properties: Properties of the inbound endpoint.
	Properties *InboundEndpointProperties `json:"properties,omitempty"`

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

var _ genruntime.ARMResourceSpec = &DnsResolversInboundEndpoint_Spec{}

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

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

// GetType returns the ARM Type of the resource. This is always "Microsoft.Network/dnsResolvers/inboundEndpoints"
func (endpoint *DnsResolversInboundEndpoint_Spec) GetType() string {
	return "Microsoft.Network/dnsResolvers/inboundEndpoints"
}

// Represents the properties of an inbound endpoint for a DNS resolver.
type InboundEndpointProperties struct {
	// IpConfigurations: IP configurations for the inbound endpoint.
	IpConfigurations []IpConfiguration `json:"ipConfigurations,omitempty"`
}

// IP configuration.
type IpConfiguration struct {
	// PrivateIpAddress: Private IP address of the IP configuration.
	PrivateIpAddress *string `json:"privateIpAddress,omitempty"`

	// PrivateIpAllocationMethod: Private IP address allocation method.
	PrivateIpAllocationMethod *IpConfiguration_PrivateIpAllocationMethod `json:"privateIpAllocationMethod,omitempty"`

	// Subnet: The reference to the subnet bound to the IP configuration.
	Subnet *SubResource `json:"subnet,omitempty"`
}

// +kubebuilder:validation:Enum={"Dynamic","Static"}
type IpConfiguration_PrivateIpAllocationMethod string

const (
	IpConfiguration_PrivateIpAllocationMethod_Dynamic = IpConfiguration_PrivateIpAllocationMethod("Dynamic")
	IpConfiguration_PrivateIpAllocationMethod_Static  = IpConfiguration_PrivateIpAllocationMethod("Static")
)

// Mapping from string to IpConfiguration_PrivateIpAllocationMethod
var ipConfiguration_PrivateIpAllocationMethod_Values = map[string]IpConfiguration_PrivateIpAllocationMethod{
	"dynamic": IpConfiguration_PrivateIpAllocationMethod_Dynamic,
	"static":  IpConfiguration_PrivateIpAllocationMethod_Static,
}
