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

type NamespacesQueue_STATUS struct {
	// Id: Fully qualified resource ID for the resource. Ex -
	// /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: Queue Properties
	Properties *SBQueueProperties_STATUS `json:"properties,omitempty"`

	// SystemData: The system meta data relating to this resource.
	SystemData *SystemData_STATUS `json:"systemData,omitempty"`

	// Type: The type of the resource. E.g. "Microsoft.EventHub/Namespaces" or "Microsoft.EventHub/Namespaces/EventHubs"
	Type *string `json:"type,omitempty"`
}

// The Queue Properties definition.
type SBQueueProperties_STATUS struct {
	// AccessedAt: Last time a message was sent, or the last time there was a receive request to this queue.
	AccessedAt *string `json:"accessedAt,omitempty"`

	// AutoDeleteOnIdle: ISO 8061 timeSpan idle interval after which the queue is automatically deleted. The minimum duration
	// is 5 minutes.
	AutoDeleteOnIdle *string `json:"autoDeleteOnIdle,omitempty"`

	// CountDetails: Message Count Details.
	CountDetails *MessageCountDetails_STATUS `json:"countDetails,omitempty"`

	// CreatedAt: The exact time the message was created.
	CreatedAt *string `json:"createdAt,omitempty"`

	// DeadLetteringOnMessageExpiration: A value that indicates whether this queue has dead letter support when a message
	// expires.
	DeadLetteringOnMessageExpiration *bool `json:"deadLetteringOnMessageExpiration,omitempty"`

	// DefaultMessageTimeToLive: ISO 8601 default message timespan to live value. This is the duration after which the message
	// expires, starting from when the message is sent to Service Bus. This is the default value used when TimeToLive is not
	// set on a message itself.
	DefaultMessageTimeToLive *string `json:"defaultMessageTimeToLive,omitempty"`

	// DuplicateDetectionHistoryTimeWindow: ISO 8601 timeSpan structure that defines the duration of the duplicate detection
	// history. The default value is 10 minutes.
	DuplicateDetectionHistoryTimeWindow *string `json:"duplicateDetectionHistoryTimeWindow,omitempty"`

	// EnableBatchedOperations: Value that indicates whether server-side batched operations are enabled.
	EnableBatchedOperations *bool `json:"enableBatchedOperations,omitempty"`

	// EnableExpress: A value that indicates whether Express Entities are enabled. An express queue holds a message in memory
	// temporarily before writing it to persistent storage.
	EnableExpress *bool `json:"enableExpress,omitempty"`

	// EnablePartitioning: A value that indicates whether the queue is to be partitioned across multiple message brokers.
	EnablePartitioning *bool `json:"enablePartitioning,omitempty"`

	// ForwardDeadLetteredMessagesTo: Queue/Topic name to forward the Dead Letter message
	ForwardDeadLetteredMessagesTo *string `json:"forwardDeadLetteredMessagesTo,omitempty"`

	// ForwardTo: Queue/Topic name to forward the messages
	ForwardTo *string `json:"forwardTo,omitempty"`

	// LockDuration: ISO 8601 timespan duration of a peek-lock; that is, the amount of time that the message is locked for
	// other receivers. The maximum value for LockDuration is 5 minutes; the default value is 1 minute.
	LockDuration *string `json:"lockDuration,omitempty"`

	// MaxDeliveryCount: The maximum delivery count. A message is automatically deadlettered after this number of deliveries.
	// default value is 10.
	MaxDeliveryCount *int `json:"maxDeliveryCount,omitempty"`

	// MaxMessageSizeInKilobytes: Maximum size (in KB) of the message payload that can be accepted by the queue. This property
	// is only used in Premium today and default is 1024.
	MaxMessageSizeInKilobytes *int `json:"maxMessageSizeInKilobytes,omitempty"`

	// MaxSizeInMegabytes: The maximum size of the queue in megabytes, which is the size of memory allocated for the queue.
	// Default is 1024.
	MaxSizeInMegabytes *int `json:"maxSizeInMegabytes,omitempty"`

	// MessageCount: The number of messages in the queue.
	MessageCount *int `json:"messageCount,omitempty"`

	// RequiresDuplicateDetection: A value indicating if this queue requires duplicate detection.
	RequiresDuplicateDetection *bool `json:"requiresDuplicateDetection,omitempty"`

	// RequiresSession: A value that indicates whether the queue supports the concept of sessions.
	RequiresSession *bool `json:"requiresSession,omitempty"`

	// SizeInBytes: The size of the queue, in bytes.
	SizeInBytes *int `json:"sizeInBytes,omitempty"`

	// Status: Enumerates the possible values for the status of a messaging entity.
	Status *EntityStatus_STATUS `json:"status,omitempty"`

	// UpdatedAt: The exact time the message was updated.
	UpdatedAt *string `json:"updatedAt,omitempty"`
}

// Entity status.
type EntityStatus_STATUS string

const (
	EntityStatus_STATUS_Active          = EntityStatus_STATUS("Active")
	EntityStatus_STATUS_Creating        = EntityStatus_STATUS("Creating")
	EntityStatus_STATUS_Deleting        = EntityStatus_STATUS("Deleting")
	EntityStatus_STATUS_Disabled        = EntityStatus_STATUS("Disabled")
	EntityStatus_STATUS_ReceiveDisabled = EntityStatus_STATUS("ReceiveDisabled")
	EntityStatus_STATUS_Renaming        = EntityStatus_STATUS("Renaming")
	EntityStatus_STATUS_Restoring       = EntityStatus_STATUS("Restoring")
	EntityStatus_STATUS_SendDisabled    = EntityStatus_STATUS("SendDisabled")
	EntityStatus_STATUS_Unknown         = EntityStatus_STATUS("Unknown")
)

// Mapping from string to EntityStatus_STATUS
var entityStatus_STATUS_Values = map[string]EntityStatus_STATUS{
	"active":          EntityStatus_STATUS_Active,
	"creating":        EntityStatus_STATUS_Creating,
	"deleting":        EntityStatus_STATUS_Deleting,
	"disabled":        EntityStatus_STATUS_Disabled,
	"receivedisabled": EntityStatus_STATUS_ReceiveDisabled,
	"renaming":        EntityStatus_STATUS_Renaming,
	"restoring":       EntityStatus_STATUS_Restoring,
	"senddisabled":    EntityStatus_STATUS_SendDisabled,
	"unknown":         EntityStatus_STATUS_Unknown,
}

// Message Count Details.
type MessageCountDetails_STATUS struct {
	// ActiveMessageCount: Number of active messages in the queue, topic, or subscription.
	ActiveMessageCount *int `json:"activeMessageCount,omitempty"`

	// DeadLetterMessageCount: Number of messages that are dead lettered.
	DeadLetterMessageCount *int `json:"deadLetterMessageCount,omitempty"`

	// ScheduledMessageCount: Number of scheduled messages.
	ScheduledMessageCount *int `json:"scheduledMessageCount,omitempty"`

	// TransferDeadLetterMessageCount: Number of messages transferred into dead letters.
	TransferDeadLetterMessageCount *int `json:"transferDeadLetterMessageCount,omitempty"`

	// TransferMessageCount: Number of messages transferred to another queue, topic, or subscription.
	TransferMessageCount *int `json:"transferMessageCount,omitempty"`
}
