// 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 armdatabox

// CommonJobDetailsClassification provides polymorphic access to related types.
// Call the interface's GetCommonJobDetails() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *CommonJobDetails, *CustomerDiskJobDetails, *DiskJobDetails, *HeavyJobDetails, *JobDetails
type CommonJobDetailsClassification interface {
	// GetCommonJobDetails returns the CommonJobDetails content of the underlying type.
	GetCommonJobDetails() *CommonJobDetails
}

// CommonJobSecretsClassification provides polymorphic access to related types.
// Call the interface's GetCommonJobSecrets() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *CommonJobSecrets, *CustomerDiskJobSecrets, *DiskJobSecrets, *HeavyJobSecrets, *JobSecrets
type CommonJobSecretsClassification interface {
	// GetCommonJobSecrets returns the CommonJobSecrets content of the underlying type.
	GetCommonJobSecrets() *CommonJobSecrets
}

// CommonScheduleAvailabilityRequestClassification provides polymorphic access to related types.
// Call the interface's GetCommonScheduleAvailabilityRequest() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *CommonScheduleAvailabilityRequest, *DiskScheduleAvailabilityRequest, *HeavyScheduleAvailabilityRequest, *ScheduleAvailabilityRequest
type CommonScheduleAvailabilityRequestClassification interface {
	// GetCommonScheduleAvailabilityRequest returns the CommonScheduleAvailabilityRequest content of the underlying type.
	GetCommonScheduleAvailabilityRequest() *CommonScheduleAvailabilityRequest
}

// CopyLogDetailsClassification provides polymorphic access to related types.
// Call the interface's GetCopyLogDetails() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *AccountCopyLogDetails, *CopyLogDetails, *CustomerDiskCopyLogDetails, *DiskCopyLogDetails, *HeavyAccountCopyLogDetails
type CopyLogDetailsClassification interface {
	// GetCopyLogDetails returns the CopyLogDetails content of the underlying type.
	GetCopyLogDetails() *CopyLogDetails
}

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

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

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

// ValidationInputRequestClassification provides polymorphic access to related types.
// Call the interface's GetValidationInputRequest() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *CreateOrderLimitForSubscriptionValidationRequest, *DataTransferDetailsValidationRequest, *PreferencesValidationRequest,
// - *SKUAvailabilityValidationRequest, *SubscriptionIsAllowedToCreateJobValidationRequest, *ValidateAddress, *ValidationInputRequest
type ValidationInputRequestClassification interface {
	// GetValidationInputRequest returns the ValidationInputRequest content of the underlying type.
	GetValidationInputRequest() *ValidationInputRequest
}

// ValidationInputResponseClassification provides polymorphic access to related types.
// Call the interface's GetValidationInputResponse() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *AddressValidationProperties, *CreateOrderLimitForSubscriptionValidationResponseProperties, *DataTransferDetailsValidationResponseProperties,
// - *PreferencesValidationResponseProperties, *SKUAvailabilityValidationResponseProperties, *SubscriptionIsAllowedToCreateJobValidationResponseProperties,
// - *ValidationInputResponse
type ValidationInputResponseClassification interface {
	// GetValidationInputResponse returns the ValidationInputResponse content of the underlying type.
	GetValidationInputResponse() *ValidationInputResponse
}

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