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

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

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

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

	// Properties: Represents namespace properties.
	Properties *NamespaceProperties_STATUS `json:"properties,omitempty"`

	// Sku: The Sku description for a namespace
	Sku *Sku_STATUS `json:"sku,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 namespace properties.
type NamespaceProperties_STATUS struct {
	// CreatedAt: Time when the namespace was created.
	CreatedAt *string `json:"createdAt,omitempty"`

	// Critical: Gets or sets whether or not the namespace is set as Critical.
	Critical *bool `json:"critical,omitempty"`

	// DataCenter: Deprecated.
	DataCenter *string `json:"dataCenter,omitempty"`

	// Enabled: Gets or sets whether or not the namespace is currently enabled.
	Enabled *bool `json:"enabled,omitempty"`

	// MetricId: Azure Insights Metrics id.
	MetricId *string `json:"metricId,omitempty"`

	// Name: Name of the Notification Hubs namespace. This is immutable property, set automatically
	// by the service when the namespace is created.
	Name *string `json:"name,omitempty"`

	// NamespaceType: Defines values for NamespaceType.
	NamespaceType *NamespaceType_STATUS `json:"namespaceType,omitempty"`

	// NetworkAcls: A collection of network authorization rules.
	NetworkAcls *NetworkAcls_STATUS `json:"networkAcls,omitempty"`

	// PnsCredentials: Collection of Notification Hub or Notification Hub Namespace PNS credentials.
	PnsCredentials *PnsCredentials_STATUS `json:"pnsCredentials,omitempty"`

	// PrivateEndpointConnections: Private Endpoint Connections for namespace
	PrivateEndpointConnections []PrivateEndpointConnectionResource_STATUS `json:"privateEndpointConnections,omitempty"`

	// ProvisioningState: Defines values for OperationProvisioningState.
	ProvisioningState *OperationProvisioningState_STATUS `json:"provisioningState,omitempty"`

	// PublicNetworkAccess: Type of public network access.
	PublicNetworkAccess *PublicNetworkAccess_STATUS `json:"publicNetworkAccess,omitempty"`

	// Region: Region. The value is always set to the same value as Namespace.Location, so we are deprecating
	// this property.
	Region *string `json:"region,omitempty"`

	// ReplicationRegion: Allowed replication region
	ReplicationRegion *ReplicationRegion_STATUS `json:"replicationRegion,omitempty"`

	// ScaleUnit: Gets or sets scaleUnit where the namespace gets created
	ScaleUnit *string `json:"scaleUnit,omitempty"`

	// ServiceBusEndpoint: Gets or sets endpoint you can use to perform NotificationHub
	// operations.
	ServiceBusEndpoint *string `json:"serviceBusEndpoint,omitempty"`

	// Status: Namespace status.
	Status *NamespaceStatus_STATUS `json:"status,omitempty"`

	// SubscriptionId: Namespace subscription id.
	SubscriptionId *string `json:"subscriptionId,omitempty"`

	// UpdatedAt: Time when the namespace was updated.
	UpdatedAt *string `json:"updatedAt,omitempty"`

	// ZoneRedundancy: Namespace SKU name.
	ZoneRedundancy *ZoneRedundancyPreference_STATUS `json:"zoneRedundancy,omitempty"`
}

// The Sku description for a namespace
type Sku_STATUS struct {
	// Capacity: Gets or sets the capacity of the resource
	Capacity *int `json:"capacity,omitempty"`

	// Family: Gets or sets the Sku Family
	Family *string `json:"family,omitempty"`

	// Name: Namespace SKU name.
	Name *SkuName_STATUS `json:"name,omitempty"`

	// Size: Gets or sets the Sku size
	Size *string `json:"size,omitempty"`

	// Tier: Gets or sets the tier of particular sku
	Tier *string `json:"tier,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"`
}

// Namespace status.
type NamespaceStatus_STATUS string

const (
	NamespaceStatus_STATUS_Created   = NamespaceStatus_STATUS("Created")
	NamespaceStatus_STATUS_Creating  = NamespaceStatus_STATUS("Creating")
	NamespaceStatus_STATUS_Deleting  = NamespaceStatus_STATUS("Deleting")
	NamespaceStatus_STATUS_Suspended = NamespaceStatus_STATUS("Suspended")
)

// Mapping from string to NamespaceStatus_STATUS
var namespaceStatus_STATUS_Values = map[string]NamespaceStatus_STATUS{
	"created":   NamespaceStatus_STATUS_Created,
	"creating":  NamespaceStatus_STATUS_Creating,
	"deleting":  NamespaceStatus_STATUS_Deleting,
	"suspended": NamespaceStatus_STATUS_Suspended,
}

// Defines values for NamespaceType.
type NamespaceType_STATUS string

const (
	NamespaceType_STATUS_Messaging       = NamespaceType_STATUS("Messaging")
	NamespaceType_STATUS_NotificationHub = NamespaceType_STATUS("NotificationHub")
)

// Mapping from string to NamespaceType_STATUS
var namespaceType_STATUS_Values = map[string]NamespaceType_STATUS{
	"messaging":       NamespaceType_STATUS_Messaging,
	"notificationhub": NamespaceType_STATUS_NotificationHub,
}

// A collection of network authorization rules.
type NetworkAcls_STATUS struct {
	// IpRules: List of IP rules.
	IpRules []IpRule_STATUS `json:"ipRules,omitempty"`

	// PublicNetworkRule: A default (public Internet) network authorization rule, which contains rights if no other network
	// rule matches.
	PublicNetworkRule *PublicInternetAuthorizationRule_STATUS `json:"publicNetworkRule,omitempty"`
}

// Defines values for OperationProvisioningState.
type OperationProvisioningState_STATUS string

const (
	OperationProvisioningState_STATUS_Canceled   = OperationProvisioningState_STATUS("Canceled")
	OperationProvisioningState_STATUS_Disabled   = OperationProvisioningState_STATUS("Disabled")
	OperationProvisioningState_STATUS_Failed     = OperationProvisioningState_STATUS("Failed")
	OperationProvisioningState_STATUS_InProgress = OperationProvisioningState_STATUS("InProgress")
	OperationProvisioningState_STATUS_Pending    = OperationProvisioningState_STATUS("Pending")
	OperationProvisioningState_STATUS_Succeeded  = OperationProvisioningState_STATUS("Succeeded")
	OperationProvisioningState_STATUS_Unknown    = OperationProvisioningState_STATUS("Unknown")
)

// Mapping from string to OperationProvisioningState_STATUS
var operationProvisioningState_STATUS_Values = map[string]OperationProvisioningState_STATUS{
	"canceled":   OperationProvisioningState_STATUS_Canceled,
	"disabled":   OperationProvisioningState_STATUS_Disabled,
	"failed":     OperationProvisioningState_STATUS_Failed,
	"inprogress": OperationProvisioningState_STATUS_InProgress,
	"pending":    OperationProvisioningState_STATUS_Pending,
	"succeeded":  OperationProvisioningState_STATUS_Succeeded,
	"unknown":    OperationProvisioningState_STATUS_Unknown,
}

// Collection of Notification Hub or Notification Hub Namespace PNS credentials.
type PnsCredentials_STATUS struct {
	// AdmCredential: Description of a NotificationHub AdmCredential.
	AdmCredential *AdmCredential_STATUS `json:"admCredential,omitempty"`

	// ApnsCredential: Description of a NotificationHub ApnsCredential.
	ApnsCredential *ApnsCredential_STATUS `json:"apnsCredential,omitempty"`

	// BaiduCredential: Description of a NotificationHub BaiduCredential.
	BaiduCredential *BaiduCredential_STATUS `json:"baiduCredential,omitempty"`

	// BrowserCredential: Description of a NotificationHub BrowserCredential.
	BrowserCredential *BrowserCredential_STATUS `json:"browserCredential,omitempty"`

	// GcmCredential: Description of a NotificationHub GcmCredential.
	GcmCredential *GcmCredential_STATUS `json:"gcmCredential,omitempty"`

	// MpnsCredential: Description of a NotificationHub MpnsCredential.
	MpnsCredential *MpnsCredential_STATUS `json:"mpnsCredential,omitempty"`

	// WnsCredential: Description of a NotificationHub WnsCredential.
	WnsCredential *WnsCredential_STATUS `json:"wnsCredential,omitempty"`

	// XiaomiCredential: Description of a NotificationHub XiaomiCredential.
	XiaomiCredential *XiaomiCredential_STATUS `json:"xiaomiCredential,omitempty"`
}

// Represents a Private Endpoint Connection ARM resource - a sub-resource of Notification Hubs namespace.
type PrivateEndpointConnectionResource_STATUS struct {
	// Id: Fully qualified resource ID for the resource. E.g.
	// "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
	Id *string `json:"id,omitempty"`
}

// Type of public network access.
type PublicNetworkAccess_STATUS string

const (
	PublicNetworkAccess_STATUS_Disabled = PublicNetworkAccess_STATUS("Disabled")
	PublicNetworkAccess_STATUS_Enabled  = PublicNetworkAccess_STATUS("Enabled")
)

// Mapping from string to PublicNetworkAccess_STATUS
var publicNetworkAccess_STATUS_Values = map[string]PublicNetworkAccess_STATUS{
	"disabled": PublicNetworkAccess_STATUS_Disabled,
	"enabled":  PublicNetworkAccess_STATUS_Enabled,
}

// Allowed replication region
type ReplicationRegion_STATUS string

const (
	ReplicationRegion_STATUS_AustraliaEast    = ReplicationRegion_STATUS("AustraliaEast")
	ReplicationRegion_STATUS_BrazilSouth      = ReplicationRegion_STATUS("BrazilSouth")
	ReplicationRegion_STATUS_Default          = ReplicationRegion_STATUS("Default")
	ReplicationRegion_STATUS_None             = ReplicationRegion_STATUS("None")
	ReplicationRegion_STATUS_NorthEurope      = ReplicationRegion_STATUS("NorthEurope")
	ReplicationRegion_STATUS_SouthAfricaNorth = ReplicationRegion_STATUS("SouthAfricaNorth")
	ReplicationRegion_STATUS_SouthEastAsia    = ReplicationRegion_STATUS("SouthEastAsia")
	ReplicationRegion_STATUS_WestUs2          = ReplicationRegion_STATUS("WestUs2")
)

// Mapping from string to ReplicationRegion_STATUS
var replicationRegion_STATUS_Values = map[string]ReplicationRegion_STATUS{
	"australiaeast":    ReplicationRegion_STATUS_AustraliaEast,
	"brazilsouth":      ReplicationRegion_STATUS_BrazilSouth,
	"default":          ReplicationRegion_STATUS_Default,
	"none":             ReplicationRegion_STATUS_None,
	"northeurope":      ReplicationRegion_STATUS_NorthEurope,
	"southafricanorth": ReplicationRegion_STATUS_SouthAfricaNorth,
	"southeastasia":    ReplicationRegion_STATUS_SouthEastAsia,
	"westus2":          ReplicationRegion_STATUS_WestUs2,
}

// Namespace SKU name.
type SkuName_STATUS string

const (
	SkuName_STATUS_Basic    = SkuName_STATUS("Basic")
	SkuName_STATUS_Free     = SkuName_STATUS("Free")
	SkuName_STATUS_Standard = SkuName_STATUS("Standard")
)

// Mapping from string to SkuName_STATUS
var skuName_STATUS_Values = map[string]SkuName_STATUS{
	"basic":    SkuName_STATUS_Basic,
	"free":     SkuName_STATUS_Free,
	"standard": SkuName_STATUS_Standard,
}

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,
}

// Namespace SKU name.
type ZoneRedundancyPreference_STATUS string

const (
	ZoneRedundancyPreference_STATUS_Disabled = ZoneRedundancyPreference_STATUS("Disabled")
	ZoneRedundancyPreference_STATUS_Enabled  = ZoneRedundancyPreference_STATUS("Enabled")
)

// Mapping from string to ZoneRedundancyPreference_STATUS
var zoneRedundancyPreference_STATUS_Values = map[string]ZoneRedundancyPreference_STATUS{
	"disabled": ZoneRedundancyPreference_STATUS_Disabled,
	"enabled":  ZoneRedundancyPreference_STATUS_Enabled,
}

// A network authorization rule that filters traffic based on IP address.
type IpRule_STATUS struct {
	// IpMask: IP mask.
	IpMask *string `json:"ipMask,omitempty"`

	// Rights: List of access rights.
	Rights []AccessRights_STATUS `json:"rights,omitempty"`
}

// A default (public Internet) network authorization rule, which contains rights if no other network rule matches.
type PublicInternetAuthorizationRule_STATUS struct {
	// Rights: List of access rights.
	Rights []AccessRights_STATUS `json:"rights,omitempty"`
}
