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

// AzureChatExtensionConfigurationClassification provides polymorphic access to related types.
// Call the interface's GetAzureChatExtensionConfiguration() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *AzureChatExtensionConfiguration, *AzureCosmosDBChatExtensionConfiguration, *AzureSearchChatExtensionConfiguration, *ElasticsearchChatExtensionConfiguration,
// - *MongoDBChatExtensionConfiguration, *PineconeChatExtensionConfiguration
type AzureChatExtensionConfigurationClassification interface {
	// GetAzureChatExtensionConfiguration returns the AzureChatExtensionConfiguration content of the underlying type.
	GetAzureChatExtensionConfiguration() *AzureChatExtensionConfiguration
}

// OnYourDataAuthenticationOptionsClassification provides polymorphic access to related types.
// Call the interface's GetOnYourDataAuthenticationOptions() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *OnYourDataAPIKeyAuthenticationOptions, *OnYourDataAccessTokenAuthenticationOptions, *OnYourDataAuthenticationOptions,
// - *OnYourDataConnectionStringAuthenticationOptions, *OnYourDataEncodedAPIKeyAuthenticationOptions, *OnYourDataKeyAndKeyIDAuthenticationOptions,
// - *OnYourDataSystemAssignedManagedIdentityAuthenticationOptions, *OnYourDataUserAssignedManagedIdentityAuthenticationOptions,
// - *OnYourDataUsernameAndPasswordAuthenticationOptions
type OnYourDataAuthenticationOptionsClassification interface {
	// GetOnYourDataAuthenticationOptions returns the OnYourDataAuthenticationOptions content of the underlying type.
	GetOnYourDataAuthenticationOptions() *OnYourDataAuthenticationOptions
}

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

// OnYourDataVectorizationSourceClassification provides polymorphic access to related types.
// Call the interface's GetOnYourDataVectorizationSource() method to access the common type.
// Use a type switch to determine the concrete type.  The possible types are:
// - *OnYourDataDeploymentNameVectorizationSource, *OnYourDataEndpointVectorizationSource, *OnYourDataIntegratedVectorizationSource,
// - *OnYourDataModelIDVectorizationSource, *OnYourDataVectorizationSource
type OnYourDataVectorizationSourceClassification interface {
	// GetOnYourDataVectorizationSource returns the OnYourDataVectorizationSource content of the underlying type.
	GetOnYourDataVectorizationSource() *OnYourDataVectorizationSource
}
