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

// AzureChatExtensionRetrieveDocumentFilterReason - The reason for filtering the retrieved document.
type AzureChatExtensionRetrieveDocumentFilterReason string

const (
	// AzureChatExtensionRetrieveDocumentFilterReasonRerank - The document is not filtered by original search score threshold,
	// but is filtered by rerank score and `top_n_documents` configure.
	AzureChatExtensionRetrieveDocumentFilterReasonRerank AzureChatExtensionRetrieveDocumentFilterReason = "rerank"
	// AzureChatExtensionRetrieveDocumentFilterReasonScore - The document is filtered by original search score threshold defined
	// by `strictness` configure.
	AzureChatExtensionRetrieveDocumentFilterReasonScore AzureChatExtensionRetrieveDocumentFilterReason = "score"
)

// PossibleAzureChatExtensionRetrieveDocumentFilterReasonValues returns the possible values for the AzureChatExtensionRetrieveDocumentFilterReason const type.
func PossibleAzureChatExtensionRetrieveDocumentFilterReasonValues() []AzureChatExtensionRetrieveDocumentFilterReason {
	return []AzureChatExtensionRetrieveDocumentFilterReason{
		AzureChatExtensionRetrieveDocumentFilterReasonRerank,
		AzureChatExtensionRetrieveDocumentFilterReasonScore,
	}
}

// AzureChatExtensionType - A representation of configuration data for a single Azure OpenAI chat extension. This will be
// used by a chat completions request that should use Azure OpenAI chat extensions to augment the response
// behavior. The use of this configuration is compatible only with Azure OpenAI.
type AzureChatExtensionType string

const (
	// AzureChatExtensionTypeAzureCosmosDB - Represents the use of Azure Cosmos DB as an Azure OpenAI chat extension.
	AzureChatExtensionTypeAzureCosmosDB AzureChatExtensionType = "azure_cosmos_db"
	// AzureChatExtensionTypeAzureSearch - Represents the use of Azure AI Search as an Azure OpenAI chat extension.
	AzureChatExtensionTypeAzureSearch AzureChatExtensionType = "azure_search"
	// AzureChatExtensionTypeElasticsearch - Represents the use of Elasticsearch® index as an Azure OpenAI chat extension.
	AzureChatExtensionTypeElasticsearch AzureChatExtensionType = "elasticsearch"
	// AzureChatExtensionTypeMongoDB - Represents the use of a MongoDB chat extension.
	AzureChatExtensionTypeMongoDB AzureChatExtensionType = "mongo_db"
	// AzureChatExtensionTypePinecone - Represents the use of Pinecone index as an Azure OpenAI chat extension.
	AzureChatExtensionTypePinecone AzureChatExtensionType = "pinecone"
)

// PossibleAzureChatExtensionTypeValues returns the possible values for the AzureChatExtensionType const type.
func PossibleAzureChatExtensionTypeValues() []AzureChatExtensionType {
	return []AzureChatExtensionType{
		AzureChatExtensionTypeAzureCosmosDB,
		AzureChatExtensionTypeAzureSearch,
		AzureChatExtensionTypeElasticsearch,
		AzureChatExtensionTypeMongoDB,
		AzureChatExtensionTypePinecone,
	}
}

// AzureSearchQueryType - The type of Azure Search retrieval query that should be executed when using it as an Azure OpenAI
// chat extension.
type AzureSearchQueryType string

const (
	// AzureSearchQueryTypeSemantic - Represents the semantic query parser for advanced semantic modeling.
	AzureSearchQueryTypeSemantic AzureSearchQueryType = "semantic"
	// AzureSearchQueryTypeSimple - Represents the default, simple query parser.
	AzureSearchQueryTypeSimple AzureSearchQueryType = "simple"
	// AzureSearchQueryTypeVector - Represents vector search over computed data.
	AzureSearchQueryTypeVector AzureSearchQueryType = "vector"
	// AzureSearchQueryTypeVectorSemanticHybrid - Represents a combination of semantic search and vector data querying.
	AzureSearchQueryTypeVectorSemanticHybrid AzureSearchQueryType = "vector_semantic_hybrid"
	// AzureSearchQueryTypeVectorSimpleHybrid - Represents a combination of the simple query strategy with vector data.
	AzureSearchQueryTypeVectorSimpleHybrid AzureSearchQueryType = "vector_simple_hybrid"
)

// PossibleAzureSearchQueryTypeValues returns the possible values for the AzureSearchQueryType const type.
func PossibleAzureSearchQueryTypeValues() []AzureSearchQueryType {
	return []AzureSearchQueryType{
		AzureSearchQueryTypeSemantic,
		AzureSearchQueryTypeSimple,
		AzureSearchQueryTypeVector,
		AzureSearchQueryTypeVectorSemanticHybrid,
		AzureSearchQueryTypeVectorSimpleHybrid,
	}
}

// ContentFilterSeverity - Ratings for the intensity and risk level of harmful content.
type ContentFilterSeverity string

const (
	// ContentFilterSeverityHigh - Content that displays explicit and severe harmful instructions, actions,
	// damage, or abuse; includes endorsement, glorification, or promotion of severe
	// harmful acts, extreme or illegal forms of harm, radicalization, or non-consensual
	// power exchange or abuse.
	ContentFilterSeverityHigh ContentFilterSeverity = "high"
	// ContentFilterSeverityLow - Content that expresses prejudiced, judgmental, or opinionated views, includes offensive
	// use of language, stereotyping, use cases exploring a fictional world (for example, gaming,
	// literature) and depictions at low intensity.
	ContentFilterSeverityLow ContentFilterSeverity = "low"
	// ContentFilterSeverityMedium - Content that uses offensive, insulting, mocking, intimidating, or demeaning language
	// towards specific identity groups, includes depictions of seeking and executing harmful
	// instructions, fantasies, glorification, promotion of harm at medium intensity.
	ContentFilterSeverityMedium ContentFilterSeverity = "medium"
	// ContentFilterSeveritySafe - Content may be related to violence, self-harm, sexual, or hate categories but the terms
	// are used in general, journalistic, scientific, medical, and similar professional contexts,
	// which are appropriate for most audiences.
	ContentFilterSeveritySafe ContentFilterSeverity = "safe"
)

// PossibleContentFilterSeverityValues returns the possible values for the ContentFilterSeverity const type.
func PossibleContentFilterSeverityValues() []ContentFilterSeverity {
	return []ContentFilterSeverity{
		ContentFilterSeverityHigh,
		ContentFilterSeverityLow,
		ContentFilterSeverityMedium,
		ContentFilterSeveritySafe,
	}
}

// ElasticsearchQueryType - The type of Elasticsearch® retrieval query that should be executed when using it as an Azure OpenAI
// chat extension.
type ElasticsearchQueryType string

const (
	// ElasticsearchQueryTypeSimple - Represents the default, simple query parser.
	ElasticsearchQueryTypeSimple ElasticsearchQueryType = "simple"
	// ElasticsearchQueryTypeVector - Represents vector search over computed data.
	ElasticsearchQueryTypeVector ElasticsearchQueryType = "vector"
)

// PossibleElasticsearchQueryTypeValues returns the possible values for the ElasticsearchQueryType const type.
func PossibleElasticsearchQueryTypeValues() []ElasticsearchQueryType {
	return []ElasticsearchQueryType{
		ElasticsearchQueryTypeSimple,
		ElasticsearchQueryTypeVector,
	}
}

// OnYourDataAuthenticationType - The authentication types supported with Azure OpenAI On Your Data.
type OnYourDataAuthenticationType string

const (
	// OnYourDataAuthenticationTypeAPIKey - Authentication via API key.
	OnYourDataAuthenticationTypeAPIKey OnYourDataAuthenticationType = "api_key"
	// OnYourDataAuthenticationTypeAccessToken - Authentication via access token.
	OnYourDataAuthenticationTypeAccessToken OnYourDataAuthenticationType = "access_token"
	// OnYourDataAuthenticationTypeConnectionString - Authentication via connection string.
	OnYourDataAuthenticationTypeConnectionString OnYourDataAuthenticationType = "connection_string"
	// OnYourDataAuthenticationTypeEncodedAPIKey - Authentication via encoded API key.
	OnYourDataAuthenticationTypeEncodedAPIKey OnYourDataAuthenticationType = "encoded_api_key"
	// OnYourDataAuthenticationTypeKeyAndKeyID - Authentication via key and key ID pair.
	OnYourDataAuthenticationTypeKeyAndKeyID OnYourDataAuthenticationType = "key_and_key_id"
	// OnYourDataAuthenticationTypeSystemAssignedManagedIdentity - Authentication via system-assigned managed identity.
	OnYourDataAuthenticationTypeSystemAssignedManagedIdentity OnYourDataAuthenticationType = "system_assigned_managed_identity"
	// OnYourDataAuthenticationTypeUserAssignedManagedIdentity - Authentication via user-assigned managed identity.
	OnYourDataAuthenticationTypeUserAssignedManagedIdentity OnYourDataAuthenticationType = "user_assigned_managed_identity"
	// OnYourDataAuthenticationTypeUsernameAndPassword - Authentication via username and password.
	OnYourDataAuthenticationTypeUsernameAndPassword OnYourDataAuthenticationType = "username_and_password"
)

// PossibleOnYourDataAuthenticationTypeValues returns the possible values for the OnYourDataAuthenticationType const type.
func PossibleOnYourDataAuthenticationTypeValues() []OnYourDataAuthenticationType {
	return []OnYourDataAuthenticationType{
		OnYourDataAuthenticationTypeAPIKey,
		OnYourDataAuthenticationTypeAccessToken,
		OnYourDataAuthenticationTypeConnectionString,
		OnYourDataAuthenticationTypeEncodedAPIKey,
		OnYourDataAuthenticationTypeKeyAndKeyID,
		OnYourDataAuthenticationTypeSystemAssignedManagedIdentity,
		OnYourDataAuthenticationTypeUserAssignedManagedIdentity,
		OnYourDataAuthenticationTypeUsernameAndPassword,
	}
}

// OnYourDataContextProperty - The context property.
type OnYourDataContextProperty string

const (
	// OnYourDataContextPropertyAllRetrievedDocuments - The `all_retrieved_documents` property.
	OnYourDataContextPropertyAllRetrievedDocuments OnYourDataContextProperty = "all_retrieved_documents"
	// OnYourDataContextPropertyCitations - The `citations` property.
	OnYourDataContextPropertyCitations OnYourDataContextProperty = "citations"
	// OnYourDataContextPropertyIntent - The `intent` property.
	OnYourDataContextPropertyIntent OnYourDataContextProperty = "intent"
)

// PossibleOnYourDataContextPropertyValues returns the possible values for the OnYourDataContextProperty const type.
func PossibleOnYourDataContextPropertyValues() []OnYourDataContextProperty {
	return []OnYourDataContextProperty{
		OnYourDataContextPropertyAllRetrievedDocuments,
		OnYourDataContextPropertyCitations,
		OnYourDataContextPropertyIntent,
	}
}

// OnYourDataVectorSearchAuthenticationType - The authentication types supported with Azure OpenAI On Your Data vector search.
type OnYourDataVectorSearchAuthenticationType string

const (
	// OnYourDataVectorSearchAuthenticationTypeAPIKey - Authentication via API key.
	OnYourDataVectorSearchAuthenticationTypeAPIKey OnYourDataVectorSearchAuthenticationType = "api_key"
	// OnYourDataVectorSearchAuthenticationTypeAccessToken - Authentication via access token.
	OnYourDataVectorSearchAuthenticationTypeAccessToken OnYourDataVectorSearchAuthenticationType = "access_token"
)

// PossibleOnYourDataVectorSearchAuthenticationTypeValues returns the possible values for the OnYourDataVectorSearchAuthenticationType const type.
func PossibleOnYourDataVectorSearchAuthenticationTypeValues() []OnYourDataVectorSearchAuthenticationType {
	return []OnYourDataVectorSearchAuthenticationType{
		OnYourDataVectorSearchAuthenticationTypeAPIKey,
		OnYourDataVectorSearchAuthenticationTypeAccessToken,
	}
}

// OnYourDataVectorizationSourceType - Represents the available sources Azure OpenAI On Your Data can use to configure vectorization
// of data for use with vector search.
type OnYourDataVectorizationSourceType string

const (
	// OnYourDataVectorizationSourceTypeDeploymentName - Represents an Ada model deployment name to use. This model deployment
	// must be in the same Azure OpenAI resource, but
	// On Your Data will use this model deployment via an internal call rather than a public one, which enables vector
	// search even in private networks.
	OnYourDataVectorizationSourceTypeDeploymentName OnYourDataVectorizationSourceType = "deployment_name"
	// OnYourDataVectorizationSourceTypeEndpoint - Represents vectorization performed by public service calls to an Azure OpenAI
	// embedding model.
	OnYourDataVectorizationSourceTypeEndpoint OnYourDataVectorizationSourceType = "endpoint"
	// OnYourDataVectorizationSourceTypeIntegrated - Represents the integrated vectorizer defined within the search resource.
	OnYourDataVectorizationSourceTypeIntegrated OnYourDataVectorizationSourceType = "integrated"
	// OnYourDataVectorizationSourceTypeModelID - Represents a specific embedding model ID as defined in the search service.
	// Currently only supported by Elasticsearch®.
	OnYourDataVectorizationSourceTypeModelID OnYourDataVectorizationSourceType = "model_id"
)

// PossibleOnYourDataVectorizationSourceTypeValues returns the possible values for the OnYourDataVectorizationSourceType const type.
func PossibleOnYourDataVectorizationSourceTypeValues() []OnYourDataVectorizationSourceType {
	return []OnYourDataVectorizationSourceType{
		OnYourDataVectorizationSourceTypeDeploymentName,
		OnYourDataVectorizationSourceTypeEndpoint,
		OnYourDataVectorizationSourceTypeIntegrated,
		OnYourDataVectorizationSourceTypeModelID,
	}
}
