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

type PrivateDnsZonesVirtualNetworkLink_STATUS struct {
	// Etag: The ETag of the virtual network link.
	Etag *string `json:"etag,omitempty"`

	// Id: Fully qualified resource ID for the resource. Ex -
	// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
	Id *string `json:"id,omitempty"`

	// Location: The Azure Region where the resource lives
	Location *string `json:"location,omitempty"`

	// Name: The name of the resource
	Name *string `json:"name,omitempty"`

	// Properties: Properties of the virtual network link to the Private DNS zone.
	Properties *VirtualNetworkLinkProperties_STATUS `json:"properties,omitempty"`

	// SystemData: Azure Resource Manager metadata containing createdBy and modifiedBy information.
	SystemData *SystemData_STATUS `json:"systemData,omitempty"`

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

	// Type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
	Type *string `json:"type,omitempty"`
}

// Represents the properties of the Private DNS zone.
type VirtualNetworkLinkProperties_STATUS struct {
	// ProvisioningState: The provisioning state of the resource. This is a read-only property and any attempt to set this
	// value will be ignored.
	ProvisioningState *ProvisioningState_STATUS `json:"provisioningState,omitempty"`

	// RegistrationEnabled: Is auto-registration of virtual machine records in the virtual network in the Private DNS zone
	// enabled?
	RegistrationEnabled *bool `json:"registrationEnabled,omitempty"`

	// ResolutionPolicy: The resolution policy on the virtual network link. Only applicable for virtual network links to
	// privatelink zones, and for A,AAAA,CNAME queries. When set to 'NxDomainRedirect', Azure DNS resolver falls back to public
	// resolution if private dns query resolution results in non-existent domain response.
	ResolutionPolicy *ResolutionPolicy_STATUS `json:"resolutionPolicy,omitempty"`

	// VirtualNetwork: The reference of the virtual network.
	VirtualNetwork *SubResource_STATUS `json:"virtualNetwork,omitempty"`

	// VirtualNetworkLinkState: The status of the virtual network link to the Private DNS zone. Possible values are
	// 'InProgress' and 'Done'. This is a read-only property and any attempt to set this value will be ignored.
	VirtualNetworkLinkState *VirtualNetworkLinkState_STATUS `json:"virtualNetworkLinkState,omitempty"`
}

// The resolution policy on the virtual network link. Only applicable for virtual network links to privatelink zones, and
// for A,AAAA,CNAME queries. When set to 'NxDomainRedirect', Azure DNS resolver falls back to public resolution if private
// dns query resolution results in non-existent domain response.
type ResolutionPolicy_STATUS string

const (
	ResolutionPolicy_STATUS_Default          = ResolutionPolicy_STATUS("Default")
	ResolutionPolicy_STATUS_NxDomainRedirect = ResolutionPolicy_STATUS("NxDomainRedirect")
)

// Mapping from string to ResolutionPolicy_STATUS
var resolutionPolicy_STATUS_Values = map[string]ResolutionPolicy_STATUS{
	"default":          ResolutionPolicy_STATUS_Default,
	"nxdomainredirect": ResolutionPolicy_STATUS_NxDomainRedirect,
}

// Reference to another subresource.
type SubResource_STATUS struct {
	// Id: Resource ID.
	Id *string `json:"id,omitempty"`
}

// The status of the virtual network link to the Private DNS zone. Possible values are 'InProgress' and 'Done'. This is a
// read-only property and any attempt to set this value will be ignored.
type VirtualNetworkLinkState_STATUS string

const (
	VirtualNetworkLinkState_STATUS_Completed  = VirtualNetworkLinkState_STATUS("Completed")
	VirtualNetworkLinkState_STATUS_InProgress = VirtualNetworkLinkState_STATUS("InProgress")
)

// Mapping from string to VirtualNetworkLinkState_STATUS
var virtualNetworkLinkState_STATUS_Values = map[string]VirtualNetworkLinkState_STATUS{
	"completed":  VirtualNetworkLinkState_STATUS_Completed,
	"inprogress": VirtualNetworkLinkState_STATUS_InProgress,
}
