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

type DnsForwardingRuleSetsForwardingRule_STATUS struct {
	// Etag: ETag of the forwarding rule.
	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"`

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

	// Properties: Properties of the forwarding rule.
	Properties *ForwardingRuleProperties_STATUS `json:"properties,omitempty"`

	// SystemData: Metadata pertaining to creation and last modification of the resource.
	SystemData *SystemData_STATUS `json:"systemData,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 a forwarding rule within a DNS forwarding ruleset.
type ForwardingRuleProperties_STATUS struct {
	// DomainName: The domain name for the forwarding rule.
	DomainName *string `json:"domainName,omitempty"`

	// ForwardingRuleState: The state of forwarding rule.
	ForwardingRuleState *ForwardingRuleProperties_ForwardingRuleState_STATUS `json:"forwardingRuleState,omitempty"`

	// Metadata: Metadata attached to the forwarding rule.
	Metadata map[string]string `json:"metadata,omitempty"`

	// ProvisioningState: The current provisioning state of the forwarding rule. This is a read-only property and any attempt
	// to set this value will be ignored.
	ProvisioningState *DnsresolverProvisioningState_STATUS `json:"provisioningState,omitempty"`

	// TargetDnsServers: DNS servers to forward the DNS query to.
	TargetDnsServers []TargetDnsServer_STATUS `json:"targetDnsServers,omitempty"`
}

// Metadata pertaining to creation and last modification of the resource.
type SystemData_STATUS struct {
	// CreatedAt: The timestamp of resource creation (UTC).
	CreatedAt *string `json:"createdAt,omitempty"`

	// CreatedBy: The identity that created the resource.
	CreatedBy *string `json:"createdBy,omitempty"`

	// CreatedByType: The type of identity that created the resource.
	CreatedByType *SystemData_CreatedByType_STATUS `json:"createdByType,omitempty"`

	// LastModifiedAt: The timestamp of resource last modification (UTC)
	LastModifiedAt *string `json:"lastModifiedAt,omitempty"`

	// LastModifiedBy: The identity that last modified the resource.
	LastModifiedBy *string `json:"lastModifiedBy,omitempty"`

	// LastModifiedByType: The type of identity that last modified the resource.
	LastModifiedByType *SystemData_LastModifiedByType_STATUS `json:"lastModifiedByType,omitempty"`
}

// The current provisioning state of the resource.
type DnsresolverProvisioningState_STATUS string

const (
	DnsresolverProvisioningState_STATUS_Canceled  = DnsresolverProvisioningState_STATUS("Canceled")
	DnsresolverProvisioningState_STATUS_Creating  = DnsresolverProvisioningState_STATUS("Creating")
	DnsresolverProvisioningState_STATUS_Deleting  = DnsresolverProvisioningState_STATUS("Deleting")
	DnsresolverProvisioningState_STATUS_Failed    = DnsresolverProvisioningState_STATUS("Failed")
	DnsresolverProvisioningState_STATUS_Succeeded = DnsresolverProvisioningState_STATUS("Succeeded")
	DnsresolverProvisioningState_STATUS_Updating  = DnsresolverProvisioningState_STATUS("Updating")
)

// Mapping from string to DnsresolverProvisioningState_STATUS
var dnsresolverProvisioningState_STATUS_Values = map[string]DnsresolverProvisioningState_STATUS{
	"canceled":  DnsresolverProvisioningState_STATUS_Canceled,
	"creating":  DnsresolverProvisioningState_STATUS_Creating,
	"deleting":  DnsresolverProvisioningState_STATUS_Deleting,
	"failed":    DnsresolverProvisioningState_STATUS_Failed,
	"succeeded": DnsresolverProvisioningState_STATUS_Succeeded,
	"updating":  DnsresolverProvisioningState_STATUS_Updating,
}

type ForwardingRuleProperties_ForwardingRuleState_STATUS string

const (
	ForwardingRuleProperties_ForwardingRuleState_STATUS_Disabled = ForwardingRuleProperties_ForwardingRuleState_STATUS("Disabled")
	ForwardingRuleProperties_ForwardingRuleState_STATUS_Enabled  = ForwardingRuleProperties_ForwardingRuleState_STATUS("Enabled")
)

// Mapping from string to ForwardingRuleProperties_ForwardingRuleState_STATUS
var forwardingRuleProperties_ForwardingRuleState_STATUS_Values = map[string]ForwardingRuleProperties_ForwardingRuleState_STATUS{
	"disabled": ForwardingRuleProperties_ForwardingRuleState_STATUS_Disabled,
	"enabled":  ForwardingRuleProperties_ForwardingRuleState_STATUS_Enabled,
}

type SystemData_CreatedByType_STATUS string

const (
	SystemData_CreatedByType_STATUS_Application     = SystemData_CreatedByType_STATUS("Application")
	SystemData_CreatedByType_STATUS_Key             = SystemData_CreatedByType_STATUS("Key")
	SystemData_CreatedByType_STATUS_ManagedIdentity = SystemData_CreatedByType_STATUS("ManagedIdentity")
	SystemData_CreatedByType_STATUS_User            = SystemData_CreatedByType_STATUS("User")
)

// Mapping from string to SystemData_CreatedByType_STATUS
var systemData_CreatedByType_STATUS_Values = map[string]SystemData_CreatedByType_STATUS{
	"application":     SystemData_CreatedByType_STATUS_Application,
	"key":             SystemData_CreatedByType_STATUS_Key,
	"managedidentity": SystemData_CreatedByType_STATUS_ManagedIdentity,
	"user":            SystemData_CreatedByType_STATUS_User,
}

type SystemData_LastModifiedByType_STATUS string

const (
	SystemData_LastModifiedByType_STATUS_Application     = SystemData_LastModifiedByType_STATUS("Application")
	SystemData_LastModifiedByType_STATUS_Key             = SystemData_LastModifiedByType_STATUS("Key")
	SystemData_LastModifiedByType_STATUS_ManagedIdentity = SystemData_LastModifiedByType_STATUS("ManagedIdentity")
	SystemData_LastModifiedByType_STATUS_User            = SystemData_LastModifiedByType_STATUS("User")
)

// Mapping from string to SystemData_LastModifiedByType_STATUS
var systemData_LastModifiedByType_STATUS_Values = map[string]SystemData_LastModifiedByType_STATUS{
	"application":     SystemData_LastModifiedByType_STATUS_Application,
	"key":             SystemData_LastModifiedByType_STATUS_Key,
	"managedidentity": SystemData_LastModifiedByType_STATUS_ManagedIdentity,
	"user":            SystemData_LastModifiedByType_STATUS_User,
}

// Describes a server to forward the DNS queries to.
type TargetDnsServer_STATUS struct {
	// IpAddress: DNS server IP address.
	IpAddress *string `json:"ipAddress,omitempty"`

	// Port: DNS server port.
	Port *int `json:"port,omitempty"`
}
