//go:build go1.18
// +build go1.18

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT.
// Changes may cause incorrect behavior and will be lost if the code is regenerated.

package armdatashare

// DataSetClassification provides polymorphic access to related types.
// Call the interface's GetDataSet() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *ADLSGen1FileDataSet, *ADLSGen1FolderDataSet, *ADLSGen2FileDataSet, *ADLSGen2FileSystemDataSet, *ADLSGen2FolderDataSet,
// - *BlobContainerDataSet, *BlobDataSet, *BlobFolderDataSet, *DataSet, *KustoClusterDataSet, *KustoDatabaseDataSet, *SQLDBTableDataSet,
// - *SQLDWTableDataSet, *SynapseWorkspaceSQLPoolTableDataSet
type DataSetClassification interface {
	// GetDataSet returns the DataSet content of the underlying type.
	GetDataSet() *DataSet
}

// DataSetMappingClassification provides polymorphic access to related types.
// Call the interface's GetDataSetMapping() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *ADLSGen2FileDataSetMapping, *ADLSGen2FileSystemDataSetMapping, *ADLSGen2FolderDataSetMapping, *BlobContainerDataSetMapping,
// - *BlobDataSetMapping, *BlobFolderDataSetMapping, *DataSetMapping, *KustoClusterDataSetMapping, *KustoDatabaseDataSetMapping,
// - *SQLDBTableDataSetMapping, *SQLDWTableDataSetMapping, *SynapseWorkspaceSQLPoolTableDataSetMapping
type DataSetMappingClassification interface {
	// GetDataSetMapping returns the DataSetMapping content of the underlying type.
	GetDataSetMapping() *DataSetMapping
}

// SourceShareSynchronizationSettingClassification provides polymorphic access to related types.
// Call the interface's GetSourceShareSynchronizationSetting() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *ScheduledSourceSynchronizationSetting, *SourceShareSynchronizationSetting
type SourceShareSynchronizationSettingClassification interface {
	// GetSourceShareSynchronizationSetting returns the SourceShareSynchronizationSetting content of the underlying type.
	GetSourceShareSynchronizationSetting() *SourceShareSynchronizationSetting
}

// SynchronizationSettingClassification provides polymorphic access to related types.
// Call the interface's GetSynchronizationSetting() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *ScheduledSynchronizationSetting, *SynchronizationSetting
type SynchronizationSettingClassification interface {
	// GetSynchronizationSetting returns the SynchronizationSetting content of the underlying type.
	GetSynchronizationSetting() *SynchronizationSetting
}

// TriggerClassification provides polymorphic access to related types.
// Call the interface's GetTrigger() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *ScheduledTrigger, *Trigger
type TriggerClassification interface {
	// GetTrigger returns the Trigger content of the underlying type.
	GetTrigger() *Trigger
}
