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

type NamespacesEventhub_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: Properties supplied to the Create Or Update Event Hub operation.
	Properties *Namespaces_Eventhub_Properties_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"`
}

type Namespaces_Eventhub_Properties_STATUS struct {
	// CaptureDescription: Properties of capture description
	CaptureDescription *CaptureDescription_STATUS `json:"captureDescription,omitempty"`

	// CreatedAt: Exact time the Event Hub was created.
	CreatedAt *string `json:"createdAt,omitempty"`

	// MessageRetentionInDays: Number of days to retain the events for this Event Hub, value should be 1 to 7 days
	MessageRetentionInDays *int `json:"messageRetentionInDays,omitempty"`

	// PartitionCount: Number of partitions created for the Event Hub, allowed values are from 1 to 32 partitions.
	PartitionCount *int `json:"partitionCount,omitempty"`

	// PartitionIds: Current number of shards on the Event Hub.
	PartitionIds []string `json:"partitionIds,omitempty"`

	// Status: Enumerates the possible values for the status of the Event Hub.
	Status *Namespaces_Eventhub_Properties_Status_STATUS `json:"status,omitempty"`

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

// Properties to configure capture description for eventhub
type CaptureDescription_STATUS struct {
	// Destination: Properties of Destination where capture will be stored. (Storage Account, Blob Names)
	Destination *Destination_STATUS `json:"destination,omitempty"`

	// Enabled: A value that indicates whether capture description is enabled.
	Enabled *bool `json:"enabled,omitempty"`

	// Encoding: Enumerates the possible values for the encoding format of capture description. Note: 'AvroDeflate' will be
	// deprecated in New API Version
	Encoding *CaptureDescription_Encoding_STATUS `json:"encoding,omitempty"`

	// IntervalInSeconds: The time window allows you to set the frequency with which the capture to Azure Blobs will happen,
	// value should between 60 to 900 seconds
	IntervalInSeconds *int `json:"intervalInSeconds,omitempty"`

	// SizeLimitInBytes: The size window defines the amount of data built up in your Event Hub before an capture operation,
	// value should be between 10485760 to 524288000 bytes
	SizeLimitInBytes *int `json:"sizeLimitInBytes,omitempty"`

	// SkipEmptyArchives: A value that indicates whether to Skip Empty Archives
	SkipEmptyArchives *bool `json:"skipEmptyArchives,omitempty"`
}

type Namespaces_Eventhub_Properties_Status_STATUS string

const (
	Namespaces_Eventhub_Properties_Status_STATUS_Active          = Namespaces_Eventhub_Properties_Status_STATUS("Active")
	Namespaces_Eventhub_Properties_Status_STATUS_Creating        = Namespaces_Eventhub_Properties_Status_STATUS("Creating")
	Namespaces_Eventhub_Properties_Status_STATUS_Deleting        = Namespaces_Eventhub_Properties_Status_STATUS("Deleting")
	Namespaces_Eventhub_Properties_Status_STATUS_Disabled        = Namespaces_Eventhub_Properties_Status_STATUS("Disabled")
	Namespaces_Eventhub_Properties_Status_STATUS_ReceiveDisabled = Namespaces_Eventhub_Properties_Status_STATUS("ReceiveDisabled")
	Namespaces_Eventhub_Properties_Status_STATUS_Renaming        = Namespaces_Eventhub_Properties_Status_STATUS("Renaming")
	Namespaces_Eventhub_Properties_Status_STATUS_Restoring       = Namespaces_Eventhub_Properties_Status_STATUS("Restoring")
	Namespaces_Eventhub_Properties_Status_STATUS_SendDisabled    = Namespaces_Eventhub_Properties_Status_STATUS("SendDisabled")
	Namespaces_Eventhub_Properties_Status_STATUS_Unknown         = Namespaces_Eventhub_Properties_Status_STATUS("Unknown")
)

// Mapping from string to Namespaces_Eventhub_Properties_Status_STATUS
var namespaces_Eventhub_Properties_Status_STATUS_Values = map[string]Namespaces_Eventhub_Properties_Status_STATUS{
	"active":          Namespaces_Eventhub_Properties_Status_STATUS_Active,
	"creating":        Namespaces_Eventhub_Properties_Status_STATUS_Creating,
	"deleting":        Namespaces_Eventhub_Properties_Status_STATUS_Deleting,
	"disabled":        Namespaces_Eventhub_Properties_Status_STATUS_Disabled,
	"receivedisabled": Namespaces_Eventhub_Properties_Status_STATUS_ReceiveDisabled,
	"renaming":        Namespaces_Eventhub_Properties_Status_STATUS_Renaming,
	"restoring":       Namespaces_Eventhub_Properties_Status_STATUS_Restoring,
	"senddisabled":    Namespaces_Eventhub_Properties_Status_STATUS_SendDisabled,
	"unknown":         Namespaces_Eventhub_Properties_Status_STATUS_Unknown,
}

type CaptureDescription_Encoding_STATUS string

const (
	CaptureDescription_Encoding_STATUS_Avro        = CaptureDescription_Encoding_STATUS("Avro")
	CaptureDescription_Encoding_STATUS_AvroDeflate = CaptureDescription_Encoding_STATUS("AvroDeflate")
)

// Mapping from string to CaptureDescription_Encoding_STATUS
var captureDescription_Encoding_STATUS_Values = map[string]CaptureDescription_Encoding_STATUS{
	"avro":        CaptureDescription_Encoding_STATUS_Avro,
	"avrodeflate": CaptureDescription_Encoding_STATUS_AvroDeflate,
}

// Capture storage details for capture description
type Destination_STATUS struct {
	// Name: Name for capture destination
	Name *string `json:"name,omitempty"`

	// Properties: Properties describing the storage account, blob container and archive name format for capture destination
	Properties *Destination_Properties_STATUS `json:"properties,omitempty"`
}

type Destination_Properties_STATUS struct {
	// ArchiveNameFormat: Blob naming convention for archive, e.g.
	// {Namespace}/{EventHub}/{PartitionId}/{Year}/{Month}/{Day}/{Hour}/{Minute}/{Second}. Here all the parameters
	// (Namespace,EventHub .. etc) are mandatory irrespective of order
	ArchiveNameFormat *string `json:"archiveNameFormat,omitempty"`

	// BlobContainer: Blob container Name
	BlobContainer *string `json:"blobContainer,omitempty"`

	// DataLakeAccountName: The Azure Data Lake Store name for the captured events
	DataLakeAccountName *string `json:"dataLakeAccountName,omitempty"`

	// DataLakeFolderPath: The destination folder path for the captured events
	DataLakeFolderPath *string `json:"dataLakeFolderPath,omitempty"`

	// DataLakeSubscriptionId: Subscription Id of Azure Data Lake Store
	DataLakeSubscriptionId *string `json:"dataLakeSubscriptionId,omitempty"`

	// StorageAccountResourceId: Resource id of the storage account to be used to create the blobs
	StorageAccountResourceId *string `json:"storageAccountResourceId,omitempty"`
}
