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

type DnsZone_STATUS struct {
	// Etag: The etag of the zone.
	Etag *string `json:"etag,omitempty"`

	// Id: Resource ID.
	Id *string `json:"id,omitempty"`

	// Location: Resource location.
	Location *string `json:"location,omitempty"`

	// Name: Resource name.
	Name *string `json:"name,omitempty"`

	// Properties: The properties of the zone.
	Properties *ZoneProperties_STATUS `json:"properties,omitempty"`

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

	// Type: Resource type.
	Type *string `json:"type,omitempty"`
}

// Represents the properties of the zone.
type ZoneProperties_STATUS struct {
	// MaxNumberOfRecordSets: The maximum number of record sets that can be created in this DNS zone.  This is a read-only
	// property and any attempt to set this value will be ignored.
	MaxNumberOfRecordSets *int `json:"maxNumberOfRecordSets,omitempty"`

	// MaxNumberOfRecordsPerRecordSet: The maximum number of records per record set that can be created in this DNS zone.  This
	// is a read-only property and any attempt to set this value will be ignored.
	MaxNumberOfRecordsPerRecordSet *int `json:"maxNumberOfRecordsPerRecordSet,omitempty"`

	// NameServers: The name servers for this DNS zone. This is a read-only property and any attempt to set this value will be
	// ignored.
	NameServers []string `json:"nameServers,omitempty"`

	// NumberOfRecordSets: The current number of record sets in this DNS zone.  This is a read-only property and any attempt to
	// set this value will be ignored.
	NumberOfRecordSets *int `json:"numberOfRecordSets,omitempty"`

	// RegistrationVirtualNetworks: A list of references to virtual networks that register hostnames in this DNS zone. This is
	// a only when ZoneType is Private.
	RegistrationVirtualNetworks []SubResource_STATUS `json:"registrationVirtualNetworks,omitempty"`

	// ResolutionVirtualNetworks: A list of references to virtual networks that resolve records in this DNS zone. This is a
	// only when ZoneType is Private.
	ResolutionVirtualNetworks []SubResource_STATUS `json:"resolutionVirtualNetworks,omitempty"`

	// ZoneType: The type of this DNS zone (Public or Private).
	ZoneType *ZoneProperties_ZoneType_STATUS `json:"zoneType,omitempty"`
}

// A reference to a another resource
type SubResource_STATUS struct {
	// Id: Resource Id.
	Id *string `json:"id,omitempty"`
}

type ZoneProperties_ZoneType_STATUS string

const (
	ZoneProperties_ZoneType_STATUS_Private = ZoneProperties_ZoneType_STATUS("Private")
	ZoneProperties_ZoneType_STATUS_Public  = ZoneProperties_ZoneType_STATUS("Public")
)

// Mapping from string to ZoneProperties_ZoneType_STATUS
var zoneProperties_ZoneType_STATUS_Values = map[string]ZoneProperties_ZoneType_STATUS{
	"private": ZoneProperties_ZoneType_STATUS_Private,
	"public":  ZoneProperties_ZoneType_STATUS_Public,
}
