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

// Definition of ARM tracked top level resource.
type DataCollectionEndpointResource_STATUS struct {
	// Etag: Resource entity tag (ETag).
	Etag *string `json:"etag,omitempty"`

	// Id: Fully qualified ID of the resource.
	Id *string `json:"id,omitempty"`

	// Identity: Managed service identity of the resource.
	Identity *ManagedServiceIdentity_STATUS `json:"identity,omitempty"`

	// Kind: The kind of the resource.
	Kind *DataCollectionEndpointResource_Kind_STATUS `json:"kind,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: Resource properties.
	Properties *DataCollectionEndpoint_STATUS `json:"properties,omitempty"`

	// SystemData: Metadata pertaining to creation and last modification of the resource.
	SystemData *SystemData_STATUS `json:"systemData,omitempty"`

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

	// Type: The type of the resource.
	Type *string `json:"type,omitempty"`
}

// Definition of data collection endpoint.
type DataCollectionEndpoint_STATUS struct {
	// ConfigurationAccess: The endpoint used by clients to access their configuration.
	ConfigurationAccess *ConfigurationAccessEndpointSpec_STATUS `json:"configurationAccess,omitempty"`

	// Description: Description of the data collection endpoint.
	Description *string `json:"description,omitempty"`

	// FailoverConfiguration: Failover configuration on this endpoint. This property is READ-ONLY.
	FailoverConfiguration *FailoverConfigurationSpec_STATUS `json:"failoverConfiguration,omitempty"`

	// ImmutableId: The immutable ID of this data collection endpoint resource. This property is READ-ONLY.
	ImmutableId *string `json:"immutableId,omitempty"`

	// LogsIngestion: The endpoint used by clients to ingest logs.
	LogsIngestion *LogsIngestionEndpointSpec_STATUS `json:"logsIngestion,omitempty"`

	// Metadata: Metadata for the resource. This property is READ-ONLY.
	Metadata *Metadata_STATUS `json:"metadata,omitempty"`

	// MetricsIngestion: The endpoint used by clients to ingest metrics.
	MetricsIngestion *MetricsIngestionEndpointSpec_STATUS `json:"metricsIngestion,omitempty"`

	// NetworkAcls: Network access control rules for the endpoints.
	NetworkAcls *NetworkRuleSet_STATUS `json:"networkAcls,omitempty"`

	// PrivateLinkScopedResources: List of Azure Monitor Private Link Scope Resources to which this data collection endpoint
	// resource is associated. This property is READ-ONLY.
	PrivateLinkScopedResources []PrivateLinkScopedResource_STATUS `json:"privateLinkScopedResources,omitempty"`

	// ProvisioningState: The resource provisioning state. This property is READ-ONLY.
	ProvisioningState *DataCollectionEndpoint_ProvisioningState_STATUS `json:"provisioningState,omitempty"`
}

type DataCollectionEndpointResource_Kind_STATUS string

const (
	DataCollectionEndpointResource_Kind_STATUS_Linux   = DataCollectionEndpointResource_Kind_STATUS("Linux")
	DataCollectionEndpointResource_Kind_STATUS_Windows = DataCollectionEndpointResource_Kind_STATUS("Windows")
)

// Mapping from string to DataCollectionEndpointResource_Kind_STATUS
var dataCollectionEndpointResource_Kind_STATUS_Values = map[string]DataCollectionEndpointResource_Kind_STATUS{
	"linux":   DataCollectionEndpointResource_Kind_STATUS_Linux,
	"windows": DataCollectionEndpointResource_Kind_STATUS_Windows,
}

// Managed service identity (system assigned and/or user assigned identities)
type ManagedServiceIdentity_STATUS struct {
	// PrincipalId: The service principal ID of the system assigned identity. This property will only be provided for a system
	// assigned identity.
	PrincipalId *string `json:"principalId,omitempty"`

	// TenantId: The tenant ID of the system assigned identity. This property will only be provided for a system assigned
	// identity.
	TenantId *string `json:"tenantId,omitempty"`

	// Type: Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).
	Type                   *ManagedServiceIdentityType_STATUS     `json:"type,omitempty"`
	UserAssignedIdentities map[string]UserAssignedIdentity_STATUS `json:"userAssignedIdentities,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"`
}

// Definition of the endpoint used for accessing configuration.
type ConfigurationAccessEndpointSpec_STATUS struct {
	// Endpoint: The endpoint. This property is READ-ONLY.
	Endpoint *string `json:"endpoint,omitempty"`
}

type DataCollectionEndpoint_ProvisioningState_STATUS string

const (
	DataCollectionEndpoint_ProvisioningState_STATUS_Canceled  = DataCollectionEndpoint_ProvisioningState_STATUS("Canceled")
	DataCollectionEndpoint_ProvisioningState_STATUS_Creating  = DataCollectionEndpoint_ProvisioningState_STATUS("Creating")
	DataCollectionEndpoint_ProvisioningState_STATUS_Deleting  = DataCollectionEndpoint_ProvisioningState_STATUS("Deleting")
	DataCollectionEndpoint_ProvisioningState_STATUS_Failed    = DataCollectionEndpoint_ProvisioningState_STATUS("Failed")
	DataCollectionEndpoint_ProvisioningState_STATUS_Succeeded = DataCollectionEndpoint_ProvisioningState_STATUS("Succeeded")
	DataCollectionEndpoint_ProvisioningState_STATUS_Updating  = DataCollectionEndpoint_ProvisioningState_STATUS("Updating")
)

// Mapping from string to DataCollectionEndpoint_ProvisioningState_STATUS
var dataCollectionEndpoint_ProvisioningState_STATUS_Values = map[string]DataCollectionEndpoint_ProvisioningState_STATUS{
	"canceled":  DataCollectionEndpoint_ProvisioningState_STATUS_Canceled,
	"creating":  DataCollectionEndpoint_ProvisioningState_STATUS_Creating,
	"deleting":  DataCollectionEndpoint_ProvisioningState_STATUS_Deleting,
	"failed":    DataCollectionEndpoint_ProvisioningState_STATUS_Failed,
	"succeeded": DataCollectionEndpoint_ProvisioningState_STATUS_Succeeded,
	"updating":  DataCollectionEndpoint_ProvisioningState_STATUS_Updating,
}

type FailoverConfigurationSpec_STATUS struct {
	// ActiveLocation: Active location where data flow will occur.
	ActiveLocation *string `json:"activeLocation,omitempty"`

	// Locations: Locations that are configured for failover.
	Locations []LocationSpec_STATUS `json:"locations,omitempty"`
}

// Definition of the endpoint used for ingesting logs.
type LogsIngestionEndpointSpec_STATUS struct {
	// Endpoint: The endpoint. This property is READ-ONLY.
	Endpoint *string `json:"endpoint,omitempty"`
}

// Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).
type ManagedServiceIdentityType_STATUS string

const (
	ManagedServiceIdentityType_STATUS_None                       = ManagedServiceIdentityType_STATUS("None")
	ManagedServiceIdentityType_STATUS_SystemAssigned             = ManagedServiceIdentityType_STATUS("SystemAssigned")
	ManagedServiceIdentityType_STATUS_SystemAssignedUserAssigned = ManagedServiceIdentityType_STATUS("SystemAssigned,UserAssigned")
	ManagedServiceIdentityType_STATUS_UserAssigned               = ManagedServiceIdentityType_STATUS("UserAssigned")
)

// Mapping from string to ManagedServiceIdentityType_STATUS
var managedServiceIdentityType_STATUS_Values = map[string]ManagedServiceIdentityType_STATUS{
	"none":                        ManagedServiceIdentityType_STATUS_None,
	"systemassigned":              ManagedServiceIdentityType_STATUS_SystemAssigned,
	"systemassigned,userassigned": ManagedServiceIdentityType_STATUS_SystemAssignedUserAssigned,
	"userassigned":                ManagedServiceIdentityType_STATUS_UserAssigned,
}

// Metadata about the resource
type Metadata_STATUS struct {
	// ProvisionedBy: Azure offering managing this resource on-behalf-of customer.
	ProvisionedBy *string `json:"provisionedBy,omitempty"`

	// ProvisionedByImmutableId: Immutable Id of azure offering managing this resource on-behalf-of customer.
	ProvisionedByImmutableId *string `json:"provisionedByImmutableId,omitempty"`

	// ProvisionedByResourceId: Resource Id of azure offering managing this resource on-behalf-of customer.
	ProvisionedByResourceId *string `json:"provisionedByResourceId,omitempty"`
}

// Definition of the endpoint used for ingesting metrics.
type MetricsIngestionEndpointSpec_STATUS struct {
	// Endpoint: The endpoint. This property is READ-ONLY.
	Endpoint *string `json:"endpoint,omitempty"`
}

// Definition of the network rules.
type NetworkRuleSet_STATUS struct {
	// PublicNetworkAccess: The configuration to set whether network access from public internet to the endpoints are allowed.
	PublicNetworkAccess *NetworkRuleSet_PublicNetworkAccess_STATUS `json:"publicNetworkAccess,omitempty"`
}

type PrivateLinkScopedResource_STATUS struct {
	// ResourceId: The resourceId of the Azure Monitor Private Link Scope Scoped Resource through which this DCE is associated
	// with a Azure Monitor Private Link Scope.
	ResourceId *string `json:"resourceId,omitempty"`

	// ScopeId: The immutableId of the Azure Monitor Private Link Scope Resource to which the association is.
	ScopeId *string `json:"scopeId,omitempty"`
}

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

// User assigned identity properties
type UserAssignedIdentity_STATUS struct {
	// ClientId: The client ID of the assigned identity.
	ClientId *string `json:"clientId,omitempty"`

	// PrincipalId: The principal ID of the assigned identity.
	PrincipalId *string `json:"principalId,omitempty"`
}

type LocationSpec_STATUS struct {
	// Location: Name of location.
	Location *string `json:"location,omitempty"`

	// ProvisioningStatus: The resource provisioning state in this location.
	ProvisioningStatus *LocationSpec_ProvisioningStatus_STATUS `json:"provisioningStatus,omitempty"`
}

type NetworkRuleSet_PublicNetworkAccess_STATUS string

const (
	NetworkRuleSet_PublicNetworkAccess_STATUS_Disabled           = NetworkRuleSet_PublicNetworkAccess_STATUS("Disabled")
	NetworkRuleSet_PublicNetworkAccess_STATUS_Enabled            = NetworkRuleSet_PublicNetworkAccess_STATUS("Enabled")
	NetworkRuleSet_PublicNetworkAccess_STATUS_SecuredByPerimeter = NetworkRuleSet_PublicNetworkAccess_STATUS("SecuredByPerimeter")
)

// Mapping from string to NetworkRuleSet_PublicNetworkAccess_STATUS
var networkRuleSet_PublicNetworkAccess_STATUS_Values = map[string]NetworkRuleSet_PublicNetworkAccess_STATUS{
	"disabled":           NetworkRuleSet_PublicNetworkAccess_STATUS_Disabled,
	"enabled":            NetworkRuleSet_PublicNetworkAccess_STATUS_Enabled,
	"securedbyperimeter": NetworkRuleSet_PublicNetworkAccess_STATUS_SecuredByPerimeter,
}

type LocationSpec_ProvisioningStatus_STATUS string

const (
	LocationSpec_ProvisioningStatus_STATUS_Canceled  = LocationSpec_ProvisioningStatus_STATUS("Canceled")
	LocationSpec_ProvisioningStatus_STATUS_Creating  = LocationSpec_ProvisioningStatus_STATUS("Creating")
	LocationSpec_ProvisioningStatus_STATUS_Deleting  = LocationSpec_ProvisioningStatus_STATUS("Deleting")
	LocationSpec_ProvisioningStatus_STATUS_Failed    = LocationSpec_ProvisioningStatus_STATUS("Failed")
	LocationSpec_ProvisioningStatus_STATUS_Succeeded = LocationSpec_ProvisioningStatus_STATUS("Succeeded")
	LocationSpec_ProvisioningStatus_STATUS_Updating  = LocationSpec_ProvisioningStatus_STATUS("Updating")
)

// Mapping from string to LocationSpec_ProvisioningStatus_STATUS
var locationSpec_ProvisioningStatus_STATUS_Values = map[string]LocationSpec_ProvisioningStatus_STATUS{
	"canceled":  LocationSpec_ProvisioningStatus_STATUS_Canceled,
	"creating":  LocationSpec_ProvisioningStatus_STATUS_Creating,
	"deleting":  LocationSpec_ProvisioningStatus_STATUS_Deleting,
	"failed":    LocationSpec_ProvisioningStatus_STATUS_Failed,
	"succeeded": LocationSpec_ProvisioningStatus_STATUS_Succeeded,
	"updating":  LocationSpec_ProvisioningStatus_STATUS_Updating,
}
